sig
  type t
  type error = Unable_to_write_data | Unable_to_close_stream
  exception Exception of OutputStream.error
  val string_of_error : OutputStream.error -> string
  val make_of_buffer : Buffer.t -> OutputStream.t
  val make_of_channel : Pervasives.out_channel -> OutputStream.t
  val make_of_descr : Unix.file_descr -> OutputStream.t
  val make :
    write_byte:(int -> unit) ->
    ?write_bytes:(string -> int -> int -> unit) ->
    flush:(unit -> unit) -> close:(unit -> unit) -> OutputStream.t
  val write_u1 : OutputStream.t -> Utils.u1 -> unit
  val write_u2 : OutputStream.t -> Utils.u2 -> unit
  val write_u4 : OutputStream.t -> Utils.u4 -> unit
  val write_s1 : OutputStream.t -> Utils.s1 -> unit
  val write_s2 : OutputStream.t -> Utils.s2 -> unit
  val write_s4 : OutputStream.t -> Utils.s4 -> unit
  val write_s8 : OutputStream.t -> Utils.s8 -> unit
  val write_bytes_from : OutputStream.t -> string -> int -> int -> unit
  val write_bytes : OutputStream.t -> string -> unit
  val write_elements :
    ('a list -> Utils.u2) ->
    OutputStream.t -> (OutputStream.t -> '-> unit) -> 'a list -> unit
  val flush : OutputStream.t -> unit
  val close : OutputStream.t -> unit
  val close_noerr : OutputStream.t -> unit
  val try_with : OutputStream.t -> (OutputStream.t -> 'a) -> 'a
  val stdout : OutputStream.t
  val stderr : OutputStream.t
end