Loop detection: before expanding a haz formula, see whether it is a duplicate
and, if so, delete it.
Recursion detection: transitivity and similar rules, when applied, put the
new formulae at the end of a branch and not at the front (in effect).
signature Mask_sig =
sig
datatype 'a binding = |-> of ('a * 'a) (* infix 7 |->; *)
type mask
val ERR : mask
end