`sig
type input
type 'a output
exception No_more_input
exception Input_closed
exception Output_closed
val read : BatInnerIO.input -> char
val read_all : BatInnerIO.input -> string
val pipe : unit -> BatInnerIO.input * unit BatInnerIO.output
val nread : BatInnerIO.input -> int -> string
val really_nread : BatInnerIO.input -> int -> string
val input : BatInnerIO.input -> string -> int -> int -> int
val really_input : BatInnerIO.input -> string -> int -> int -> int
val close_in : BatInnerIO.input -> unit
val write : 'a BatInnerIO.output -> char -> unit
val nwrite : 'a BatInnerIO.output -> string -> unit
val output : 'a BatInnerIO.output -> string -> int -> int -> int
val really_output : 'a BatInnerIO.output -> string -> int -> int -> int
val flush : 'a BatInnerIO.output -> unit
val flush_all : unit -> unit
val close_out : 'a BatInnerIO.output -> 'a
val close_all : unit -> unit
val input_string : string -> BatInnerIO.input
val output_string : unit -> string BatInnerIO.output
val on_close_out :
'a BatInnerIO.output -> ('a BatInnerIO.output -> unit) -> unit
val create_in :
read:(unit -> char) ->
input:(string -> int -> int -> int) ->
close:(unit -> unit) -> BatInnerIO.input
val inherit_in :
?read:(unit -> char) ->
?input:(string -> int -> int -> int) ->
?close:(unit -> unit) -> BatInnerIO.input -> BatInnerIO.input
val wrap_in :
read:(unit -> char) ->
input:(string -> int -> int -> int) ->
close:(unit -> unit) ->
underlying:BatInnerIO.input list -> BatInnerIO.input
val create_out :
write:(char -> unit) ->
output:(string -> int -> int -> int) ->
flush:(unit -> unit) -> close:(unit -> 'a) -> 'a BatInnerIO.output
val inherit_out :
?write:(char -> unit) ->
?output:(string -> int -> int -> int) ->
?flush:(unit -> unit) ->
?close:(unit -> unit) -> 'a BatInnerIO.output -> unit BatInnerIO.output
val wrap_out :
write:(char -> unit) ->
output:(string -> int -> int -> int) ->
flush:(unit -> unit) ->
close:(unit -> 'a) ->
underlying:'b BatInnerIO.output list -> 'a BatInnerIO.output
val default_buffer_size : int
exception Overflow of string
val read_byte : BatInnerIO.input -> int
val read_signed_byte : BatInnerIO.input -> int
val read_ui16 : BatInnerIO.input -> int
val read_i16 : BatInnerIO.input -> int
val read_i32 : BatInnerIO.input -> int
val read_real_i32 : BatInnerIO.input -> int32
val read_i64 : BatInnerIO.input -> int64
val read_float : BatInnerIO.input -> float
val read_double : BatInnerIO.input -> float
val read_string : BatInnerIO.input -> string
val read_line : BatInnerIO.input -> string
val write_byte : 'a BatInnerIO.output -> int -> unit
val write_ui16 : 'a BatInnerIO.output -> int -> unit
val write_i16 : 'a BatInnerIO.output -> int -> unit
val write_i32 : 'a BatInnerIO.output -> int -> unit
val write_real_i32 : 'a BatInnerIO.output -> int32 -> unit
val write_i64 : 'a BatInnerIO.output -> int64 -> unit
val write_double : 'a BatInnerIO.output -> float -> unit
val write_float : 'a BatInnerIO.output -> float -> unit
val write_string : 'a BatInnerIO.output -> string -> unit
val write_line : 'a BatInnerIO.output -> string -> unit
external cast_output : 'a BatInnerIO.output -> unit BatInnerIO.output
= "%identity"
val input_channel :
?autoclose:bool ->
?cleanup:bool -> Pervasives.in_channel -> BatInnerIO.input
val output_channel :
?cleanup:bool -> Pervasives.out_channel -> unit BatInnerIO.output
val stdin : BatInnerIO.input
val stdout : unit BatInnerIO.output
val stderr : unit BatInnerIO.output
val stdnull : unit BatInnerIO.output
module Input :
sig
type t = BatInnerIO.input
val compare : BatInnerIO.input -> BatInnerIO.input -> int
val hash : BatInnerIO.input -> int
val equal : BatInnerIO.input -> BatInnerIO.input -> bool
end
module Output :
sig
type t = unit BatInnerIO.output
val compare : 'a BatInnerIO.output -> 'b BatInnerIO.output -> int
val hash : 'a BatInnerIO.output -> int
val equal : 'a BatInnerIO.output -> 'b BatInnerIO.output -> bool
end
external noop : unit -> unit = "%ignore"
val get_output : 'a BatInnerIO.output -> string -> int -> int -> int
val get_flush : 'a BatInnerIO.output -> unit -> unit
val lock : BatConcurrent.lock Pervasives.ref
val get_output_id : 'a BatInnerIO.output -> int
val get_input_id : BatInnerIO.input -> int
end`