prop_commutative :: (Eq b, Show a, Arbitrary a) => (a -> a -> b) -> PropBox
prop_commutative f = atomProp "commutative" prop
  where prop a b = f a b == f b a
prop_commutative :: (Eq b, Show a, Arbitrary a) => (a -> a -> b) -> PropBox
prop_commutative f = atomProp "commutative" prop
  where prop a b = f a b == f b a
prop_commutative f = atomProp "commutative" prop
  where prop a b = f a b == f b a