An alternate equivalence relation
between objects. The standard interpretation will be structural
equality. We also demand that if x.equivTo(y), then x.equivHashCode() ==
y.equivHashCode.
Returns a (not necessarily fixed) hash code for this object.
This hash code coincides with equivTo; it is undefined in the
presence of mutable objects.