base

Full standard library replacement for OCaml
IN THIS PACKAGE
module type Generic = sig ... end
module type S0 = sig ... end
module type S1 = sig ... end

Generic definitions of foldi and iteri in terms of fold.

E.g., iteri ~fold t ~f = ignore (fold t ~init:0 ~f:(fun i x -> f i x; i + 1)).

val foldi : fold:( 't -> init:'accum -> f:( 'accum -> 'a -> 'accum ) -> 'accum ) -> 't -> init:'accum -> f:( int -> 'accum -> 'a -> 'accum ) -> 'accum
val iteri : fold:( 't -> init:int -> f:( int -> 'a -> int ) -> int ) -> 't -> f:( int -> 'a -> unit ) -> unit

Generic definitions of indexed container operations in terms of foldi.

val counti : foldi:( 't -> init:int -> f:( int -> int -> 'a -> int ) -> int ) -> 't -> f:( int -> 'a -> bool ) -> int

Generic definitions of indexed container operations in terms of iteri.

val existsi : iteri:( 't -> f:( int -> 'a -> unit ) -> unit ) -> 't -> f:( int -> 'a -> bool ) -> bool
val for_alli : iteri:( 't -> f:( int -> 'a -> unit ) -> unit ) -> 't -> f:( int -> 'a -> bool ) -> bool
val findi : iteri:( 't -> f:( int -> 'a -> unit ) -> unit ) -> 't -> f:( int -> 'a -> bool ) -> (int * 'a) option
val find_mapi : iteri:( 't -> f:( int -> 'a -> unit ) -> unit ) -> 't -> f:( int -> 'a -> 'b option ) -> 'b option
module Make (T : sig ... end) : S1 with type 'a t := 'a T.t
module Make0 (T : sig ... end) : S0 with type t := T.t and type elt := T.Elt.t
module Make_gen (T : sig ... end) : Generic with type 'a t := 'a T.t and type 'a elt := 'a T.elt