[Haskell] Haddock, QuickCheck, and Functional Design by Contract