diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,5 +1,10 @@
 # Revision history for czipwith
 
+## 1.0.1.4  -- November 2021
+
+* Maintenance release for ghc-9.0
+* Switch to seaaye as wrapper around nix (see nix/README.md)
+
 ## 1.0.1.3  -- June 2020
 
 * Maintenance release for ghc-8.10
diff --git a/czipwith.cabal b/czipwith.cabal
--- a/czipwith.cabal
+++ b/czipwith.cabal
@@ -1,5 +1,5 @@
 name:                czipwith
-version:             1.0.1.3
+version:             1.0.1.4
 synopsis:            CZipWith class and deriving via TH
 description:         A typeclass similar to Data.Distributive, but for
                      data parameterised with a type constructor. The name
@@ -27,8 +27,8 @@
   -- other-modules:       
   -- other-extensions:    
   build-depends:
-    { base >=4.11 && <4.15
-    , template-haskell >=2.9 && <2.17
+    { base >=4.11 && <4.16
+    , template-haskell >=2.9 && <2.18
     }
   hs-source-dirs:      src
   default-language:    Haskell2010
diff --git a/src/Data/CZipWith.hs b/src/Data/CZipWith.hs
--- a/src/Data/CZipWith.hs
+++ b/src/Data/CZipWith.hs
@@ -223,8 +223,13 @@
                 ++ show con
                 ++ ")"
       let tyvar = case _tyvarbnd of
+#if MIN_VERSION_template_haskell(2,17,0)
+            PlainTV n _    -> n
+            KindedTV n _ _ -> n
+#else
             PlainTV n    -> n
             KindedTV n _ -> n
+#endif
       let fQ   = mkName "f"
       let pats = [varP fQ]
       let
@@ -277,7 +282,7 @@
 --   , b_a     :: A f
 --   }
 --
--- deriveCZipWith ''A
+-- deriveCZipWith ''An
 -- deriveCZipWith ''B
 -- @
 --
@@ -287,7 +292,7 @@
 -- instance CZipWith A where
 --   cZipWith f (A x1 x2) (A y1 y2) = A (f x1 y1) (f x2 y2)
 --
--- instance CZipWith B where
+-- instance CZipWith B wheren
 --   cZipWith f (B x1 x2 x3) (B y1 y2 y3) =
 --     B (f x1 y1) (f x2 y2) (cZipWith f x3 y3)
 -- @
@@ -310,8 +315,13 @@
                 ++ show con
                 ++ ")"
       let tyvar = case tyvarbnd of
+#if MIN_VERSION_template_haskell(2,17,0)
+            PlainTV n _    -> n
+            KindedTV n _ _ -> n
+#else
             PlainTV n    -> n
             KindedTV n _ -> n
+#endif
       let fQ       = mkName "f"
       let indexTys = zip [1 ..] elemTys
       let indexTysVars = indexTys <&> \(i :: Int, ty) ->
@@ -403,8 +413,13 @@
                 ++ show con
                 ++ ")"
       let tyvar = case tyvarbnd of
+#if MIN_VERSION_template_haskell(2,17,0)
+            PlainTV n _    -> n
+            KindedTV n _ _ -> n
+#else
             PlainTV n    -> n
             KindedTV n _ -> n
+#endif
       let fQ       = mkName "f"
       let indexTys = zip [1 ..] elemTys
       let indexTysVars = indexTys <&> \(i :: Int, ty) ->
