diff --git a/Data/Symbol.hs b/Data/Symbol.hs
--- a/Data/Symbol.hs
+++ b/Data/Symbol.hs
@@ -44,6 +44,7 @@
   ) where
 
 import Control.Concurrent.MVar
+import Control.DeepSeq
 import Data.Generics (Data, Typeable)
 #if __GLASGOW_HASKELL__ >= 608
 import Data.String
@@ -87,7 +88,7 @@
 -- |Intern a string to produce a 'Symbol'.
 intern :: String -> Symbol
 {-# NOINLINE intern #-}
-intern s = s `seq` unsafePerformIO $ modifyMVar symbolEnv $ \env -> do
+intern s = s `deepseq` unsafePerformIO $ modifyMVar symbolEnv $ \env -> do
     case Map.lookup s (symbols env) of
       Nothing  -> do let sym  = Symbol (uniq env) s
                      let env' = env { uniq    = uniq env + 1,
diff --git a/symbol.cabal b/symbol.cabal
--- a/symbol.cabal
+++ b/symbol.cabal
@@ -1,5 +1,5 @@
 name:           symbol
-version:        0.1.2.1
+version:        0.1.3
 cabal-version:  >= 1.6
 license:        BSD3
 license-file:   LICENSE
@@ -23,6 +23,7 @@
   build-depends:
     base >= 4 && < 5,
     containers >= 0.2 && < 0.5,
+    deepseq >=1.0 && <2.0,
     syb >= 0.1 && < 0.4
 
 source-repository head
