Copyright | (c) 2007 Yitzak Gale Eric Kidd |
---|---|

License | BSD-style (see the file LICENSE) |

Maintainer | [email protected] |

Stability | experimental |

Portability | portable |

Safe Haskell | Safe |

Language | Haskell98 |

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 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.

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

Transform the computation inside a `MaybeT`

.

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

Convert a `MaybeT`

computation to `ExceptT`

, with a default exception value.

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

Convert a `ExceptT`

computation to `MaybeT`

, discarding the value of any exception.

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

Lift a `callCC`

operation to the new monad.

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

Lift a `catchE`

operation to the new monad.

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

Lift a `listen`

operation to the new monad.

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

Lift a `pass`

operation to the new monad.

© The University of Glasgow and others

Licensed under a BSD-style license (see top of the page).

https://downloads.haskell.org/~ghc/8.6.1/docs/html/libraries/transformers-0.5.5.0/Control-Monad-Trans-Maybe.html