sig
  type t
  val empty : t
  val write : OpamTypes.filename -> t -> unit
  val read : OpamTypes.filename -> t
  val safe_read : OpamTypes.filename -> t
  val read_from_channel : in_channel -> t
  val write_to_channel : out_channel -> t -> unit
  val create_preinstalled :
    OpamTypes.compiler ->
    OpamTypes.compiler_version ->
    OpamTypes.name list -> (string * string * string) list -> t
  val preinstalled : t -> bool
  val opam_version : t -> OpamTypes.opam_version
  val name : t -> OpamTypes.compiler
  val version : t -> OpamTypes.compiler_version
  val src : t -> OpamTypes.address option
  val kind : t -> OpamTypes.repository_kind option
  val patches : t -> OpamTypes.filename list
  val configure : t -> string list
  val make : t -> string list
  val build : t -> OpamTypes.command list
  val packages : t -> OpamTypes.formula
  val asmlink : t -> string list
  val bytelink : t -> string list
  val bytecomp : t -> string list
  val asmcomp : t -> string list
  val requires : t -> OpamTypes.section list
  val pp : t -> OpamTypes.ppflag option
  val env : t -> (string * string * string) list
  val to_1_0 : OpamTypes.file -> OpamTypes.file
end