module Test.QuickCheck.Properties where import Test.QuickCheck isIdempotentBy :: ({-Arbitrary a,-} Eq a, Show a) => (a -> a) -> Gen a -> Property isIdempotentBy f src = forAll src $ \a -> f a == f (f a) isIdempotent :: (Arbitrary a, Eq a, Show a) => (a -> a) -> Property isIdempotent f = isIdempotentBy f arbitrary