| Safe Haskell | None | 
|---|
Algebra.Monad.Writer
- class (Monad m, Monoid w) => MonadWriter w m | m -> w where
 - mute :: (MonadWriter w m, Monoid w) => m a -> m a
 - intercept :: (MonadWriter w m, Monoid w) => m a -> m (w, a)
 - intercept' :: (MonadWriter w m, Monoid w) => m a -> m w
 - eavesdrop :: (MonadWriter w m, Monoid w) => m a -> m w
 - data WriterT w m a
 - type Writer w a = WriterT w Id a
 - writerT :: (Functor m, Functor m') => Iso (WriterT w m a) (WriterT w' m' b) (m (w, a)) (m' (w', b))
 - writer :: Iso (Writer w a) (Writer w' b) (w, a) (w', b)
 - pureWriter :: Monoid w => Iso (w, a) (w', b) a b
 - class (SubSemi acc w, MonadWriter w m) => MonadWriterAcc w acc m  where
- getAcc :: m acc
 
 - data WriterAccT w acc m a
 - type WriterAcc w acc a = WriterAccT w acc Id a
 - writerAccT :: (SubSemi acc w, SubSemi acc' w', Monoid acc, Monoid acc', Functor m) => Iso (WriterAccT w acc m a) (WriterAccT w' acc' m' a') (m (a, acc, w)) (m' (a', acc', w'))
 - writerAcc :: (SubSemi acc w, SubSemi acc' w', Monoid acc, Monoid acc', Functor m) => Iso (WriterAcc w acc a) (WriterAcc w' acc' a') (a, acc, w) (a', acc', w')
 
The Writer monad
class (Monad m, Monoid w) => MonadWriter w m | m -> w whereSource
Instances
| Monoid w => MonadWriter w ((,) w) | |
| MonadWriter w m => MonadWriter w (ListT m) | |
| MonadWriter w m => MonadWriter w (StateT s m) | |
| MonadWriter w m => MonadWriter w (ReaderT r m) | |
| (Monoid w, Monad m) => MonadWriter w (WriterT w m) | |
| (Monad m, SubSemi acc w, Monoid w) => MonadWriter w (WriterAccT w acc m) | |
| (Monad m, Monoid w) => MonadWriter w (RWST r w s m) | |
| (Ring t, Monad m) => MonadWriter (Product t) (ProbT t m) | 
mute :: (MonadWriter w m, Monoid w) => m a -> m aSource
intercept :: (MonadWriter w m, Monoid w) => m a -> m (w, a)Source
intercept' :: (MonadWriter w m, Monoid w) => m a -> m wSource
eavesdrop :: (MonadWriter w m, Monoid w) => m a -> m wSource
The Writer transformer
A simple Writer monad
Instances
| (Monad m, Monoid w, MonadFuture n m) => MonadFuture n (WriterT w m) | |
| (Monoid w, Monad m) => MonadWriter w (WriterT w m) | |
| (Monoid w, MonadReader r m) => MonadReader r (WriterT w m) | |
| (Monoid w, MonadState r m) => MonadState r (WriterT w m) | |
| Monoid w => MonadTrans (WriterT w) | |
| Monoid w => MonadInternal (WriterT w) | |
| (Unit m, Monoid w) => Unit (WriterT w m) | |
| (Monoid w, MonadCont m) => MonadCont (WriterT w m) | |
| (Monoid w, MonadList m) => MonadList (WriterT w m) | |
| (Monoid w, MonadFix m) => MonadFix (WriterT w m) | |
| Traversable m => Traversable (WriterT w m) | |
| Foldable m => Foldable (WriterT w m) | |
| (Monoid w, Monad m) => Monad (WriterT w m) | |
| (Monoid w, Monad m) => Applicative (WriterT w m) | |
| Functor m => Functor (WriterT w m) | |
| Ring (m (a, Void, w)) => Ring (WriterT w m a) | |
| Semiring (m (a, Void, w)) => Semiring (WriterT w m a) | |
| Monoid (m (a, Void, w)) => Monoid (WriterT w m a) | |
| Semigroup (m (a, Void, w)) => Semigroup (WriterT w m a) | 
writerT :: (Functor m, Functor m') => Iso (WriterT w m a) (WriterT w' m' b) (m (w, a)) (m' (w', b))Source
pureWriter :: Monoid w => Iso (w, a) (w', b) a bSource
Keeping track of where we are
class (SubSemi acc w, MonadWriter w m) => MonadWriterAcc w acc m whereSource
Instances
| MonadWriterAcc w acc m => MonadWriterAcc w acc (StateT s m) | |
| MonadWriterAcc w acc m => MonadWriterAcc w acc (ReaderT r m) | |
| (Monad m, Monoid w, SubSemi acc w) => MonadWriterAcc w acc (WriterAccT w acc m) | 
Implementation
data WriterAccT w acc m a Source
The canonical representation of a WriterAcc Monad
Instances
| (Monad m, Monoid w, SubSemi acc w) => MonadWriterAcc w acc (WriterAccT w acc m) | |
| (Monad m, Monoid w, MonadFuture n m) => MonadFuture n (WriterAccT w acc m) | |
| (Monad m, SubSemi acc w, Monoid w) => MonadWriter w (WriterAccT w acc m) | |
| (MonadState s m, Monoid w, SubSemi acc w) => MonadState s (WriterAccT w acc m) | |
| Monoid w => MonadTrans (WriterAccT w acc) | |
| (Unit m, Monoid w) => Unit (WriterAccT w acc m) | |
| (Monoid w, MonadFix m) => MonadFix (WriterAccT w acc m) | |
| (Monoid w, Monad m) => Monad (WriterAccT w acc m) | |
| (Monoid w, Monad m) => Applicative (WriterAccT w acc m) | |
| Functor m => Functor (WriterAccT w acc m) | 
type WriterAcc w acc a = WriterAccT w acc Id aSource
writerAccT :: (SubSemi acc w, SubSemi acc' w', Monoid acc, Monoid acc', Functor m) => Iso (WriterAccT w acc m a) (WriterAccT w' acc' m' a') (m (a, acc, w)) (m' (a', acc', w'))Source