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 ->     ?criteria:(OpamTypes.solver_criteria * string) list ->     ?solver:OpamTypes.arg list ->     int -> ?download_tool:OpamTypes.arg 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 with_criteria : t -> (OpamTypes.solver_criteria * string) list -> t   val with_solver : t -> OpamTypes.arg list option -> t   val opam_version : t -> OpamTypes.opam_version   val repositories : t -> OpamTypes.repository_name list   val switch : t -> OpamTypes.switch   val jobs : t -> int   val dl_tool : t -> OpamTypes.arg list option   val dl_jobs : t -> int   val criteria : t -> (OpamTypes.solver_criteria * string) list   val solver : t -> OpamTypes.arg list option end