`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 bin : t -> (OpamTypes.basename OpamTypes.optional * OpamTypes.basename option) list val sbin : t -> (OpamTypes.basename OpamTypes.optional * OpamTypes.basename option) list val lib : t -> (OpamTypes.basename OpamTypes.optional * OpamTypes.basename option) list val toplevel : t -> (OpamTypes.basename OpamTypes.optional * OpamTypes.basename option) list val stublibs : t -> (OpamTypes.basename OpamTypes.optional * OpamTypes.basename option) list val share : t -> (OpamTypes.basename OpamTypes.optional * OpamTypes.basename option) list val share_root : t -> (OpamTypes.basename OpamTypes.optional * OpamTypes.basename option) list val etc : t -> (OpamTypes.basename OpamTypes.optional * OpamTypes.basename option) list val doc : t -> (OpamTypes.basename OpamTypes.optional * OpamTypes.basename option) list val man : t -> (OpamTypes.basename OpamTypes.optional * OpamTypes.basename option) list val libexec : t -> (OpamTypes.basename OpamTypes.optional * OpamTypes.basename option) list val misc : t -> (OpamTypes.basename OpamTypes.optional * OpamTypes.filename) list end`