diff --git a/Algebra.hs b/Algebra.hs
--- a/Algebra.hs
+++ b/Algebra.hs
@@ -115,3 +115,6 @@
 
 (/) :: (Semigroup (Product a), Group (Product a)) => a -> a -> a
 a / b = getProduct (Product a <> invert (Product b))
+
+commuteWith :: Group b => (a -> a -> b) -> a -> a -> b
+commuteWith f x y = f x y <> invert (f y x)
diff --git a/alg.cabal b/alg.cabal
--- a/alg.cabal
+++ b/alg.cabal
@@ -1,5 +1,5 @@
 name:                alg
-version:             0.2.3.0
+version:             0.2.4.0
 synopsis:            Algebraic structures
 -- description:         
 license:             BSD3
