On 7 October 2015 at 19:25, Rogan Creswick <creswick@gmail.com> wrote:
Then I'd suggest using the quickcheck property guards ( `==>`) to only
generate inputs that are known to be equal, or not equal and test
separately in a few different properties.

This is not true, ==> still does generate and test.

Prelude> import Test.QuickCheck
Prelude Test.QuickCheck> let f x = x == 13 ==> mod x 2 == 1
Prelude Test.QuickCheck> quickCheck f
*** Gave up! Passed only 6 tests. 

Also try verboseCheck to see what values are generated.

Ozgur