sig
type 'a flow = 'a Stream.t
exception End_of_flow
val of_fun : (unit -> 'a) -> 'a Sdflow.flow
val of_list : 'a list -> 'a Sdflow.flow
val of_string : string -> char Sdflow.flow
val of_channel : Pervasives.in_channel -> char Sdflow.flow
val to_fun : 'a Sdflow.flow -> unit -> 'a
val to_list : 'a Sdflow.flow -> 'a list
val to_string : char Sdflow.flow -> string
val to_channel : Pervasives.out_channel -> char Sdflow.flow -> unit
val seq : 'a -> ('a -> 'a) -> ('a -> bool) -> 'a Sdflow.flow
val enum : ?fin:int -> int -> int Sdflow.flow
val ( -- ) : int -> int -> int Sdflow.flow
val repeat : ?times:int -> 'a -> 'a Sdflow.flow
val cycle : ?times:int -> 'a Sdflow.flow -> 'a Sdflow.flow
val peek : 'a Sdflow.flow -> 'a option
val next : 'a Sdflow.flow -> 'a
val iter : ('a -> unit) -> 'a Sdflow.flow -> unit
val foldl : ('a -> 'b -> 'a * bool option) -> 'a -> 'b Sdflow.flow -> 'a
val foldr : ('a -> 'b lazy_t -> 'b) -> 'b -> 'a Sdflow.flow -> 'b
val fold : ('a -> 'a -> 'a * bool option) -> 'a Sdflow.flow -> 'a
val cons : 'a -> 'a Sdflow.flow -> 'a Sdflow.flow
val apnd : 'a Sdflow.flow -> 'a Sdflow.flow -> 'a Sdflow.flow
val is_empty : 'a Sdflow.flow -> bool
val filter : ('a -> bool) -> 'a Sdflow.flow -> 'a Sdflow.flow
val concat : 'a Sdflow.flow Sdflow.flow -> 'a Sdflow.flow
val take : int -> 'a Sdflow.flow -> 'a Sdflow.flow
val drop : int -> 'a Sdflow.flow -> 'a Sdflow.flow
val take_while : ('a -> bool) -> 'a Sdflow.flow -> 'a Sdflow.flow
val drop_while : ('a -> bool) -> 'a Sdflow.flow -> 'a Sdflow.flow
val span :
('a -> bool) -> 'a Sdflow.flow -> 'a Sdflow.flow * 'a Sdflow.flow
val break :
('a -> bool) -> 'a Sdflow.flow -> 'a Sdflow.flow * 'a Sdflow.flow
val group : ('a -> bool) -> 'a Sdflow.flow -> 'a Sdflow.flow Sdflow.flow
val dup : 'a Sdflow.flow -> 'a Sdflow.flow * 'a Sdflow.flow
val comb : 'a Sdflow.flow * 'b Sdflow.flow -> ('a * 'b) Sdflow.flow
val split : ('a * 'b) Sdflow.flow -> 'a Sdflow.flow * 'b Sdflow.flow
val merge :
(bool -> 'a -> bool) -> 'a Sdflow.flow * 'a Sdflow.flow -> 'a Sdflow.flow
val switch :
('a -> bool) -> 'a Sdflow.flow -> 'a Sdflow.flow * 'a Sdflow.flow
val dupn : int -> 'a Sdflow.flow -> 'a Sdflow.flow array
val combn : 'a Sdflow.flow array -> 'a array Sdflow.flow
val splitn : int -> 'a array Sdflow.flow -> 'a Sdflow.flow array
val mergen : (int -> 'a -> int) -> 'a Sdflow.flow array -> 'a Sdflow.flow
val switchn : int -> ('a -> int) -> 'a Sdflow.flow -> 'a Sdflow.flow array
val map : ('a -> 'b) -> 'a Sdflow.flow -> 'b Sdflow.flow
val map2 :
('a -> 'b -> 'c) -> 'a Sdflow.flow -> 'b Sdflow.flow -> 'c Sdflow.flow
val scanl : ('a -> 'b -> 'a) -> 'a -> 'b Sdflow.flow -> 'a Sdflow.flow
val scan : ('a -> 'a -> 'a) -> 'a Sdflow.flow -> 'a Sdflow.flow
val map_fold :
('a -> 'a -> 'a * bool option) -> 'a Sdflow.flow -> 'a Sdflow.flow
val feedl : 'a Sdflow.flow -> ('a Sdflow.flow -> 'a Sdflow.flow * 'b) -> 'b
val feedr : 'a Sdflow.flow -> ('a Sdflow.flow -> 'b * 'a Sdflow.flow) -> 'b
val circ :
'a Sdflow.flow -> ('a Sdflow.flow -> 'a Sdflow.flow) -> 'a Sdflow.flow
val ( ||| ) :
('a Sdflow.flow -> 'b Sdflow.flow) ->
('b Sdflow.flow -> 'c Sdflow.flow) -> 'a Sdflow.flow -> 'c Sdflow.flow
val while_do :
?size:int ->
('a -> bool) ->
('a Sdflow.flow -> 'a Sdflow.flow) -> 'a Sdflow.flow -> 'a Sdflow.flow
val do_while :
?size:int ->
('a -> bool) ->
('a Sdflow.flow -> 'a Sdflow.flow) -> 'a Sdflow.flow -> 'a Sdflow.flow
val farm :
?par:int ->
?size:(int -> int) ->
?path:('a -> int) ->
(int -> 'a Sdflow.flow -> 'b Sdflow.flow) ->
'a Sdflow.flow -> 'b Sdflow.flow
val ( |> ) : 'a -> ('a -> 'b) -> 'b
val ( @. ) : ('a -> 'b) -> 'a -> 'b
val ( |- ) : ('a -> 'b) -> ('b -> 'c) -> 'a -> 'c
val ( -| ) : ('a -> 'b) -> ('c -> 'a) -> 'c -> 'b
val ( // ) : ('a -> 'b) -> ('c -> 'd) -> 'a * 'c -> 'b * 'd
val curry : ('a * 'b -> 'c) -> 'a -> 'b -> 'c
val uncurry : ('a -> 'b -> 'c) -> 'a * 'b -> 'c
val id : 'a -> 'a
end