module MoreStream:Utilities for streams.sig..end
This module provides the necessary functions for applying data structure
comprehension to streams.
type'aflow ='a Stream.t
val to_lazylist : 'a Stream.t -> 'a LList.tval to_stream : 'a -> 'a
This function does nothing. It is included for consistency.
val flatten : 'a flow flow -> 'a flowval to_array : 'a flow -> 'a arrayval range : int -> int -> int Stream.t
The range is never empty. If a <= b, the range contains a, a+1 ... b.
Otherwise, it contains a, a-1, ..., b.
val map_filter : ('a -> 'b option) -> 'a Stream.t -> 'b Stream.texception End_of_flow
val of_fun : (unit -> 'a) -> 'a flowval of_list : 'a list -> 'a flowval of_string : string -> char flowval of_channel : Pervasives.in_channel -> char flowval to_fun : 'a flow -> unit -> 'aval to_list : 'a flow -> 'a listval to_string : char flow -> stringval to_channel : Pervasives.out_channel -> char flow -> unitval seq : 'a -> ('a -> 'a) -> ('a -> bool) -> 'a flowval enum : ?fin:int -> int -> int flowval (--) : int -> int -> int flowval repeat : ?times:int -> 'a -> 'a flowval cycle : ?times:int -> 'a flow -> 'a flowval peek : 'a flow -> 'a optionval next : 'a flow -> 'aval iter : ('a -> unit) -> 'a flow -> unitval foldl : ('a -> 'b -> 'a * bool option) -> 'a -> 'b flow -> 'aval foldr : ('a -> 'b lazy_t -> 'b) -> 'b -> 'a flow -> 'bval fold : ('a -> 'a -> 'a * bool option) -> 'a flow -> 'aval cons : 'a -> 'a flow -> 'a flowval apnd : 'a flow -> 'a flow -> 'a flowval is_empty : 'a flow -> boolval filter : ('a -> bool) -> 'a flow -> 'a flowval concat : 'a flow flow -> 'a flowval take : int -> 'a flow -> 'a flowval drop : int -> 'a flow -> 'a flowval take_while : ('a -> bool) -> 'a flow -> 'a flowval drop_while : ('a -> bool) -> 'a flow -> 'a flowval span : ('a -> bool) -> 'a flow -> 'a flow * 'a flowval break : ('a -> bool) -> 'a flow -> 'a flow * 'a flowval group : ('a -> bool) -> 'a flow -> 'a flow flowval dup : 'a flow -> 'a flow * 'a flowval comb : 'a flow * 'b flow -> ('a * 'b) flowval split : ('a * 'b) flow -> 'a flow * 'b flowval merge : (bool -> 'a -> bool) ->
'a flow * 'a flow -> 'a flowval switch : ('a -> bool) -> 'a flow -> 'a flow * 'a flowval dupn : int -> 'a flow -> 'a flow arrayval combn : 'a flow array -> 'a array flowval splitn : int -> 'a array flow -> 'a flow arrayval mergen : (int -> 'a -> int) -> 'a flow array -> 'a flowval switchn : int -> ('a -> int) -> 'a flow -> 'a flow arrayval map : ('a -> 'b) -> 'a flow -> 'b flowval map2 : ('a -> 'b -> 'c) ->
'a flow -> 'b flow -> 'c flowval scanl : ('a -> 'b -> 'a) -> 'a -> 'b flow -> 'a flowval scan : ('a -> 'a -> 'a) -> 'a flow -> 'a flowval map_fold : ('a -> 'a -> 'a * bool option) -> 'a flow -> 'a flowval feedl : 'a flow -> ('a flow -> 'a flow * 'b) -> 'bval feedr : 'a flow -> ('a flow -> 'b * 'a flow) -> 'bval circ : 'a flow ->
('a flow -> 'a flow) -> 'a flowval (|||) : ('a flow -> 'b flow) ->
('b flow -> 'c flow) ->
'a flow -> 'c flowval while_do : ?size:int ->
('a -> bool) ->
('a flow -> 'a flow) ->
'a flow -> 'a flowval do_while : ?size:int ->
('a -> bool) ->
('a flow -> 'a flow) ->
'a flow -> 'a flowval farm : ?par:int ->
?size:(int -> int) ->
?path:('a -> int) ->
(int -> 'a flow -> 'b flow) ->
'a flow -> 'b flowval (|>) : 'a -> ('a -> 'b) -> 'bval (@.) : ('a -> 'b) -> 'a -> 'bval (|-) : ('a -> 'b) -> ('b -> 'c) -> 'a -> 'cval (-|) : ('a -> 'b) -> ('c -> 'a) -> 'c -> 'bval (//) : ('a -> 'b) -> ('c -> 'd) -> 'a * 'c -> 'b * 'dval curry : ('a * 'b -> 'c) -> 'a -> 'b -> 'cval uncurry : ('a -> 'b -> 'c) -> 'a * 'b -> 'cval id : 'a -> 'a