Module IStdlib.IContainer

module F = Stdlib.Format

Extension of Base.Container, i.e. generic definitions of container operations in terms of a fold function.

type 'a singleton_or_more =
  1. | Empty
  2. | Singleton of 'a
  3. | More
val singleton_or_more : fold:('t, 'a, 'a singleton_or_more) IStdlib.IStd.Container.fold -> 't -> 'a singleton_or_more
val mem_nth : fold:('t, _, int) IStdlib.IStd.Container.fold -> 't -> int -> bool
val forto : (int, int, 'accum) IStdlib.IStd.Container.fold
val forto_right : (int, int, 'accum) IStdlib.IStd.Container.fold
val to_rev_list : fold:('t, 'a, 'a list) IStdlib.IStd.Container.fold -> 't -> 'a list
val rev_filter_to_list : fold:('t, 'a, 'a list) IStdlib.IStd.Container.fold -> 't -> f:('a -> bool) -> 'a list
val rev_map_to_list : fold:('t, 'a, 'b list) IStdlib.IStd.Container.fold -> 't -> f:('a -> 'b) -> 'b list
val rev_filter_map_to_list : fold:('t, 'a, 'b list) IStdlib.IStd.Container.fold -> 't -> f:('a -> 'b option) -> 'b list
val iter_consecutive : fold:('t, 'a, 'a option) IStdlib.IStd.Container.fold -> 't -> f:('a -> 'a -> unit) -> unit
val pp_collection : ?hov:bool -> fold:('t, 'a, 'a option) IStdlib.IStd.Container.fold -> pp_item:(F.formatter -> 'a -> unit) -> F.formatter -> 't -> unit
val filter : fold:('t, 'a, 'accum) IStdlib.IStd.Container.fold -> filter:('a -> bool) -> ('t, 'a, 'accum) IStdlib.IStd.Container.fold
val map : f:('a -> 'b) -> ('t, 'a, 'accum) IStdlib.IStd.Container.fold -> ('t, 'b, 'accum) IStdlib.IStd.Container.fold
val fold_of_pervasives_set_fold : (('elt -> 'accum -> 'accum) -> 't -> 'accum -> 'accum) -> ('t, 'elt, 'accum) IStdlib.IStd.Container.fold
val fold_of_pervasives_map_fold : (('key -> 'value -> 'accum -> 'accum) -> 't -> 'accum -> 'accum) -> ('t, 'key * 'value, 'accum) IStdlib.IStd.Container.fold
val iter_result : fold:('t, 'a, unit) IStdlib.IStd.Container.fold -> 't -> f:('a -> (unit, 'err) IStd.result) -> (unit, 'err) IStd.result
val fold_result_until : fold:('t, 'a, 'accum) IStdlib.IStd.Container.fold -> init:'accum -> f: ('accum -> 'a -> (('accum, 'err) IStdlib.IStd.Result.t, 'final) IStdlib.IStd.Continue_or_stop.t) -> finish:('accum -> 'final) -> 't -> ('final, 'err) IStdlib.IStd.Result.t