diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,6 @@
+### 3.10.1 [2023.02.27]
+* Support `th-abstraction-0.5.*`.
+
 ## 3.10 [2022.10.05]
 * The instances in `TextShow.FromStringTextShow` module have been scaled back
   somewhat for forward compatibility with Core Libraries proposal #10, which
diff --git a/src/TextShow/Generic.hs b/src/TextShow/Generic.hs
--- a/src/TextShow/Generic.hs
+++ b/src/TextShow/Generic.hs
@@ -218,14 +218,17 @@
   showbPrec p = gShowbPrec p . from1 . fromGeneric1
 
 -- | /Since: 3.7.4/
-instance ( Generic1 f, GTextShowB1 (Rep1 f)
+instance ( Generic1 f
 #if __GLASGOW_HASKELL__ >= 806 && __GLASGOW_HASKELL__ < 902
            -- Unfortunately, the quantified superclass for GTextShowB1 doesn't
-           -- work on pre-9.2 versions of GHC, perhaps due to
+           -- work on pre-9.2 versions of GHC when using a GTextShowB1 (Rep1 f)
+           -- constraint directly, perhaps due to
            -- https://gitlab.haskell.org/ghc/ghc/-/issues/14860#note_454218.
            -- Fortunately, we can make GHC come to its senses by using an
            -- equality constraint.
-         , g ~ Rep1 f, forall a. TextShow a => GTextShowB (g a)
+         , g ~ Rep1 f, GTextShowB1 g
+#else
+         , GTextShowB1 (Rep1 f)
 #endif
          ) => TextShow1 (FromGeneric1 f) where
   liftShowbPrec sp sl p = genericLiftShowbPrec sp sl p . fromGeneric1
diff --git a/src/TextShow/TH/Internal.hs b/src/TextShow/TH/Internal.hs
--- a/src/TextShow/TH/Internal.hs
+++ b/src/TextShow/TH/Internal.hs
@@ -92,7 +92,7 @@
                           )
 import           GHC.Show (appPrec, appPrec1)
 
-import           Language.Haskell.TH.Datatype
+import           Language.Haskell.TH.Datatype as Datatype
 import           Language.Haskell.TH.Lib
 import           Language.Haskell.TH.Ppr hiding (appPrec)
 import           Language.Haskell.TH.Syntax
@@ -874,14 +874,17 @@
           map (substNamesWithKindStar (List.union droppedKindVarNames kvNames'))
             $ take remainingLength varTysOrig
 
-        isDataFamily :: Bool
-        isDataFamily = case variant of
-                         Datatype        -> False
-                         Newtype         -> False
-                         DataInstance    -> True
-                         NewtypeInstance -> True
+    isDataFamily <-
+      case variant of
+        Datatype        -> return False
+        Newtype         -> return False
+        DataInstance    -> return True
+        NewtypeInstance -> return True
+#if MIN_VERSION_th_abstraction(0,5,0)
+        Datatype.TypeData -> typeDataError tyConName
+#endif
 
-        remainingTysOrigSubst' :: [Type]
+    let remainingTysOrigSubst' :: [Type]
         -- See Note [Kind signatures in derived instances] for an explanation
         -- of the isDataFamily check.
         remainingTysOrigSubst' =
@@ -1061,6 +1064,17 @@
   where
     n :: Int
     n = fromEnum tsClass
+
+#if MIN_VERSION_th_abstraction(0,5,0)
+-- | We cannot implement class methods at the term level for @type data@
+-- declarations, which only exist at the type level.
+typeDataError :: Name -> Q a
+typeDataError dataName = fail
+  . showString "Cannot derive instance for ‘"
+  . showString (nameBase dataName)
+  . showString "‘, which is a ‘type data‘ declaration"
+  $ ""
+#endif
 
 -------------------------------------------------------------------------------
 -- Expanding type synonyms
diff --git a/text-show.cabal b/text-show.cabal
--- a/text-show.cabal
+++ b/text-show.cabal
@@ -1,5 +1,5 @@
 name:                text-show
-version:             3.10
+version:             3.10.1
 synopsis:            Efficient conversion of values into Text
 description:         @text-show@ offers a replacement for the @Show@ typeclass intended
                      for use with @Text@ instead of @String@s. This package was created
@@ -171,7 +171,7 @@
                      , generic-deriving      >= 1.14.1 && < 2
                      , ghc-prim
                      , text                  >= 0.11.1 && < 2.1
-                     , th-abstraction        >= 0.4    && < 0.5
+                     , th-abstraction        >= 0.4    && < 0.6
                      , th-lift               >= 0.7.6  && < 1
 
   if flag(base-4-9)
