diff --git a/hls-gadt-plugin.cabal b/hls-gadt-plugin.cabal
--- a/hls-gadt-plugin.cabal
+++ b/hls-gadt-plugin.cabal
@@ -1,6 +1,6 @@
 cabal-version:      2.4
 name:               hls-gadt-plugin
-version:            2.2.0.0
+version:            2.3.0.0
 synopsis:           Convert to GADT syntax plugin
 description:
   Please see the README on GitHub at <https://github.com/haskell/haskell-language-server/tree/master/plugins/hls-gadt-plugin#readme>
@@ -30,10 +30,10 @@
     , containers
     , extra
     , ghc
-    , ghcide                 == 2.2.0.0
+    , ghcide                 == 2.3.0.0
     , ghc-boot-th
     , ghc-exactprint
-    , hls-plugin-api         == 2.2.0.0
+    , hls-plugin-api         == 2.3.0.0
     , hls-refactor-plugin
     , lens
     , lsp                    >=2.2.0.0
@@ -59,7 +59,7 @@
     , base
     , filepath
     , hls-gadt-plugin
-    , hls-test-utils              == 2.2.0.0
+    , hls-test-utils              == 2.3.0.0
     , lens
     , lsp
     , lsp-test
diff --git a/src/Ide/Plugin/GADT.hs b/src/Ide/Plugin/GADT.hs
--- a/src/Ide/Plugin/GADT.hs
+++ b/src/Ide/Plugin/GADT.hs
@@ -15,8 +15,7 @@
                                                    liftEither)
 import           Control.Monad.IO.Class           (MonadIO)
 import           Control.Monad.Trans.Class        (MonadTrans (lift))
-import           Control.Monad.Trans.Except       (ExceptT, runExceptT,
-                                                   withExceptT)
+import           Control.Monad.Trans.Except       (ExceptT, withExceptT)
 import           Data.Aeson                       (FromJSON, ToJSON, toJSON)
 import           Data.Either.Extra                (maybeToEither)
 import qualified Data.Map                         as Map
diff --git a/src/Ide/Plugin/GHC.hs b/src/Ide/Plugin/GHC.hs
--- a/src/Ide/Plugin/GHC.hs
+++ b/src/Ide/Plugin/GHC.hs
@@ -30,11 +30,10 @@
                                                           EpAnnComments (EpaComments),
                                                           EpaLocation (EpaDelta),
                                                           SrcSpanAnn' (SrcSpanAnn),
-                                                          spanAsAnchor,
+                                                          spanAsAnchor)
 #if MIN_VERSION_ghc(9,5,0)
-                                                          TokenLocation(..)
+import           GHC.Parser.Annotation                   (TokenLocation (..))
 #endif
-                                                          )
 import           Language.Haskell.GHC.ExactPrint         (showAst)
 #else
 import qualified Data.Map.Lazy                           as Map
@@ -311,18 +310,11 @@
 noUsed = noExtField
 #endif
 
-#if MIN_VERSION_ghc(9,0,1)
 pattern UserTyVar' :: LIdP pass -> HsTyVarBndr flag pass
 pattern UserTyVar' s <- UserTyVar _ _ s
-#else
-pattern UserTyVar' :: LIdP pass -> HsTyVarBndr pass
-pattern UserTyVar' s <- UserTyVar _ s
-#endif
 
 #if MIN_VERSION_ghc(9,2,1)
 implicitTyVars = (wrapXRec @GP mkHsOuterImplicit)
-#elif MIN_VERSION_ghc(9,0,1)
-implicitTyVars = []
 #else
-implicitTyVars = HsQTvs noExtField []
+implicitTyVars = []
 #endif
