diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,12 @@
 See also http://pvp.haskell.org/faq
 
+### 0.1.7.1
+
+* Drop support for GHC 7.
+* Drop unused dependency `system-filepath`.
+
+Tested with GHC 8.0 - 9.12.2.
+
 ### 0.1.7.0
 
 * New function `voidContextSSL` for creating a _void_ SSL Context which rejects any TLS handshake attempts
diff --git a/http-common/lib/Network/Http/Internal.hs b/http-common/lib/Network/Http/Internal.hs
--- a/http-common/lib/Network/Http/Internal.hs
+++ b/http-common/lib/Network/Http/Internal.hs
@@ -11,7 +11,6 @@
 
 {-# LANGUAGE BangPatterns       #-}
 {-# LANGUAGE CPP                #-}
-{-# LANGUAGE DeriveDataTypeable #-}
 {-# LANGUAGE OverloadedStrings  #-}
 {-# OPTIONS_HADDOCK hide, prune #-}
 
@@ -75,7 +74,6 @@
 import Data.Int (Int64)
 import Data.List (foldl')
 import Data.Monoid as Mon (mconcat, mempty)
-import Data.Typeable (Typeable)
 import Data.Word (Word16)
 
 {-
@@ -472,6 +470,6 @@
     (original k, v)
 
 data HttpParseException = HttpParseException String
-        deriving (Typeable, Show)
+        deriving (Show)
 
 instance Exception HttpParseException
diff --git a/http-io-streams.cabal b/http-io-streams.cabal
--- a/http-io-streams.cabal
+++ b/http-io-streams.cabal
@@ -1,6 +1,6 @@
 cabal-version:       2.2
 name:                http-io-streams
-version:             0.1.7.0
+version:             0.1.7.1
 
 synopsis:            HTTP and WebSocket client based on io-streams
 description:
@@ -20,8 +20,10 @@
 category:            Web, IO-Streams
 bug-reports:         https://github.com/haskell-hvr/http-io-streams/issues
 
-extra-source-files:
+extra-doc-files:
   CHANGELOG.md
+
+extra-source-files:
   tests/example1.txt
   tests/example2.txt
   tests/example3.txt
@@ -31,8 +33,10 @@
   tests/statler.jpg
 
 tested-with:
-  GHC == 9.8.1
-  GHC == 9.6.4
+  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
@@ -42,7 +46,6 @@
   GHC == 8.4.4
   GHC == 8.2.2
   GHC == 8.0.2
-  -- GHC == 7.10.3
 
 source-repository    head
   type:              git
@@ -60,22 +63,22 @@
 
 common settings
   build-depends:
-    , base                 >= 4.5 && < 5
+    , base                 >= 4.9 && < 5
     , attoparsec          ^>= 0.13.2.2 || ^>= 0.14.4
     , base64-bytestring   ^>= 1.2.1.0
     , blaze-builder       ^>= 0.4.1.0
     , bytestring           >= 0.10.0.0 && < 0.13
     , case-insensitive    ^>= 1.2.0.11
-    , containers           >= 0.5.0.0  && < 0.8
-    , directory           ^>= 1.2.0.1 || ^>= 1.3.0.0
+    , containers           >= 0.5.7.1  && < 0.8
+    , directory           ^>= 1.2.6.2 || ^>= 1.3.0.0
     , HsOpenSSL           ^>= 0.11.2
     , io-streams          ^>= 1.5.0.1
     , mtl                 ^>= 2.2.2   || ^>= 2.3.1
-    , network             ^>= 2.6.0.0 || ^>= 2.7.0.0 || ^>= 2.8.0.0 || ^>= 3.0.0.0 || ^>= 3.1.0.0
-    , network-uri         ^>= 2.6.0.0
+    , network             ^>= 2.6.3.1 || ^>= 2.7.0.0 || ^>= 2.8.0.0 || ^>= 3.0.0.0 || ^>= 3.1.0.0 || ^>= 3.2.0.0
+    , network-uri         ^>= 2.6.1.0
     , openssl-streams     ^>= 1.2.1.3
     , text                ^>= 1.2.3.0 || ^>= 2.0     || ^>= 2.1
-    , transformers        ^>= 0.3.0.0 || ^>= 0.4.2.0 || ^>= 0.5.2.0 || ^>= 0.6.0.4
+    , transformers        ^>= 0.5.2.0 || ^>= 0.6.0.4
 
   default-language:  Haskell2010
   other-extensions:
@@ -92,9 +95,10 @@
 
   ghc-options:
     -Wall
-    -fno-warn-missing-signatures
-    -fno-warn-unused-binds
-    -fno-warn-unused-do-bind
+    -Wcompat
+    -Wno-missing-signatures
+    -Wno-unused-binds
+    -Wno-unused-do-bind
     -funbox-strict-fields
 
 library
@@ -113,7 +117,7 @@
       brotli-streams      ^>= 0.0.0.0
 
   build-depends:
-    , binary              ^>= 0.7.1   || ^>= 0.8.3
+    , binary              ^>= 0.8.3.0
     , cryptohash-sha1     ^>= 0.11.100
 
   hs-source-dirs: http-streams/lib
@@ -158,8 +162,9 @@
   build-depends:
       -- http-io-streams
     , aeson
-    , attoparsec-aeson
     , aeson-pretty
+    , attoparsec-aeson
+    , directory
     , hspec
     , hspec-expectations
     , HUnit
@@ -167,6 +172,4 @@
     , snap
     , snap-core
     , snap-server
-    , system-filepath
-    , directory
     , unordered-containers
diff --git a/http-streams/lib/Network/Http/Client/WebSocket.hs b/http-streams/lib/Network/Http/Client/WebSocket.hs
--- a/http-streams/lib/Network/Http/Client/WebSocket.hs
+++ b/http-streams/lib/Network/Http/Client/WebSocket.hs
@@ -1,5 +1,4 @@
 {-# LANGUAGE BangPatterns       #-}
-{-# LANGUAGE DeriveDataTypeable #-}
 {-# LANGUAGE NamedFieldPuns     #-}
 {-# LANGUAGE OverloadedStrings  #-}
 {-# LANGUAGE RecordWildCards    #-}
@@ -69,7 +68,6 @@
 import           Data.IORef
 import           Data.Maybe               (isJust)
 import           Data.Monoid              (Monoid (..))
-import           Data.Typeable            (Typeable)
 import           Data.Word
 import           Data.XOR                 (xor32LazyByteString, xor32StrictByteString')
 import           Network.Http.Client      as HC
@@ -83,7 +81,7 @@
 --
 -- @since 0.1.4.0
 data WsException = WsException String
-  deriving (Typeable,Show)
+  deriving (Show)
 
 instance Exception WsException
 
@@ -618,4 +616,3 @@
       success resp conn
   where
     abort msg = throwIO (WsException ("wsUpgradeConnection: "++msg))
-
diff --git a/http-streams/lib/Network/Http/Connection.hs b/http-streams/lib/Network/Http/Connection.hs
--- a/http-streams/lib/Network/Http/Connection.hs
+++ b/http-streams/lib/Network/Http/Connection.hs
@@ -10,7 +10,6 @@
 -- the BSD licence.
 --
 
-{-# LANGUAGE DeriveDataTypeable #-}
 {-# LANGUAGE DoAndIfThenElse    #-}
 {-# LANGUAGE OverloadedStrings  #-}
 {-# OPTIONS_HADDOCK hide, not-home #-}
diff --git a/http-streams/lib/Network/Http/Inconvenience.hs b/http-streams/lib/Network/Http/Inconvenience.hs
--- a/http-streams/lib/Network/Http/Inconvenience.hs
+++ b/http-streams/lib/Network/Http/Inconvenience.hs
@@ -12,7 +12,6 @@
 
 {-# LANGUAGE BangPatterns       #-}
 {-# LANGUAGE CPP                #-}
-{-# LANGUAGE DeriveDataTypeable #-}
 {-# LANGUAGE MagicHash          #-}
 {-# LANGUAGE OverloadedStrings  #-}
 {-# OPTIONS_HADDOCK hide, not-home #-}
@@ -62,7 +61,6 @@
 import Data.List (intersperse)
 import qualified Data.Text as T
 import qualified Data.Text.Encoding as T
-import Data.Typeable (Typeable)
 import Data.Word (Word16)
 import GHC.Exts (Int(..), word2Int#, uncheckedShiftRL#)
 #if MIN_VERSION_base(4,16,0)
@@ -78,10 +76,6 @@
 import qualified System.IO.Streams as Streams
 import System.IO.Unsafe (unsafePerformIO)
 
-#if !MIN_VERSION_base(4,8,0)
-import Data.Monoid (Monoid (..), mappend)
-#endif
-
 import Network.Http.Connection
 import Network.Http.RequestBuilder
 import Network.Http.Types
@@ -603,7 +597,7 @@
 
 
 data TooManyRedirects = TooManyRedirects Int
-        deriving (Typeable, Show, Eq)
+        deriving (Show, Eq)
 
 instance Exception TooManyRedirects
 
@@ -765,7 +759,6 @@
     m = getStatusMessage p
 
 data HttpClientError = HttpClientError Int ByteString
-        deriving (Typeable)
 
 instance Exception HttpClientError
 
diff --git a/http-streams/lib/Network/Http/ResponseParser.hs b/http-streams/lib/Network/Http/ResponseParser.hs
--- a/http-streams/lib/Network/Http/ResponseParser.hs
+++ b/http-streams/lib/Network/Http/ResponseParser.hs
@@ -17,7 +17,6 @@
 
 {-# LANGUAGE BangPatterns       #-}
 {-# LANGUAGE CPP                #-}
-{-# LANGUAGE DeriveDataTypeable #-}
 {-# LANGUAGE OverloadedStrings  #-}
 {-# OPTIONS_HADDOCK hide, not-home #-}
 
@@ -42,7 +41,6 @@
 import Data.CaseInsensitive (mk)
 import Data.Char (ord)
 import Data.Int (Int64)
-import Data.Typeable (Typeable)
 import System.IO.Streams (Generator, InputStream)
 import qualified System.IO.Streams as Streams
 import qualified System.IO.Streams.Attoparsec as Streams
@@ -174,7 +172,7 @@
 {-# INLINE readDecimal #-}
 
 data UnexpectedCompression = UnexpectedCompression String
-        deriving (Typeable, Show)
+        deriving (Show)
 
 instance Exception UnexpectedCompression
 
diff --git a/http-streams/lib/Network/Http/Utilities.hs b/http-streams/lib/Network/Http/Utilities.hs
--- a/http-streams/lib/Network/Http/Utilities.hs
+++ b/http-streams/lib/Network/Http/Utilities.hs
@@ -19,7 +19,6 @@
 --
 
 {-# LANGUAGE BangPatterns       #-}
-{-# LANGUAGE DeriveDataTypeable #-}
 {-# LANGUAGE MagicHash          #-}
 {-# LANGUAGE OverloadedStrings  #-}
 {-# LANGUAGE Rank2Types         #-}
diff --git a/tests/MockServer.hs b/tests/MockServer.hs
--- a/tests/MockServer.hs
+++ b/tests/MockServer.hs
@@ -10,16 +10,9 @@
 
 {-# LANGUAGE OverloadedStrings #-}
 {-# LANGUAGE PackageImports    #-}
-{-# OPTIONS -fno-warn-dodgy-imports #-}
 
 module MockServer (runMockServer, localPort) where
 
-{-
-    Per http://hackage.haskell.org/trac/ghc/ticket/7167, we suppress
-    the warning resulting from this line, necessary on <7.6
--}
-import Prelude hiding (catch)
-
 import Control.Applicative
 import Control.Concurrent (forkIO, threadDelay)
 import Control.Exception (SomeException)
@@ -320,5 +313,3 @@
         hPutStrLn stderr ""
         hPutStrLn stderr cs
         hFlush stderr
-
-
diff --git a/tests/TestSuite.hs b/tests/TestSuite.hs
--- a/tests/TestSuite.hs
+++ b/tests/TestSuite.hs
@@ -10,7 +10,7 @@
 
 {-# LANGUAGE DeriveGeneric     #-}
 {-# LANGUAGE OverloadedStrings #-}
-{-# OPTIONS -fno-warn-unused-imports #-}
+{-# OPTIONS -Wno-unused-imports #-}
 
 module TestSuite where
 
diff --git a/tests/check.hs b/tests/check.hs
--- a/tests/check.hs
+++ b/tests/check.hs
@@ -9,7 +9,7 @@
 --
 
 {-# LANGUAGE OverloadedStrings #-}
-{-# OPTIONS -fno-warn-unused-imports #-}
+{-# OPTIONS -Wno-unused-imports #-}
 
 module Main where
 
