`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 replace :
t -> (OpamTypes.full_variable -> OpamTypes.variable_contents) -> t
val replace_string :
string ->
(OpamTypes.full_variable -> OpamTypes.variable_contents) -> string
end`