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.repository_kind ->
    ?mirrors:OpamTypes.address list -> OpamTypes.address -> t
  val url : t -> OpamTypes.address
  val mirrors : t -> OpamTypes.address list
  val kind : t -> OpamTypes.repository_kind
  val checksum : t -> string option
  val with_checksum : t -> string -> t
end