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 :
    ?browse:string ->
    ?upstream:string ->
    ?opam_version:string ->
    ?redirect:(string * OpamTypes.filter option) list -> unit -> t
  val opam_version : t -> OpamVersion.t
  val browse : t -> string option
  val upstream : t -> string option
  val redirect : t -> (string * OpamTypes.filter option) list
end