`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`