Based on the legacy version of QuickCheck as presented in the paper at the Haskell Workshop 2002