`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 to_1_0 : OpamTypes.file -> OpamTypes.file
end`