sig
  type t = File_writer.t
  val create : ?append:bool -> string -> t Import.Deferred.t
  val write : t -> string -> unit
  val write_substring : t -> Core.Std.Substring.t -> unit
  val write_bigsubstring : t -> Core.Std.Bigsubstring.t -> unit
  val schedule_bigstring : t -> Core.Std.Bigstring.t -> unit
  val write_bin_prot :
    t -> 'Core.Std.Bin_prot.Type_class.writer -> '-> unit
  val write_sexp : ?hum:bool -> t -> Core.Std.Sexp.t -> unit
  val monitor : t -> Import.Monitor.t
  val bytes_to_write : unit -> int
  val flushed : t -> unit Import.Deferred.t
  val close : t -> unit Import.Deferred.t
  val sexp_of_t : t -> Sexplib.Sexp.t
end