次のように、一連のレコードがあるとします。
data A = A { a:: String } deriving (Show)
data B = B { b:: String } deriving (Show)
次に、いくつかの型クラス
class Foo a where
foo :: a -> IO ()
instance Foo A where
foo c = ...
そして私も何かしたい
bar = do
push (A {a="x"})
push (B {b="y"})
そして、これらのものをリストに入れて、後で実行できるようにします。
map foo l
リストをラッパータイプにできるように、ラッパータイプを生成してインスタンスを派生させるテンプレートhaskellを作成する必要がありますか?これについてもっと賢い方法はありますか?私は正直に言って、haskell型システムにかなり固定されていると感じており、これを行うにはもっと良い方法が必要だと知っています。