int getPartialHashCode(boolean unknowns, boolean varStates) { int hash = (getNonTrivialEqClasses().hashCode() * 31 + getDistinctClassPairs().hashCode()) * 31 + myStack.hashCode(); if (varStates) { hash = hash * 31 + myVariableStates.hashCode(); } if (unknowns && !myUnknownVariables.isEmpty()) { hash = hash * 31 + myUnknownVariables.hashCode(); } return hash; }