A monad transformers for multi-prompt delimited control.
This library implements the superset of the interface described in * A Monadic Framework for Delimited Continuations, R. Kent Dybvig, Simon Peyton Jones, and Amr Sabry JFP, v17, N6, pp. 687--730, 2007. http://www.cs.indiana.edu/cgi-bin/techreports/TRNNN.cgi?trnum=TR615
This library is the most direct implementation of the bubble-up reduction semantics of multi-prompt delimited control. The library stands out in not being based on the continuation monad. Rather, the monad of Control.Monad.CC.CCExc
is an extension of the Error
monad: a monad for restartable exceptions. The library offers not one monad transformer but a family (CC
p
) parameterized by the prompt flavor p
. The library defines several prompt flavors; the users are welcome to define their own.
See the original article at http://okmij.org/ftp/continuations/implementations.html#CC-monads for more information.
This package split multi-prompt delimited control from http://hackage.haskell.org/package/liboleg for usability.