diff --git a/src/Data/UniformPair.hs b/src/Data/UniformPair.hs
--- a/src/Data/UniformPair.hs
+++ b/src/Data/UniformPair.hs
@@ -21,7 +21,7 @@
 -- on (a,b) look like it has this same eager in base 4.8.
 
 module Data.UniformPair
-  ( Pair(..), fstP,sndP, firstP, secondP, getP, onElemP, compareSwap
+  ( Pair(..), fstP,sndP, firstP, secondP, getP, onElemP, swapP, compareSwap
   ) where
 
 import Data.Monoid (Monoid(..),(<>))
@@ -100,6 +100,10 @@
 getP :: Bool -> Pair a -> a
 getP False = fstP
 getP True  = sndP
+
+-- | Swap the elements of a 'Pair'
+swapP :: Pair a -> Pair a
+swapP (a :# b) = b :# a
 
 -- Compare and swap
 compareSwap :: Ord a => Pair a -> Pair a
diff --git a/uniform-pair.cabal b/uniform-pair.cabal
--- a/uniform-pair.cabal
+++ b/uniform-pair.cabal
@@ -1,5 +1,5 @@
 Name:                uniform-pair
-Version:             0.1.10
+Version:             0.1.11
 Cabal-Version:       >= 1.6
 Synopsis:            Uniform pairs with class instances
 Category:            Data
