lift package:extensible-effects

embed an operation of type `m a` into the Eff monad when Lift m is in a part of the effect-list.
Lifting: emulating monad transformers
Treat Lefts as exceptions and Rights as return values.
liftEither in a lifted Monad
Lift a maybe into the Fail effect, causing failure if it's Nothing.
liftMaybe in a lifted Monad
A convenient alias to SetMember Lift (Lift m) r, which allows us to assert that the lifted type occurs ony once in the effect list.
Same as Lifted but with additional MonadBaseControl constraint
The handler of Lift requests. It is meant to be terminal: we only allow a single Lifted Monad. Note, too, how this is different from other handlers.