`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.variable * OpamTypes.variable_contents) list -> t val variable : t -> OpamTypes.variable -> OpamTypes.variable_contents option val variables : t -> OpamTypes.variable list end`