transformers- Concrete functor and monad transformers

Safe HaskellSafe-Inferred




The MaybeT monad transformer extends a monad with the ability to exit the computation without returning a value.

A sequence of actions produces a value only if all the actions in the sequence do. If one exits, the rest of the sequence is skipped and the composite action exits.

For a variant allowing a range of exception values, see Control.Monad.Trans.Except.


The MaybeT monad transformer

newtype MaybeT m a Source

The parameterizable maybe monad, obtained by composing an arbitrary monad with the Maybe monad.

Computations are actions that may produce a value or exit.

The return function yields a computation that produces that value, while >>= sequences two subcomputations, exiting if either computation does.




runMaybeT :: m (Maybe a)


MonadTrans MaybeT 
Monad m => Monad (MaybeT m) 
Functor m => Functor (MaybeT m) 
MonadFix m => MonadFix (MaybeT m) 
Monad m => MonadPlus (MaybeT m) 
(Functor m, Monad m) => Applicative (MaybeT m) 
Foldable f => Foldable (MaybeT f) 
Traversable f => Traversable (MaybeT f) 
(Functor m, Monad m) => Alternative (MaybeT m) 
MonadIO m => MonadIO (MaybeT m) 
Show1 m => Show1 (MaybeT m) 
Read1 m => Read1 (MaybeT m) 
Ord1 m => Ord1 (MaybeT m) 
Eq1 m => Eq1 (MaybeT m) 
(Eq1 m, Eq a) => Eq (MaybeT m a) 
(Ord1 m, Ord a) => Ord (MaybeT m a) 
(Read1 m, Read a) => Read (MaybeT m a) 
(Show1 m, Show a) => Show (MaybeT m a) 

mapMaybeT :: (m (Maybe a) -> n (Maybe b)) -> MaybeT m a -> MaybeT n bSource

Transform the computation inside a MaybeT.


maybeToExceptT :: Functor m => e -> MaybeT m a -> ExceptT e m aSource

Convert a MaybeT computation to ExceptT, with a default exception value.

exceptToMaybeT :: Functor m => ExceptT e m a -> MaybeT m aSource

Convert a ExceptT computation to MaybeT, discarding the value of any exception.

Lifting other operations

liftCallCC :: CallCC m (Maybe a) (Maybe b) -> CallCC (MaybeT m) a bSource

Lift a callCC operation to the new monad.

liftCatch :: Catch e m (Maybe a) -> Catch e (MaybeT m) aSource

Lift a catchE operation to the new monad.

liftListen :: Monad m => Listen w m (Maybe a) -> Listen w (MaybeT m) aSource

Lift a listen operation to the new monad.

liftPass :: Monad m => Pass w m (Maybe a) -> Pass w (MaybeT m) aSource

Lift a pass operation to the new monad.