diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,4 +1,12 @@
 
+0.0.0.3
+-------
+
+_Andreas Abel, 2025-09-01_
+
+- Stop deriving `Typeable` (obsolete since GHC 7.10).
+- Tested with GHC 8.0 - 9.14 alpha1.
+
 0.0.0.2
 -------
 
diff --git a/brotli.cabal b/brotli.cabal
--- a/brotli.cabal
+++ b/brotli.cabal
@@ -1,7 +1,7 @@
-cabal-version:       1.12
+cabal-version:       1.18
 build-type:          Simple
 name:                brotli
-version:             0.0.0.2
+version:             0.0.0.3
 
 synopsis:            Brotli (RFC7932) compression and decompression
 homepage:            https://github.com/haskell-hvr/brotli
@@ -31,9 +31,11 @@
     .
 
 tested-with:
-  GHC == 9.10.1
-  GHC == 9.8.2
-  GHC == 9.6.5
+  GHC == 9.14.1
+  GHC == 9.12.2
+  GHC == 9.10.2
+  GHC == 9.8.4
+  GHC == 9.6.7
   GHC == 9.4.8
   GHC == 9.2.8
   GHC == 9.0.2
@@ -44,9 +46,22 @@
   GHC == 8.2.2
   GHC == 8.0.2
 
-extra-source-files:
+extra-doc-files:
   CHANGELOG.md
+
+extra-source-files:
   cbits/hs_brotli.h
+  stack-9.12.yaml
+  stack-9.10.yaml
+  stack-9.8.yaml
+  stack-9.6.yaml
+  stack-9.4.yaml
+  stack-9.2.yaml
+  stack-9.0.yaml
+  stack-8.10.yaml
+  stack-8.8.yaml
+  stack-8.6.yaml
+  stack-8.4.yaml
 
 source-repository head
   type:     git
@@ -84,9 +99,8 @@
                      , base
                      , bytestring
   -- additional dependencies that require version bounds
-  build-depends:       HUnit                       == 1.6.*
-                     , QuickCheck                  >= 2.14    && < 2.16
-                     , tasty                       >= 1.2     && < 1.6
+  build-depends:       tasty                       >= 1.1.0.4 && < 1.6
+                         -- LTS 12.26 has tasty-1.1.0.4
                      , tasty-hunit                 == 0.10.*
                      , tasty-quickcheck            >= 0.10    && < 1
 
