diff --git a/CHANGES.markdown b/CHANGES.markdown
--- a/CHANGES.markdown
+++ b/CHANGES.markdown
@@ -1,5 +1,17 @@
-## Changes in 0.12.3 [2023.07.12]
- - Allow building with `OneTuple-0.4.*`.
+## Changes in 0.13.0 [2023.03.10]
+ - This coincides with the `base-compat-0.13.0` release. Refer to the
+   [`base-compat` changelog](https://github.com/haskell-compat/base-compat/blob/master/base-compat/CHANGES.markdown#changes-in-0130-20230310)
+   for more details.
+ - Require `OneTuple-0.4` or later on GHC 7.4+, as that is the first `OneTuple`
+   release to backport the `MkSolo` data constuctor for `Solo`. See
+   `Data.Tuple.Compat`.
+ - Introduce `Data.Foldable1.Compat` and `Data.Bifoldable1.Compat` modules,
+   which correspond to changes made in `base-4.18.0.0`. `base-compat-batteries`
+   uses the `foldable1-classes-compat` library to backport this code to older
+   versions of `base`.
+ - Depend on `bifunctor-classes-compat` to backport the `Bifunctor`,
+   `Bifoldable`, and `Bitraversable` classes instead of the
+   `bifunctors` library, which has more dependencies.
 
 ## Changes in 0.12.2 [2022.08.11]
  - This coincides with the `base-compat-0.12.2` release. Refer to the
diff --git a/base-compat-batteries.cabal b/base-compat-batteries.cabal
--- a/base-compat-batteries.cabal
+++ b/base-compat-batteries.cabal
@@ -1,5 +1,5 @@
 name:             base-compat-batteries
-version:          0.12.3
+version:          0.13.0
 license:          MIT
 license-file:     LICENSE
 copyright:        (c) 2012-2018 Simon Hengel,
@@ -35,22 +35,6 @@
                   for a more comprehensive list of differences between
                   @base-compat@ and @base-compat-batteries@.
 extra-source-files: CHANGES.markdown, README.markdown
-tested-with:        GHC == 7.0.4
-                  , GHC == 7.2.2
-                  , GHC == 7.4.2
-                  , GHC == 7.6.3
-                  , GHC == 7.8.4
-                  , GHC == 7.10.3
-                  , GHC == 8.0.2
-                  , GHC == 8.2.2
-                  , GHC == 8.4.4
-                  , GHC == 8.6.5
-                  , GHC == 8.8.4
-                  , GHC == 8.10.7
-                  , GHC == 9.0.2
-                  , GHC == 9.2.7
-                  , GHC == 9.4.5
-                  , GHC == 9.6.2
 
 source-repository head
   type: git
@@ -64,7 +48,7 @@
       Haskell2010
   build-depends:
       base        >= 4.3 && < 5,
-      base-compat == 0.12.3,
+      base-compat == 0.13.0,
       ghc-prim
   if !impl(ghc >= 7.8)
     build-depends:
@@ -81,24 +65,15 @@
       transformers-compat >= 0.6     && < 0.8
   if !impl(ghc >= 8.2)
     build-depends:
-      bifunctors           >= 5.5.2 && < 5.6,
-      type-equality        >= 1     && < 1.1
+      bifunctor-classes-compat >= 0.1 && < 0.2,
+      type-equality            >= 1   && < 1.1
   if !impl(ghc >= 8.6)
     build-depends:
       contravariant >= 1.5 && < 1.6
-  if !impl(ghc >= 9.0)
+  if !impl(ghc >= 9.6)
     build-depends:
-      OneTuple >= 0.3 && < 0.5
-
-    -- We want to consistently use `Solo` as the name of the data constructor
-    -- for the base-compat-0.12.* series when building with a pre-9.6 version
-    -- of GHC. This is only possible on pre-7.8 versions of GHC (which do not
-    -- support pattern synonyms) with OneTuple-0.3.*, which defines a `Solo`
-    -- data constructor. (In OneTuple-0.4.* and later, the data constructor is
-    -- instead named `MkSolo`.)
-    if !impl(ghc >= 7.8)
-      build-depends:
-        OneTuple == 0.3.*
+      foldable1-classes-compat >= 0.1 && < 0.2,
+      OneTuple                 >= 0.4 && < 0.5
   ghc-options:
       -fno-warn-duplicate-exports
   if impl(ghc >= 7.10)
@@ -117,6 +92,7 @@
       Control.Monad.ST.Lazy.Unsafe.Compat
       Control.Monad.ST.Unsafe.Compat
       Data.Bifoldable.Compat
+      Data.Bifoldable1.Compat
       Data.Bifunctor.Compat
       Data.Bitraversable.Compat
       Data.Bits.Compat
@@ -124,6 +100,7 @@
       Data.Complex.Compat
       Data.Either.Compat
       Data.Foldable.Compat
+      Data.Foldable1.Compat
       Data.Function.Compat
       Data.Functor.Compat
       Data.Functor.Compose.Compat
@@ -141,7 +118,9 @@
       Data.Semigroup.Compat
       Data.STRef.Compat
       Data.String.Compat
+      Data.Traversable.Compat
       Data.Tuple.Compat
+      Data.Typeable.Compat
       Data.Type.Coercion.Compat
       Data.Type.Equality.Compat
       Data.Version.Compat
@@ -179,6 +158,7 @@
       Control.Monad.ST.Lazy.Unsafe.Compat.Repl.Batteries
       Control.Monad.ST.Unsafe.Compat.Repl.Batteries
       Data.Bifoldable.Compat.Repl.Batteries
+      Data.Bifoldable1.Compat.Repl.Batteries
       Data.Bifunctor.Compat.Repl.Batteries
       Data.Bitraversable.Compat.Repl.Batteries
       Data.Bits.Compat.Repl.Batteries
@@ -186,6 +166,7 @@
       Data.Complex.Compat.Repl.Batteries
       Data.Either.Compat.Repl.Batteries
       Data.Foldable.Compat.Repl.Batteries
+      Data.Foldable1.Compat.Repl.Batteries
       Data.Function.Compat.Repl.Batteries
       Data.Functor.Compat.Repl.Batteries
       Data.Functor.Compose.Compat.Repl.Batteries
@@ -203,7 +184,9 @@
       Data.Semigroup.Compat.Repl.Batteries
       Data.STRef.Compat.Repl.Batteries
       Data.String.Compat.Repl.Batteries
+      Data.Traversable.Compat.Repl.Batteries
       Data.Tuple.Compat.Repl.Batteries
+      Data.Typeable.Compat.Repl.Batteries
       Data.Type.Coercion.Compat.Repl.Batteries
       Data.Type.Equality.Compat.Repl.Batteries
       Data.Version.Compat.Repl.Batteries
@@ -266,7 +249,6 @@
       -- Other tests
       SafeHaskellSpec
       TestHspecTrustworthy
-      T91Spec
   build-depends:
       base >= 4.3 && < 5
     , base-compat-batteries
diff --git a/src/Data/Bifoldable/Compat.hs b/src/Data/Bifoldable/Compat.hs
--- a/src/Data/Bifoldable/Compat.hs
+++ b/src/Data/Bifoldable/Compat.hs
@@ -6,5 +6,5 @@
 #if MIN_VERSION_base(4,10,0)
 import "base-compat" Data.Bifoldable.Compat as Base
 #else
-import "bifunctors" Data.Bifoldable as Base
+import "bifunctor-classes-compat" Data.Bifoldable as Base
 #endif
diff --git a/src/Data/Bifoldable1/Compat.hs b/src/Data/Bifoldable1/Compat.hs
new file mode 100644
--- /dev/null
+++ b/src/Data/Bifoldable1/Compat.hs
@@ -0,0 +1,10 @@
+{-# LANGUAGE CPP, NoImplicitPrelude, PackageImports #-}
+module Data.Bifoldable1.Compat (
+  module Base
+) where
+
+#if MIN_VERSION_base(4,18,0)
+import "base-compat" Data.Bifoldable1.Compat as Base
+#else
+import "foldable1-classes-compat" Data.Bifoldable1 as Base
+#endif
diff --git a/src/Data/Bifoldable1/Compat/Repl/Batteries.hs b/src/Data/Bifoldable1/Compat/Repl/Batteries.hs
new file mode 100644
--- /dev/null
+++ b/src/Data/Bifoldable1/Compat/Repl/Batteries.hs
@@ -0,0 +1,8 @@
+{-# LANGUAGE PackageImports #-}
+{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}
+-- | Reexports "Data.Bifoldable1.Compat"
+-- from a globally unique namespace.
+module Data.Bifoldable1.Compat.Repl.Batteries (
+  module Data.Bifoldable1.Compat
+) where
+import "this" Data.Bifoldable1.Compat
diff --git a/src/Data/Bifunctor/Compat.hs b/src/Data/Bifunctor/Compat.hs
--- a/src/Data/Bifunctor/Compat.hs
+++ b/src/Data/Bifunctor/Compat.hs
@@ -6,5 +6,5 @@
 #if MIN_VERSION_base(4,8,0)
 import "base-compat" Data.Bifunctor.Compat as Base
 #else
-import "bifunctors" Data.Bifunctor as Base
+import "bifunctor-classes-compat" Data.Bifunctor as Base
 #endif
diff --git a/src/Data/Bitraversable/Compat.hs b/src/Data/Bitraversable/Compat.hs
--- a/src/Data/Bitraversable/Compat.hs
+++ b/src/Data/Bitraversable/Compat.hs
@@ -6,5 +6,5 @@
 #if MIN_VERSION_base(4,10,0)
 import "base-compat" Data.Bitraversable.Compat as Base
 #else
-import "bifunctors" Data.Bitraversable as Base
+import "bifunctor-classes-compat" Data.Bitraversable as Base
 #endif
diff --git a/src/Data/Foldable1/Compat.hs b/src/Data/Foldable1/Compat.hs
new file mode 100644
--- /dev/null
+++ b/src/Data/Foldable1/Compat.hs
@@ -0,0 +1,10 @@
+{-# LANGUAGE CPP, NoImplicitPrelude, PackageImports #-}
+module Data.Foldable1.Compat (
+  module Base
+) where
+
+#if MIN_VERSION_base(4,18,0)
+import "base-compat" Data.Foldable1.Compat as Base
+#else
+import "foldable1-classes-compat" Data.Foldable1 as Base
+#endif
diff --git a/src/Data/Foldable1/Compat/Repl/Batteries.hs b/src/Data/Foldable1/Compat/Repl/Batteries.hs
new file mode 100644
--- /dev/null
+++ b/src/Data/Foldable1/Compat/Repl/Batteries.hs
@@ -0,0 +1,8 @@
+{-# LANGUAGE PackageImports #-}
+{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}
+-- | Reexports "Data.Foldable1.Compat"
+-- from a globally unique namespace.
+module Data.Foldable1.Compat.Repl.Batteries (
+  module Data.Foldable1.Compat
+) where
+import "this" Data.Foldable1.Compat
diff --git a/src/Data/List/NonEmpty/Compat.hs b/src/Data/List/NonEmpty/Compat.hs
--- a/src/Data/List/NonEmpty/Compat.hs
+++ b/src/Data/List/NonEmpty/Compat.hs
@@ -4,76 +4,84 @@
     NonEmpty(..)
 
   -- * Non-empty stream transformations
-  , map         
-  , intersperse 
-  , scanl       
-  , scanr       
-  , scanl1      
-  , scanr1      
-  , transpose   
-  , sortBy      
-  , sortWith      
+  , map
+  , intersperse
+  , scanl
+  , scanr
+  , scanl1
+  , scanr1
+  , transpose
+  , sortBy
+  , sortWith
   -- * Basic functions
-  , length      
-  , head        
-  , tail        
-  , last        
-  , init        
+  , length
+  , head
+  , tail
+  , last
+  , init
   , singleton
-  , (<|), cons  
-  , uncons      
-  , unfoldr     
-  , sort        
-  , reverse     
-  , inits       
-  , tails       
+  , (<|), cons
+  , uncons
+  , unfoldr
+  , sort
+  , reverse
+  , inits
+  , inits1
+  , tails
+  , tails1
   -- * Building streams
-  , iterate     
-  , repeat      
-  , cycle       
-  , unfold      
-  , insert      
-  , some1       
+  , iterate
+  , repeat
+  , cycle
+  , unfold
+  , insert
+  , some1
   -- * Extracting sublists
-  , take        
-  , drop        
-  , splitAt     
-  , takeWhile   
-  , dropWhile   
-  , span        
-  , break       
-  , filter      
-  , partition   
-  , group       
-  , groupBy     
-  , groupWith     
-  , groupAllWith  
-  , group1      
-  , groupBy1    
-  , groupWith1     
-  , groupAllWith1  
+  , take
+  , drop
+  , splitAt
+  , takeWhile
+  , dropWhile
+  , span
+  , break
+  , filter
+  , partition
+  , group
+  , groupBy
+  , groupWith
+  , groupAllWith
+  , group1
+  , groupBy1
+  , groupWith1
+  , groupAllWith1
   -- * Sublist predicates
-  , isPrefixOf  
+  , isPrefixOf
   -- * \"Set\" operations
-  , nub         
-  , nubBy       
+  , nub
+  , nubBy
   -- * Indexing streams
-  , (!!)        
+  , (!!)
   -- * Zipping and unzipping streams
-  , zip         
-  , zipWith     
-  , unzip       
+  , zip
+  , zipWith
+  , unzip
   -- * Converting to and from a list
-  , fromList    
-  , toList      
-  , nonEmpty    
-  , xor         
+  , fromList
+  , toList
+  , nonEmpty
+  , xor
 ) where
 
 #if MIN_VERSION_base(4,9,0)
 import "base-compat" Data.List.NonEmpty.Compat
 #else
 import "semigroups" Data.List.NonEmpty
+
+import qualified "this" Prelude.Compat as Prelude
+import           "this" Prelude.Compat ((.))
+
+import qualified "this" Data.Foldable.Compat as Foldable
+import qualified "this" Data.List.Compat as List
 #endif
 
 #if !(MIN_VERSION_base(4,9,0))
@@ -82,4 +90,40 @@
 -- /Since: 4.15/
 singleton :: a -> NonEmpty a
 singleton a = a :| []
+
+-- | The 'inits1' function takes a 'NonEmpty' stream @xs@ and returns all the
+-- 'NonEmpty' finite prefixes of @xs@, starting with the shortest.
+--
+-- > inits1 (1 :| [2,3]) == (1 :| []) :| [1 :| [2], 1 :| [2,3]]
+-- > inits1 (1 :| []) == (1 :| []) :| []
+--
+-- /Since: 4.18/
+inits1 :: NonEmpty a -> NonEmpty (NonEmpty a)
+inits1 =
+  -- fromList is an unsafe function, but this usage should be safe, since:
+  -- - `inits xs = [[], ..., init (init xs), init xs, xs]`
+  -- - If `xs` is nonempty, it follows that `inits xs` contains at least one nonempty
+  --   list, since `last (inits xs) = xs`.
+  -- - The only empty element of `inits xs` is the first one (by the definition of `inits`)
+  -- - Therefore, if we take all but the first element of `inits xs` i.e.
+  --   `tail (inits xs)`, we have a nonempty list of nonempty lists
+  fromList . Prelude.map fromList . List.tail . List.inits . Foldable.toList
+
+-- | The 'tails1' function takes a 'NonEmpty' stream @xs@ and returns all the
+-- non-empty suffixes of @xs@, starting with the longest.
+--
+-- > tails1 (1 :| [2,3]) == (1 :| [2,3]) :| [2 :| [3], 3 :| []]
+-- > tails1 (1 :| []) == (1 :| []) :| []
+--
+-- /Since: 4.18/
+tails1 :: NonEmpty a -> NonEmpty (NonEmpty a)
+tails1 =
+  -- fromList is an unsafe function, but this usage should be safe, since:
+  -- - `tails xs = [xs, tail xs, tail (tail xs), ..., []]`
+  -- - If `xs` is nonempty, it follows that `tails xs` contains at least one nonempty
+  --   list, since `head (tails xs) = xs`.
+  -- - The only empty element of `tails xs` is the last one (by the definition of `tails`)
+  -- - Therefore, if we take all but the last element of `tails xs` i.e.
+  --   `init (tails xs)`, we have a nonempty list of nonempty lists
+  fromList . Prelude.map fromList . List.init . List.tails . Foldable.toList
 #endif
diff --git a/src/Data/Traversable/Compat.hs b/src/Data/Traversable/Compat.hs
new file mode 100644
--- /dev/null
+++ b/src/Data/Traversable/Compat.hs
@@ -0,0 +1,6 @@
+{-# LANGUAGE CPP, NoImplicitPrelude, PackageImports #-}
+module Data.Traversable.Compat (
+  module Base
+) where
+
+import "base-compat" Data.Traversable.Compat as Base
diff --git a/src/Data/Traversable/Compat/Repl/Batteries.hs b/src/Data/Traversable/Compat/Repl/Batteries.hs
new file mode 100644
--- /dev/null
+++ b/src/Data/Traversable/Compat/Repl/Batteries.hs
@@ -0,0 +1,8 @@
+{-# LANGUAGE PackageImports #-}
+{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}
+-- | Reexports "Data.Traversable.Compat"
+-- from a globally unique namespace.
+module Data.Traversable.Compat.Repl.Batteries (
+  module Data.Traversable.Compat
+) where
+import "this" Data.Traversable.Compat
diff --git a/src/Data/Tuple/Compat.hs b/src/Data/Tuple/Compat.hs
--- a/src/Data/Tuple/Compat.hs
+++ b/src/Data/Tuple/Compat.hs
@@ -2,21 +2,25 @@
 #if __GLASGOW_HASKELL__ >= 708
 {-# LANGUAGE PatternSynonyms #-}
 #endif
+-- | This uses the @OneTuple@ compatibility library to backport 'Solo' to old
+-- versions of GHC. Note that @OneTuple@ makes use of pattern synonyms, which
+-- cannot be defined on pre-7.8 versions of GHC. As such, it is not feasible
+-- to backport the @Solo@ data constructor on pre-7.8 versions of GHC, as
+-- @OneTuple@ defines this as a pattern synonym.
 module Data.Tuple.Compat
   (
 #if MIN_VERSION_ghc_prim(0,10,0)
     Solo(MkSolo, Solo)
-#elif __GLASGOW_HASKELL__ >= 708 && \
-      __GLASGOW_HASKELL__ < 800 && \
-      defined(MIN_VERSION_OneTuple)
-# if MIN_VERSION_OneTuple(0,4,0)
-    Solo
-  , pattern Solo
-# else
+#elif MIN_VERSION_ghc_prim(0,7,0)
     Solo(Solo)
-# endif
+  , pattern MkSolo
+#elif __GLASGOW_HASKELL__ >= 800
+    Solo(MkSolo, Solo)
+#elif __GLASGOW_HASKELL__ >= 708
+    Solo(MkSolo)
+  , pattern Solo
 #else
-    Solo(Solo)
+    Solo(MkSolo)
 #endif
   , fst
   , snd
@@ -25,8 +29,11 @@
   , swap
   ) where
 
-#if MIN_VERSION_ghc_prim(0,7,0)
+#if MIN_VERSION_ghc_prim(0,10,0)
 import "base-compat" Data.Tuple.Compat
+#elif MIN_VERSION_ghc_prim(0,7,0)
+import "base-compat" Data.Tuple.Compat
+import "OneTuple" Data.Tuple.Solo (pattern MkSolo)
 #else
 import "base" Data.Tuple
 import "OneTuple" Data.Tuple.Solo
diff --git a/src/Data/Typeable/Compat.hs b/src/Data/Typeable/Compat.hs
new file mode 100644
--- /dev/null
+++ b/src/Data/Typeable/Compat.hs
@@ -0,0 +1,6 @@
+{-# LANGUAGE CPP, NoImplicitPrelude, PackageImports #-}
+module Data.Typeable.Compat (
+  module Base
+) where
+
+import "base-compat" Data.Typeable.Compat as Base
diff --git a/src/Data/Typeable/Compat/Repl/Batteries.hs b/src/Data/Typeable/Compat/Repl/Batteries.hs
new file mode 100644
--- /dev/null
+++ b/src/Data/Typeable/Compat/Repl/Batteries.hs
@@ -0,0 +1,8 @@
+{-# LANGUAGE PackageImports #-}
+{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}
+-- | Reexports "Data.Typeable.Compat"
+-- from a globally unique namespace.
+module Data.Typeable.Compat.Repl.Batteries (
+  module Data.Typeable.Compat
+) where
+import "this" Data.Typeable.Compat
diff --git a/src/Numeric/Natural/Compat.hs b/src/Numeric/Natural/Compat.hs
--- a/src/Numeric/Natural/Compat.hs
+++ b/src/Numeric/Natural/Compat.hs
@@ -1,10 +1,24 @@
 {-# LANGUAGE CPP, NoImplicitPrelude, PackageImports #-}
+#if __GLASGOW_HASKELL__ >= 702
+{-# LANGUAGE Trustworthy #-}
+#endif
 module Numeric.Natural.Compat (
   module Base
+, minusNaturalMaybe
 ) where
 
 #if MIN_VERSION_base(4,8,0)
 import "base-compat" Numeric.Natural.Compat as Base
 #else
 import "nats" Numeric.Natural as Base
+
+import "this" Prelude.Compat
+
+-- | 'Natural' subtraction. Returns 'Nothing's for non-positive results.
+--
+-- /Since: 4.18.0.0/
+minusNaturalMaybe :: Natural -> Natural -> Maybe Natural
+minusNaturalMaybe x y
+  | x < y     = Nothing
+  | otherwise = Just (x - y)
 #endif
diff --git a/test/SafeHaskellSpec.hs b/test/SafeHaskellSpec.hs
--- a/test/SafeHaskellSpec.hs
+++ b/test/SafeHaskellSpec.hs
@@ -14,6 +14,7 @@
 import Control.Monad.Fail.Compat ()
 import Control.Monad.IO.Class.Compat ()
 import Data.Bifoldable.Compat ()
+import Data.Bifoldable1.Compat ()
 import Data.Bifunctor.Compat ()
 import Data.Bitraversable.Compat ()
 import Data.Bits.Compat ()
@@ -21,6 +22,7 @@
 import Data.Complex.Compat ()
 import Data.Either.Compat ()
 import Data.Foldable.Compat ()
+import Data.Foldable1.Compat ()
 import Data.Function.Compat ()
 import Data.Functor.Compat ()
 import Data.Functor.Compose.Compat ()
@@ -38,7 +40,9 @@
 import Data.Semigroup.Compat ()
 import Data.STRef.Compat ()
 import Data.String.Compat ()
+import Data.Traversable.Compat ()
 import Data.Tuple.Compat ()
+import Data.Typeable.Compat ()
 import Data.Type.Coercion.Compat ()
 import Data.Type.Equality.Compat ()
 import Data.Version.Compat ()
diff --git a/test/System/Environment/CompatSpec.hs b/test/System/Environment/CompatSpec.hs
--- a/test/System/Environment/CompatSpec.hs
+++ b/test/System/Environment/CompatSpec.hs
@@ -2,7 +2,7 @@
 module System.Environment.CompatSpec (main, spec) where
 
 import           Test.Hspec
-#if __GLASGOW_HASKELL__ >= 704
+#if __GLASGOW_HASKELL__ >= 702
 import           Test.QuickCheck
 #endif
 
@@ -56,7 +56,7 @@
     it "throws an exception if key contains '='" $ do
       unsetEnv "some=key" `shouldThrow` (== InvalidArgument) . ioeGetErrorType
 
-#if __GLASGOW_HASKELL__ >= 704
+#if __GLASGOW_HASKELL__ >= 702
     it "works for arbitrary keys" $
       property $ \k -> ('\NUL' `notElem` k && '=' `notElem` k && (not . null) k) ==> do
         setEnv k "foo"
@@ -96,7 +96,7 @@
       setEnv "FOO\NULBAR" "foo"
       getEnv "FOO" `shouldReturn` "foo"
 
-#if __GLASGOW_HASKELL__ >= 704
+#if __GLASGOW_HASKELL__ >= 702
     it "works for unicode" $ do
       unsetEnv "FOO"
       setEnv "FOO" "foo-\955-bar"
@@ -118,7 +118,7 @@
     it "throws an exception if key contains '='" $ do
       setEnv "some=key" "foo" `shouldThrow` (== InvalidArgument) . ioeGetErrorType
 
-#if __GLASGOW_HASKELL__ >= 704
+#if __GLASGOW_HASKELL__ >= 702
     it "works for arbitrary keys" $
       property $ \k -> ('\NUL' `notElem` k && '=' `notElem` k && (not . null) k) ==> do
         setEnv k "foo"
diff --git a/test/T91Spec.hs b/test/T91Spec.hs
deleted file mode 100644
--- a/test/T91Spec.hs
+++ /dev/null
@@ -1,15 +0,0 @@
-{-# OPTIONS_GHC -fno-warn-deprecations #-}
--- | A regression test for https://github.com/haskell-compat/base-compat/issues/91.
-module T91Spec (main, spec) where
-
-import Data.Tuple.Compat
-import Test.Hspec (Expectation, Spec, describe, hspec, it)
-
-main :: IO ()
-main = hspec spec
-
-spec :: Spec
-spec =
-  describe "Solo data constructor" $
-    it "is always available" $ do
-      Solo () `seq` return () :: Expectation
