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