diff --git a/converge.cabal b/converge.cabal
--- a/converge.cabal
+++ b/converge.cabal
@@ -1,5 +1,5 @@
 name:                   converge
-version:                0.1
+version:                0.1.0.1
 stability:              provisional
 
 cabal-version:          >= 1.6
@@ -14,10 +14,15 @@
 synopsis:               Limit operations for converging sequences
 description:            Limit operations for converging sequences.  This is
                         fairly simple right now.
+                        .
+                        Changes in 0.1.0.1: Nothing except to enable -XSafe under
+                        GHC 7.2.1
 
 tested-with:            GHC == 6.8.3,
                         GHC == 6.10.4,
-                        GHC == 6.12.1, GHC == 6.12.3
+                        GHC == 6.12.1, GHC == 6.12.3,
+                        GHC == 7.0.4,
+                        GHC == 7.2.1
 
 source-repository head
   type: darcs
@@ -27,3 +32,5 @@
   hs-source-dirs:       src
   exposed-modules:      Math.Sequence.Converge
   build-depends:        base >= 3 && <5
+  if impl(ghc >= 7.2)
+    ghc-options:        -trust base
diff --git a/src/Math/Sequence/Converge.hs b/src/Math/Sequence/Converge.hs
--- a/src/Math/Sequence/Converge.hs
+++ b/src/Math/Sequence/Converge.hs
@@ -1,3 +1,7 @@
+{-# LANGUAGE CPP #-}
+#if defined(__GLASGOW_HASKELL__) && __GLASGOW_HASKELL__ >= 702
+{-# LANGUAGE Safe #-}
+#endif
 module Math.Sequence.Converge where
 
 import Data.List
@@ -10,9 +14,10 @@
 -- pair is returned) .  If the list ends before a match is found, 
 -- returns the last element of the list.
 converge :: Eq a => [a] -> a
-converge = fromMaybe empty . convergeBy eq Just
+converge [] = error "converge: empty list"
+converge xs = fromMaybe empty (convergeBy eq Just xs)
     where
-        empty = error "converge: empty list"
+        empty = error "converge: programming error in converge implementation"
         
         eq (a:b:_)
             | a == b        = Just b
@@ -32,9 +37,10 @@
 -- > phi :: Rational
 -- > phi = convergeTo 1e-100 0 (iterate (\x -> (x*x + 1) / (2*x-1)) 1)
 convergeTo :: (Fractional a, Ord a) => a -> a -> [a] -> a
-convergeTo absEps relEps = fromMaybe empty . convergeBy eq Just
+convergeTo absEps relEps [] = error "convergeTo: empty list"
+convergeTo absEps relEps xs = fromMaybe empty (convergeBy eq Just xs)
     where
-        empty = error "convergeTo: empty list"
+        empty = error "convergeTo: programming error in convergeTo implementation"
         eq (a:b:_)
             | b /= b                            = Just a
             | absDiff <= abs absEps             = Just b
