ScalaEquals provides easy to use macros for generating correct equals/hashCode/canEquals
implementations, never look up an equals/hashCode recipe again!
The methods generated from ScalaEquals
are taken directly from Programming in Scala*
and strictly obey the contract of equals: