Copyright |
(c) Andy Gill 2001
(c) Oregon Graduate Institute of Science and Technology 2001 |
---|---|
License | BSD-style (see the file LICENSE) |
Maintainer | libraries@haskell.org |
Stability | experimental |
Portability | portable |
Safe Haskell | Safe |
Language | Haskell2010 |
Classes for monad transformers.
A monad transformer makes new monad out of an existing monad, such
that computations of the old monad may be embedded in the new one.
To construct a monad with a desired set of features, one typically
starts with a base monad, such as
Identity
,
[]
or
IO
, and
applies a sequence of monad transformers.
Most monad transformer modules include the special case of applying the
transformer to
Identity
. For example,
State s
is an abbreviation
for
StateT s Identity
.
Each monad transformer also comes with an operation
run
XXX
to
unwrap the transformer, exposing a computation of the inner monad.