Up

Module type Make_arg = Make_gen_arg with type 'a elt := 'a Monad.Ident.t

Signature

type 'a t
type 'a elt
val fold : 'a t -> init:'accum -> f:('accum -> 'a elt -> 'accum) -> 'accum
val iter : [
| `Define_using_fold
| `Custom of 'a t -> f:('a elt -> unit) -> unit
]

The iter argument to Container.Make says 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.