| Copyright | (c) Andy Gill 2001 (c) Oregon Graduate Institute of Science and Technology 2001 |
|---|---|
| License | BSD-style (see the file LICENSE) |
| Maintainer | libraries@haskell.org |
| Stability | experimental |
| Portability | non-portable (multi-param classes, functional dependencies) |
| Safe Haskell | Safe |
| Language | Haskell98 |
Control.Monad.Writer.Class
Description
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
- listens :: MonadWriter w m => (w -> b) -> m a -> m (a, b)
- censor :: MonadWriter w m => (w -> w) -> m a -> m a
Documentation
class (Monoid w, Monad m) => MonadWriter w m | m -> w where #
Methods
embeds a simple writer action.writer (a,w)
is an action that produces the output tell ww.
is an action that executes the action listen mm and adds
its output to the value of the computation.
pass :: m (a, w -> w) -> m a #
is an action that executes the action pass mm, which
returns a value and a function, and returns the value, applying
the function to the output.
Instances
| MonadWriter w m => MonadWriter w (MaybeT m) # | |
| MonadWriter w m => MonadWriter w (StateT s m) # | |
| MonadWriter w m => MonadWriter w (StateT s m) # | |
| MonadWriter w m => MonadWriter w (IdentityT * m) # | |
| MonadWriter w m => MonadWriter w (ExceptT e m) # | |
| (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) # | |
| MonadWriter w m => MonadWriter w (ReaderT * r 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) #