Haskellで型クラスを同一のリストに突っ込む
Haskellで、同じ型クラスだけど違う型のオブジェクトを、一つのリストとかにツッコんでその型クラスの関数に関してはmapとかできるようにしたいというのは、よくある願いだと思う。ていうかMonadiusつくった時にはそうする方法を知らんかったので仕方なく型を1種類だけにして全部突っ込んだのでえらいことになっていた。若気の至り
こないだ id:tanakh さんからアドバイスをもらってたのを試してみたら簡単にできた。
{-# OPTIONS -XExistentialQuantification #-} data A = forall a. Show a => A a instance Show A where show (A a) = show a as = [A 2, A 2.0, A "hoge"] main = do print as
narioでも解決済みだった。 http://d.hatena.ne.jp/mokehehe/20081002/gameobj