A monad transformers for multi-prompt delimited control.
Oleg Kiselyov's three new monad transformers for multi-prompt delimited control (released with his permission)
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's Control.Monad.CC.CCCxe
is derived as a CPS version of http://hackage.haskell.org/package/CC-delcont-exc's Control.Monad.CC.CCExc. Control.Monad.CC.CCCxe
is sometimes more efficient; it is always less perspicuous. Both libraries provide the identical interface and are interchangeable. It seems that CC-delcont-exc's Control.Monad.CC.CCExc is faster at delimited control but imposes more overhead on the conventional code; Control.Monad.CC.CCCxe
is dual. It pays to use Control.Monad.CC.CCCxe
in code with long stretches of determinism punctuated by fits and restarts.
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.