A monad transformers for multi-prompt delimited control using refercence cells.
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 closest to the interface of Dybvig, Peyton Jones and Sabry. Control.Monad.CC.CCRef
is derived from the definitional interpreter using the implementation techniques described and justified in the FLOPS 2010 paper. The monad transformer CC
implemented by Control.Monad.CC.CCRef
requires the base monad to support reference cells. In other words, the base monad must be a member of the type class MonadRef
: that is, must be IO
, ST
, STM
or their transformer. Control.Monad.CC.CCRef
adds to the original interface the frequently used function abortP
as a primitive.
See the original article at http://okmij.org/ftp/continuations/implementations.html#CC-monads for more information.
This package uses http://hackage.haskell.org/package/ref-tf's MonadRef
class instead of Mutation
class what is used in http://hackage.haskell.org/package/CC-delcont-ref package.