`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_preinstalled : OpamTypes.compiler -> OpamTypes.compiler_version -> OpamTypes.name list -> (string * string * string) list -> t val preinstalled : t -> bool val opam_version : t -> OpamTypes.opam_version val name : t -> OpamTypes.compiler val version : t -> OpamTypes.compiler_version val src : t -> OpamTypes.address option val kind : t -> OpamTypes.repository_kind val patches : t -> OpamTypes.filename list val configure : t -> string list val make : t -> string list val build : t -> OpamTypes.command list val packages : t -> OpamTypes.formula val env : t -> (string * string * string) list val with_src : t -> OpamTypes.address option -> t val with_patches : t -> OpamTypes.filename list -> t val with_configure : t -> string list -> t val with_make : t -> string list -> t val with_build : t -> OpamTypes.command list -> t val with_packages : t -> OpamTypes.formula -> t val to_1_0 : OpamTypes.file -> OpamTypes.file end`