diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -1,7 +1,7 @@
 lens-family-th
 ==============
 
-![build status](https://api.travis-ci.org/DanBurton/lens-family-th.svg?branch=master)
+![build status](https://github.com/DanBurton/lens-family-th/actions/workflows/haskell.yml/badge.svg?branch=master)
 
 Template Haskell to generate lenses for lens-family and lens-family-core.
 
diff --git a/lens-family-th.cabal b/lens-family-th.cabal
--- a/lens-family-th.cabal
+++ b/lens-family-th.cabal
@@ -1,5 +1,5 @@
 name:                lens-family-th
-version:             0.5.2.1
+version:             0.5.3.0
 synopsis:            Generate lens-family style lenses
 
 description:         (see README.md)
@@ -19,6 +19,18 @@
 
 extra-source-files:  README.md
 
+tested-with:         GHC == 9.8.1
+                   , GHC == 9.6.3
+                   , GHC == 9.4.8
+                   , GHC == 9.2.8
+                   , GHC == 9.0.2
+                   , GHC == 8.10.7
+                   , GHC == 8.8.4
+                   , GHC == 8.6.5
+                   , GHC == 8.4.4
+                   , GHC == 8.2.2
+                   , GHC == 8.0.2
+
 library
   default-language:  Haskell2010
   hs-source-dirs:    src
@@ -26,7 +38,7 @@
                    , Lens.Family2.TH
                    , Lens.Family.THCore
   build-depends:     base >= 4.9 && < 5
-                   , template-haskell >= 2.11 && < 2.19
+                   , template-haskell >= 2.11 && < 2.22
 
 test-suite lens-family-th-test
   default-language:  Haskell2010
@@ -40,5 +52,5 @@
                    , template-haskell
 
 source-repository head
-  type:      git
-  location:  git://github.com/DanBurton/lens-family-th.git
+  type:              git
+  location:          git://github.com/DanBurton/lens-family-th.git
diff --git a/src/Lens/Family/THCore.hs b/src/Lens/Family/THCore.hs
--- a/src/Lens/Family/THCore.hs
+++ b/src/Lens/Family/THCore.hs
@@ -24,7 +24,9 @@
 
 -- | Information about the larger type the lens will operate on.
 type LensTypeInfo =
-#if MIN_VERSION_template_haskell(2,17,0)
+#if MIN_VERSION_template_haskell(2,21,0)
+  (Name, [TyVarBndr BndrVis])
+#elif MIN_VERSION_template_haskell(2,17,0)
   (Name, [TyVarBndr ()])
 #else
   (Name, [TyVarBndr])
@@ -159,9 +161,10 @@
 deconstructReconstruct :: Con -> String -> (Pat, Exp)
 deconstructReconstruct c nameBase = (pat, expr) where
 #if MIN_VERSION_template_haskell(2,18,0)
-  pat = ConP conN [] (map VarP argNames)
+  -- ConP Name [Type] [Pat]
+  pat = ConP conN mempty (map VarP argNames)
 #else
-  pat = ConP conN    (map VarP argNames)
+  pat = ConP conN        (map VarP argNames)
 #endif
   expr = foldl AppE (ConE conN) (map VarE argNames)
   (conN, nArgs) = getConInfo c
