Binary.CreateUse module M = Create(B) to create a module that implements all the conventional interfaces of a monad.
Module inclusions from Cf_monad_core and Cf_seqmonad.
include Core.Binary.Profile with type ('m, 'r) t := ('m, 'r) B.tval return : 'r -> ('m, 'r) B.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.
module Infix : Cf_monad_core.Binary.Infix with type ('m, 'r) t := ('m, 'r) B.tOpen Infix to include the infix monad operators.
include Cf_seqmonad.Functor.Binary with type ('m, 'r) t := ('m, 'r) B.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.