|
Control.Monad.Trans.Writer.Lazy | Portability | portable | Stability | experimental | Maintainer | libraries@haskell.org |
|
|
|
|
|
Description |
The lazy WriterT monad transformer, which adds collection of
outputs (such as a count or string output) to a given monad.
This version builds its output lazily; for a strict version, see
Control.Monad.Trans.Writer.Strict, which has the same interface.
This monad transformer provides only limited access to the output
during the computation. For more general access, use
Control.Monad.Trans.State instead.
|
|
Synopsis |
|
type Writer w = WriterT w Identity | | writer :: (a, w) -> Writer w a | | runWriter :: Writer w a -> (a, w) | | execWriter :: Writer w a -> w | | mapWriter :: ((a, w) -> (b, w')) -> Writer w a -> Writer w' b | | newtype WriterT w m a = WriterT {} | | execWriterT :: Monad m => WriterT w m a -> m w | | mapWriterT :: (m (a, w) -> n (b, w')) -> WriterT w m a -> WriterT w' n b | | tell :: (Monoid w, Monad m) => w -> WriterT w m () | | listen :: (Monoid w, Monad m) => WriterT w m a -> WriterT w m (a, w) | | listens :: (Monoid w, Monad m) => (w -> b) -> WriterT w m a -> WriterT w m (a, b) | | pass :: (Monoid w, Monad m) => WriterT w m (a, w -> w) -> WriterT w m a | | censor :: (Monoid w, Monad m) => (w -> w) -> WriterT w m a -> WriterT w m a | | liftCallCC :: Monoid w => ((((a, w) -> m (b, w)) -> m (a, w)) -> m (a, w)) -> ((a -> WriterT w m b) -> WriterT w m a) -> WriterT w m a | | liftCatch :: (m (a, w) -> (e -> m (a, w)) -> m (a, w)) -> WriterT w m a -> (e -> WriterT w m a) -> WriterT w m a |
|
|
|
The Writer monad
|
|
|
A writer monad parameterized by the type w of output to accumulate.
The return function produces the output mempty, while >>=
combines the outputs of the subcomputations using mappend.
|
|
|
Construct a writer computation from a (result, output) pair.
(The inverse of runWriter.)
|
|
|
Unwrap a writer computation as a (result, output) pair.
(The inverse of writer.)
|
|
|
Extract the output from a writer computation.
|
|
|
Map both the return value and output of a computation using
the given function.
|
|
The WriterT monad transformer
|
|
|
A writer monad parameterized by:
- w - the output to accumulate.
- m - The inner monad.
The return function produces the output mempty, while >>=
combines the outputs of the subcomputations using mappend.
| Constructors | |
|
|
|
Extract the output from a writer computation.
|
|
|
Map both the return value and output of a computation using
the given function.
|
|
Writer operations
|
|
|
tell w is an action that produces the output w.
|
|
|
listen m is an action that executes the action m and adds its
output to the value of the computation.
|
|
|
listens f m is an action that executes the action m and adds
the result of applying f to the output to the value of the computation.
|
|
|
pass m is an action that executes the action m, which returns
a value and a function, and returns the value, applying the function
to the output.
|
|
|
censor f m is an action that executes the action m and
applies the function f to its output, leaving the return value
unchanged.
|
|
Lifting other operations
|
|
|
Lift a callCC operation to the new monad.
|
|
|
Lift a catchError operation to the new monad.
|
|
Produced by Haddock version 2.6.0 |