`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`