sig   type input = BatInnerIO.input   type 'a output = 'BatInnerIO.output   type ('a, 'b) printer = 'BatIO.output -> '-> unit   type 'a f_printer = Format.formatter -> '-> unit   exception No_more_input   exception Input_closed   exception Output_closed   val stdin : BatIO.input   val stdout : unit BatIO.output   val stderr : unit BatIO.output   val stdnull : unit BatIO.output   val read : BatIO.input -> char   val nread : BatIO.input -> int -> string   val really_nread : BatIO.input -> int -> string   val input : BatIO.input -> string -> int -> int -> int   val really_input : BatIO.input -> string -> int -> int -> int   val close_in : BatIO.input -> unit   val write : (char, 'a) BatIO.printer   val nwrite : (string, 'a) BatIO.printer   val output : 'BatIO.output -> string -> int -> int -> int   val really_output : 'BatIO.output -> string -> int -> int -> int   val flush : 'BatIO.output -> unit   val flush_all : unit -> unit   val close_out : 'BatIO.output -> 'a   val close_all : unit -> unit   val input_string : string -> BatIO.input   val output_string : unit -> string BatIO.output   val input_enum : char BatEnum.t -> BatIO.input   val output_enum : unit -> char BatEnum.t BatIO.output   val combine : 'BatIO.output * 'BatIO.output -> ('a * 'b) BatIO.output   val tab_out : ?tab:char -> int -> 'BatIO.output -> unit BatIO.output   val read_all : BatIO.input -> string   val pipe : unit -> BatIO.input * unit BatIO.output   val copy : ?buffer:int -> BatIO.input -> 'BatIO.output -> unit   val pos_in : BatIO.input -> BatIO.input * (unit -> int)   val progress_in : BatIO.input -> (unit -> unit) -> BatIO.input   val pos_out : 'BatIO.output -> unit BatIO.output * (unit -> int)   val progress_out : 'BatIO.output -> (unit -> unit) -> unit BatIO.output   external cast_output : 'BatIO.output -> unit BatIO.output = "%identity"   exception Overflow of string   val read_byte : BatIO.input -> int   val read_signed_byte : BatIO.input -> int   val read_ui16 : BatIO.input -> int   val read_i16 : BatIO.input -> int   val read_i32 : BatIO.input -> int   val read_real_i32 : BatIO.input -> int32   val read_i64 : BatIO.input -> int64   val read_float : BatIO.input -> float   val read_double : BatIO.input -> float   val read_string : BatIO.input -> string   val read_line : BatIO.input -> string   val write_byte : (int, 'a) BatIO.printer   val write_ui16 : (int, 'a) BatIO.printer   val write_i16 : (int, 'a) BatIO.printer   val write_i32 : (int, 'a) BatIO.printer   val write_real_i32 : (int32, 'a) BatIO.printer   val write_i64 : (int64, 'a) BatIO.printer   val write_double : (float, 'a) BatIO.printer   val write_float : (float, 'a) BatIO.printer   val write_string : (string, 'a) BatIO.printer   val write_line : (string, 'a) BatIO.printer   module BigEndian :     sig       val read_ui16 : BatIO.input -> int       val read_i16 : BatIO.input -> int       val read_i32 : BatIO.input -> int       val read_real_i32 : BatIO.input -> int32       val read_i64 : BatIO.input -> int64       val read_double : BatIO.input -> float       val read_float : BatIO.input -> float       val write_ui16 : (int, 'a) BatIO.printer       val write_i16 : (int, 'a) BatIO.printer       val write_i32 : (int, 'a) BatIO.printer       val write_real_i32 : (int32, 'a) BatIO.printer       val write_i64 : (int64, 'a) BatIO.printer       val write_double : (float, 'a) BatIO.printer       val write_float : (float, 'a) BatIO.printer       val ui16s_of : BatIO.input -> int BatEnum.t       val i16s_of : BatIO.input -> int BatEnum.t       val i32s_of : BatIO.input -> int BatEnum.t       val real_i32s_of : BatIO.input -> int32 BatEnum.t       val i64s_of : BatIO.input -> int64 BatEnum.t       val doubles_of : BatIO.input -> float BatEnum.t       val floats_of : BatIO.input -> float BatEnum.t     end   type in_bits   type out_bits   exception Bits_error   val input_bits : BatIO.input -> BatIO.in_bits   val output_bits : 'BatIO.output -> BatIO.out_bits   val read_bits : BatIO.in_bits -> int -> int   val write_bits : BatIO.out_bits -> nbits:int -> int -> unit   val flush_bits : BatIO.out_bits -> unit   val drop_bits : BatIO.in_bits -> unit   val create_in :     read:(unit -> char) ->     input:(string -> int -> int -> int) ->     close:(unit -> unit) -> BatIO.input   val wrap_in :     read:(unit -> char) ->     input:(string -> int -> int -> int) ->     close:(unit -> unit) -> underlying:BatIO.input list -> BatIO.input   val inherit_in :     ?read:(unit -> char) ->     ?input:(string -> int -> int -> int) ->     ?close:(unit -> unit) -> BatIO.input -> BatIO.input   val create_out :     write:(char -> unit) ->     output:(string -> int -> int -> int) ->     flush:(unit -> unit) -> close:(unit -> 'a) -> 'BatIO.output   val wrap_out :     write:(char -> unit) ->     output:(string -> int -> int -> int) ->     flush:(unit -> unit) ->     close:(unit -> 'a) -> underlying:'BatIO.output list -> 'BatIO.output   val inherit_out :     ?write:(char -> unit) ->     ?output:(string -> int -> int -> int) ->     ?flush:(unit -> unit) ->     ?close:(unit -> unit) -> 'BatIO.output -> unit BatIO.output   val input_channel :     ?autoclose:bool -> ?cleanup:bool -> Pervasives.in_channel -> BatIO.input   val output_channel :     ?cleanup:bool -> Pervasives.out_channel -> unit BatIO.output   val to_input_channel : BatIO.input -> Pervasives.in_channel   class in_channel :     BatIO.input ->     object       method close_in : unit -> unit       method input : string -> int -> int -> int     end   class out_channel :     'BatIO.output ->     object       method close_out : unit -> unit       method flush : unit -> unit       method output : string -> int -> int -> int     end   class in_chars :     BatIO.input ->     object method close_in : unit -> unit method get : unit -> char end   class out_chars :     'BatIO.output ->     object       method close_out : unit -> unit       method flush : unit -> unit       method put : char -> unit     end   val from_in_channel : #BatIO.in_channel -> BatIO.input   val from_out_channel : #BatIO.out_channel -> unit BatIO.output   val from_in_chars : #BatIO.in_chars -> BatIO.input   val from_out_chars : #BatIO.out_chars -> unit BatIO.output   val bytes_of : BatIO.input -> int BatEnum.t   val signed_bytes_of : BatIO.input -> int BatEnum.t   val ui16s_of : BatIO.input -> int BatEnum.t   val i16s_of : BatIO.input -> int BatEnum.t   val i32s_of : BatIO.input -> int BatEnum.t   val real_i32s_of : BatIO.input -> int32 BatEnum.t   val i64s_of : BatIO.input -> int64 BatEnum.t   val doubles_of : BatIO.input -> float BatEnum.t   val floats_of : BatIO.input -> float BatEnum.t   val strings_of : BatIO.input -> string BatEnum.t   val lines_of : BatIO.input -> string BatEnum.t   val lines_of2 : BatIO.input -> string BatEnum.t   val chunks_of : int -> BatIO.input -> string BatEnum.t   val chars_of : BatIO.input -> char BatEnum.t   val bits_of : BatIO.in_bits -> int BatEnum.t   val write_bitss : nbits:int -> BatIO.out_bits -> int BatEnum.t -> unit   val default_buffer_size : int   val synchronize_in : ?lock:BatConcurrent.lock -> BatIO.input -> BatIO.input   val synchronize_out :     ?lock:BatConcurrent.lock -> 'BatIO.output -> unit BatIO.output   val lock : BatConcurrent.lock Pervasives.ref   val lock_factory : (unit -> BatConcurrent.lock) Pervasives.ref   val to_string : ('a, string) BatIO.printer -> '-> string   val to_f_printer : ('a, 'b) BatIO.printer -> 'BatIO.f_printer   val comb : 'BatIO.output * 'BatIO.output -> 'BatIO.output   val make_enum : (BatIO.input -> 'a) -> BatIO.input -> 'BatEnum.t   val get_output_id : 'BatIO.output -> int   val get_input_id : BatIO.input -> int   module Incubator :     sig       module Array :         sig           val pp :             ?flush:bool ->             ?first:string ->             ?last:string ->             ?sep:string ->             ?indent:int ->             (Format.formatter -> '-> 'b) ->             Format.formatter -> 'a array -> unit         end       module Enum :         sig           val pp :             ?flush:bool ->             ?first:string ->             ?last:string ->             ?sep:string ->             ?indent:int ->             (Format.formatter -> '-> 'b) ->             Format.formatter -> 'BatEnum.t -> unit         end       module List :         sig           val pp :             ?flush:bool ->             ?first:string ->             ?last:string ->             ?sep:string ->             ?indent:int ->             (Format.formatter -> '-> 'b) ->             Format.formatter -> 'a list -> unit         end     end end