The quickCheck
function tests a property on 100 random inputs.
ghci> quickCheck prop_reverseDoesNotChangeLength
+++ OK, passed 100 tests.
If a property fails for some input, quickCheck
prints out a counterexample.
prop_reverseIsAlwaysEmpty xs = reverse xs == [] -- plainly not true for all xs
ghci> quickCheck prop_reverseIsAlwaysEmpty
*** Failed! Falsifiable (after 2 tests):
[()]