prop_annihilation :: (Eq a, Show a, Arbitrary a) => a -> (a -> a -> a) -> PropBox
prop_annihilation an f = atomProp "annihilation" prop
  where prop x = f an x == an && an == f x an
prop_annihilation :: (Eq a, Show a, Arbitrary a) => a -> (a -> a -> a) -> PropBox
prop_annihilation an f = atomProp "annihilation" prop
  where prop x = f an x == an && an == f x an
prop_annihilation an f = atomProp "annihilation" prop
  where prop x = f an x == an && an == f x an