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.
Articles by others on the same topic
There are currently no matching articles.