diff --git a/ChangeLog b/ChangeLog
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,6 @@
+0.8.10
+- Support for GHC 9.4 alpha (by Matt Parsons)
+
 0.8.9
 - Add `toExtension` and `fromExtension` to convert between HSE and TH language extensions (by Konstantin Ivanov)
 
diff --git a/haskell-src-meta.cabal b/haskell-src-meta.cabal
--- a/haskell-src-meta.cabal
+++ b/haskell-src-meta.cabal
@@ -1,5 +1,5 @@
 name:               haskell-src-meta
-version:            0.8.9
+version:            0.8.10
 cabal-version:      >= 1.10
 build-type:         Simple
 license:            BSD3
@@ -9,7 +9,7 @@
 copyright:          (c) Matt Morrow
 maintainer:         danburton.email@gmail.com
 bug-reports:        https://github.com/haskell-party/haskell-src-meta/issues
-tested-with:        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.1
+tested-with:        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.2, GHC == 9.4.0.20220501
 synopsis:           Parse source to template-haskell abstract syntax.
 description:        The translation from haskell-src-exts abstract syntax
                     to template-haskell abstract syntax isn't 100% complete yet.
diff --git a/src/Language/Haskell/Meta/Extensions.hs b/src/Language/Haskell/Meta/Extensions.hs
--- a/src/Language/Haskell/Meta/Extensions.hs
+++ b/src/Language/Haskell/Meta/Extensions.hs
@@ -70,7 +70,11 @@
   Exts.TypeOperators              -> Just TH.TypeOperators
   Exts.ParallelArrays             -> Just TH.ParallelArrays
   Exts.RecordWildCards            -> Just TH.RecordWildCards
+#if __GLASGOW_HASKELL__ >= 904
+  Exts.RecordPuns                 -> Just TH.NamedFieldPuns
+#else
   Exts.RecordPuns                 -> Just TH.RecordPuns
+#endif
   Exts.DisambiguateRecordFields   -> Just TH.DisambiguateRecordFields
   Exts.OverloadedStrings          -> Just TH.OverloadedStrings
   Exts.GADTs                      -> Just TH.GADTs
@@ -216,7 +220,18 @@
   TH.NumDecimals                       -> Nothing
   TH.DisambiguateRecordFields          -> Just Exts.DisambiguateRecordFields
   TH.RecordWildCards                   -> Just Exts.RecordWildCards
+#if __GLASGOW_HASKELL__ >= 904
+  TH.NamedFieldPuns                    -> Just Exts.RecordPuns
+  TH.QualifiedDo                       -> Nothing
+  TH.UnliftedDatatypes -> Nothing
+  TH.LinearTypes -> Nothing
+  TH.LexicalNegation -> Nothing
+  TH.FieldSelectors -> Nothing
+  TH.OverloadedRecordDot -> Nothing
+  TH.OverloadedRecordUpdate -> Nothing
+#else
   TH.RecordPuns                        -> Just Exts.RecordPuns
+#endif
   TH.ViewPatterns                      -> Just Exts.ViewPatterns
   TH.GADTs                             -> Just Exts.GADTs
   TH.GADTSyntax                        -> Nothing
diff --git a/tests/Splices.hs b/tests/Splices.hs
--- a/tests/Splices.hs
+++ b/tests/Splices.hs
@@ -1,5 +1,8 @@
 {-# OPTIONS_GHC -fno-warn-type-defaults #-}
 {-# LANGUAGE CPP                   #-}
+#if __GLASGOW_HASKELL__ >= 904
+{-# LANGUAGE TypeOperators         #-}
+#endif
 {-# LANGUAGE GADTs                 #-}
 {-# LANGUAGE TemplateHaskell       #-}
 {-# LANGUAGE TypeApplications      #-}
