Control.Monad.Trans.Maybe
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 |
Description
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
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.
Instances
MonadTrans MaybeT | |
Monad m => Monad (MaybeT m) | |
Functor m => Functor (MaybeT m) | |
MonadFix m => MonadFix (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) | |
Monad m => MonadPlus (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 b Source
Transform the computation inside a MaybeT
.
Conversion
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.
Lifting other operations
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/7.10.3/docs/html/libraries/transformers-0.4.2.0/Control-Monad-Trans-Maybe.html