2.1 release candidate
[packages/mtl.git] / Control / Monad / Writer / Strict.hs
1 -----------------------------------------------------------------------------
2 -- |
3 -- Module : Control.Monad.Writer.Strict
4 -- Copyright : (c) Andy Gill 2001,
5 -- (c) Oregon Graduate Institute of Science and Technology, 2001
6 -- License : BSD-style (see the file LICENSE)
7 --
8 -- Maintainer : libraries@haskell.org
9 -- Stability : experimental
10 -- Portability : non-portable (multi-param classes, functional dependencies)
11 --
12 -- Strict writer monads.
13 --
14 -- Inspired by the paper
15 -- /Functional Programming with Overloading and Higher-Order Polymorphism/,
16 -- Mark P Jones (<http://web.cecs.pdx.edu/~mpj/pubs/springschool.html>)
17 -- Advanced School of Functional Programming, 1995.
18 -----------------------------------------------------------------------------
19
20 module Control.Monad.Writer.Strict (
21 -- * MonadWriter class
22 MonadWriter(..),
23 listens,
24 censor,
25 -- * The Writer monad
26 Writer,
27 runWriter,
28 execWriter,
29 mapWriter,
30 -- * The WriterT monad transformer
31 WriterT(..),
32 execWriterT,
33 mapWriterT,
34 module Control.Monad,
35 module Control.Monad.Fix,
36 module Control.Monad.Trans,
37 module Data.Monoid,
38 ) where
39
40 import Control.Monad.Writer.Class
41
42 import Control.Monad.Trans
43 import Control.Monad.Trans.Writer.Strict (
44 Writer, runWriter, execWriter, mapWriter,
45 WriterT(..), execWriterT, mapWriterT)
46
47 import Control.Monad
48 import Control.Monad.Fix
49 import Data.Monoid