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 : OpamTypes.switch -> OpamTypes.repository_name list -> int -> t
  val with_switch : t -> OpamTypes.switch -> t
  val with_repositories : t -> OpamTypes.repository_name list -> t
  val with_current_opam_version : t -> t
  val opam_version : t -> OpamTypes.opam_version
  val repositories : t -> OpamTypes.repository_name list
  val switch : t -> OpamTypes.switch
  val jobs : t -> int
end