Copyright | (c) Andy Gill 2001 (c) Oregon Graduate Institute of Science and Technology 2001 |
---|---|
License | BSD-style (see the file LICENSE) |
Maintainer | [email protected] |
Stability | experimental |
Portability | non-portable (multi-param classes, functional dependencies) |
Safe Haskell | Safe |
Language | Haskell2010 |
The MonadWriter class.
Inspired by the paper Functional Programming with Overloading and Higher-Order Polymorphism, Mark P Jones (http://web.cecs.pdx.edu/~mpj/pubs/springschool.html) Advanced School of Functional Programming, 1995.
class (Monoid w, Monad m) => MonadWriter w m | m -> w where Source
writer :: (a, w) -> m a Source
writer (a,w)
embeds a simple writer action.
tell w
is an action that produces the output w
.
listen :: m a -> m (a, w) Source
listen m
is an action that executes the action m
and adds its output to the value of the computation.
pass :: m (a, w -> w) -> m a Source
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.
MonadWriter w m => MonadWriter w (MaybeT m) | |
Monoid w => MonadWriter w ((,) w) |
NOTE: This instance is only defined for Since: mtl-2.2.2 |
MonadWriter w m => MonadWriter w (StateT s m) | |
MonadWriter w m => MonadWriter w (StateT s m) | |
MonadWriter w m => MonadWriter w (ReaderT r m) | |
MonadWriter w m => MonadWriter w (IdentityT m) | |
MonadWriter w m => MonadWriter w (ExceptT e m) | Since: mtl-2.2 |
(Error e, MonadWriter w m) => MonadWriter w (ErrorT e m) | |
(Monoid w, Monad m) => MonadWriter w (WriterT w m) | |
(Monoid w, Monad m) => MonadWriter w (WriterT w m) | |
(Monoid w, Monad m) => MonadWriter w (RWST r w s m) | |
(Monoid w, Monad m) => MonadWriter w (RWST r w s m) | |
listens :: MonadWriter w m => (w -> b) -> m a -> m (a, b) Source
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.
censor :: MonadWriter w m => (w -> w) -> m a -> m a Source
censor f m
is an action that executes the action m
and applies the function f
to its output, leaving the return value unchanged.
© The University of Glasgow and others
Licensed under a BSD-style license (see top of the page).
https://downloads.haskell.org/~ghc/8.8.3/docs/html/libraries/mtl-2.2.2/Control-Monad-Writer-Class.html