| Safe Haskell | Safe-Inferred |
|---|
Control.Proxy.Trans.Writer
Contents
Description
This module provides the proxy transformer equivalent of WriterT.
This module is even stricter than Control.Monad.Trans.Writer.Strict by
being strict in the accumulated monoid.
The underlying implementation uses the state monad to avoid quadratic blowup from left-associative binds.
- data WriterP w p a' a b' b m r
- writer :: (Monad m, Proxy p, Monoid w) => (r, w) -> WriterP w p a' a b' b m r
- writerT :: (Monad m, Proxy p, Monoid w) => m (r, w) -> WriterP w p a' a b' b m r
- writerP :: (Monad m, Proxy p, Monoid w) => p a' a b' b m (r, w) -> WriterP w p a' a b' b m r
- runWriterP :: (Monad m, Proxy p, Monoid w) => WriterP w p a' a b' b m r -> p a' a b' b m (r, w)
- runWriterK :: (Monad m, Proxy p, Monoid w) => (q -> WriterP w p a' a b' b m r) -> q -> p a' a b' b m (r, w)
- execWriterP :: (Monad m, Proxy p, Monoid w) => WriterP w p a' a b' b m r -> p a' a b' b m w
- execWriterK :: (Monad m, Proxy p, Monoid w) => (q -> WriterP w p a' a b' b m r) -> q -> p a' a b' b m w
- tell :: (Monad m, Proxy p, Monoid w) => w -> WriterP w p a' a b' b m ()
- censor :: (Monad m, Proxy p, Monoid w) => (w -> w) -> WriterP w p a' a b' b m r -> WriterP w p a' a b' b m r
WriterP
data WriterP w p a' a b' b m r Source
The strict Writer proxy transformer
Instances
| ProxyTrans (WriterP w) | |
| PFunctor (WriterP w) | |
| MonadPlusP p => MonadPlusP (WriterP w p) | |
| Proxy p => ProxyInternal (WriterP w p) | |
| Proxy p => Proxy (WriterP w p) | |
| Proxy p => MFunctor (WriterP w p a' a b' b) | |
| Proxy p => MonadTrans (WriterP w p a' a b' b) | |
| (Monad m, Proxy p) => Monad (WriterP w p a' a b' b m) | |
| (Monad m, Proxy p) => Functor (WriterP w p a' a b' b m) | |
| (Monad m, MonadPlusP p) => MonadPlus (WriterP w p a' a b' b m) | |
| (Monad m, Proxy p) => Applicative (WriterP w p a' a b' b m) | |
| (Monad m, MonadPlusP p) => Alternative (WriterP w p a' a b' b m) | |
| (MonadIO m, Proxy p) => MonadIO (WriterP w p a' a b' b m) |
writer :: (Monad m, Proxy p, Monoid w) => (r, w) -> WriterP w p a' a b' b m rSource
Convert a Writer to a WriterP
writerT :: (Monad m, Proxy p, Monoid w) => m (r, w) -> WriterP w p a' a b' b m rSource
Convert a WriterT to a WriterP
writerP :: (Monad m, Proxy p, Monoid w) => p a' a b' b m (r, w) -> WriterP w p a' a b' b m rSource
Create a WriterP from a proxy that generates a result and a monoid
runWriterP :: (Monad m, Proxy p, Monoid w) => WriterP w p a' a b' b m r -> p a' a b' b m (r, w)Source
Run a WriterP computation, producing the final result and monoid
runWriterK :: (Monad m, Proxy p, Monoid w) => (q -> WriterP w p a' a b' b m r) -> q -> p a' a b' b m (r, w)Source
Run a WriterP 'K'leisli arrow, producing the final result and monoid
execWriterP :: (Monad m, Proxy p, Monoid w) => WriterP w p a' a b' b m r -> p a' a b' b m wSource
Evaluate a WriterP computation, but discard the final result
execWriterK :: (Monad m, Proxy p, Monoid w) => (q -> WriterP w p a' a b' b m r) -> q -> p a' a b' b m wSource
Evaluate a WriterP 'K'leisli arrow, but discard the final result