let cmp_universality (first: pureness) (second: pureness) : int =
(* as few parameters as possible *)
if first.pars < second.pars then
-1
else if first.pars > second.pars then
1
else
(* as many variables as possible -
this check is supposed to be done for terms of equal term weight only,
so this prefers smaller/shallower predicates/terms *)
compare second.vars first.vars