diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,6 +2,10 @@
 
 [Current version](https://gitlab.com/lysxia/fcf-family/-/blob/main/fcf-family/CHANGELOG.md)
 
+## 0.2.0.1
+
+- Compatibility with GHC 9.8.1
+
 ## 0.2.0.0
 
 - Change `fcfify` to deduplicate calls with the same argument.
diff --git a/fcf-family.cabal b/fcf-family.cabal
--- a/fcf-family.cabal
+++ b/fcf-family.cabal
@@ -1,11 +1,11 @@
 cabal-version:      3.0
 name:               fcf-family
-version:            0.2.0.0
+version:            0.2.0.1
 synopsis: Family of families: featherweight defunctionalization
 description:
   Promote regular type families to first-class,
   without polluting the type namespace.
-  .
+
   See README.
 homepage:           https://gitlab.com/lysxia/fcf-family
 license:            MIT
diff --git a/src/Fcf/Family/TH.hs b/src/Fcf/Family/TH.hs
--- a/src/Fcf/Family/TH.hs
+++ b/src/Fcf/Family/TH.hs
@@ -206,7 +206,7 @@
 
 --
 
-mkInfoHead :: Name -> [TyVarBndr ()] -> Type -> Q TyInfo
+mkInfoHead :: Name -> [TyVarBndr a] -> Type -> Q TyInfo
 mkInfoHead name args res = do
   args' <- for args (\arg -> case arg of
     PlainTV _ _ -> fail "unexpected unnanotated arguments"  -- as far as I understand, the binders given by reify are always annotated so this shouldn't happen
