concrete functor and monad transformers
#18Eq1, Ord1, Show1: move from eq1, compare1, showsPrec1 to liftEq, liftCompare, liftShowsPrec
In transformers-0.5:Data.Functor.Classes class methods like eq1 are replaced by liftEq.
With transformers-0.4 I could define:
data T a = complicated definition ...
deriving (Eq, Ord, Show)
instance Eq1 T where eq1 = (==)
instance Ord1 T where compare1 = compare
instance Show1 T where showsPrec1 = showsPrec
In transformers-0.5 it seems that I have to implement Eq1, Ord1, Show1 instances manually. Is there some assistance to define eq1 and compare1 for an ADT? What are the use cases where eq1 was not powerful enough and liftEq is needed?