effin- A Typeable-free implementation of extensible effects

Safe HaskellNone




data Lift m a Source

An effect described by a monad. All monads are functors, but not all Monads have Functor instances. By wrapping a monad in the Lift effect, all monads can be used without having to provide a Functor instance for each one.


Monad m => Functor (Lift m) 

runLift :: Monad m => Effect `[Lift m]` a -> m a Source

Converts a computation containing only monadic effects into a monadic computation.

lift :: EffectLift m es => m a -> Effect es a Source

Lifts a monadic value into an effect.