not . not === id +++ OK, passed 2 tests (exhausted). (&&) commutes +++ OK, passed 4 tests (exhausted). (||) commutes +++ OK, passed 4 tests (exhausted). All boolean operators are commutative (wrong). *** Failed! Falsifiable (after 10 tests): \x y -> case (x,y) of (True,False) -> True _ -> False False True All boolean operators are associative (wrong). *** Failed! Falsifiable (after 22 tests): \x y -> case (x,y) of (True,False) -> True _ -> False True False True