diff --git a/src/Data/UniformPair.hs b/src/Data/UniformPair.hs
--- a/src/Data/UniformPair.hs
+++ b/src/Data/UniformPair.hs
@@ -24,6 +24,7 @@
 import Data.Foldable (Foldable(..))
 import Data.Traversable (Traversable(..))
 import Control.Applicative (Applicative(..)) -- ,liftA2
+import Control.DeepSeq (NFData(..))
 
 import Text.ShowF (ShowF(..))
 
@@ -34,6 +35,9 @@
 
 -- instance Traversable Pair where sequenceA (u :# v) = (:#) <$> u <*> v
 
+instance NFData a => NFData (Pair a) where
+    rnf (a :# b) = rnf a `seq` rnf b
+
 instance ShowF Pair where
   showsPrecF = showsPrec
 
@@ -89,8 +93,8 @@
 -- | Extract an element, indexing by 'False' for the first element and 'True'
 -- for the second.
 getP :: Bool -> Pair a -> a
-getP False (a :# _) = a
-getP True  (_ :# b) = b
+getP False = fstP
+getP True  = sndP
 
 -- 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.8
+Version:             0.1.9
 Cabal-Version:       >= 1.6
 Synopsis:            Uniform pairs with class instances
 Category:            Data
@@ -22,7 +22,7 @@
 Library
   hs-Source-Dirs:      src
   Extensions:
-  Build-Depends:       base<5, ShowF
+  Build-Depends:       base<5, ShowF, deepseq
   Exposed-Modules:     
                        Data.UniformPair
   ghc-options:         -Wall
