sig
  type input
  type 'a output
  exception Overflow of string
  val input_channel : Stdlib.in_channel -> JLib.IO.input
  val output_channel : Stdlib.out_channel -> unit JLib.IO.output
  val input_string : string -> JLib.IO.input
  val flush : 'JLib.IO.output -> unit
  val read_byte : JLib.IO.input -> int
  val read_signed_byte : JLib.IO.input -> int
  val really_nread : JLib.IO.input -> int -> Stdlib.Bytes.t
  val really_nread_string : JLib.IO.input -> int -> string
  val write_byte : 'JLib.IO.output -> int -> unit
  val nwrite_string : 'JLib.IO.output -> string -> unit
  val output_string : unit -> string JLib.IO.output
  val close_out : 'JLib.IO.output -> 'a
  val close_in : JLib.IO.input -> unit
  val printf :
    'JLib.IO.output -> ('b, unit, string, unit) Stdlib.format4 -> 'b
  val write : 'JLib.IO.output -> char -> unit
  val pos_in : JLib.IO.input -> JLib.IO.input * (unit -> int)
  val pos_out : 'JLib.IO.output -> 'JLib.IO.output * (unit -> int)
  val input_bytes : Stdlib.Bytes.t -> JLib.IO.input
  module BigEndian :
    sig
      val read_ui16 : JLib.IO.input -> int
      val read_i16 : JLib.IO.input -> int
      val read_i32 : JLib.IO.input -> int
      val read_real_i32 : JLib.IO.input -> int32
      val read_i64 : JLib.IO.input -> int64
      val read_double : JLib.IO.input -> float
      val write_ui16 : 'JLib.IO.output -> int -> unit
      val write_i16 : 'JLib.IO.output -> int -> unit
      val write_i32 : 'JLib.IO.output -> int -> unit
      val write_real_i32 : 'JLib.IO.output -> int32 -> unit
      val write_i64 : 'JLib.IO.output -> int64 -> unit
      val write_double : 'JLib.IO.output -> float -> unit
    end
end