A type constructor with operations and satisfying the monad laws. The first embeds a value; the second sequences a computation with a value-dependent continuation. This is the programming interface to a monad.
A computational monad for continuation-passing style. Result invokes the supplied continuation immediately; sequencing replaces it with a continuation that runs the next computation.
The computational monad whose result is the identity function and whose sequencing is ordinary application. It adds no effects and provides a starting point for a stack of monad transformers.
A computation represented by a function from an initial program state to a result and a final program state. Its sequencing passes each output program state to the next computation.
A construction taking a computational monad to another computational monad , normally with a lift from to . The order of monad transformers can affect which information survives an exception or a control transfer.
A continuation monad whose final answer is computed in a base computational monad. The answer type is fixed throughout a computation.
An unlabelled exception can be represented by an algebraic data type with successful and failed alternatives, sequenced inside a base computational monad. Sequencing skips the next computation after failure; a handler runs an alternative computation. The base effects already performed need not be undone.
A state monad layered over a base computational monad. An unsuccessful base computation may return no final program state; this matters when combining it with an exception monad transformer.
The left and right identity laws and the associativity law for a computational monad. They justify regrouping sequencing while preserving the order and multiplicity of effects.

Discussion (0) New discussion

There are no discussions about this article yet.

Articles by others on the same topic (0)

There are currently no matching articles.