sig   type 'a or_error = ('a, string) Result.result   type 'a gen = unit -> 'a option   val with_in :     ?mode:int ->     ?flags:Pervasives.open_flag list ->     string -> (Pervasives.in_channel -> 'a) -> 'a   val read_chunks : ?size:int -> Pervasives.in_channel -> string CCIO.gen   val read_line : Pervasives.in_channel -> string option   val read_lines : Pervasives.in_channel -> string CCIO.gen   val read_lines_l : Pervasives.in_channel -> string list   val read_all : ?size:int -> Pervasives.in_channel -> string   val read_all_bytes : ?size:int -> Pervasives.in_channel -> Bytes.t   val with_out :     ?mode:int ->     ?flags:Pervasives.open_flag list ->     string -> (Pervasives.out_channel -> 'a) -> 'a   val with_out_a :     ?mode:int ->     ?flags:Pervasives.open_flag list ->     string -> (Pervasives.out_channel -> 'a) -> 'a   val write_line : Pervasives.out_channel -> string -> unit   val write_gen :     ?sep:string -> Pervasives.out_channel -> string CCIO.gen -> unit   val write_lines : Pervasives.out_channel -> string CCIO.gen -> unit   val write_lines_l : Pervasives.out_channel -> string list -> unit   val with_in_out :     ?mode:int ->     ?flags:Pervasives.open_flag list ->     string -> (Pervasives.in_channel -> Pervasives.out_channel -> 'a) -> 'a   val tee : ('-> unit) list -> 'CCIO.gen -> 'CCIO.gen   module File :     sig       type t = string       val to_string : CCIO.File.t -> string       val make : string -> CCIO.File.t       val exists : CCIO.File.t -> bool       val is_directory : CCIO.File.t -> bool       val remove_exn : CCIO.File.t -> unit       val remove : CCIO.File.t -> unit CCIO.or_error       val remove_noerr : CCIO.File.t -> unit       val read_dir : ?recurse:bool -> CCIO.File.t -> CCIO.File.t CCIO.gen       val read_exn : CCIO.File.t -> string       val read : CCIO.File.t -> string CCIO.or_error       val append_exn : CCIO.File.t -> string -> unit       val append : CCIO.File.t -> string -> unit CCIO.or_error       val write_exn : CCIO.File.t -> string -> unit       val write : CCIO.File.t -> string -> unit CCIO.or_error       type walk_item = [ `Dir | `File ] * CCIO.File.t       val walk : CCIO.File.t -> CCIO.File.walk_item CCIO.gen       val walk_l : CCIO.File.t -> CCIO.File.walk_item list       val show_walk_item : CCIO.File.walk_item -> string       val with_temp :         ?temp_dir:string ->         prefix:string -> suffix:string -> (string -> 'a) -> 'a     end end