diff --git a/exon.cabal b/exon.cabal
--- a/exon.cabal
+++ b/exon.cabal
@@ -5,7 +5,7 @@
 -- see: https://github.com/sol/hpack
 
 name:           exon
-version:        1.7.1.0
+version:        1.7.2.0
 synopsis:       Customizable quasiquote interpolation
 description:    See https://hackage.haskell.org/package/exon/docs/Exon.html
 category:       String
@@ -13,7 +13,7 @@
 bug-reports:    https://github.com/tek/exon/issues
 author:         Torsten Schmits
 maintainer:     hackage@tryp.io
-copyright:      2023 Torsten Schmits
+copyright:      2025 Torsten Schmits
 license:        BSD-2-Clause-Patent
 license-file:   LICENSE
 build-type:     Simple
@@ -82,11 +82,11 @@
       NoFieldSelectors
   ghc-options: -Wall -Widentities -Wincomplete-uni-patterns -Wmissing-deriving-strategies -Wredundant-constraints -Wunused-type-patterns -Wunused-packages
   build-depends:
-      base >=4.16.4.0 && <5
-    , ghc >=9.2.8 && <9.11
+      base >=4.16.4.0 && <4.22
+    , ghc >=9.2.8 && <9.13
     , incipit-base >=0.5.0.0 && <0.7
     , parsec >=3.1.15.0 && <3.2
-    , template-haskell >=2.18.0.0 && <2.23
+    , template-haskell >=2.18.0.0 && <2.24
   mixins:
       base hiding (Prelude)
     , incipit-base (IncipitBase as Prelude)
@@ -144,13 +144,13 @@
       NoFieldSelectors
   ghc-options: -threaded -rtsopts -with-rtsopts=-N -Wall -Widentities -Wincomplete-uni-patterns -Wmissing-deriving-strategies -Wredundant-constraints -Wunused-type-patterns -Wunused-packages
   build-depends:
-      base >=4.16.4.0 && <5
+      base >=4.16.4.0 && <4.22
     , exon
     , hedgehog >=1.1 && <1.6
     , incipit-base >=0.5.0.0 && <0.7
     , tasty >=1.4.0.3 && <1.6
     , tasty-hedgehog >=1.1.0.0 && <1.5
-    , template-haskell >=2.18.0.0 && <2.23
+    , template-haskell >=2.18.0.0 && <2.24
   mixins:
       base hiding (Prelude)
     , incipit-base (IncipitBase as Prelude)
@@ -200,7 +200,7 @@
       NoFieldSelectors
   ghc-options: -Wall -Widentities -Wincomplete-uni-patterns -Wmissing-deriving-strategies -Wredundant-constraints -Wunused-type-patterns -Wunused-packages
   build-depends:
-      base >=4.16.4.0 && <5
+      base >=4.16.4.0 && <4.22
     , criterion >=1.5.11.0 && <1.7
     , exon
     , incipit-base >=0.5.0.0 && <0.7
diff --git a/lib/Exon/Haskell/Translate.hs b/lib/Exon/Haskell/Translate.hs
--- a/lib/Exon/Haskell/Translate.hs
+++ b/lib/Exon/Haskell/Translate.hs
@@ -123,7 +123,9 @@
   = TH.AppE (TH.VarE 'negate) (toExp d . unLoc $ e)
 
 -- NOTE: for lambda, there is only one match
-#if MIN_VERSION_ghc(9,10,0)
+#if MIN_VERSION_ghc(9,12,0)
+toExp d (Expr.HsLam _ _ (Expr.MG _ (unLoc -> (map unLoc -> [Expr.Match _ _ (map unLoc . unLoc -> ps) (Expr.GRHSs _ [unLoc -> Expr.GRHS _ _ (unLoc -> e)] _)]))))
+#elif MIN_VERSION_ghc(9,10,0)
 toExp d (Expr.HsLam _ _ (Expr.MG _ (unLoc -> (map unLoc -> [Expr.Match _ _ (map unLoc -> ps) (Expr.GRHSs _ [unLoc -> Expr.GRHS _ _ (unLoc -> e)] _)]))))
 #elif MIN_VERSION_ghc(9,6,0)
 toExp d (Expr.HsLam _ (Expr.MG _ (unLoc -> (map unLoc -> [Expr.Match _ _ (map unLoc -> ps) (Expr.GRHSs _ [unLoc -> Expr.GRHS _ _ (unLoc -> e)] _)]))))
@@ -194,7 +196,11 @@
     extractFieldLabel (DotFieldOcc _ locatedStr) = field_label <$> locatedStr
     extractFieldLabel _ = error "Don't know how to handle XHsFieldLabel constructor..."
   in
+#if MIN_VERSION_ghc(9, 12, 0)
+    TH.ProjectionE (NonEmpty.map (unpackFS . unLoc . extractFieldLabel) locatedFields)
+#else
     TH.ProjectionE (NonEmpty.map (unpackFS . unLoc . extractFieldLabel . unLoc) locatedFields)
+#endif
 
 toExp d (Expr.HsGetField _ expr locatedField) =
   let
@@ -232,7 +238,9 @@
     TH.GetFieldE (toExp d (unLoc expr)) (unpackFS . unLoc . extractFieldLabel . unLoc $ locatedField)
 #endif
 
-#if MIN_VERSION_ghc(9, 6, 0)
+#if MIN_VERSION_ghc(9, 12, 0)
+toExp _ (Expr.HsOverLabel _ fastString) = TH.LabelE (unpackFS fastString)
+#elif MIN_VERSION_ghc(9, 6, 0)
 toExp _ (Expr.HsOverLabel _ _ fastString) = TH.LabelE (unpackFS fastString)
 #else
 toExp _ (Expr.HsOverLabel _ fastString) = TH.LabelE (unpackFS fastString)
