Make.1-Tval fold : 'a t -> init:'accum -> f:('accum -> 'a Monad.Ident.t -> 'accum) -> 'accumval iter : [ `Define_using_fold | `Custom of 'a t -> f:('a Monad.Ident.t -> unit) -> unit ]The iter argument to Container.Make specifies how to implement the container's iter function. `Define_using_fold means to define iter via:
iter t ~f = Container.iter ~fold t ~f`Custom overrides the default implementation, presumably with something more efficient. Several other functions returned by Container.Make are defined in terms of iter, so passing in a more efficient iter will improve their efficiency as well.
val length : [ `Define_using_fold | `Custom of 'a t -> int ]The length argument to Container.Make specifies how to implement the container's length function. `Define_using_fold means to define length via:
length t ~f = Container.length ~fold t ~f`Custom overrides the default implementation, presumably with something more efficient. Several other functions returned by Container.Make are defined in terms of length, so passing in a more efficient length will improve their efficiency as well.
val iteri : [ `Define_using_fold | `Custom of 'a t -> f:(int -> 'a -> unit) -> unit ]val foldi : [ `Define_using_fold | `Custom of 'a t -> init:_ -> f:(int -> _ -> 'a -> _) ->
_ ]