`sig
type 'a t
val next : 'a Iter.t -> 'a option
val next_exn : 'a Iter.t -> 'a
val progress : 'a Iter.t -> float option
val progress_string : float option -> string
val i : 'a Iter.t -> f:('a -> unit) -> unit
val concat : 'a Iter.t list -> 'a Iter.t
val reduce : 'a Iter.t -> init:'i -> f:('i -> 'a -> 'i) -> 'i
val map : 'a Iter.t -> f:('a -> 'b) -> 'b Iter.t
val fold : 'a Iter.t -> init:'i -> f:('i -> 'a -> 'i) -> 'i
val unfold : init:'i -> f:('i -> 'a * 'i) -> stop:'i -> 'a Iter.t
val find : 'a Iter.t -> f:('a -> bool) -> 'a
val filter : 'a Iter.t -> f:('a -> bool) -> 'a Iter.t
val for_all : 'a Iter.t -> f:('a -> bool) -> bool
val exists : 'a Iter.t -> f:('a -> bool) -> bool
val t :
?progress:(unit -> float option) -> (unit -> 'a option) -> 'a Iter.t
val empty : 'a Iter.t
val of_opt : 'a option -> 'a Iter.t
val of_list : 'a list -> 'a Iter.t
val to_list : 'a Iter.t -> f:('a -> 'b) -> 'b list
val to_list_opt : 'a Iter.t -> f:('a -> 'b option) -> 'b list
val of_array : 'a array -> 'a Iter.t
val to_array : 'a Iter.t -> f:('a -> 'b) -> 'b array
val to_array_opt : 'a Iter.t -> f:('a -> 'b option) -> 'b array
val channel_progress :
?total:int64 -> Pervasives.in_channel -> unit -> float option
val of_channel :
?total:int64 ->
Pervasives.in_channel -> f:(Pervasives.in_channel -> 'a) -> 'a Iter.t
val channel :
Pervasives.in_channel -> f:(Pervasives.in_channel -> unit) -> unit
end`