WriterT +transformers

WriterT :: m (a, w) -> WriterT w m a
transformers Control.Monad.Trans.Writer.Lazy, transformers Control.Monad.Trans.Writer.Strict
newtype WriterT w m a
transformers Control.Monad.Trans.Writer.Lazy, transformers Control.Monad.Trans.Writer.Strict
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.
execWriterT :: Monad m => WriterT w m a -> m w
transformers Control.Monad.Trans.Writer.Lazy, transformers Control.Monad.Trans.Writer.Strict
Extract the output from a writer computation. *  m = liftM snd > (runWriterT  
mapWriterT :: (m (a, w) -> n (b, w')) -> WriterT w m a -> WriterT w' n b
transformers Control.Monad.Trans.Writer.Lazy, transformers Control.Monad.Trans.Writer.Strict
Map both the return value and output of a computation using the given function. *  (mapWriterT f m) = f > (runWriterT  
runWriterT :: WriterT w m a -> m (a, w)
transformers Control.Monad.Trans.Writer.Lazy, transformers Control.Monad.Trans.Writer.Strict