Doesn't this make compareTo and equals inconsistent?