diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,7 @@
+### 3.8.6 [2021.11.21]
+* Add a `TextShow` instance for `Scientific` from the `scientific` package.
+* Require `quickcheck-instances-0.3.27` or later in the test suite.
+
 ### 3.8.5 [2021.10.31]
 * Allow building with GHC 9.2.
 * Require `quickcheck-instances-0.3.26` or later in the test suite.
diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -29,6 +29,7 @@
 * [`old-time`](http://hackage.haskell.org/package/old-time)
 * [`pretty`](http://hackage.haskell.org/package/pretty)
 * [`random`](http://hackage.haskell.org/package/random)
+* [`scientific`](http://hackage.haskell.org/package/scientific)
 * [`tagged`](http://hackage.haskell.org/package/tagged)
 * [`template-haskell`](http://hackage.haskell.org/package/template-haskell)
 * [`terminfo`](http://hackage.haskell.org/package/terminfo)
diff --git a/src/TextShow/Data/Scientific.hs b/src/TextShow/Data/Scientific.hs
new file mode 100644
--- /dev/null
+++ b/src/TextShow/Data/Scientific.hs
@@ -0,0 +1,12 @@
+{-# OPTIONS -fno-warn-orphans #-}
+module TextShow.Data.Scientific () where
+import Data.Scientific
+import Data.Text.Lazy.Builder.Scientific ( scientificBuilder )
+import TextShow
+
+instance TextShow Scientific where
+        showbPrec d s
+                | coefficient s < 0 = showbParen (d > prefixMinusPrec) (scientificBuilder s)
+                | otherwise         = scientificBuilder s
+                where prefixMinusPrec :: Int
+                      prefixMinusPrec = 6
diff --git a/src/TextShow/Instances.hs b/src/TextShow/Instances.hs
--- a/src/TextShow/Instances.hs
+++ b/src/TextShow/Instances.hs
@@ -29,6 +29,7 @@
 import TextShow.Data.Binary                 ()
 import TextShow.Data.Containers             ()
 import TextShow.Data.Functor.Trans          ()
+import TextShow.Data.Scientific             ()
 import TextShow.Data.Tagged                 ()
 import TextShow.Data.Time                   ()
 import TextShow.Data.UnorderedContainers    ()
diff --git a/tests/Instances/Control/Applicative/Trans.hs b/tests/Instances/Control/Applicative/Trans.hs
deleted file mode 100644
--- a/tests/Instances/Control/Applicative/Trans.hs
+++ /dev/null
@@ -1,44 +0,0 @@
-{-# LANGUAGE CPP                        #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE FlexibleContexts           #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE StandaloneDeriving         #-}
-{-# LANGUAGE TemplateHaskell            #-}
-{-# LANGUAGE TypeFamilies               #-}
-{-# OPTIONS_GHC -fno-warn-orphans #-}
-{-|
-Module:      Instances.Control.Applicative.Trans
-Copyright:   (C) 2014-2017 Ryan Scott
-License:     BSD-style (see the file LICENSE)
-Maintainer:  Ryan Scott
-Stability:   Provisional
-Portability: GHC
-
-Provides 'Arbitrary' instances for applicative functor transformers.
--}
-module Instances.Control.Applicative.Trans () where
-
-import           Control.Applicative.Backwards (Backwards(..))
-import           Control.Applicative.Lift      (Lift(..))
-import           Control.Monad.Trans.Instances ()
-
--- TODO: Remove the MIN_VERSION_transformers_compat(0,7,0) by unconditionally
--- depending on transformers-0.7 or later
-#if !(MIN_VERSION_transformers(0,6,0)) && !(MIN_VERSION_transformers_compat(0,7,0))
-import           GHC.Generics (Generic)
-#endif
-
-import           Instances.Utils.GenericArbitrary (genericArbitrary)
-
-import           Test.QuickCheck (Arbitrary(..))
-
-deriving instance Arbitrary (f a) => Arbitrary (Backwards f a)
-
-instance (Arbitrary a, Arbitrary (f a)) => Arbitrary (Lift f a) where
-    arbitrary = genericArbitrary
-
--- TODO: Remove the MIN_VERSION_transformers_compat(0,7,0) by unconditionally
--- depending on transformers-0.7 or later
-#if !(MIN_VERSION_transformers(0,6,0)) && !(MIN_VERSION_transformers_compat(0,7,0))
-deriving instance Generic (Lift f a)
-#endif
diff --git a/tests/Instances/Data/Functor/Trans.hs b/tests/Instances/Data/Functor/Trans.hs
deleted file mode 100644
--- a/tests/Instances/Data/Functor/Trans.hs
+++ /dev/null
@@ -1,20 +0,0 @@
-{-# LANGUAGE FlexibleContexts           #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE StandaloneDeriving         #-}
-{-# OPTIONS_GHC -fno-warn-orphans #-}
-{-|
-Module:      Instances.Data.Functor.Trans
-Copyright:   (C) 2014-2017 Ryan Scott
-License:     BSD-style (see the file LICENSE)
-Maintainer:  Ryan Scott
-Stability:   Provisional
-Portability: GHC
-
-Provides 'Arbitrary' instances for functor transformers.
--}
-module Instances.Data.Functor.Trans () where
-
-import Data.Functor.Reverse (Reverse(..))
-import Test.QuickCheck (Arbitrary)
-
-deriving instance Arbitrary (f a) => Arbitrary (Reverse f a)
diff --git a/tests/Spec/Control/Applicative/TransSpec.hs b/tests/Spec/Control/Applicative/TransSpec.hs
--- a/tests/Spec/Control/Applicative/TransSpec.hs
+++ b/tests/Spec/Control/Applicative/TransSpec.hs
@@ -15,11 +15,10 @@
 
 import Data.Proxy (Proxy(..))
 
-import Instances.Control.Applicative.Trans ()
-
 import Spec.Utils (matchesTextShowSpec)
 
 import Test.Hspec (Spec, describe, hspec, parallel)
+import Test.QuickCheck.Instances ()
 
 import TextShow.Control.Applicative.Trans ()
 
diff --git a/tests/Spec/Data/Functor/TransSpec.hs b/tests/Spec/Data/Functor/TransSpec.hs
--- a/tests/Spec/Data/Functor/TransSpec.hs
+++ b/tests/Spec/Data/Functor/TransSpec.hs
@@ -17,8 +17,6 @@
 import Data.Functor.Sum      (Sum)
 import Data.Proxy            (Proxy(..))
 
-import Instances.Data.Functor.Trans ()
-
 import Spec.Utils (matchesTextShowSpec)
 
 import Test.Hspec (Spec, describe, hspec, parallel)
diff --git a/tests/Spec/Data/ScientificSpec.hs b/tests/Spec/Data/ScientificSpec.hs
new file mode 100644
--- /dev/null
+++ b/tests/Spec/Data/ScientificSpec.hs
@@ -0,0 +1,29 @@
+{-|
+Module:      Spec.Data.ScientificSpec
+Copyright:   (C) 2014-2018 Ryan Scott
+License:     BSD-style (see the file LICENSE)
+Maintainer:  Ryan Scott
+Stability:   Provisional
+Portability: GHC
+
+@hspec@ tests for 'Scientific' (from the @scientific@ package).
+-}
+module Spec.Data.ScientificSpec (main, spec) where
+
+import           Data.Proxy                (Proxy (..))
+import           Data.Scientific           (Scientific)
+
+import           Spec.Utils                (matchesTextShowSpec)
+
+import           Test.Hspec                (Spec, describe, hspec, parallel)
+import           Test.QuickCheck.Instances ()
+
+import           TextShow.Data.Scientific   ()
+
+main :: IO ()
+main = hspec spec
+
+spec :: Spec
+spec = parallel $ do
+    describe "Scientific" $
+        matchesTextShowSpec (Proxy :: Proxy Scientific)
diff --git a/text-show-instances.cabal b/text-show-instances.cabal
--- a/text-show-instances.cabal
+++ b/text-show-instances.cabal
@@ -1,5 +1,5 @@
 name:                text-show-instances
-version:             3.8.5
+version:             3.8.6
 synopsis:            Additional instances for text-show
 description:         @text-show-instances@ is a supplemental library to @text-show@
                      that provides additional @Show@ instances for data types in
@@ -29,6 +29,8 @@
                      .
                      * @<http://hackage.haskell.org/package/random               random>@
                      .
+                     * @<http://hackage.haskell.org/package/scientific           scientific>@
+                     .
                      * @<http://hackage.haskell.org/package/tagged               tagged>@
                      .
                      * @<http://hackage.haskell.org/package/template-haskell     template-haskell>@
@@ -105,6 +107,7 @@
                        TextShow.Data.Binary
                        TextShow.Data.Containers
                        TextShow.Data.Functor.Trans
+                       TextShow.Data.Scientific
                        TextShow.Data.ShortText
                        TextShow.Data.Tagged
                        TextShow.Data.Time
@@ -144,6 +147,7 @@
                      , old-time              >= 1.1    && < 1.2
                      , pretty                >= 1.1.1  && < 1.2
                      , random                >= 1.0.1  && < 1.3
+                     , scientific            >= 0.3.7  && < 0.4
                      , semigroups            >= 0.16.2 && < 1
                      , tagged                >= 0.4.4  && < 1
                      , text                  >= 0.11.1 && < 1.3
@@ -185,12 +189,10 @@
 test-suite spec
   type:                exitcode-stdio-1.0
   main-is:             Spec.hs
-  other-modules:       Instances.Control.Applicative.Trans
-                       Instances.Control.Monad.Trans
+  other-modules:       Instances.Control.Monad.Trans
                        Instances.Data.Bifunctor
                        Instances.Data.Binary
                        Instances.Data.Containers
-                       Instances.Data.Functor.Trans
                        Instances.Data.Vector
                        Instances.Language.Haskell.TH
                        Instances.Miscellaneous
@@ -226,6 +228,7 @@
                        Spec.Data.BinarySpec
                        Spec.Data.ContainersSpec
                        Spec.Data.Functor.TransSpec
+                       Spec.Data.ScientificSpec
                        Spec.Data.ShortTextSpec
                        Spec.Data.VectorSpec
                        Spec.Data.TaggedSpec
@@ -268,9 +271,10 @@
                      , old-time              >= 1.1    && < 1.2
                      , pretty                >= 1.1.1  && < 1.2
                      , QuickCheck            >= 2.12   && < 2.15
-                     , quickcheck-instances  >= 0.3.26 && < 0.4
+                     , quickcheck-instances  >= 0.3.27 && < 0.4
                      , random                >= 1.0.1  && < 1.3
                      , tagged                >= 0.4.4  && < 1
+                     , scientific            >= 0.3.7  && < 0.4
                      , text-short            >= 0.1    && < 0.2
                      , text-show             >= 3.4    && < 4
                      , text-show-instances
