Fix equality comparison for Domains.
Two different domains can have the same hash. There's a small chance that two
different strings have the same hash. This means that, if S1 and S2 are two
such strings; the domains
[('f', '=', S1)] and
[('f', '=', S2)] will
have the same hash, but the two domains are not equal in any possible
We need to find a hash function that ensures that it has the same value for equal domains, but not base eq on the hash.