
On Fri, Mar 28, 2014 at 4:27 PM, David Menendez
Well, "deriving (Eq, Show)" is a bit less wordy than "type role Foo representational representational". Although I guess you could just do "type role Foo _ _ _".
You forgot some stuff. #ifdef __GLASGOW_HASKELL__ #if __GLASGOW_HASKELL__ >= 708 && __GLASGOW_HASKELL__ < ??? type role Foo representational nominal representational #elif __GLASGOW_HASKELL >= ??? -- insert whatever the future solution is to actually -- handle higher-order types; it will, without question, -- be different from the above role annotation. #endif #endif data Foo f x y = Foo (f x) y deriving (Eq, Ord, Show, Read) Please add that to every type definition in your code. :) -- Dan