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