diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,9 @@
 *Path IO follows [SemVer](https://semver.org/).*
 
+## Path IO 1.8.2
+
+* Maintenance release, compatibility with GHC 9.6, 9.8, and 9.10.
+
 ## Path IO 1.8.1
 
 * Fixed a “permission denied” error occurring when `copyDirRecur` is used to
diff --git a/Path/IO.hs b/Path/IO.hs
--- a/Path/IO.hs
+++ b/Path/IO.hs
@@ -126,19 +126,19 @@
 import Control.Monad.Trans.Class (lift)
 import Control.Monad.Trans.Maybe (MaybeT (..), runMaybeT)
 import Control.Monad.Trans.Writer.Strict (WriterT, execWriterT, tell)
-import qualified Data.DList as DList
+import Data.DList qualified as DList
 import Data.Either (lefts, rights)
 import Data.Kind (Type)
 import Data.List ((\\))
-import qualified Data.Set as S
+import Data.Set qualified as S
 import Data.Time (UTCTime)
 import Path
-import qualified System.Directory as D
-import qualified System.FilePath as F
+import System.Directory qualified as D
+import System.FilePath qualified as F
 import System.IO (Handle)
 import System.IO.Error (isDoesNotExistError)
-import qualified System.IO.Temp as T
-import qualified System.PosixCompat.Files as P
+import System.IO.Temp qualified as T
+import System.PosixCompat.Files qualified as P
 
 ----------------------------------------------------------------------------
 -- Actions on directories
@@ -487,7 +487,7 @@
 -- traversing symlinked directories, but recreating symlinks in the target
 -- directory according to their targets in the source directory.
 copyDirRecur ::
-  (MonadIO m, MonadCatch m) =>
+  (MonadIO m) =>
   -- | Source
   Path b0 Dir ->
   -- | Destination
@@ -512,7 +512,7 @@
 -- traversing symlinked directories, but recreating symlinks in the target
 -- directory according to their targets in the source directory.
 copyDirRecur' ::
-  (MonadIO m, MonadCatch m) =>
+  (MonadIO m) =>
   -- | Source
   Path b0 Dir ->
   -- | Destination
diff --git a/Setup.hs b/Setup.hs
deleted file mode 100644
--- a/Setup.hs
+++ /dev/null
@@ -1,6 +0,0 @@
-module Main (main) where
-
-import Distribution.Simple
-
-main :: IO ()
-main = defaultMain
diff --git a/path-io.cabal b/path-io.cabal
--- a/path-io.cabal
+++ b/path-io.cabal
@@ -1,11 +1,11 @@
 cabal-version:   2.4
 name:            path-io
-version:         1.8.1
+version:         1.8.2
 license:         BSD-3-Clause
 license-file:    LICENSE.md
 maintainer:      Mark Karpov <markkarpov92@gmail.com>
 author:          Mark Karpov <markkarpov92@gmail.com>
-tested-with:     ghc ==9.0.2 ghc ==9.2.5 ghc ==9.4.4
+tested-with:     ghc ==9.6.5 ghc ==9.8.2 ghc ==9.10.1
 homepage:        https://github.com/mrkkrp/path-io
 bug-reports:     https://github.com/mrkkrp/path-io/issues
 synopsis:        Interface to ‘directory’ package for users of ‘path’
@@ -27,49 +27,48 @@
 
 library
     exposed-modules:  Path.IO
-    default-language: Haskell2010
+    default-language: GHC2021
     build-depends:
-        base >=4.15 && <5.0,
+        base >=4.15 && <5,
         containers,
         directory >=1.3.2.0 && <1.4,
-        dlist >=0.8 && <2.0,
+        dlist >=0.8 && <2,
         exceptions >=0.8 && <0.11,
-        filepath >=1.2 && <1.5,
+        filepath >=1.2 && <1.6,
         path >=0.7.1 && <0.10,
         temporary >=1.1 && <1.4,
-        time >=1.4 && <1.13,
+        time >=1.4 && <1.15,
         transformers >=0.3 && <0.7,
         unix-compat
 
     if flag(dev)
-        ghc-options: -Wall -Werror
+        ghc-options:
+            -Wall -Werror -Wredundant-constraints -Wpartial-fields
+            -Wunused-packages
 
     else
         ghc-options: -O2 -Wall
 
-    if flag(dev)
-        ghc-options:
-            -Wcompat -Wincomplete-record-updates -Wincomplete-uni-patterns
-            -Wnoncanonical-monad-instances
-
 test-suite tests
     type:             exitcode-stdio-1.0
     main-is:          Main.hs
     hs-source-dirs:   tests
-    default-language: Haskell2010
+    default-language: GHC2021
     build-depends:
-        base >=4.15 && <5.0,
-        directory >=1.3.2.0 && <1.4,
+        base >=4.15 && <5,
         exceptions >=0.8 && <0.11,
-        hspec >=2.0 && <3.0,
-        filepath >=1.2 && <1.5,
+        hspec >=2 && <3,
         path >=0.7.1 && <0.10,
         path-io,
-        transformers >=0.3 && <0.7,
         unix-compat
 
     if flag(dev)
-        ghc-options: -Wall -Werror
+        ghc-options:
+            -Wall -Werror -Wredundant-constraints -Wpartial-fields
+            -Wunused-packages
 
     else
         ghc-options: -O2 -Wall
+
+    if impl(ghc >=9.8)
+        ghc-options: -Wno-x-partial
diff --git a/tests/Main.hs b/tests/Main.hs
--- a/tests/Main.hs
+++ b/tests/Main.hs
@@ -166,7 +166,7 @@
 
 -- | Follows symbolic links.
 listDirRecurCyclic ::
-  (MonadIO m, MonadThrow m) =>
+  (MonadIO m) =>
   -- | Directory to list
   Path b Dir ->
   -- | Sub-directories and files
