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.