package orsetto
Install
Dune Dependency
Authors
Maintainers
Sources
sha256=151ca6df499bd3de7aa89a4e1627411fbee24c4dea6e0e71ce21f06f181ee654
md5=00393728b481c2bf15919a8202732335
doc/orsetto.cf/Cf_cmonad/index.html
Module Cf_cmonad
The continuation monad and its operators.
Overview
A continuation monad represents a computation composed of stages that can be interrupted, resumed and rescheduled. Because Objective Caml is an eager language programming in the continuation-passing style (CPS) can be simplified by the use of the continuation monad and its operators.
Types
The continuation monad: a function for passing intermediate results from continuation context to continuation context.
module Basis : Cf_monad.Binary.Basis with type ('x, 'a) t := ('x, 'a) t
include Cf_monad.Binary.Profile with type ('x, 'a) t := ('x, 'a) t
Module inclusions from Cf_monad_core
and Cf_seqmonad
.
include Cf_monad.Core.Binary.Profile with type ('m, 'r) t := ('m, 'r) t
val return : 'r -> ('m, 'r) t
Use return a
to apply the binding to a
.
Use bind m f
to bind f
to the value returned by m
.
Use map m f
to return the result of applying f
to the value returned by m
.
module Infix : Cf_monad_core.Binary.Infix with type ('m, 'r) t := ('m, 'r) t
Open Infix
to include the infix monad operators.
include Cf_seqmonad.Functor.Binary with type ('m, 'r) t := ('m, 'r) t
Use collect s
to bind in sequence every monad value in the finite sequence s
and collect all the returned values. Returns (n, s)
where n
is the number of values collected and s
is the list of values in reverse order, i.e. from last collected to first collected. Never returns and exhausts all memory if s
never terminates.
val nil : ('x, unit) t
A monad that returns unit
and performs no operation.
val init : 'x -> ('x, 'a) t
Use init x
to discard the current context and pass x
into the continuation.
val cont : ('x -> 'x) -> ('x, unit) t
Use cont f
to apply f
to the current context and pass the result into the continuation.
val eval : ('x, unit) t -> 'x -> 'x
Use eval m
to evaluate the continuation monad, which produces a function from an initial context to a final context.