concrete functor and monad transformers
#6Typeable instance for promoted Identity constructor
In an earlier pull request, I added a Typeable
instance for Identity
for compatibility purposes, since base-4.8.0.0
defines one. It turns out I forgot about another instance that base-4.8.0.0
defines but transformers
doesn't. Namely, a Typeable
instance for the promoted data constructor 'Identity
(as opposed to the data type Identity
, which currently does have a Typeable
instance).
All that needs to be changed to enable this is adding the language extensions AutoDeriveTypeable
, DataKinds
, and PolyKinds
if using GHC 7.8. It might seem weird to need to enable AutoDeriveTypeable
since there's already an explicit deriving Typeable
clause, but it's required due to a bug in GHC 7.8 (https://ghc.haskell.org/trac/ghc/ticket/9111).
(Also, since there's an explicit deriving Typeable
clause, this bug (https://ghc.haskell.org/trac/ghc/ticket/9575) won't occur.)
My branch here (http://hub.darcs.net/RyanGlScott/transformers) implements these changes, as well as some minor fixes to make transformers
build on GHC < 7.10.