diff --git a/library/TemplateHaskell/Compat/V0208.hs b/library/TemplateHaskell/Compat/V0208.hs
--- a/library/TemplateHaskell/Compat/V0208.hs
+++ b/library/TemplateHaskell/Compat/V0208.hs
@@ -1,9 +1,9 @@
 {-# LANGUAGE CPP #-}
+
 module TemplateHaskell.Compat.V0208 where
 
-import TemplateHaskell.Compat.V0208.Prelude
 import Language.Haskell.TH hiding (conP)
-
+import TemplateHaskell.Compat.V0208.Prelude
 
 classP :: Name -> [Type] -> Pred
 #if MIN_VERSION_template_haskell(2,10,0)
@@ -24,20 +24,30 @@
 #endif
 
 dataD :: Cxt -> Name -> [UnitTyVarBndr] -> [Con] -> [Name] -> Dec
+#if MIN_VERSION_template_haskell(2,21,0)
 dataD cxt name varBndrs cons derivingNames =
-#if MIN_VERSION_template_haskell(2,12,0)
+  DataD cxt name preparedVarBndrs Nothing cons (pure (DerivClause Nothing (map ConT derivingNames)))
+  where
+    preparedVarBndrs :: [TyVarBndr BndrVis]
+    preparedVarBndrs =
+      fmap (fmap (const BndrReq)) varBndrs
+#elif MIN_VERSION_template_haskell(2,12,0)
+dataD cxt name varBndrs cons derivingNames =
   DataD cxt name varBndrs Nothing cons (pure (DerivClause Nothing (map ConT derivingNames)))
 #elif MIN_VERSION_template_haskell(2,11,0)
+dataD cxt name varBndrs cons derivingNames =
   DataD cxt name varBndrs Nothing cons (map ConT derivingNames)
 #else
+dataD cxt name varBndrs cons derivingNames =
   DataD cxt name varBndrs cons derivingNames
 #endif
 
 notStrict :: Strict
-notStrict =
 #if MIN_VERSION_template_haskell(2,11,0)
+notStrict =
   Bang NoSourceUnpackedness NoSourceStrictness
 #else
+notStrict =
   NotStrict
 #endif
 
@@ -103,6 +113,6 @@
 conP = ConP
 #endif
 
-{-# deprecated conp "Use 'conP'" #-}
+{-# DEPRECATED conp "Use 'conP'" #-}
 conp :: Name -> [Pat] -> Pat
 conp = conP
diff --git a/library/TemplateHaskell/Compat/V0208/Prelude.hs b/library/TemplateHaskell/Compat/V0208/Prelude.hs
--- a/library/TemplateHaskell/Compat/V0208/Prelude.hs
+++ b/library/TemplateHaskell/Compat/V0208/Prelude.hs
@@ -21,7 +21,7 @@
 import Data.Fixed as Exports
 import Data.Foldable as Exports hiding (toList)
 import Data.Function as Exports hiding (id, (.))
-import Data.Functor as Exports
+import Data.Functor as Exports hiding (unzip)
 import Data.IORef as Exports
 import Data.Int as Exports
 import Data.Ix as Exports
diff --git a/template-haskell-compat-v0208.cabal b/template-haskell-compat-v0208.cabal
--- a/template-haskell-compat-v0208.cabal
+++ b/template-haskell-compat-v0208.cabal
@@ -1,9 +1,14 @@
 cabal-version: 3.0
 name:          template-haskell-compat-v0208
-version:       0.1.9.2
+version:       0.1.9.3
 category:      TemplateHaskell, Compatibility
-synopsis:
-  A backwards compatibility layer for Template Haskell newer than 2.8
+synopsis: Backward-compatibility layer for Template Haskell newer than 2.8
+description:
+  Collection of functions that aims to help you to write
+  Template Haskell that is compatible
+  with all versions of GHC starting from 7.6.
+  The oldest GHC serves as the common denominator here,
+  so the newer functionality is avoided here.
 
 homepage:
   https://github.com/nikita-volkov/template-haskell-compat-v0208
@@ -67,4 +72,4 @@
   other-modules:      TemplateHaskell.Compat.V0208.Prelude
   build-depends:
     , base >=4.6 && <5
-    , template-haskell >=2.8 && <2.21
+    , template-haskell >=2.8 && <2.22
