diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,5 +1,11 @@
 # Changelog for ghc-lib-parser-ex
 
+## 9.4.0.0  released
+- Update to `ghc-lib-parser-9.4.1.20220807`
+
+## 0.20220801 released
+- Update to `ghc-lib-parser-0.20220801`
+
 ## 9.2.1.1 released
 - Update to `ghc-lib-parser-9.2.4.20220527`
 
diff --git a/ghc-lib-parser-ex.cabal b/ghc-lib-parser-ex.cabal
--- a/ghc-lib-parser-ex.cabal
+++ b/ghc-lib-parser-ex.cabal
@@ -1,6 +1,6 @@
 cabal-version:  1.18
 name:           ghc-lib-parser-ex
-version:        9.2.1.1
+version:        9.4.0.0
 description:    Please see the README on GitHub at <https://github.com/shayne-fletcher/ghc-lib-parser-ex#readme>
 homepage:       https://github.com/shayne-fletcher/ghc-lib-parser-ex#readme
 bug-reports:    https://github.com/shayne-fletcher/ghc-lib-parser-ex/issues
@@ -59,24 +59,24 @@
       uniplate >= 1.5,
       bytestring >= 0.10.8.2,
       containers >= 0.5.8.1
-  if flag(auto) && impl(ghc >= 9.2.2) && impl(ghc < 9.3.0)
+  if flag(auto) && impl(ghc >= 9.4.0) && impl(ghc < 9.5.0)
     build-depends:
-      ghc == 9.2.*,
+      ghc == 9.4.*,
       ghc-boot-th,
       ghc-boot
   else
     if flag(auto)
       build-depends:
-        ghc-lib-parser == 9.2.*
+        ghc-lib-parser == 9.4.*
     else
       if flag(no-ghc-lib)
         build-depends:
-          ghc == 9.2.*,
+          ghc == 9.4.*,
           ghc-boot-th,
           ghc-boot
       else
         build-depends:
-          ghc-lib-parser == 9.2.*
+          ghc-lib-parser == 9.4.*
   include-dirs:
       cbits
   install-includes:
@@ -103,22 +103,22 @@
     , extra >=1.6
     , uniplate >= 1.6.12
     , ghc-lib-parser-ex
-  if flag(auto) && impl(ghc >= 9.2.2) && impl(ghc < 9.3.0)
+  if flag(auto) && impl(ghc >= 9.4.0) && impl(ghc < 9.5.0)
     build-depends:
-      ghc == 9.2.*,
+      ghc == 9.4.*,
       ghc-boot-th,
       ghc-boot
   else
     if flag(auto)
       build-depends:
-        ghc-lib-parser == 9.2.*
+        ghc-lib-parser == 9.4.*
     else
       if flag(no-ghc-lib)
         build-depends:
-          ghc == 9.2.*,
+          ghc == 9.4.*,
           ghc-boot-th,
           ghc-boot
       else
         build-depends:
-          ghc-lib-parser == 9.2.*
+          ghc-lib-parser == 9.4.*
   default-language: Haskell2010
diff --git a/src/Language/Haskell/GhclibParserEx/Fixity.hs b/src/Language/Haskell/GhclibParserEx/Fixity.hs
--- a/src/Language/Haskell/GhclibParserEx/Fixity.hs
+++ b/src/Language/Haskell/GhclibParserEx/Fixity.hs
@@ -262,12 +262,14 @@
 fixity :: FixityDirection -> Int -> [String] -> [(String, Fixity)]
 fixity a p = map (,Fixity (SourceText "") p a)
 
-#if defined (GHCLIB_API_HEAD) || defined (GHCLIB_API_904) || defined(GHCLIB_API_902) || defined (GHCLIB_API_900)
+#if defined (GHCLIB_API_904) || defined(GHCLIB_API_902) || defined (GHCLIB_API_900)
 fixitiesFromModule :: Located HsModule -> [(String, Fixity)]
 #else
 fixitiesFromModule :: Located (HsModule GhcPs) -> [(String, Fixity)]
 #endif
-#if defined (GHCLIB_API_HEAD) || defined (GHCLIB_API_904) || defined(GHCLIB_API_902)
+#if defined (GHCLIB_API_HEAD)
+fixitiesFromModule (L _ (HsModule _ _ _ _ decls)) = concatMap f decls
+#elif defined (GHCLIB_API_904) || defined(GHCLIB_API_902)
 fixitiesFromModule (L _ (HsModule _ _ _ _ _ decls _ _)) = concatMap f decls
 #elif defined (GHCLIB_API_900)
 fixitiesFromModule (L _ (HsModule _ _ _ _ decls _ _)) = concatMap f decls
diff --git a/src/Language/Haskell/GhclibParserEx/GHC/Hs.hs b/src/Language/Haskell/GhclibParserEx/GHC/Hs.hs
--- a/src/Language/Haskell/GhclibParserEx/GHC/Hs.hs
+++ b/src/Language/Haskell/GhclibParserEx/GHC/Hs.hs
@@ -11,7 +11,9 @@
 
 #if defined (GHCLIB_API_HEAD) || defined (GHCLIB_API_904) || defined (GHCLIB_API_902) || defined (GHCLIB_API_900)
 import GHC.Hs
