Documentation

Classes

Yields an action that returns the same results as the given
| action but whose effects are only executed once. Especially,
| when the resulting action is duplicated it returns the same
| result at every occurrence.

Interface to transform nested monadic data types. The provided
| function trans is supposed to map the given function on every
| monadic argument. The result of trans may be of the same type
| as the argument but can also be of a different type, e.g. to
| convert a value with nested monadic arguments to a corresponding
| value without.

We provide instances of the Trans class for some predefined
Haskell types. For flat types the function trans just returns its
argument which has no arguments to which the given function could
be applied.

Evaluation

Lifts all monadic effects in nested monadic values to the top
| level. If m is a monad for non-determinism and the argument a
| data structure with nested non-determinism then the result
| corresponds to the normal form of the argument.