Iterators
Compatible with the library "sequence". An iterator i is simply a function that accepts another function f (of type 'a -> unit) and calls f on a sequence of elements f x1; f x2; ...; f xn.
type 'a t = ( 'a -> unit ) -> unitval (<*>) : ( 'a -> 'b ) t -> 'a t -> 'b tval (>>=) : 'a t -> ( 'a -> 'b t ) -> 'b tval map : ( 'a -> 'b ) -> 'a t -> 'b tval map2 : ( 'a -> 'b -> 'c ) -> 'a t -> 'b t -> 'c tval (>|=) : 'a t -> ( 'a -> 'b ) -> 'b tval append : 'a t -> 'a t -> 'a tval (<+>) : 'a t -> 'a t -> 'a tval of_list : 'a list -> 'a tval of_array : 'a array -> 'a tval pair : 'a t -> 'b t -> ('a * 'b) tval triple : 'a t -> 'b t -> 'c t -> ('a * 'b * 'c) tval quad : 'a t -> 'b t -> 'c t -> 'd t -> ('a * 'b * 'c * 'd) tval find : ( 'a -> bool ) -> 'a t -> 'a optionval filter : ( 'a -> bool ) -> 'a t -> 'a tval append_l : 'a t list -> 'a tval flatten : 'a t t -> 'a tval let+ : 'a t -> ( 'a -> 'b ) -> 'b tval and+ : 'a t -> 'b t -> ('a * 'b) tval let* : 'a t -> ( 'a -> 'b t ) -> 'b tval and* : 'a t -> 'b t -> ('a * 'b) t