diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,5 +1,10 @@
 # Changelog for persistent
 
+## 2.14.6.2
+
+* [#1536](https://github.com/yesodweb/persistent/pull/1536/)
+    * Build with GHC 9.10
+
 ## 2.14.6.1
 
 * [#1528](https://github.com/yesodweb/persistent/pull/1528)
diff --git a/Database/Persist/Class/PersistConfig.hs b/Database/Persist/Class/PersistConfig.hs
--- a/Database/Persist/Class/PersistConfig.hs
+++ b/Database/Persist/Class/PersistConfig.hs
@@ -1,4 +1,5 @@
 {-# LANGUAGE CPP #-}
+{-# LANGUAGE TypeOperators #-}
 
 module Database.Persist.Class.PersistConfig
     ( PersistConfig (..)
diff --git a/Database/Persist/Class/PersistStore.hs b/Database/Persist/Class/PersistStore.hs
--- a/Database/Persist/Class/PersistStore.hs
+++ b/Database/Persist/Class/PersistStore.hs
@@ -1,5 +1,6 @@
 {-# LANGUAGE ConstraintKinds #-}
 {-# LANGUAGE ExplicitForAll #-}
+{-# LANGUAGE TypeOperators #-}
 module Database.Persist.Class.PersistStore
     ( HasPersistBackend (..)
     , withBaseBackend
diff --git a/Database/Persist/ImplicitIdDef/Internal.hs b/Database/Persist/ImplicitIdDef/Internal.hs
--- a/Database/Persist/ImplicitIdDef/Internal.hs
+++ b/Database/Persist/ImplicitIdDef/Internal.hs
@@ -4,7 +4,8 @@
 {-# LANGUAGE ScopedTypeVariables #-}
 {-# LANGUAGE StrictData #-}
 {-# LANGUAGE TypeApplications #-}
-{-# LANGUAGE TypeInType #-}
+{-# LANGUAGE PolyKinds #-}
+{-# LANGUAGE TypeOperators #-}
 
 -- | WARNING: This is an @Internal@ module. As such, breaking changes to the API
 -- of this module will not have a corresponding major version bump.
diff --git a/Database/Persist/Quasi.hs b/Database/Persist/Quasi.hs
--- a/Database/Persist/Quasi.hs
+++ b/Database/Persist/Quasi.hs
@@ -352,6 +352,17 @@
 -- [["sad"],["sogood"]]
 @
 
+== @!no-migrate@
+
+To prevent @migrateModels@ from generating _any_ migrations for an entity, add
+the @!no-migrate@ attribute to it's definition:
+
+@
+User !no-migrate
+    field   String
+    good    Dog
+@
+
 == @MigrationOnly@
 
 Introduced with @persistent-template@ 1.2.0. The purpose of this attribute is
diff --git a/Database/Persist/Sql/Orphan/PersistQuery.hs b/Database/Persist/Sql/Orphan/PersistQuery.hs
--- a/Database/Persist/Sql/Orphan/PersistQuery.hs
+++ b/Database/Persist/Sql/Orphan/PersistQuery.hs
@@ -1,5 +1,6 @@
 {-# LANGUAGE ExistentialQuantification #-}
 {-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE TypeOperators #-}
 
 {-# OPTIONS_GHC -fno-warn-orphans #-}
 
diff --git a/Database/Persist/Sql/Orphan/PersistStore.hs b/Database/Persist/Sql/Orphan/PersistStore.hs
--- a/Database/Persist/Sql/Orphan/PersistStore.hs
+++ b/Database/Persist/Sql/Orphan/PersistStore.hs
@@ -2,6 +2,7 @@
 {-# LANGUAGE DerivingStrategies #-}
 {-# LANGUAGE ExistentialQuantification #-}
 {-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE TypeOperators #-}
 
 {-# OPTIONS_GHC -fno-warn-orphans #-}
 
diff --git a/Database/Persist/Sql/Types/Internal.hs b/Database/Persist/Sql/Types/Internal.hs
--- a/Database/Persist/Sql/Types/Internal.hs
+++ b/Database/Persist/Sql/Types/Internal.hs
@@ -2,6 +2,7 @@
 {-# LANGUAGE DuplicateRecordFields #-}
 {-# LANGUAGE RankNTypes #-}
 {-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TypeOperators #-}
 
 -- | Breaking changes to this module are not reflected in the major version
 -- number. Prefer to import from "Database.Persist.Sql" instead. If you neeed
diff --git a/Database/Persist/TH.hs b/Database/Persist/TH.hs
--- a/Database/Persist/TH.hs
+++ b/Database/Persist/TH.hs
@@ -101,7 +101,6 @@
 import qualified Data.HashMap.Strict as HM
 import Data.Int (Int64)
 import Data.Ix (Ix)
-import Data.List (foldl')
 import qualified Data.List as List
 import Data.List.NonEmpty (NonEmpty(..))
 import qualified Data.List.NonEmpty as NEL
@@ -1986,7 +1985,7 @@
 
                 return $ normalClause
                     [ListP $ fmap VarP (x1:restNames)]
-                    (foldl' (\exp (name, fpv) -> applyFromPersistValue fpv exp name) conApp (zip restNames mkPersistValues))
+                    (List.foldl' (\exp (name, fpv) -> applyFromPersistValue fpv exp name) conApp (zip restNames mkPersistValues))
 
     infixFromPersistValue applyE fpv exp name =
         UInfixE exp applyE (fpv `AppE` VarE name)
@@ -2061,7 +2060,7 @@
 
                 let keyCon = keyConName entDef
                     constr =
-                        foldl'
+                        List.foldl'
                             AppE
                             (ConE keyCon)
                             (VarE . snd <$> keyFieldNames')
@@ -2475,7 +2474,7 @@
                    $ foreignFieldNames
                    $ unboundForeignFields foreignDef
             mkKeyE =
-                foldl' AppE (maybeExp fNullable $ ConE reftableKeyName) fldsE
+                List.foldl' AppE (maybeExp fNullable $ ConE reftableKeyName) fldsE
             fn =
                 FunD fname [normalClause [VarP recordVarName] mkKeyE]
 
@@ -2630,7 +2629,7 @@
 
     go :: [(FieldNameHS, Name)] -> UniqueDef -> Exp
     go xs (UniqueDef name _ cols _) =
-        foldl' (go' xs) (ConE (mkConstraintName name)) (toList $ fmap fst cols)
+        List.foldl' (go' xs) (ConE (mkConstraintName name)) (toList $ fmap fst cols)
 
     go' :: [(FieldNameHS, Name)] -> Exp -> FieldNameHS -> Exp
     go' xs front col =
@@ -2953,7 +2952,7 @@
                 FunD 'parseJSON [ normalClause [] parseJSONBody ]
             decoderImpl =
                 LamE [VarP obj]
-                    (foldl'
+                    (List.foldl'
                         (\x y -> InfixE (Just x) apE' (Just y))
                         (pureE `AppE` ConE conName)
                         pulls
@@ -2986,10 +2985,10 @@
             return $ toJSONI : fromJSONI : entityJSONIs
 
 mkClassP :: Name -> [Type] -> Pred
-mkClassP cla tys = foldl AppT (ConT cla) tys
+mkClassP cla tys = List.foldl AppT (ConT cla) tys
 
 mkEqualP :: Type -> Type -> Pred
-mkEqualP tleft tright = foldl AppT EqualityT [tleft, tright]
+mkEqualP tleft tright = List.foldl AppT EqualityT [tleft, tright]
 
 notStrict :: Bang
 notStrict = Bang NoSourceUnpackedness NoSourceStrictness
diff --git a/bench/Main.hs b/bench/Main.hs
--- a/bench/Main.hs
+++ b/bench/Main.hs
@@ -129,7 +129,11 @@
 
 
 instance NFData DerivClause where
+#endif
 
+#if MIN_VERSION_template_haskell(2,22,0)
+instance NFData BndrVis where
+instance NFData NamespaceSpecifier where
 #endif
 
 instance NFData Con where
diff --git a/persistent.cabal b/persistent.cabal
--- a/persistent.cabal
+++ b/persistent.cabal
@@ -1,5 +1,5 @@
 name:            persistent
-version:         2.14.6.1
+version:         2.14.6.2
 license:         MIT
 license-file:    LICENSE
 author:          Michael Snoyman <michael@snoyman.com>
@@ -36,7 +36,7 @@
       , resourcet                >= 1.1.10
       , scientific
       , silently
-      , template-haskell         >= 2.13 && < 2.22
+      , template-haskell         >= 2.13 && < 2.23
       , text                     >= 1.2
       , th-lift-instances        >= 0.1.14    && < 0.2
       , time                     >= 1.6
