diff --git a/src/Test/Invariant.hs b/src/Test/Invariant.hs
--- a/src/Test/Invariant.hs
+++ b/src/Test/Invariant.hs
@@ -3,7 +3,7 @@
 import Test.QuickCheck
 
 infix 1 <=>, &>
-infix 2 <~~, @~>
+infix 2 <~~, @~>, <?>
 
 -- | Defines extensional equality.  This allows concise, point-free,
 -- definitions of laws.  For example idempotence:
@@ -220,3 +220,12 @@
 -- +++ OK, passed 100 tests.
 (@~>) :: Eq a => (b -> a) -> (a -> b) -> a -> Bool
 f @~> g = f . g <=> id
+
+-- | Checks whether two functions commutate.
+--
+-- > f(g(x)) = g(f(x))
+--
+-- >>> quickCheck $ (*7) <?> abs
+-- +++ OK, passed 100 tests.
+(<?>) :: Eq a => (a -> a) -> (a -> a) -> a -> Bool
+f <?> g = f . g <=> g . f
diff --git a/test-invariant.cabal b/test-invariant.cabal
--- a/test-invariant.cabal
+++ b/test-invariant.cabal
@@ -1,5 +1,5 @@
 name:                test-invariant
-version:             0.4.2.0
+version:             0.4.3.0
 synopsis:            Provide common invariants to be checked with QuickCheck
 
 description: test-invariant is a library for providing common invariants of
