**Packages**- transformers
- mtl
- package

transformers Control.Monad.Trans.Writer.Lazy, transformers Control.Monad.Trans.Writer.Strict, mtl Control.Monad.Writer.Lazy, mtl Control.Monad.Writer.Strict

A writer monad parameterized by the type w of output to accumulate.
The return function produces the output mempty, while >>= combines the outputs of the subcomputations using mappend.

transformers Control.Monad.Trans.Writer.Lazy, transformers Control.Monad.Trans.Writer.Strict, mtl Control.Monad.Writer.Lazy, mtl Control.Monad.Writer.Strict

transformers Control.Monad.Trans.Writer.Lazy, transformers Control.Monad.Trans.Writer.Strict, mtl Control.Monad.Writer.Lazy, mtl Control.Monad.Writer.Strict

Extract the output from a writer computation.
* m = liftM snd
> (runWriterT

Map both the return value and output of a computation using the given function.
* (mapWriter f m) = f (runWriter
>

Map both the return value and output of a computation using the given function.
* (mapWriterT f m) = f
> (runWriterT

Unwrap a writer computation as a (result, output) pair. (The inverse of writer.)

This is a version of the RWS monad transformers that should be much faster than what's found in transformers. The writer in the strict version does not leak memory.
Version 0.2.0

It can scarcely be denied that the supreme goal of all theory is to make the irreducible basic elements as simple and as few as possible without having to surrender the adequate representation of a single datum of experience. Albert Einstein
Check out more examples in test/Main.hs and look at the results with --enable-tests.
Version 0.1.1.1

A way to write XML and HTML with more efficient syntax.
Version 0.0.0.1