-- 色々な型のしくみについて勉強しなおそうと、以前挫折した Haskell をイ -- ンストールしてみた。とりあえずクラス定義の仕組みはどうなっているの -- だろう。printString をオーバーライドするつもりで show 関数を触る。 -- しかし、Prelude のほかの部分を見てみると、show 関数はむしろ -- storeString に近いかも。良くない例だ。全体像が掴めるまでは相当かか -- りそうだ。 data Osaka a = SayOsaka String instance Show a => Show (Osaka a) where show (SayOsaka a) = a ++ "-yanen" data Hiroshima a = SayHiroshima String instance Show a => Show (Hiroshima a) where show (SayHiroshima a) = a ++ "-jaken" data Fukushima a = SayFukushima String instance Show a => Show (Fukushima a) where show (SayFukushima a) = a ++ "-dappe"