sig
  type t = Pervasives.out_channel
  val stdout : Out_channel.t
  val stderr : Out_channel.t
  type 'a with_create_args = ?binary:bool -> ?append:bool -> ?perm:int -> 'a
  val create : (string -> Out_channel.t) Out_channel.with_create_args
  val with_file :
    (string -> f:(Out_channel.t -> 'a) -> 'a) Out_channel.with_create_args
  val close : Out_channel.t -> unit
  val set_binary_mode : Out_channel.t -> bool -> unit
  val flush : Out_channel.t -> unit
  val output : Out_channel.t -> buf:string -> pos:int -> len:int -> unit
  val output_string : Out_channel.t -> string -> unit
  val output_char : Out_channel.t -> char -> unit
  val output_byte : Out_channel.t -> int -> unit
  val output_binary_int : Out_channel.t -> int -> unit
  val output_value : Out_channel.t -> '-> unit
  val newline : Out_channel.t -> unit
  val output_lines : Out_channel.t -> string list -> unit
  val seek : Out_channel.t -> int64 -> unit
  val pos : Out_channel.t -> int64
  val length : Out_channel.t -> int64
  val write_lines : string -> string list -> unit
  val write_all : string -> data:string -> unit
end