sig
  type 'a t
  val map :
    ('-> 'CCMonadIO.io) -> 'CCMonadIO.Seq.t -> 'CCMonadIO.Seq.t
  val map_pure : ('-> 'b) -> 'CCMonadIO.Seq.t -> 'CCMonadIO.Seq.t
  val filter_map :
    ('-> 'b option) -> 'CCMonadIO.Seq.t -> 'CCMonadIO.Seq.t
  val filter : ('-> bool) -> 'CCMonadIO.Seq.t -> 'CCMonadIO.Seq.t
  val flat_map :
    ('-> 'CCMonadIO.Seq.t CCMonadIO.io) ->
    'CCMonadIO.Seq.t -> 'CCMonadIO.Seq.t
  val take : int -> 'CCMonadIO.Seq.t -> 'CCMonadIO.Seq.t
  val drop : int -> 'CCMonadIO.Seq.t -> 'CCMonadIO.Seq.t
  val take_while :
    ('-> bool CCMonadIO.io) -> 'CCMonadIO.Seq.t -> 'CCMonadIO.Seq.t
  val drop_while :
    ('-> bool CCMonadIO.io) -> 'CCMonadIO.Seq.t -> 'CCMonadIO.Seq.t
  val general_iter :
    ('-> '-> [ `Continue of 'b * 'c option | `Stop ] CCMonadIO.io) ->
    '-> 'CCMonadIO.Seq.t -> 'CCMonadIO.Seq.t
  val tee :
    ('-> unit CCMonadIO.io) list ->
    'CCMonadIO.Seq.t -> 'CCMonadIO.Seq.t
  val iter :
    ('-> 'CCMonadIO.io) -> 'CCMonadIO.Seq.t -> unit CCMonadIO.io
  val length : 'CCMonadIO.Seq.t -> int CCMonadIO.io
  val fold :
    ('-> '-> 'CCMonadIO.io) ->
    '-> 'CCMonadIO.Seq.t -> 'CCMonadIO.io
  val fold_pure :
    ('-> '-> 'b) -> '-> 'CCMonadIO.Seq.t -> 'CCMonadIO.io
  type 'a step_result = Yield of '| Stop
  type 'a gen = unit -> 'CCMonadIO.Seq.step_result CCMonadIO.io
  val of_fun : 'CCMonadIO.Seq.gen -> 'CCMonadIO.Seq.t
  val empty : 'CCMonadIO.Seq.t
  val singleton : '-> 'CCMonadIO.Seq.t
  val cons : '-> 'CCMonadIO.Seq.t -> 'CCMonadIO.Seq.t
  val of_list : 'a list -> 'CCMonadIO.Seq.t
  val of_array : 'a array -> 'CCMonadIO.Seq.t
  val chunks : size:int -> Pervasives.in_channel -> string CCMonadIO.Seq.t
  val lines : Pervasives.in_channel -> string CCMonadIO.Seq.t
  val words : string CCMonadIO.Seq.t -> string CCMonadIO.Seq.t
  val output :
    ?sep:string ->
    Pervasives.out_channel -> string CCMonadIO.Seq.t -> unit CCMonadIO.io
end