scalaz
Demonstrates how to write an assertion method that depends on Equal, how to provide Equal instances for your own types, and the many static errors you can catch when comparing apples and oranges.