使用:
{-# LANGUAGE GADTs #-}
{-# LANGUAGE StandaloneDeriving #-}
{-# LANGUAGE DeriveDataTypeable #-}
次のデータ型が与えられます。
data Event a where
PureE :: a -> Event a
MapE :: (a -> b) -> Event a -> Event b
deriving instance Typeable Event
deriving instance Data a => Data (Event a)
私の目標は、インスタンスuniplate
を必要とするパッケージを使用することです。Data
GHCは自動的Typeable
に導出できますか? Data
7.8 GHC はそうできるはずなので、少なくともTypeable
それは必須です。
私はおそらく自分のData
インスタンスを書くことができます...しかし、GHCがそれを私のために派生させることができるのなら、なぜですか?