diff --git a/Data/Symbol.hs b/Data/Symbol.hs
--- a/Data/Symbol.hs
+++ b/Data/Symbol.hs
@@ -1,11 +1,11 @@
+{-# LANGUAGE Trustworthy #-}
+
 -- |
 -- Module      :  Data.Symbol
 -- Copyright   :  (c) Harvard University 2009-2011
---             :  (c) Geoffrey Mainland 2011-2013
+--             :  (c) Geoffrey Mainland 2011-2014
 -- License     :  BSD-style
--- Maintainer  :  mainland@eecs.harvard.edu
-
-{-# LANGUAGE Trustworthy #-}
+-- Maintainer  :  Geoffrey Mainland <mainland@cs.drexel.edu>
 
 module Data.Symbol (
     Symbol,
diff --git a/Data/Symbol/Unsafe.hs b/Data/Symbol/Unsafe.hs
--- a/Data/Symbol/Unsafe.hs
+++ b/Data/Symbol/Unsafe.hs
@@ -1,12 +1,12 @@
+{-# LANGUAGE CPP #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+
 -- |
 -- Module      :  Data.Symbol.Unsafe
 -- Copyright   :  (c) Harvard University 2009-2011
---             :  (c) Geoffrey Mainland 2011-2013
+--             :  (c) Geoffrey Mainland 2011-2014
 -- License     :  BSD-style
--- Maintainer  :  mainland@eecs.harvard.edu
-
-{-# LANGUAGE CPP #-}
-{-# LANGUAGE DeriveDataTypeable #-}
+-- Maintainer  :  Geoffrey Mainland <mainland@cs.drexel.edu>
 
 module Data.Symbol.Unsafe (
     Symbol(..),
@@ -16,10 +16,11 @@
 
 import Control.Concurrent.MVar
 import Control.DeepSeq
-import Data.Generics (Data, Typeable)
+import Data.Data (Data)
 #if __GLASGOW_HASKELL__ >= 608
 import Data.String
 #endif /* __GLASGOW_HASKELL__ >= 608 */
+import Data.Typeable (Typeable)
 import qualified Data.Map as Map
 import System.IO.Unsafe (unsafePerformIO)
 
@@ -36,7 +37,10 @@
     compare (Symbol i1 _) (Symbol i2 _) = compare i1 i2
 
 instance Show Symbol where
-    showsPrec _ (Symbol _ s) = showString s
+    showsPrec d (Symbol _ s) = showsPrec d s
+
+instance Read Symbol where
+    readsPrec d t = [(intern s, t') | (s, t') <- readList t]
 
 #if __GLASGOW_HASKELL__ >= 608
 instance IsString Symbol where
diff --git a/LICENSE b/LICENSE
--- a/LICENSE
+++ b/LICENSE
@@ -25,7 +25,7 @@
 OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 SUCH DAMAGE.
 
-Copyright (c) 2011-2014, Geoffrey Mainland
+Copyright (c) 2011-2022, Geoffrey Mainland
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without modification,
diff --git a/symbol.cabal b/symbol.cabal
--- a/symbol.cabal
+++ b/symbol.cabal
@@ -1,19 +1,31 @@
 name:           symbol
-version:        0.2.1
-cabal-version:  >= 1.6
+version:        0.2.4.1
+cabal-version:  >= 1.10
 license:        BSD3
 license-file:   LICENSE
 copyright:      (c) 2006-2011 Harvard University
-		(c) 2011-2014 Geoffrey Mainland
-author:         Geoffrey Mainland <mainland@cs.drexel.edu>
-maintainer:     mainland@cs.drexel.edu
+                (c) 2011-2024 Geoffrey Mainland
+author:         Geoffrey Mainland <mainland@drexel.edu>
+maintainer:     Geoffrey Mainland <mainland@drexel.edu>
 stability:      alpha
-homepage:       http://www.cs.drexel.edu/~mainland/
+homepage:       https://github.com/mainland/symbol
 category:       Data
 synopsis:       A 'Symbol' type for fast symbol comparison.
 description:    Provides a 'Symbol' data type allowing fast symbol comparisons
                 and functions for interning symbols and recovering their
                 'String' representation.
+tested-with:    GHC==8.0.2,
+                GHC==8.2.2,
+                GHC==8.4.3,
+                GHC==8.6.5,
+                GHC==8.8.4,
+                GHC==8.10.7,
+                GHC==9.0.2,
+                GHC==9.2.2,
+                GHC==9.4.8,
+                GHC==9.6.4,
+                GHC==9.8.2,
+                GHC==9.10.1
 
 build-type:     Simple
 
@@ -24,9 +36,10 @@
 
   build-depends:
     base       >= 4   && < 5,
-    containers >= 0.2 && < 0.6,
-    deepseq    >= 1.0 && < 2.0,
-    syb        >= 0.1 && < 0.5
+    containers >= 0.2 && < 0.8,
+    deepseq    >= 1.0 && < 2.0
+
+  default-language: Haskell2010
 
 source-repository head
   type:     git
