diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,8 @@
 # Changelog for the [`ghc-typelits-extra`](http://hackage.haskell.org/package/ghc-typelits-extra) package
 
+# 0.4.6 *October 10th 2023*
+* Support for GHC-9.8.1
+
 # 0.4.5 *February 20th 2023*
 * Support for GHC-9.6.0.20230210
 
diff --git a/ghc-typelits-extra.cabal b/ghc-typelits-extra.cabal
--- a/ghc-typelits-extra.cabal
+++ b/ghc-typelits-extra.cabal
@@ -1,5 +1,5 @@
 name:                ghc-typelits-extra
-version:             0.4.5
+version:             0.4.6
 synopsis:            Additional type-level operations on GHC.TypeLits.Nat
 description:
   Additional type-level operations on @GHC.TypeLits.Nat@:
@@ -48,8 +48,8 @@
                      CHANGELOG.md
 cabal-version:       >=1.10
 tested-with:         GHC == 8.0.2, GHC == 8.2.2, GHC == 8.4.4, GHC == 8.6.5,
-                     GHC == 8.8.4, GHC == 8.10.7, GHC == 9.0.2, GHC == 9.2.6,
-                     GHC == 9.4.4, GHC == 9.6.1
+                     GHC == 8.8.4, GHC == 8.10.7, GHC == 9.0.2, GHC == 9.2.8,
+                     GHC == 9.4.7, GHC == 9.6.3, GHC == 9.8.1
 
 
 source-repository head
@@ -69,7 +69,7 @@
                        GHC.TypeLits.Extra.Solver.Operations
   build-depends:       base                      >= 4.8     && <5,
                        containers                >= 0.5.7.1 && <0.7,
-                       ghc                       >= 7.10    && <9.8,
+                       ghc                       >= 7.10    && <9.10,
                        ghc-prim                  >= 0.5     && <1.0,
                        ghc-tcplugins-extra       >= 0.3.1,
                        ghc-typelits-knownnat     >= 0.7.2   && <0.8,
@@ -82,7 +82,7 @@
   hs-source-dirs:      src
   if impl(ghc >= 8.0) && impl(ghc < 9.4)
     hs-source-dirs:    src-pre-ghc-9.4
-  if impl(ghc >= 9.4) && impl(ghc < 9.8)
+  if impl(ghc >= 9.4) && impl(ghc < 9.10)
     hs-source-dirs:    src-ghc-9.4
   default-language:    Haskell2010
   other-extensions:    DataKinds
@@ -115,7 +115,7 @@
   hs-source-dirs:      tests
   if impl(ghc >= 8.0) && impl(ghc < 9.4)
     hs-source-dirs:    tests-pre-ghc-9.4
-  if impl(ghc >= 9.4) && impl(ghc < 9.8)
+  if impl(ghc >= 9.4) && impl(ghc < 9.10)
     hs-source-dirs:    tests-ghc-9.4
   default-language:    Haskell2010
   other-extensions:    DataKinds
diff --git a/src-ghc-9.4/GHC/TypeLits/Extra/Solver.hs b/src-ghc-9.4/GHC/TypeLits/Extra/Solver.hs
--- a/src-ghc-9.4/GHC/TypeLits/Extra/Solver.hs
+++ b/src-ghc-9.4/GHC/TypeLits/Extra/Solver.hs
@@ -51,8 +51,12 @@
 import GHC.Tc.Plugin (TcPluginM, tcLookupTyCon, tcPluginTrace)
 import GHC.Tc.Types (TcPlugin(..), TcPluginSolveResult (..), TcPluginRewriter, TcPluginRewriteResult (..))
 import GHC.Tc.Types.Constraint
-  (Ct, ctEvidence, ctEvPred, ctLoc, isWantedCt, cc_ev)
-import GHC.Tc.Types.Constraint (Ct (CQuantCan), qci_ev)
+  (Ct, ctEvidence, ctEvPred, ctLoc, isWantedCt)
+#if MIN_VERSION_ghc(9,8,0)
+import GHC.Tc.Types.Constraint (Ct (..), DictCt(..), EqCt(..), IrredCt(..), qci_ev)
+#else
+import GHC.Tc.Types.Constraint (Ct (CQuantCan), qci_ev, cc_ev)
+#endif
 import GHC.Tc.Types.Evidence (EvTerm, EvBindsVar, Role(..), evCast, evId)
 import GHC.Types.Name.Occurrence (mkTcOcc)
 import GHC.Types.Unique.FM (UniqFM, listToUFM)
@@ -289,7 +293,14 @@
   ev <- newWanted (ctLoc ct) newPredTy
   let ctN = case ct of
               CQuantCan qc -> CQuantCan (qc { qci_ev = ev})
+#if MIN_VERSION_ghc(9,8,0)
+              CDictCan di     -> CDictCan (di { di_ev = ev})
+              CIrredCan ir    -> CIrredCan (ir { ir_ev = ev})
+              CEqCan eq       -> CEqCan (eq { eq_ev = ev})
+              CNonCanonical _ -> CNonCanonical ev
+#else
               ctX -> ctX { cc_ev = ev }
+#endif
   return ctN
 
 fromSolverConstraint :: SolverConstraint -> Ct
