When your data has many invariants, it's often difficult to write Arbitrary
instances for QuickCheck. This library attempts to solve that
problem by providing a nice interface to write QuickCheck tests without using
Arbitrary instances. It aims to be somewhere in the middle between
HUnit and QuickCheck: Use the random test case generation of QuickCheck, but write
HUnit like assertions.