diff --git a/CHANGES.md b/CHANGES.md
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -1,6 +1,11 @@
 Changes
 =======
 
+Version 1.0.1.1
+---------------
+
+Update to build with GHC 9
+
 Version 1.0.1.0
 ---------------
 
diff --git a/Data/Generics/Traversable/TH.hs b/Data/Generics/Traversable/TH.hs
--- a/Data/Generics/Traversable/TH.hs
+++ b/Data/Generics/Traversable/TH.hs
@@ -111,6 +111,12 @@
 conA (RecC c xs)      = (c, length xs, map (\(_,_,t)->t) xs)
 conA _ = err "GADTs are not supported yet"
 
+#if MIN_VERSION_template_haskell(2,17,0)
+varName :: TyVarBndr flag -> Name
+varName (PlainTV n _) = n
+varName (KindedTV n _ _) = n
+#else
 varName :: TyVarBndr -> Name
 varName (PlainTV n) = n
 varName (KindedTV n _) = n
+#endif
diff --git a/traverse-with-class.cabal b/traverse-with-class.cabal
--- a/traverse-with-class.cabal
+++ b/traverse-with-class.cabal
@@ -2,7 +2,7 @@
 -- documentation, see http://haskell.org/cabal/users-guide/
 
 name:                traverse-with-class
-version:             1.0.1.0
+version:             1.0.1.1
 synopsis:            Generic applicative traversals
 description:         This is a generic programming library in the spirit of
                      \"Scrap your boilerplate with class\", but with several
