Documentation
A class for "liftable" data structures. Conceptually
an extension of MonadTrans
to allow deep lifting,
but lifting need not be done between monads only. Eg lifting
between Applicative
s is allowed.
For instances where m
and n
have 'return'/'pure' defined,
these instances must satisfy
lift (return x) == return x
.