Module Precedence.Constr
Constraints
type 'a t= private ID.t -> ID.t -> intconstraint 'a = [< `partial | `total ]A partial order on symbols, used to make the precedence more precise.
'aencodes the kind of ordering: partial or total NOTE: the ordering must partition the set of ALL symbols into equivalence classes, within which all symbols are equal, but symbols of distinct equivalence classes are always ordered.
type prec_fun= signature:Signature.t -> ID.t Iter.t -> [ `partial ] t
val arity : prec_fundecreasing arity constraint (big arity => high in precedence)
val invfreq : prec_funsymbols with high frequency are smaller. Elements of unknown frequency are assumed to have a frequency of 0.
val max : prec_funmaximal symbols, in decreasing order
val min : prec_funminimal symbols, in decreasing order
val prec_fun_of_str : string -> prec_funval alpha : [ `total ] talphabetic ordering on symbols, themselves bigger than builtin
val compose : [ `partial ] t -> [< `partial | `total ] as 'a t -> 'a tcompose a busesato compare symbols; ifacannot decide, then we useb.
val compose_sort : (int * [ `partial ] t) list -> [ `partial ] tcompose_sort lsorts the list by increasing priority (the lower, the earlier an ordering is applied, and therefore the more impact it has) before composing