sig
type relop = [ `Eq | `Geq | `Gt | `Leq | `Lt | `Neq ]
val string_of_relop : OpamFormula.relop -> string
val relop_of_string : string -> OpamFormula.relop
type atom =
OpamPackage.Name.t * (OpamFormula.relop * OpamPackage.Version.t) option
val string_of_atom : OpamFormula.atom -> string
type 'a conjunction = 'a list
val string_of_conjunction :
('a -> string) -> 'a OpamFormula.conjunction -> string
type 'a disjunction = 'a list
val string_of_disjunction :
('a -> string) -> 'a OpamFormula.disjunction -> string
type 'a cnf = 'a OpamFormula.disjunction OpamFormula.conjunction
type 'a dnf = 'a OpamFormula.conjunction OpamFormula.disjunction
val string_of_cnf : ('a -> string) -> 'a OpamFormula.cnf -> string
val string_of_dnf : ('a -> string) -> 'a OpamFormula.dnf -> string
type 'a formula =
Empty
| Atom of 'a
| Block of 'a OpamFormula.formula
| And of 'a OpamFormula.formula * 'a OpamFormula.formula
| Or of 'a OpamFormula.formula * 'a OpamFormula.formula
val eval : ('a -> bool) -> 'a OpamFormula.formula -> bool
val string_of_formula : ('a -> string) -> 'a OpamFormula.formula -> string
val ands : 'a OpamFormula.formula list -> 'a OpamFormula.formula
val ors : 'a OpamFormula.formula list -> 'a OpamFormula.formula
val map :
('a -> 'b OpamFormula.formula) ->
'a OpamFormula.formula -> 'b OpamFormula.formula
val iter : ('a -> unit) -> 'a OpamFormula.formula -> unit
val fold_left : ('a -> 'b -> 'a) -> 'a -> 'b OpamFormula.formula -> 'a
type t =
(OpamPackage.Name.t *
(OpamFormula.relop * OpamPackage.Version.t) OpamFormula.formula)
OpamFormula.formula
val cnf_of_formula : 'a OpamFormula.formula -> 'a OpamFormula.formula
val dnf_of_formula : 'a OpamFormula.formula -> 'a OpamFormula.formula
val to_atom_formula : OpamFormula.t -> OpamFormula.atom OpamFormula.formula
val of_atom_formula : OpamFormula.atom OpamFormula.formula -> OpamFormula.t
val atoms : OpamFormula.t -> OpamFormula.atom list
val to_string : OpamFormula.t -> string
val to_conjunction :
OpamFormula.t -> OpamFormula.atom OpamFormula.conjunction
val of_conjunction :
OpamFormula.atom OpamFormula.conjunction -> OpamFormula.t
val to_disjunction :
OpamFormula.t -> OpamFormula.atom OpamFormula.disjunction
val of_disjunction :
OpamFormula.atom OpamFormula.disjunction -> OpamFormula.t
val to_cnf : OpamFormula.t -> OpamFormula.atom OpamFormula.cnf
val to_dnf : OpamFormula.t -> OpamFormula.atom OpamFormula.dnf
end