Използвайки:
{-# 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 трябва да може да го направи и afaik поне за Typeable
е задължително.
Вероятно бих могъл да напиша свой собствен екземпляр Data
... но защо да го правя, ако GHC може просто да го извлече вместо мен?
StandaloneDeriving
, така че не съм сигурен какво питате. - person crockeea   schedule 07.01.2015deriving
не работи за типове данни, различни от Haskell98. Използвайкиb
вMapE
напуснах тази територия. - person fho   schedule 07.01.2015