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