As a working example, discipline could provide an "AnyRefLaws" implementation that checks the behavior of the default equals and hashCode methods.
In particular, the implementation could work from:
- a
makeClone method that creates a deep copy of an instance,
- two particular instances that are guaranteed to compare as
!= with differing hashCode.
See for example: https://github.com/denisrosset/alasc/blob/master/scalacheck-binding/src/main/scala/net.alasc/laws/AnyRefLaws.scala
I'd gladly provide a PR if there is interest.