diff --git a/exon.cabal b/exon.cabal
--- a/exon.cabal
+++ b/exon.cabal
@@ -1,11 +1,11 @@
 cabal-version: 2.2
 
--- This file has been generated from package.yaml by hpack version 0.36.1.
+-- This file has been generated from package.yaml by hpack version 0.38.3.
 --
 -- see: https://github.com/sol/hpack
 
 name:           exon
-version:        1.7.2.0
+version:        1.7.3.0
 synopsis:       Customizable quasiquote interpolation
 description:    See https://hackage.haskell.org/package/exon/docs/Exon.html
 category:       String
@@ -61,8 +61,10 @@
       LiberalTypeSynonyms
       MonadComprehensions
       MultiWayIf
+      NoFieldSelectors
       OverloadedLabels
       OverloadedLists
+      OverloadedRecordDot
       OverloadedStrings
       PackageImports
       PartialTypeSignatures
@@ -78,15 +80,13 @@
       UndecidableInstances
       UnicodeSyntax
       ViewPatterns
-      OverloadedRecordDot
-      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 && <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.24
+      base >=4.17.2.1 && <4.23
+    , ghc >=9.4.8 && <9.15
+    , incipit-base >=0.5.0.0 && <0.8
+    , parsec >=3.1.15.1 && <3.2
+    , template-haskell >=2.19.0.0 && <2.25
   mixins:
       base hiding (Prelude)
     , incipit-base (IncipitBase as Prelude)
@@ -123,8 +123,10 @@
       LiberalTypeSynonyms
       MonadComprehensions
       MultiWayIf
+      NoFieldSelectors
       OverloadedLabels
       OverloadedLists
+      OverloadedRecordDot
       OverloadedStrings
       PackageImports
       PartialTypeSignatures
@@ -140,17 +142,15 @@
       UndecidableInstances
       UnicodeSyntax
       ViewPatterns
-      OverloadedRecordDot
-      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 && <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.24
+      base >=4.17.2.1 && <4.23
+    , exon <1.8
+    , hedgehog >=1.1.2 && <1.8
+    , incipit-base >=0.5.0.0 && <0.8
+    , tasty >=1.2.2 && <1.6
+    , tasty-hedgehog >=1.3.0.0 && <1.5
+    , template-haskell >=2.19.0.0 && <2.25
   mixins:
       base hiding (Prelude)
     , incipit-base (IncipitBase as Prelude)
@@ -179,8 +179,10 @@
       LiberalTypeSynonyms
       MonadComprehensions
       MultiWayIf
+      NoFieldSelectors
       OverloadedLabels
       OverloadedLists
+      OverloadedRecordDot
       OverloadedStrings
       PackageImports
       PartialTypeSignatures
@@ -196,14 +198,12 @@
       UndecidableInstances
       UnicodeSyntax
       ViewPatterns
-      OverloadedRecordDot
-      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 && <4.22
-    , criterion >=1.5.11.0 && <1.7
-    , exon
-    , incipit-base >=0.5.0.0 && <0.7
+      base >=4.17.2.1 && <4.23
+    , criterion >=1.5.13.0 && <1.7
+    , exon <1.8
+    , incipit-base >=0.5.0.0 && <0.8
   mixins:
       base hiding (Prelude)
     , incipit-base (IncipitBase as Prelude)
diff --git a/lib/Exon/Haskell/Settings.hs b/lib/Exon/Haskell/Settings.hs
--- a/lib/Exon/Haskell/Settings.hs
+++ b/lib/Exon/Haskell/Settings.hs
@@ -25,6 +25,7 @@
 import GHC.Types.SourceText
 import GHC.Types.SrcLoc
 import GHC.Unit.Info
+import GHC.Unit.Types
 import GHC.Utils.Fingerprint
 import qualified Language.Haskell.TH.Syntax as GhcTH
 
@@ -35,6 +36,9 @@
   , sTargetPlatform=platform
   , sPlatformMisc=platformMisc
   , sToolSettings=toolSettings
+#if MIN_VERSION_ghc(9,14,0)
+  , sUnitSettings=UnitSettings {unitSettings_baseUnitId = stringToUnitId "base"}
+#endif
   }
   where
     toolSettings = ToolSettings {
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
@@ -44,8 +44,11 @@
 toLit (HsWordPrim _ i) = TH.WordPrimL i
 toLit (HsInt64Prim _ i) = TH.IntegerL i
 toLit (HsWord64Prim _ i) = TH.WordPrimL i
-toLit (HsInteger _ i _) = TH.IntegerL i
+#if MIN_VERSION_ghc(9,14,0)
+toLit (HsMultilineString _ s) = TH.StringL (unpackFS s)
+#else
 toLit (HsRat _ f _) = TH.FloatPrimL (fl_value f)
+#endif
 toLit (HsFloatPrim _ f) = TH.FloatPrimL (fl_value f)
 toLit (HsDoublePrim _ f) = TH.DoublePrimL (fl_value f)
 #if MIN_VERSION_ghc(9,8,0)
@@ -92,7 +95,9 @@
         then TH.ConE (toName n')
         else TH.VarE (toName n')
 
+#if !MIN_VERSION_ghc(9,14,0)
 toExp _ (Expr.HsUnboundVar _ n)              = TH.UnboundVarE (TH.mkName . occNameString . occName $ n)
+#endif
 
 toExp _ Expr.HsIPVar {}
   = noTH "toExp" "HsIPVar"
@@ -123,7 +128,9 @@
   = TH.AppE (TH.VarE 'negate) (toExp d . unLoc $ e)
 
 -- NOTE: for lambda, there is only one match
-#if MIN_VERSION_ghc(9,12,0)
+#if MIN_VERSION_ghc(9,14,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,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)] _)]))))
