Make.T
val fold : 'a t -> init:'acc -> f:('acc -> 'a -> 'acc) -> 'acc
val iter : [ `Define_using_fold | `Custom of 'a t -> f:('a -> 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 -> _) -> _ ]