+#  if !defined (GHCLIB_API_HEAD)
 import GHC.Unit.Module
+#  endif
 import GHC.Types.SrcLoc
 #elif defined (GHCLIB_API_810)
 import GHC.Hs
@@ -23,7 +25,7 @@
 import SrcLoc
 #endif
 
-#if defined (GHCLIB_API_HEAD) || defined (GHCLIB_API_904) || defined (GHCLIB_API_902) || defined (GHCLIB_API_900)
+#if defined (GHCLIB_API_904) || defined (GHCLIB_API_902) || defined (GHCLIB_API_900)
 modName :: Located HsModule -> String
 #else
 modName :: Located (HsModule GhcPs) -> String
diff --git a/src/Language/Haskell/GhclibParserEx/GHC/Hs/ImpExp.hs b/src/Language/Haskell/GhclibParserEx/GHC/Hs/ImpExp.hs
--- a/src/Language/Haskell/GhclibParserEx/GHC/Hs/ImpExp.hs
+++ b/src/Language/Haskell/GhclibParserEx/GHC/Hs/ImpExp.hs
@@ -14,9 +14,15 @@
   )
 where
 
+#if defined (GHCLIB_API_HEAD)
+import GHC.Hs.Extension (GhcPs)
+#endif
+
 #if defined (GHCLIB_API_HEAD) || defined (GHCLIB_API_904) || defined(GHCLIB_API_902) || defined (GHCLIB_API_900)
 import GHC.Hs.ImpExp
+#  if !defined (GHCLIB_API_HEAD)
 import GHC.Types.Name.Reader
+#  endif
 #elif defined (GHCLIB_API_810)
 import GHC.Hs.ImpExp
 import RdrName
@@ -25,7 +31,11 @@
 import RdrName
 #endif
 
+#if defined (GHCLIB_API_HEAD)
+isPatSynIE :: IEWrappedName GhcPs -> Bool
+#else
 isPatSynIE :: IEWrappedName RdrName -> Bool
+#endif
 isPatSynIE IEPattern{} = True
 isPatSynIE _ = False
 
diff --git a/src/Language/Haskell/GhclibParserEx/GHC/Parser.hs b/src/Language/Haskell/GhclibParserEx/GHC/Parser.hs
--- a/src/Language/Haskell/GhclibParserEx/GHC/Parser.hs
+++ b/src/Language/Haskell/GhclibParserEx/GHC/Parser.hs
@@ -74,14 +74,14 @@
 #else
       mkPState flags buffer location
 #endif
-#if defined (GHCLIB_API_HEAD) || defined (GHCLIB_API_904) || defined(GHCLIB_API_902) || defined (GHCLIB_API_900)
+#if defined (GHCLIB_API_904) || defined(GHCLIB_API_902) || defined (GHCLIB_API_900)
 parseModule :: String -> DynFlags -> ParseResult (Located HsModule)
 #else
 parseModule :: String -> DynFlags -> ParseResult (Located (HsModule GhcPs))
 #endif
 parseModule = parse Parser.parseModule
 
-#if defined (GHCLIB_API_HEAD) || defined (GHCLIB_API_904) || defined(GHCLIB_API_902) || defined (GHCLIB_API_900)
+#if defined (GHCLIB_API_904) || defined(GHCLIB_API_902) || defined (GHCLIB_API_900)
 parseSignature :: String -> DynFlags -> ParseResult (Located HsModule)
 #else
 parseSignature :: String -> DynFlags -> ParseResult (Located (HsModule GhcPs))
@@ -140,14 +140,14 @@
 parseType :: String -> DynFlags -> ParseResult (LHsType GhcPs)
 parseType = parse Parser.parseType
 
-#if defined (GHCLIB_API_HEAD) || defined (GHCLIB_API_904) || defined(GHCLIB_API_902) || defined (GHCLIB_API_900)
+#if defined (GHCLIB_API_904) || defined(GHCLIB_API_902) || defined (GHCLIB_API_900)
 parseHeader :: String -> DynFlags -> ParseResult (Located HsModule)
 #else
 parseHeader :: String -> DynFlags -> ParseResult (Located (HsModule GhcPs))
 #endif
 parseHeader = parse Parser.parseHeader
 
-#if defined (GHCLIB_API_HEAD) || defined (GHCLIB_API_904) || defined(GHCLIB_API_902) || defined (GHCLIB_API_900)
+#if defined (GHCLIB_API_904) || defined(GHCLIB_API_902) || defined (GHCLIB_API_900)
 parseFile :: String
           -> DynFlags
           -> String
diff --git a/test/Test.hs b/test/Test.hs
--- a/test/Test.hs
+++ b/test/Test.hs
@@ -220,7 +220,7 @@
   where
     flags = basicDynFlags
 
-#if defined (GHCLIB_API_HEAD) || defined (GHCLIB_API_904) || defined (GHCLIB_API_902) || defined (GHCLIB_API_900)
+#if defined (GHCLIB_API_904) || defined (GHCLIB_API_902) || defined (GHCLIB_API_900)
 moduleTest :: String -> DynFlags -> (Located HsModule -> IO ()) -> IO ()
 #else
 moduleTest :: String -> DynFlags -> (Located (HsModule GhcPs) -> IO ()) -> IO ()
