/** * get HashCode for comparing two expressions. Note that this hashcode gives the same result for * (A op B) and for (B op A), whether or not the operator is commutative. */ @Override public int hashCode() { return super.hashCode() ^ targetType.hashCode() ^ targetCardinality; }