Cf_seqmonadMonad functions for functional progressive sequences.
This module augments the core monad interfaces with functions that facilitate monad functions that operate on sequences of monad values. It also provides a distinguished monad that encapsulates a sequence.
module Functor : sig ... endModule inclusions
module Basis : Cf_monad_core.Binary.Basis with type ('m, 'r) t := ('m, 'r) tinclude Cf_monad_core.Binary.Profile with type ('m, 'r) t := ('m, 'r) tval return : 'r -> ('m, 'r) tUse 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.
Use product a b to return the monoidal product of a and b.
module Affix : Cf_monad_core.Binary.Affix with type ('m, 'r) t := ('m, 'r) tOpen Affix to include the affix monad operators.
Use disregard m to ignore the value returned by m and apply the unit value to the bound function.
module Infix = AffixDeprecated module alias.
include Functor.Binary with type ('m, 'r) t := ('m, 'r) tUse 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 one : 'm -> ('m, unit) tUse one v to produce the value v in the encapsulated sequence.
Use all s to produce each value consumed from s in the encapsulated sequence.