Module Fold_lib.Fold

type ('a, 's) fold = init:'s -> f:( 's -> 'a -> 's ) -> 's
type 'a t = {
fold : 's. ( 'a, 's ) fold;
}
val concat : 'a t t -> 'a0 t
val concat_map : 'a t -> f:( 'a0 -> 'b t ) -> 'b0 t
val init : Core_kernel__Int.t -> f:( Core_kernel__Int.t -> 'a ) -> 'b t
val (>>=) : 'a t -> ( 'a0 -> 'b t ) -> 'b0 t
val (>>|) : 'a t -> ( 'a0 -> 'b ) -> 'b0 t
module Monad_infix : sig ... end
val bind : 'a t -> f:( 'a0 -> 'b t ) -> 'b0 t
val return : 'a -> 'a0 t
val map : 'a t -> f:( 'a0 -> 'b ) -> 'b0 t
val join : 'a t t -> 'a0 t
val ignore_m : 'a t -> unit t
val all : 'a t list -> 'a0 list t
val all_unit : unit t list -> unit t
module Let_syntax : sig ... end
val to_list : 'a t -> 'a0 list
val of_list : 'a list -> 'a0 t
val of_array : 'a array -> 'a0 t
val sexp_of_t : ( 'a -> Sexplib0__.Sexp.t ) -> 'b t -> Sexplib0__.Sexp.t
val compose : 'a t -> 'a0 t -> 'a1 t
val (+>) : 'a t -> 'a t -> 'a t
val group3 : default:'a -> 'a0 t -> ('a1 * 'a1 * 'a1) t
val string_bits : string -> bool t
val bool_t_to_string : bool t -> string
val string_triples : string -> (bool * bool * bool) t