sig
  type t
  val empty : OpamFile.IO_FILE.t
  val write : OpamTypes.filename -> OpamFile.IO_FILE.t -> unit
  val read : OpamTypes.filename -> OpamFile.IO_FILE.t
  val safe_read : OpamTypes.filename -> OpamFile.IO_FILE.t
  val read_from_channel : Pervasives.in_channel -> OpamFile.IO_FILE.t
  val write_to_channel : Pervasives.out_channel -> OpamFile.IO_FILE.t -> unit
end