diff --git a/src/Codec/Compression/Brotli.hs b/src/Codec/Compression/Brotli.hs
--- a/src/Codec/Compression/Brotli.hs
+++ b/src/Codec/Compression/Brotli.hs
@@ -1,6 +1,5 @@
 {-# LANGUAGE BangPatterns       #-}
 {-# LANGUAGE CPP                #-}
-{-# LANGUAGE DeriveDataTypeable #-}
 {-# LANGUAGE Trustworthy        #-}
 
 -- Copyright (C) 2016  Herbert Valerio Riedel
@@ -87,10 +86,6 @@
 import qualified Data.ByteString               as BS
 import qualified Data.ByteString.Lazy          as BSL
 import qualified Data.ByteString.Lazy.Internal as BSL
-#if !MIN_VERSION_base(4,8,0)
-import           Data.Monoid                   (Monoid (mempty))
-#endif
-import           Data.Typeable                 (Typeable)
 import           GHC.IO                        (noDuplicate)
 
 import           LibBrotli
@@ -99,7 +94,7 @@
 --
 -- Note that 'BrotliDecoderErrorCode' will be thrown instead of
 -- 'BrotliException' when possible.
-newtype BrotliException = BrotliException String deriving (Typeable,Show)
+newtype BrotliException = BrotliException String deriving (Show)
 
 instance Exception BrotliException
 
diff --git a/src/LibBrotli.hsc b/src/LibBrotli.hsc
--- a/src/LibBrotli.hsc
+++ b/src/LibBrotli.hsc
@@ -1,6 +1,5 @@
 {-# LANGUAGE BangPatterns       #-}
 {-# LANGUAGE CApiFFI            #-}
-{-# LANGUAGE DeriveDataTypeable #-}
 {-# LANGUAGE RecordWildCards    #-}
 
 -- Copyright (C) 2016  Herbert Valerio Riedel
@@ -38,7 +37,6 @@
 import           Control.Monad.ST.Strict (ST)
 import           Control.Monad.ST.Unsafe (unsafeIOToST)
 import           Data.ByteString (ByteString)
-import           Data.Typeable (Typeable)
 import           Foreign
 import           Foreign.C
 import           System.IO.Unsafe as Unsafe (unsafePerformIO)
@@ -70,7 +68,7 @@
 ----------------------------------------------------------------------------
 
 -- | Errors signalled by the Brotli decoder. Use 'showBrotliDecoderErrorCode' to convert the numeric code into an error message.
-newtype BrotliDecoderErrorCode = BrotliDecoderErrorCode Int deriving (Eq,Show,Typeable)
+newtype BrotliDecoderErrorCode = BrotliDecoderErrorCode Int deriving (Eq, Show)
 
 instance Exception BrotliDecoderErrorCode
 
@@ -286,7 +284,7 @@
     = CompressionModeGeneric -- ^ Format-agnostic default mode
     | CompressionModeText    -- ^ UTF-8 formatted text data
     | CompressionModeFont    -- ^ Compression mode used in WOFF 2.0
-    deriving (Eq,Read,Show,Typeable)
+    deriving (Eq, Read, Show)
 
 -- | Compression quality setting
 data CompressionLevel
@@ -302,7 +300,7 @@
     | CompressionLevel9
     | CompressionLevel10
     | CompressionLevel11 -- ^ slowest/highest compression level (default)
-    deriving (Eq,Ord,Read,Show,Enum,Typeable,Bounded)
+    deriving (Eq, Ord, Read, Show, Enum, Bounded)
 
 -- | Recommended sliding LZ77 window size.
 --
@@ -324,7 +322,7 @@
     | CompressionWindowBits22 -- ^ 4194288 bytes (default)
     | CompressionWindowBits23 -- ^ 8388592 bytes
     | CompressionWindowBits24 -- ^ 16777200 bytes
-    deriving (Eq,Ord,Read,Show,Typeable,Bounded)
+    deriving (Eq, Ord, Read, Show, Bounded)
 
 -- | This 'Enum' instance is offset by 10.
 --
diff --git a/stack-8.10.yaml b/stack-8.10.yaml
new file mode 100644
--- /dev/null
+++ b/stack-8.10.yaml
@@ -0,0 +1,1 @@
+resolver: lts-18.28
diff --git a/stack-8.4.yaml b/stack-8.4.yaml
new file mode 100644
--- /dev/null
+++ b/stack-8.4.yaml
@@ -0,0 +1,1 @@
+resolver: lts-12.26
diff --git a/stack-8.6.yaml b/stack-8.6.yaml
new file mode 100644
--- /dev/null
+++ b/stack-8.6.yaml
@@ -0,0 +1,1 @@
+resolver: lts-14.27
diff --git a/stack-8.8.yaml b/stack-8.8.yaml
new file mode 100644
--- /dev/null
+++ b/stack-8.8.yaml
@@ -0,0 +1,1 @@
+resolver: lts-16.31
diff --git a/stack-9.0.yaml b/stack-9.0.yaml
new file mode 100644
--- /dev/null
+++ b/stack-9.0.yaml
@@ -0,0 +1,1 @@
+resolver: lts-19.33
diff --git a/stack-9.10.yaml b/stack-9.10.yaml
new file mode 100644
--- /dev/null
+++ b/stack-9.10.yaml
@@ -0,0 +1,1 @@
+resolver: lts-24.8
diff --git a/stack-9.12.yaml b/stack-9.12.yaml
new file mode 100644
--- /dev/null
+++ b/stack-9.12.yaml
@@ -0,0 +1,1 @@
+resolver: nightly-2025-09-01
diff --git a/stack-9.2.yaml b/stack-9.2.yaml
new file mode 100644
--- /dev/null
+++ b/stack-9.2.yaml
@@ -0,0 +1,9 @@
+resolver: lts-20.26
+
+extra-deps:
+- attoparsec-aeson-2.1.0.0
+- snap-1.1.3.3
+- snap-core-1.0.5.1
+- snap-server-1.1.2.1
+- heist-1.1.1.2
+- readable-0.3.1
diff --git a/stack-9.4.yaml b/stack-9.4.yaml
new file mode 100644
--- /dev/null
+++ b/stack-9.4.yaml
@@ -0,0 +1,5 @@
+resolver: lts-21.25
+
+extra-deps:
+- snap-1.1.3.3
+- snap-server-1.1.2.1
diff --git a/stack-9.6.yaml b/stack-9.6.yaml
new file mode 100644
--- /dev/null
+++ b/stack-9.6.yaml
@@ -0,0 +1,1 @@
+resolver: lts-22.44
diff --git a/stack-9.8.yaml b/stack-9.8.yaml
new file mode 100644
--- /dev/null
+++ b/stack-9.8.yaml
@@ -0,0 +1,1 @@
+resolver: lts-23.28
