sig
  val iter : f:('a -> unit) -> 'a BatStream.t -> unit
  val to_string_fmt :
    fmt:('a -> string, unit, string) Pervasives.format ->
    'a BatStream.t -> string
  val to_string_fun : fn:('a -> string) -> 'a BatStream.t -> string
  val foldl :
    f:('a -> 'b -> 'a * bool option) -> init:'a -> 'b BatStream.t -> 'a
  val foldr : f:('a -> 'b lazy_t -> 'b) -> init:'b -> 'a BatStream.t -> 'b
  val fold : f:('a -> 'a -> 'a * bool option) -> init:'a BatStream.t -> 'a
  val filter : f:('a -> bool) -> 'a BatStream.t -> 'a BatStream.t
  val map : f:('a -> 'b) -> 'a BatStream.t -> 'b BatStream.t
  val map2 :
    f:('a -> 'b -> 'c) -> 'a BatStream.t -> 'b BatStream.t -> 'c BatStream.t
  val scanl : f:('a -> 'b -> 'a) -> 'a -> 'b BatStream.t -> 'a BatStream.t
  val scan : f:('a -> 'a -> 'a) -> 'a BatStream.t -> 'a BatStream.t
  val take_while : f:('a -> bool) -> 'a BatStream.t -> 'a BatStream.t
  val drop_while : f:('a -> bool) -> 'a BatStream.t -> 'a BatStream.t
  val merge :
    f:(bool -> 'a -> bool) ->
    'a BatStream.t * 'a BatStream.t -> 'a BatStream.t
  val switch :
    f:('a -> bool) -> 'a BatStream.t -> 'a BatStream.t * 'a BatStream.t
end