Computations in the monad m can be run in the monad n. These translations are inserted
automatically by the compiler.
Usually, n consists of some number of monad transformers applied to m, but this is not
mandatory.
New instances should use this class, MonadLift. Clients that require one monad to be liftable into
another should instead request MonadLiftT, which is the reflexive, transitive closure of
MonadLift.
Instance Constructor
MonadLift.mk.{u, v, w}
Methods
monadLift : {α : Type u} → m α → n α
Translates an action from monad m into monad n.