It splits the dependency of toString from hashCode that prevents keeping hashCode when toString is used.