diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,6 @@
+### 3.8.1 [2019.04.26]
+* Support `th-abstraction-0.3` or later.
+
 ## 3.8 [2019.03.19]
 * Remove the `TextShow I16` instance from `TextShow.Data.Text`. The usefulness
   of this instance was dubious at best, and moreover, it was actively causing
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
@@ -458,23 +458,27 @@
 deriveTextShowClass tsClass opts name = do
   info <- reifyDatatype name
   case info of
-    DatatypeInfo { datatypeContext = ctxt
-                 , datatypeName    = parentName
-                 , datatypeVars    = vars
-                 , datatypeVariant = variant
-                 , datatypeCons    = cons
+    DatatypeInfo { datatypeContext   = ctxt
+                 , datatypeName      = parentName
+#if MIN_VERSION_th_abstraction(0,3,0)
+                 , datatypeInstTypes = instTys
+#else
+                 , datatypeVars      = instTys
+#endif
+                 , datatypeVariant   = variant
+                 , datatypeCons      = cons
                  } -> do
       (instanceCxt, instanceType)
-        <- buildTypeInstance tsClass parentName ctxt vars variant
+        <- buildTypeInstance tsClass parentName ctxt instTys variant
       (:[]) <$> instanceD (return instanceCxt)
                           (return instanceType)
-                          (showbPrecDecs tsClass opts vars cons)
+                          (showbPrecDecs tsClass opts instTys cons)
 
 -- | Generates a declaration defining the primary function corresponding to a
 -- particular class (showbPrec for TextShow, liftShowbPrec for TextShow1, and
 -- liftShowbPrec2 for TextShow2).
 showbPrecDecs :: TextShowClass -> Options -> [Type] -> [ConstructorInfo] -> [Q Dec]
-showbPrecDecs tsClass opts vars cons =
+showbPrecDecs tsClass opts instTys cons =
     [genMethod ShowbPrec (showbPrecName tsClass)]
     ++ if tsClass == TextShow && shouldGenTextMethods
           then [genMethod ShowtPrec 'showtPrec, genMethod ShowtlPrec 'showtlPrec]
@@ -490,7 +494,7 @@
     genMethod method methodName
       = funD methodName
              [ clause []
-                      (normalB $ makeTextShowForCons tsClass method opts vars cons)
+                      (normalB $ makeTextShowForCons tsClass method opts instTys cons)
                       []
              ]
 
@@ -501,30 +505,34 @@
 makeShowbPrecClass tsClass tsFun opts name = do
   info <- reifyDatatype name
   case info of
-    DatatypeInfo { datatypeContext = ctxt
-                 , datatypeName    = parentName
-                 , datatypeVars    = vars
-                 , datatypeVariant = variant
-                 , datatypeCons    = cons
+    DatatypeInfo { datatypeContext   = ctxt
+                 , datatypeName      = parentName
+#if MIN_VERSION_th_abstraction(0,3,0)
+                 , datatypeInstTypes = instTys
+#else
+                 , datatypeVars      = instTys
+#endif
+                 , datatypeVariant   = variant
+                 , datatypeCons      = cons
                  } ->
       -- We force buildTypeInstance here since it performs some checks for whether
       -- or not the provided datatype can actually have showbPrec/liftShowbPrec/etc.
       -- implemented for it, and produces errors if it can't.
-      buildTypeInstance tsClass parentName ctxt vars variant
-        >> makeTextShowForCons tsClass tsFun opts vars cons
+      buildTypeInstance tsClass parentName ctxt instTys variant
+        >> makeTextShowForCons tsClass tsFun opts instTys cons
 
 -- | Generates a lambda expression for showbPrec/liftShowbPrec/etc. for the
 -- given constructors. All constructors must be from the same type.
 makeTextShowForCons :: TextShowClass -> TextShowFun -> Options -> [Type] -> [ConstructorInfo]
                     -> Q Exp
-makeTextShowForCons tsClass tsFun opts vars cons = do
+makeTextShowForCons tsClass tsFun opts instTys cons = do
     p       <- newName "p"
     value   <- newName "value"
     sps     <- newNameList "sp" $ fromEnum tsClass
     sls     <- newNameList "sl" $ fromEnum tsClass
     let spls       = zip sps sls
         spsAndSls  = interleave sps sls
-        lastTyVars = map varTToName $ drop (length vars - fromEnum tsClass) vars
+        lastTyVars = map varTToName $ drop (length instTys - fromEnum tsClass) instTys
         splMap     = Map.fromList $ zip lastTyVars spls
 
         makeFun
diff --git a/tests/Instances/Data/Typeable.hs b/tests/Instances/Data/Typeable.hs
--- a/tests/Instances/Data/Typeable.hs
+++ b/tests/Instances/Data/Typeable.hs
@@ -30,7 +30,6 @@
 # else
 import GHC.Word (Word(..))
 # endif
-import Test.QuickCheck (oneof)
 #else
 import Data.Typeable.Internal (TyCon(..))
 #endif
diff --git a/tests/Instances/GHC/TypeLits.hs b/tests/Instances/GHC/TypeLits.hs
--- a/tests/Instances/GHC/TypeLits.hs
+++ b/tests/Instances/GHC/TypeLits.hs
@@ -37,7 +37,7 @@
         nat <- getNonNegative <$> arbitrary
         case someNatVal nat of
              Just sn -> pure sn
-             Nothing -> fail "Negative natural number" -- Should never happen
+             Nothing -> error "Negative natural number" -- Should never happen
 
 instance Arbitrary SomeSymbol where
     arbitrary = someSymbolVal <$> arbitrary
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.8
+version:             3.8.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
@@ -166,7 +166,7 @@
                      , semigroups            >= 0.17   && < 1
                      , tagged                >= 0.4.4  && < 1
                      , text                  >= 0.11.1 && < 1.3
-                     , th-abstraction        >= 0.2.2  && < 0.3
+                     , th-abstraction        >= 0.2.2  && < 0.4
                      , th-lift               >= 0.7.6  && < 1
                      , void                  >= 0.5    && < 1
 
@@ -347,7 +347,7 @@
                      , ghc-prim
                      , hspec                 >= 2      && < 3
                      , nats                  >= 0.1    && < 2
-                     , QuickCheck            >= 2.12   && < 2.13
+                     , QuickCheck            >= 2.12   && < 2.14
                      , quickcheck-instances  >= 0.3.18 && < 0.4
                      , semigroups            >= 0.18.3 && < 1
                      , tagged                >= 0.8.3  && < 1
