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