Consistency Requirements - Object Identity, Equality, and Hashing | OneNoughtOne