Travesty_containers.Zipper_types
module type S_non_monadic = sig ... end
S_non_monadic
contains the core operations of a zipper, without any parametrisation over a particular failure monad.
module type S_monadic = sig ... end
S_monadic
contains the core operations of a zipper, parametrised over a particular failure monad.
module type S = sig ... end
S
contains S_non_monadic
; a functor for generating S_monadic
over a custom monad; and specialisations of it over common monads.
type ('mark, 'a, 'acc, 'final) fold_outcome = [
|
`Stop of 'final
Stop folding, immediately return
*)|
`Drop of 'acc
Drop the cursor and continue
*)|
`Swap of 'a * 'acc
Replace cursor with a new value
*)|
`Mark of 'mark * 'a * 'acc
Replace, and mark, the cursor
*) ]
The type of instructions returned by functions used with fold_until_m
and fold_until
.
module type S_marked_non_monadic = sig ... end
S_marked_non_monadic
extends S_non_monadic
to add functions for manipulating marks.
module type S_marked_monadic = sig ... end
S_marked_monadic
extends S_monadic
to add functions for manipulating marks.
module type S_marked = sig ... end
S_marked
extends S
to add functions for manipulating marks.
module type Basic_mark = sig ... end
Basic_mark
is the interface that mark types must implement.