The specification of a class in Haskell often starts with
stating, in text, the laws that should be satisfied by methods
defined in instances of the class, followed by the type of the
methods of the class. The ClassLaws library is a framework that
supports testing such class laws using QuickCheck. Our framework is
a light-weight class law testing framework, which requires a limited
amount of work per class law, and per datatype for which the class
law is tested. We also show how to test class laws with
partially-defined values. Using partially-defined values, we show
that the standard lazy and strict implementations of the state monad
do not satisfy the expected laws. More information can be found at
http://wiki.portal.chalmers.se/cse/pmwiki.php/FP/ClassLaws. Built
with ghc-7.4.2 and ghc-7.6.1. (Fails to build with ghc-7.2.2 due to
http://hackage.haskell.org/trac/ghc/ticket/5745. Could be worked
around.)