Cont package:transformers
Continuation monads.
Delimited continuation operators are taken from Kenichi Asai and Oleg
Kiselyov's tutorial at CW 2011, "Introduction to programming with
shift and reset"
(
http://okmij.org/ftp/continuations/#tutorial).
The continuation monad, which is non-strict. Cont r a is a
CPS ("continuation-passing style") computation that produces an
intermediate result of type a within a CPS computation whose
final result type is r.
The return function simply creates a continuation which
passes the value on.
The >>= operator adds the bound function into the
continuation chain.
Construct a continuation-passing computation from a function. (The
inverse of
runCont)
The continuation monad transformer. Can be used to add continuation
handling to any type constructor: the
Monad instance and most
of the operations do not require
m to be a monad.
ContT is not a functor on the category of monads, and many
operations cannot be lifted through it.
ContT r m is strict if and only if
m is.
The result of running a CPS computation with the identity as the final
continuation.
The result of running a CPS computation with
return as the
final continuation.
Apply a function to transform the result of a continuation-passing
computation.
Apply a function to transform the result of a continuation-passing
computation. This has a more restricted type than the
map
operations for other monad transformers, because
ContT does not
define a functor in the category of monads.
The result of running a CPS computation with a given final
continuation. (The inverse of
cont)
Apply a function to transform the continuation passed to a CPS
computation.
Apply a function to transform the continuation passed to a CPS
computation.
Convert a selection computation to a continuation-passing computation.