sig   type 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 empty : t   val create : OpamTypes.package -> t   val template : OpamTypes.package -> t   val validate : t -> (int * [ `Error | `Warning ] * string) list   val validate_file :     OpamTypes.filename ->     (int * [ `Error | `Warning ] * string) list * t option   val warns_to_string : (int * [ `Error | `Warning ] * string) list -> string   val is_explicit : OpamTypes.filename -> bool   val opam_version : t -> OpamTypes.opam_version   val name : t -> OpamTypes.name   val name_opt : t -> OpamTypes.name option   val version : t -> OpamTypes.version   val version_opt : t -> OpamTypes.version option   val ocaml_version : t -> OpamTypes.compiler_constraint option   val os : t -> (bool * string) OpamTypes.generic_formula   val available : t -> OpamTypes.filter   val maintainer : t -> string list   val substs : t -> OpamTypes.basename list   val build_env : t -> (string * string * string) list   val build : t -> OpamTypes.command list   val install : t -> OpamTypes.command list   val remove : t -> OpamTypes.command list   val depends : t -> OpamTypes.ext_formula   val depopts : t -> OpamTypes.ext_formula   val depexts : t -> OpamTypes.tags option   val with_messages : t -> (string * OpamTypes.filter option) list -> t   val with_post_messages : t -> (string * OpamTypes.filter option) list -> t   val conflicts : t -> OpamTypes.formula   val features : t -> (OpamVariable.t * string * OpamTypes.filter) list   val libraries : t -> (string * OpamTypes.filter option) list   val syntax : t -> (string * OpamTypes.filter option) list   val patches : t -> (OpamTypes.basename * OpamTypes.filter option) list   val homepage : t -> string list   val author : t -> string list   val license : t -> string list   val doc : t -> string list   val tags : t -> string list   val build_test : t -> OpamTypes.command list   val build_doc : t -> OpamTypes.command list   val messages : t -> (string * OpamTypes.filter option) list   val post_messages : t -> (string * OpamTypes.filter option) list   val bug_reports : t -> string list   val flags : t -> OpamTypes.package_flag list   val has_flag : OpamTypes.package_flag -> t -> bool   val with_opam_version : t -> OpamTypes.opam_version -> t   val dev_repo : t -> OpamTypes.pin_option option   val with_name : t -> OpamTypes.name -> t   val with_name_opt : t -> OpamTypes.name option -> t   val with_version : t -> OpamTypes.version -> t   val with_version_opt : t -> OpamTypes.version option -> t   val with_depends : t -> OpamTypes.ext_formula -> t   val with_depopts : t -> OpamTypes.ext_formula -> t   val with_conflicts : t -> OpamTypes.formula -> t   val with_features :     t -> (OpamVariable.t * string * OpamTypes.filter) list -> t   val with_build : t -> OpamTypes.command list -> t   val with_install : t -> OpamTypes.command list -> t   val with_remove : t -> OpamTypes.command list -> t   val with_libraries : t -> (string * OpamTypes.filter option) list -> t   val with_syntax : t -> (string * OpamTypes.filter option) list -> t   val with_substs : t -> OpamTypes.basename list -> t   val with_ocaml_version : t -> OpamTypes.compiler_constraint option -> t   val with_os : t -> (bool * string) OpamTypes.generic_formula -> t   val with_available : t -> OpamTypes.filter -> t   val with_maintainer : t -> string list -> t   val with_patches :     t -> (OpamTypes.basename * OpamTypes.filter option) list -> t   val with_bug_reports : t -> string list -> t   val with_depexts : t -> OpamTypes.tags option -> t   val with_flags : t -> OpamTypes.package_flag list -> t   val with_dev_repo : t -> OpamTypes.pin_option option -> t   val to_1_0 : OpamTypes.file -> OpamTypes.file end