Value Equality in Java java.lang.Object.equals(Object) has a number of problems. This project is a presentation that proposes and alternative. Check the java and haskell src and the powerpoint/pdf file for presentation.