diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,6 @@
+# 0.6.3 [2024.03.19]
+* Support building with `template-haskell-2.22.*` (GHC 9.10).
+
 # 0.6.2 [2023.08.06]
 * The Template Haskell machinery now uses `TemplateHaskellQuotes` when
   building with GHC 8.0+ instead of manually constructing each Template Haskell
diff --git a/invariant.cabal b/invariant.cabal
--- a/invariant.cabal
+++ b/invariant.cabal
@@ -1,5 +1,5 @@
 name:                invariant
-version:             0.6.2
+version:             0.6.3
 synopsis:            Haskell98 invariant functors
 description:         Haskell98 invariant functors (also known as exponential functors).
                      .
@@ -29,9 +29,11 @@
                    , GHC == 8.8.4
                    , GHC == 8.10.7
                    , GHC == 9.0.2
-                   , GHC == 9.2.7
-                   , GHC == 9.4.5
-                   , GHC == 9.6.2
+                   , GHC == 9.2.8
+                   , GHC == 9.4.8
+                   , GHC == 9.6.4
+                   , GHC == 9.8.2
+                   , GHC == 9.10.1
 extra-source-files:  CHANGELOG.md, README.md
 
 source-repository head
@@ -49,15 +51,15 @@
                      , base                 >= 4      && < 5
                      , bifunctors           >= 5.2    && < 6
                      , comonad              >= 5      && < 6
-                     , containers           >= 0.1    && < 0.7
+                     , containers           >= 0.1    && < 0.8
                      , contravariant        >= 0.5    && < 2
                      , ghc-prim
                      , profunctors          >= 5.2.1  && < 6
                      , StateVar             >= 1.1    && < 2
                      , stm                  >= 2.2    && < 3
                      , tagged               >= 0.7.3  && < 1
-                     , template-haskell     >= 2.4    && < 2.22
-                     , th-abstraction       >= 0.4    && < 0.7
+                     , template-haskell     >= 2.4    && < 2.23
+                     , th-abstraction       >= 0.4    && < 0.8
                      , transformers         >= 0.2    && < 0.7
                      , transformers-compat  >= 0.3    && < 1
                      , unordered-containers >= 0.2.4  && < 0.3
diff --git a/src/Data/Functor/Invariant/TH.hs b/src/Data/Functor/Invariant/TH.hs
--- a/src/Data/Functor/Invariant/TH.hs
+++ b/src/Data/Functor/Invariant/TH.hs
@@ -864,8 +864,7 @@
 mkSimpleLam :: (Exp -> Q Exp) -> Q Exp
 mkSimpleLam lam = do
   n <- newName "n"
-  body <- lam (VarE n)
-  return $ LamE [VarP n] body
+  lamE [varP n] (lam (VarE n))
 
 -- "Con a1 a2 a3 -> fold [x1 a1, x2 a2, x3 a3]"
 --
