Precedence.ConstrSourceA partial order on symbols, used to make the precedence more precise. 'a encodes 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.
decreasing arity constraint (big arity => high in precedence)
symbols with high frequency are smaller. Elements of unknown frequency are assumed to have a frequency of 0.
compose a b uses a to compare symbols; if a cannot decide, then we use b.
compose_sort l sorts the list by increasing priority (the lower, the earlier an ordering is applied, and therefore the more impact it has) before composing