concrete functor and monad transformers
#8Data.Functor.Class: Wrapper type that resolves e.g. (Eq (f a)) to (Eq1 f, Eq a)
newtype Wrap f a = Wrap {unwrap :: f a}
instance (Eq1 f, Eq a) => Eq (Wrap f a) where
Wrap x == Wrap y = eq1 x y
We should also have analogous instances for Ord, Show, Read.
This is the same idea as
Lift
and `Lift2Er, sorry, I accidentally submitted the last comment too early.
This is the same idea as
Lift
andLift2
fromprelude-extras
, correct? (I'm not sure if I like either one of those names, to be honest, but we'd have to name it something.)On second thought, I'd rather not name it
Lift
, since it might become an important thing soon ( https://ghc.haskell.org/trac/ghc/ticket/1830 ).In that case, I have no better name suggestions, so let's go with
Wrap
:)- status set to closed
Eq1 and friends have moved to base in preparation for GHC 8.0
IdentityT
can be used instead.