diff --git a/CHANGES.markdown b/CHANGES.markdown
--- a/CHANGES.markdown
+++ b/CHANGES.markdown
@@ -1,3 +1,9 @@
+## Changes in 0.14.1 [2024.12.06]
+ - This coincides with the `base-compat-batteries-0.14.1` release. Refer to the
+   [`base-compat-batteries` changelog](https://github.com/haskell-compat/base-compat/blob/master/base-compat-batteries/CHANGES.markdown#changes-in-0141-20241206)
+   for more details.
+ - Drop support for pre-8.0 versions of GHC.
+
 ## Changes in 0.14.0 [2024.04.30]
  - This coincides with the `base-compat-batteries-0.14.0` release. Refer to the
    [`base-compat-batteries` changelog](https://github.com/haskell-compat/base-compat/blob/master/base-compat-batteries/CHANGES.markdown#changes-in-0140-20240430)
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.14.0
+version:          0.14.1
 license:          MIT
 license-file:     LICENSE
 copyright:        (c) 2012-2018 Simon Hengel,
@@ -35,13 +35,7 @@
                   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
+tested-with:        GHC == 8.0.2
                   , GHC == 8.2.2
                   , GHC == 8.4.4
                   , GHC == 8.6.5
@@ -50,9 +44,10 @@
                   , GHC == 9.0.2
                   , GHC == 9.2.8
                   , GHC == 9.4.8
-                  , GHC == 9.6.5
+                  , GHC == 9.6.6
                   , GHC == 9.8.2
                   , GHC == 9.10.1
+                  , GHC == 9.12.1
 
 source-repository head
   type: git
@@ -65,22 +60,9 @@
   default-language:
       Haskell2010
   build-depends:
-      base        >= 4.3 && < 5,
-      base-compat == 0.14.0,
+      base        >= 4.9 && < 5,
+      base-compat == 0.14.1,
       ghc-prim
-  if !impl(ghc >= 7.8)
-    build-depends:
-      tagged >= 0.8.5 && < 0.9
-  if !impl(ghc >= 7.10)
-    build-depends:
-      nats >= 1.1.2 && < 1.2,
-      void >= 0.7.2 && < 0.8
-  if !impl(ghc >= 8.0)
-    build-depends:
-      fail                >= 4.9.0.0 && < 4.10,
-      semigroups          >= 0.18.4  && < 0.21,
-      transformers        >= 0.2     && < 0.7,
-      transformers-compat >= 0.6     && < 0.8
   if !impl(ghc >= 8.2)
     build-depends:
       bifunctor-classes-compat >= 0.1 && < 0.2,
@@ -93,9 +75,7 @@
       foldable1-classes-compat >= 0.1 && < 0.2,
       OneTuple                 >= 0.4 && < 0.5
   ghc-options:
-      -fno-warn-duplicate-exports
-  if impl(ghc >= 7.10)
-    ghc-options: -fno-warn-trustworthy-safe
+      -Wno-duplicate-exports -Wno-trustworthy-safe
 
   hs-source-dirs:
       src
@@ -268,7 +248,7 @@
       SafeHaskellSpec
       TestHspecTrustworthy
   build-depends:
-      base >= 4.3 && < 5
+      base >= 4.9 && < 5
     , base-compat-batteries
     , hspec >= 1.8
     , QuickCheck
diff --git a/src/Control/Concurrent/Compat/Repl/Batteries.hs b/src/Control/Concurrent/Compat/Repl/Batteries.hs
--- a/src/Control/Concurrent/Compat/Repl/Batteries.hs
+++ b/src/Control/Concurrent/Compat/Repl/Batteries.hs
@@ -1,5 +1,5 @@
 {-# LANGUAGE PackageImports #-}
-{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -Wno-dodgy-exports -Wno-unused-imports #-}
 -- | Reexports "Control.Concurrent.Compat"
 -- from a globally unique namespace.
 module Control.Concurrent.Compat.Repl.Batteries (
diff --git a/src/Control/Concurrent/MVar/Compat/Repl/Batteries.hs b/src/Control/Concurrent/MVar/Compat/Repl/Batteries.hs
--- a/src/Control/Concurrent/MVar/Compat/Repl/Batteries.hs
+++ b/src/Control/Concurrent/MVar/Compat/Repl/Batteries.hs
@@ -1,5 +1,5 @@
 {-# LANGUAGE PackageImports #-}
-{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -Wno-dodgy-exports -Wno-unused-imports #-}
 -- | Reexports "Control.Concurrent.MVar.Compat"
 -- from a globally unique namespace.
 module Control.Concurrent.MVar.Compat.Repl.Batteries (
diff --git a/src/Control/Exception/Compat/Repl/Batteries.hs b/src/Control/Exception/Compat/Repl/Batteries.hs
--- a/src/Control/Exception/Compat/Repl/Batteries.hs
+++ b/src/Control/Exception/Compat/Repl/Batteries.hs
@@ -1,5 +1,5 @@
 {-# LANGUAGE PackageImports #-}
-{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -Wno-dodgy-exports -Wno-unused-imports #-}
 -- | Reexports "Control.Exception.Compat"
 -- from a globally unique namespace.
 module Control.Exception.Compat.Repl.Batteries (
diff --git a/src/Control/Monad/Compat/Repl/Batteries.hs b/src/Control/Monad/Compat/Repl/Batteries.hs
--- a/src/Control/Monad/Compat/Repl/Batteries.hs
+++ b/src/Control/Monad/Compat/Repl/Batteries.hs
@@ -1,5 +1,5 @@
 {-# LANGUAGE PackageImports #-}
-{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -Wno-dodgy-exports -Wno-unused-imports #-}
 -- | Reexports "Control.Monad.Compat"
 -- from a globally unique namespace.
 module Control.Monad.Compat.Repl.Batteries (
diff --git a/src/Control/Monad/Fail/Compat.hs b/src/Control/Monad/Fail/Compat.hs
--- a/src/Control/Monad/Fail/Compat.hs
+++ b/src/Control/Monad/Fail/Compat.hs
@@ -1,10 +1,6 @@
-{-# LANGUAGE CPP, NoImplicitPrelude, PackageImports #-}
+{-# LANGUAGE NoImplicitPrelude, PackageImports #-}
 module Control.Monad.Fail.Compat (
   module Base
 ) where
 
-#if MIN_VERSION_base(4,9,0)
 import "base-compat" Control.Monad.Fail.Compat as Base
-#else
-import "fail" Control.Monad.Fail as Base
-#endif
diff --git a/src/Control/Monad/Fail/Compat/Repl/Batteries.hs b/src/Control/Monad/Fail/Compat/Repl/Batteries.hs
--- a/src/Control/Monad/Fail/Compat/Repl/Batteries.hs
+++ b/src/Control/Monad/Fail/Compat/Repl/Batteries.hs
@@ -1,5 +1,5 @@
 {-# LANGUAGE PackageImports #-}
-{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -Wno-dodgy-exports -Wno-unused-imports #-}
 -- | Reexports "Control.Monad.Fail.Compat"
 -- from a globally unique namespace.
 module Control.Monad.Fail.Compat.Repl.Batteries (
diff --git a/src/Control/Monad/IO/Class/Compat.hs b/src/Control/Monad/IO/Class/Compat.hs
--- a/src/Control/Monad/IO/Class/Compat.hs
+++ b/src/Control/Monad/IO/Class/Compat.hs
@@ -1,10 +1,6 @@
-{-# LANGUAGE CPP, NoImplicitPrelude, PackageImports #-}
+{-# LANGUAGE NoImplicitPrelude, PackageImports #-}
 module Control.Monad.IO.Class.Compat (
   module Base
 ) where
 
-#if MIN_VERSION_base(4,9,0)
 import "base-compat" Control.Monad.IO.Class.Compat as Base
-#else
-import Control.Monad.IO.Class as Base
-#endif
diff --git a/src/Control/Monad/IO/Class/Compat/Repl/Batteries.hs b/src/Control/Monad/IO/Class/Compat/Repl/Batteries.hs
--- a/src/Control/Monad/IO/Class/Compat/Repl/Batteries.hs
+++ b/src/Control/Monad/IO/Class/Compat/Repl/Batteries.hs
@@ -1,5 +1,5 @@
 {-# LANGUAGE PackageImports #-}
-{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -Wno-dodgy-exports -Wno-unused-imports #-}
 -- | Reexports "Control.Monad.IO.Class.Compat"
 -- from a globally unique namespace.
 module Control.Monad.IO.Class.Compat.Repl.Batteries (
diff --git a/src/Control/Monad/ST/Lazy/Unsafe/Compat/Repl/Batteries.hs b/src/Control/Monad/ST/Lazy/Unsafe/Compat/Repl/Batteries.hs
--- a/src/Control/Monad/ST/Lazy/Unsafe/Compat/Repl/Batteries.hs
+++ b/src/Control/Monad/ST/Lazy/Unsafe/Compat/Repl/Batteries.hs
@@ -1,5 +1,5 @@
 {-# LANGUAGE PackageImports #-}
-{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -Wno-dodgy-exports -Wno-unused-imports #-}
 -- | Reexports "Control.Monad.ST.Lazy.Unsafe.Compat"
 -- from a globally unique namespace.
 module Control.Monad.ST.Lazy.Unsafe.Compat.Repl.Batteries (
diff --git a/src/Control/Monad/ST/Unsafe/Compat/Repl/Batteries.hs b/src/Control/Monad/ST/Unsafe/Compat/Repl/Batteries.hs
--- a/src/Control/Monad/ST/Unsafe/Compat/Repl/Batteries.hs
+++ b/src/Control/Monad/ST/Unsafe/Compat/Repl/Batteries.hs
@@ -1,5 +1,5 @@
 {-# LANGUAGE PackageImports #-}
-{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -Wno-dodgy-exports -Wno-unused-imports #-}
 -- | Reexports "Control.Monad.ST.Unsafe.Compat"
 -- from a globally unique namespace.
 module Control.Monad.ST.Unsafe.Compat.Repl.Batteries (
diff --git a/src/Data/Bifoldable/Compat/Repl/Batteries.hs b/src/Data/Bifoldable/Compat/Repl/Batteries.hs
--- a/src/Data/Bifoldable/Compat/Repl/Batteries.hs
+++ b/src/Data/Bifoldable/Compat/Repl/Batteries.hs
@@ -1,5 +1,5 @@
 {-# LANGUAGE PackageImports #-}
-{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -Wno-dodgy-exports -Wno-unused-imports #-}
 -- | Reexports "Data.Bifoldable.Compat"
 -- from a globally unique namespace.
 module Data.Bifoldable.Compat.Repl.Batteries (
diff --git a/src/Data/Bifoldable1/Compat/Repl/Batteries.hs b/src/Data/Bifoldable1/Compat/Repl/Batteries.hs
--- a/src/Data/Bifoldable1/Compat/Repl/Batteries.hs
+++ b/src/Data/Bifoldable1/Compat/Repl/Batteries.hs
@@ -1,5 +1,5 @@
 {-# LANGUAGE PackageImports #-}
-{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -Wno-dodgy-exports -Wno-unused-imports #-}
 -- | Reexports "Data.Bifoldable1.Compat"
 -- from a globally unique namespace.
 module Data.Bifoldable1.Compat.Repl.Batteries (
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
@@ -1,10 +1,6 @@
-{-# LANGUAGE CPP, NoImplicitPrelude, PackageImports #-}
+{-# LANGUAGE NoImplicitPrelude, PackageImports #-}
 module Data.Bifunctor.Compat (
   module Base
 ) where
 
-#if MIN_VERSION_base(4,8,0)
 import "base-compat" Data.Bifunctor.Compat as Base
-#else
-import "bifunctor-classes-compat" Data.Bifunctor as Base
-#endif
diff --git a/src/Data/Bifunctor/Compat/Repl/Batteries.hs b/src/Data/Bifunctor/Compat/Repl/Batteries.hs
--- a/src/Data/Bifunctor/Compat/Repl/Batteries.hs
+++ b/src/Data/Bifunctor/Compat/Repl/Batteries.hs
@@ -1,5 +1,5 @@
 {-# LANGUAGE PackageImports #-}
-{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -Wno-dodgy-exports -Wno-unused-imports #-}
 -- | Reexports "Data.Bifunctor.Compat"
 -- from a globally unique namespace.
 module Data.Bifunctor.Compat.Repl.Batteries (
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
@@ -1,10 +1,69 @@
 {-# LANGUAGE CPP, NoImplicitPrelude, PackageImports #-}
 module Data.Bitraversable.Compat (
   module Base
+, firstA
+, secondA
 ) where
 
 #if MIN_VERSION_base(4,10,0)
 import "base-compat" Data.Bitraversable.Compat as Base
 #else
 import "bifunctor-classes-compat" Data.Bitraversable as Base
+import Prelude.Compat
+#endif
+
+#if !MIN_VERSION_base(4,10,0)
+-- | Traverses only over the first argument.
+--
+-- @'firstA' f ≡ 'bitraverse' f 'pure'@
+
+-- ==== __Examples__
+--
+-- Basic usage:
+--
+-- >>> firstA listToMaybe (Left [])
+-- Nothing
+--
+-- >>> firstA listToMaybe (Left [1, 2, 3])
+-- Just (Left 1)
+--
+-- >>> firstA listToMaybe (Right [4, 5])
+-- Just (Right [4, 5])
+--
+-- >>> firstA listToMaybe ([1, 2, 3], [4, 5])
+-- Just (1,[4, 5])
+--
+-- >>> firstA listToMaybe ([], [4, 5])
+-- Nothing
+
+-- @since 4.21.0.0
+firstA :: Bitraversable t => Applicative f => (a -> f c) -> t a b -> f (t c b)
+firstA f = bitraverse f pure
+
+-- | Traverses only over the second argument.
+--
+-- @'secondA' f ≡ 'bitraverse' 'pure' f@
+--
+-- ==== __Examples__
+--
+-- Basic usage:
+--
+-- >>> secondA (find odd) (Left [])
+-- Just (Left [])
+--
+-- >>> secondA (find odd) (Left [1, 2, 3])
+-- Just (Left [1,2,3])
+--
+-- >>> secondA (find odd) (Right [4, 5])
+-- Just (Right 5)
+--
+-- >>> secondA (find odd) ([1, 2, 3], [4, 5])
+-- Just ([1,2,3],5)
+--
+-- >>> secondA (find odd) ([1,2,3], [4])
+-- Nothing
+--
+-- @since 4.21.0.0
+secondA :: Bitraversable t => Applicative f => (b -> f c) -> t a b -> f (t a c)
+secondA f = bitraverse pure f
 #endif
diff --git a/src/Data/Bitraversable/Compat/Repl/Batteries.hs b/src/Data/Bitraversable/Compat/Repl/Batteries.hs
--- a/src/Data/Bitraversable/Compat/Repl/Batteries.hs
+++ b/src/Data/Bitraversable/Compat/Repl/Batteries.hs
@@ -1,5 +1,5 @@
 {-# LANGUAGE PackageImports #-}
-{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -Wno-dodgy-exports -Wno-unused-imports #-}
 -- | Reexports "Data.Bitraversable.Compat"
 -- from a globally unique namespace.
 module Data.Bitraversable.Compat.Repl.Batteries (
diff --git a/src/Data/Bits/Compat/Repl/Batteries.hs b/src/Data/Bits/Compat/Repl/Batteries.hs
--- a/src/Data/Bits/Compat/Repl/Batteries.hs
+++ b/src/Data/Bits/Compat/Repl/Batteries.hs
@@ -1,5 +1,5 @@
 {-# LANGUAGE PackageImports #-}
-{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -Wno-dodgy-exports -Wno-unused-imports #-}
 -- | Reexports "Data.Bits.Compat"
 -- from a globally unique namespace.
 module Data.Bits.Compat.Repl.Batteries (
diff --git a/src/Data/Bool/Compat/Repl/Batteries.hs b/src/Data/Bool/Compat/Repl/Batteries.hs
--- a/src/Data/Bool/Compat/Repl/Batteries.hs
+++ b/src/Data/Bool/Compat/Repl/Batteries.hs
@@ -1,5 +1,5 @@
 {-# LANGUAGE PackageImports #-}
-{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -Wno-dodgy-exports -Wno-unused-imports #-}
 -- | Reexports "Data.Bool.Compat"
 -- from a globally unique namespace.
 module Data.Bool.Compat.Repl.Batteries (
diff --git a/src/Data/Complex/Compat/Repl/Batteries.hs b/src/Data/Complex/Compat/Repl/Batteries.hs
--- a/src/Data/Complex/Compat/Repl/Batteries.hs
+++ b/src/Data/Complex/Compat/Repl/Batteries.hs
@@ -1,5 +1,5 @@
 {-# LANGUAGE PackageImports #-}
-{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -Wno-dodgy-exports -Wno-unused-imports #-}
 -- | Reexports "Data.Complex.Compat"
 -- from a globally unique namespace.
 module Data.Complex.Compat.Repl.Batteries (
diff --git a/src/Data/Either/Compat/Repl/Batteries.hs b/src/Data/Either/Compat/Repl/Batteries.hs
--- a/src/Data/Either/Compat/Repl/Batteries.hs
+++ b/src/Data/Either/Compat/Repl/Batteries.hs
@@ -1,5 +1,5 @@
 {-# LANGUAGE PackageImports #-}
-{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -Wno-dodgy-exports -Wno-unused-imports #-}
 -- | Reexports "Data.Either.Compat"
 -- from a globally unique namespace.
 module Data.Either.Compat.Repl.Batteries (
diff --git a/src/Data/Foldable/Compat/Repl/Batteries.hs b/src/Data/Foldable/Compat/Repl/Batteries.hs
--- a/src/Data/Foldable/Compat/Repl/Batteries.hs
+++ b/src/Data/Foldable/Compat/Repl/Batteries.hs
@@ -1,5 +1,5 @@
 {-# LANGUAGE PackageImports #-}
-{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -Wno-dodgy-exports -Wno-unused-imports #-}
 -- | Reexports "Data.Foldable.Compat"
 -- from a globally unique namespace.
 module Data.Foldable.Compat.Repl.Batteries (
diff --git a/src/Data/Foldable1/Compat/Repl/Batteries.hs b/src/Data/Foldable1/Compat/Repl/Batteries.hs
--- a/src/Data/Foldable1/Compat/Repl/Batteries.hs
+++ b/src/Data/Foldable1/Compat/Repl/Batteries.hs
@@ -1,5 +1,5 @@
 {-# LANGUAGE PackageImports #-}
-{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -Wno-dodgy-exports -Wno-unused-imports #-}
 -- | Reexports "Data.Foldable1.Compat"
 -- from a globally unique namespace.
 module Data.Foldable1.Compat.Repl.Batteries (
diff --git a/src/Data/Function/Compat/Repl/Batteries.hs b/src/Data/Function/Compat/Repl/Batteries.hs
--- a/src/Data/Function/Compat/Repl/Batteries.hs
+++ b/src/Data/Function/Compat/Repl/Batteries.hs
@@ -1,5 +1,5 @@
 {-# LANGUAGE PackageImports #-}
-{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -Wno-dodgy-exports -Wno-unused-imports #-}
 -- | Reexports "Data.Function.Compat"
 -- from a globally unique namespace.
 module Data.Function.Compat.Repl.Batteries (
diff --git a/src/Data/Functor/Compat/Repl/Batteries.hs b/src/Data/Functor/Compat/Repl/Batteries.hs
--- a/src/Data/Functor/Compat/Repl/Batteries.hs
+++ b/src/Data/Functor/Compat/Repl/Batteries.hs
@@ -1,5 +1,5 @@
 {-# LANGUAGE PackageImports #-}
-{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -Wno-dodgy-exports -Wno-unused-imports #-}
 -- | Reexports "Data.Functor.Compat"
 -- from a globally unique namespace.
 module Data.Functor.Compat.Repl.Batteries (
diff --git a/src/Data/Functor/Compose/Compat.hs b/src/Data/Functor/Compose/Compat.hs
--- a/src/Data/Functor/Compose/Compat.hs
+++ b/src/Data/Functor/Compose/Compat.hs
@@ -1,10 +1,6 @@
-{-# LANGUAGE CPP, NoImplicitPrelude, PackageImports #-}
+{-# LANGUAGE NoImplicitPrelude, PackageImports #-}
 module Data.Functor.Compose.Compat (
   module Base
 ) where
 
-#if MIN_VERSION_base(4,9,0)
 import "base-compat" Data.Functor.Compose.Compat as Base
-#else
-import Data.Functor.Compose as Base
-#endif
diff --git a/src/Data/Functor/Compose/Compat/Repl/Batteries.hs b/src/Data/Functor/Compose/Compat/Repl/Batteries.hs
--- a/src/Data/Functor/Compose/Compat/Repl/Batteries.hs
+++ b/src/Data/Functor/Compose/Compat/Repl/Batteries.hs
@@ -1,5 +1,5 @@
 {-# LANGUAGE PackageImports #-}
-{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -Wno-dodgy-exports -Wno-unused-imports #-}
 -- | Reexports "Data.Functor.Compose.Compat"
 -- from a globally unique namespace.
 module Data.Functor.Compose.Compat.Repl.Batteries (
diff --git a/src/Data/Functor/Const/Compat/Repl/Batteries.hs b/src/Data/Functor/Const/Compat/Repl/Batteries.hs
--- a/src/Data/Functor/Const/Compat/Repl/Batteries.hs
+++ b/src/Data/Functor/Const/Compat/Repl/Batteries.hs
@@ -1,5 +1,5 @@
 {-# LANGUAGE PackageImports #-}
-{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -Wno-dodgy-exports -Wno-unused-imports #-}
 -- | Reexports "Data.Functor.Const.Compat"
 -- from a globally unique namespace.
 module Data.Functor.Const.Compat.Repl.Batteries (
diff --git a/src/Data/Functor/Contravariant/Compat/Repl/Batteries.hs b/src/Data/Functor/Contravariant/Compat/Repl/Batteries.hs
--- a/src/Data/Functor/Contravariant/Compat/Repl/Batteries.hs
+++ b/src/Data/Functor/Contravariant/Compat/Repl/Batteries.hs
@@ -1,5 +1,5 @@
 {-# LANGUAGE PackageImports #-}
-{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -Wno-dodgy-exports -Wno-unused-imports #-}
 -- | Reexports "Data.Functor.Contravariant.Compat"
 -- from a globally unique namespace.
 module Data.Functor.Contravariant.Compat.Repl.Batteries (
diff --git a/src/Data/Functor/Identity/Compat.hs b/src/Data/Functor/Identity/Compat.hs
--- a/src/Data/Functor/Identity/Compat.hs
+++ b/src/Data/Functor/Identity/Compat.hs
@@ -1,10 +1,6 @@
-{-# LANGUAGE CPP, NoImplicitPrelude, PackageImports #-}
+{-# LANGUAGE NoImplicitPrelude, PackageImports #-}
 module Data.Functor.Identity.Compat (
   module Base
 ) where
 
-#if MIN_VERSION_base(4,8,0)
 import "base-compat" Data.Functor.Identity.Compat as Base
-#else
-import Data.Functor.Identity as Base
-#endif
diff --git a/src/Data/Functor/Identity/Compat/Repl/Batteries.hs b/src/Data/Functor/Identity/Compat/Repl/Batteries.hs
--- a/src/Data/Functor/Identity/Compat/Repl/Batteries.hs
+++ b/src/Data/Functor/Identity/Compat/Repl/Batteries.hs
@@ -1,5 +1,5 @@
 {-# LANGUAGE PackageImports #-}
-{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -Wno-dodgy-exports -Wno-unused-imports #-}
 -- | Reexports "Data.Functor.Identity.Compat"
 -- from a globally unique namespace.
 module Data.Functor.Identity.Compat.Repl.Batteries (
diff --git a/src/Data/Functor/Product/Compat.hs b/src/Data/Functor/Product/Compat.hs
--- a/src/Data/Functor/Product/Compat.hs
+++ b/src/Data/Functor/Product/Compat.hs
@@ -1,10 +1,6 @@
-{-# LANGUAGE CPP, NoImplicitPrelude, PackageImports #-}
+{-# LANGUAGE NoImplicitPrelude, PackageImports #-}
 module Data.Functor.Product.Compat (
   module Base
 ) where
 
-#if MIN_VERSION_base(4,9,0)
 import "base-compat" Data.Functor.Product.Compat as Base
-#else
-import Data.Functor.Product as Base
-#endif
diff --git a/src/Data/Functor/Product/Compat/Repl/Batteries.hs b/src/Data/Functor/Product/Compat/Repl/Batteries.hs
--- a/src/Data/Functor/Product/Compat/Repl/Batteries.hs
+++ b/src/Data/Functor/Product/Compat/Repl/Batteries.hs
@@ -1,5 +1,5 @@
 {-# LANGUAGE PackageImports #-}
-{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -Wno-dodgy-exports -Wno-unused-imports #-}
 -- | Reexports "Data.Functor.Product.Compat"
 -- from a globally unique namespace.
 module Data.Functor.Product.Compat.Repl.Batteries (
diff --git a/src/Data/Functor/Sum/Compat.hs b/src/Data/Functor/Sum/Compat.hs
--- a/src/Data/Functor/Sum/Compat.hs
+++ b/src/Data/Functor/Sum/Compat.hs
@@ -1,10 +1,6 @@
-{-# LANGUAGE CPP, NoImplicitPrelude, PackageImports #-}
+{-# LANGUAGE NoImplicitPrelude, PackageImports #-}
 module Data.Functor.Sum.Compat (
   module Base
 ) where
 
-#if MIN_VERSION_base(4,9,0)
 import "base-compat" Data.Functor.Sum.Compat as Base
-#else
-import Data.Functor.Sum as Base
-#endif
diff --git a/src/Data/Functor/Sum/Compat/Repl/Batteries.hs b/src/Data/Functor/Sum/Compat/Repl/Batteries.hs
--- a/src/Data/Functor/Sum/Compat/Repl/Batteries.hs
+++ b/src/Data/Functor/Sum/Compat/Repl/Batteries.hs
@@ -1,5 +1,5 @@
 {-# LANGUAGE PackageImports #-}
-{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -Wno-dodgy-exports -Wno-unused-imports #-}
 -- | Reexports "Data.Functor.Sum.Compat"
 -- from a globally unique namespace.
 module Data.Functor.Sum.Compat.Repl.Batteries (
diff --git a/src/Data/IORef/Compat/Repl/Batteries.hs b/src/Data/IORef/Compat/Repl/Batteries.hs
--- a/src/Data/IORef/Compat/Repl/Batteries.hs
+++ b/src/Data/IORef/Compat/Repl/Batteries.hs
@@ -1,5 +1,5 @@
 {-# LANGUAGE PackageImports #-}
-{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -Wno-dodgy-exports -Wno-unused-imports #-}
 -- | Reexports "Data.IORef.Compat"
 -- from a globally unique namespace.
 module Data.IORef.Compat.Repl.Batteries (
diff --git a/src/Data/List/Compat/Repl/Batteries.hs b/src/Data/List/Compat/Repl/Batteries.hs
--- a/src/Data/List/Compat/Repl/Batteries.hs
+++ b/src/Data/List/Compat/Repl/Batteries.hs
@@ -1,5 +1,5 @@
 {-# LANGUAGE PackageImports #-}
-{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -Wno-dodgy-exports -Wno-unused-imports #-}
 -- | Reexports "Data.List.Compat"
 -- from a globally unique namespace.
 module Data.List.Compat.Repl.Batteries (
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
@@ -1,4 +1,4 @@
-{-# LANGUAGE CPP, NoImplicitPrelude, PackageImports #-}
+{-# LANGUAGE NoImplicitPrelude, PackageImports #-}
 module Data.List.NonEmpty.Compat (
   -- * The type of non-empty streams
     NonEmpty(..)
@@ -15,6 +15,7 @@
   , sortWith
   -- * Basic functions
   , length
+  , compareLength
   , head
   , tail
   , last
@@ -78,156 +79,4 @@
   , 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))
--- | A monomorphic version of 'Prelude.<>' for 'NonEmpty'.
---
--- >>> append (1 :| []) (2 :| [3])
--- 1 :| [2,3]
---
--- /Since: 4.16/
-append :: NonEmpty a -> NonEmpty a -> NonEmpty a
-append = (Prelude.<>)
-
--- | Attach a list at the end of a 'NonEmpty'.
---
--- >>> appendList (1 :| [2,3]) []
--- 1 :| [2,3]
---
--- >>> appendList (1 :| [2,3]) [4,5]
--- 1 :| [2,3,4,5]
---
--- /Since: 4.16/
-appendList :: NonEmpty a -> [a] -> NonEmpty a
-appendList (x :| xs) ys = x :| xs Prelude.<> ys
-
--- | Attach a list at the beginning of a 'NonEmpty'.
---
--- >>> prependList [] (1 :| [2,3])
--- 1 :| [2,3]
---
--- >>> prependList [negate 1, 0] (1 :| [2, 3])
--- -1 :| [0,1,2,3]
---
--- /Since: 4.16/
-prependList :: [a] -> NonEmpty a -> NonEmpty a
-prependList ls ne = case ls of
-  [] -> ne
-  (x : xs) -> x :| xs Prelude.<> toList ne
--- | Construct a 'NonEmpty' list from a single element.
---
--- /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
-
--- | The 'permutations' function returns the list of all permutations of the argument.
---
--- /Since: 4.20.0.0/
-permutations            :: [a] -> NonEmpty [a]
-permutations xs0        =  xs0 :| perms xs0 []
-  where
-    perms []     _  = []
-    perms (t:ts) is = List.foldr interleave (perms ts (t:is)) (permutations is)
-      where interleave    xs     r = let (_,zs) = interleave' Prelude.id xs r in zs
-            interleave' _ []     r = (ts, r)
-            interleave' f (y:ys) r = let (us,zs) = interleave' (f . (y:)) ys r
-                                     in  (y:us, f (t:y:us) : zs)
--- The implementation of 'permutations' is adopted from 'GHC.Internal.Data.List.permutations',
--- see there for discussion and explanations.
-
--- | 'permutations1' operates like 'permutations', but uses the knowledge that its input is
--- non-empty to produce output where every element is non-empty.
---
--- > permutations1 = fmap fromList . permutations . toList
---
--- /Since: 4.20.0.0/
-permutations1 :: NonEmpty a -> NonEmpty (NonEmpty a)
-permutations1 xs = fromList Prelude.<$> permutations (toList xs)
-
--- | Sort a 'NonEmpty' on a user-supplied projection of its elements.
--- See 'List.sortOn' for more detailed information.
---
--- ==== __Examples__
---
--- >>> sortOn fst $ (2, "world") :| [(4, "!"), (1, "Hello")]
--- (1,"Hello") :| [(2,"world"),(4,"!")]
---
--- >>> sortOn length $ "jim" :| ["creed", "pam", "michael", "dwight", "kevin"]
--- "jim" :| ["pam","creed","kevin","dwight","michael"]
---
--- ==== __Performance notes__
---
--- This function minimises the projections performed, by materialising
--- the projections in an intermediate list.
---
--- For trivial projections, you should prefer using 'sortBy' with
--- 'comparing', for example:
---
--- >>> sortBy (comparing fst) $ (3, 1) :| [(2, 2), (1, 3)]
--- (1,3) :| [(2,2),(3,1)]
---
--- Or, for the exact same API as 'sortOn', you can use `sortBy . comparing`:
---
--- >>> (sortBy . comparing) fst $ (3, 1) :| [(2, 2), (1, 3)]
--- (1,3) :| [(2,2),(3,1)]
---
--- 'sortWith' is an alias for `sortBy . comparing`.
---
--- /Since: 4.20.0.0/
-sortOn :: Prelude.Ord b => (a -> b) -> NonEmpty a -> NonEmpty a
-sortOn f = lift (List.sortOn f)
-
--- | Lift list operations to work on a 'NonEmpty' stream.
---
--- /Beware/: If the provided function returns an empty list,
--- this will raise an error.
-lift :: Foldable.Foldable f => ([a] -> [b]) -> f a -> NonEmpty b
-lift f = fromList . f . Foldable.toList
-#endif
diff --git a/src/Data/List/NonEmpty/Compat/Repl/Batteries.hs b/src/Data/List/NonEmpty/Compat/Repl/Batteries.hs
--- a/src/Data/List/NonEmpty/Compat/Repl/Batteries.hs
+++ b/src/Data/List/NonEmpty/Compat/Repl/Batteries.hs
@@ -1,5 +1,5 @@
 {-# LANGUAGE PackageImports #-}
-{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -Wno-dodgy-exports -Wno-unused-imports #-}
 -- | Reexports "Data.List.NonEmpty.Compat"
 -- from a globally unique namespace.
 module Data.List.NonEmpty.Compat.Repl.Batteries (
diff --git a/src/Data/Monoid/Compat/Repl/Batteries.hs b/src/Data/Monoid/Compat/Repl/Batteries.hs
--- a/src/Data/Monoid/Compat/Repl/Batteries.hs
+++ b/src/Data/Monoid/Compat/Repl/Batteries.hs
@@ -1,5 +1,5 @@
 {-# LANGUAGE PackageImports #-}
-{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -Wno-dodgy-exports -Wno-unused-imports #-}
 -- | Reexports "Data.Monoid.Compat"
 -- from a globally unique namespace.
 module Data.Monoid.Compat.Repl.Batteries (
diff --git a/src/Data/Proxy/Compat.hs b/src/Data/Proxy/Compat.hs
--- a/src/Data/Proxy/Compat.hs
+++ b/src/Data/Proxy/Compat.hs
@@ -1,10 +1,6 @@
-{-# LANGUAGE CPP, NoImplicitPrelude, PackageImports #-}
+{-# LANGUAGE NoImplicitPrelude, PackageImports #-}
 module Data.Proxy.Compat (
   module Base
 ) where
 
-#if MIN_VERSION_base(4,7,0)
 import "base-compat" Data.Proxy.Compat as Base
-#else
-import "tagged" Data.Proxy as Base
-#endif
diff --git a/src/Data/Proxy/Compat/Repl/Batteries.hs b/src/Data/Proxy/Compat/Repl/Batteries.hs
--- a/src/Data/Proxy/Compat/Repl/Batteries.hs
+++ b/src/Data/Proxy/Compat/Repl/Batteries.hs
@@ -1,5 +1,5 @@
 {-# LANGUAGE PackageImports #-}
-{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -Wno-dodgy-exports -Wno-unused-imports #-}
 -- | Reexports "Data.Proxy.Compat"
 -- from a globally unique namespace.
 module Data.Proxy.Compat.Repl.Batteries (
diff --git a/src/Data/Ratio/Compat/Repl/Batteries.hs b/src/Data/Ratio/Compat/Repl/Batteries.hs
--- a/src/Data/Ratio/Compat/Repl/Batteries.hs
+++ b/src/Data/Ratio/Compat/Repl/Batteries.hs
@@ -1,5 +1,5 @@
 {-# LANGUAGE PackageImports #-}
-{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -Wno-dodgy-exports -Wno-unused-imports #-}
 -- | Reexports "Data.Ratio.Compat"
 -- from a globally unique namespace.
 module Data.Ratio.Compat.Repl.Batteries (
diff --git a/src/Data/STRef/Compat/Repl/Batteries.hs b/src/Data/STRef/Compat/Repl/Batteries.hs
--- a/src/Data/STRef/Compat/Repl/Batteries.hs
+++ b/src/Data/STRef/Compat/Repl/Batteries.hs
@@ -1,5 +1,5 @@
 {-# LANGUAGE PackageImports #-}
-{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -Wno-dodgy-exports -Wno-unused-imports #-}
 -- | Reexports "Data.STRef.Compat"
 -- from a globally unique namespace.
 module Data.STRef.Compat.Repl.Batteries (
diff --git a/src/Data/Semigroup/Compat.hs b/src/Data/Semigroup/Compat.hs
--- a/src/Data/Semigroup/Compat.hs
+++ b/src/Data/Semigroup/Compat.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE CPP, NoImplicitPrelude, PackageImports #-}
+{-# LANGUAGE NoImplicitPrelude, PackageImports #-}
 module Data.Semigroup.Compat (
     Semigroup(..)
   , stimesMonoid
@@ -27,8 +27,4 @@
   , ArgMax
   ) where
 
-#if MIN_VERSION_base(4,9,0)
 import "base-compat" Data.Semigroup.Compat
-#else
-import "semigroups" Data.Semigroup
-#endif
diff --git a/src/Data/Semigroup/Compat/Repl/Batteries.hs b/src/Data/Semigroup/Compat/Repl/Batteries.hs
--- a/src/Data/Semigroup/Compat/Repl/Batteries.hs
+++ b/src/Data/Semigroup/Compat/Repl/Batteries.hs
@@ -1,5 +1,5 @@
 {-# LANGUAGE PackageImports #-}
-{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -Wno-dodgy-exports -Wno-unused-imports #-}
 -- | Reexports "Data.Semigroup.Compat"
 -- from a globally unique namespace.
 module Data.Semigroup.Compat.Repl.Batteries (
diff --git a/src/Data/String/Compat/Repl/Batteries.hs b/src/Data/String/Compat/Repl/Batteries.hs
--- a/src/Data/String/Compat/Repl/Batteries.hs
+++ b/src/Data/String/Compat/Repl/Batteries.hs
@@ -1,5 +1,5 @@
 {-# LANGUAGE PackageImports #-}
-{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -Wno-dodgy-exports -Wno-unused-imports #-}
 -- | Reexports "Data.String.Compat"
 -- from a globally unique namespace.
 module Data.String.Compat.Repl.Batteries (
diff --git a/src/Data/Traversable/Compat/Repl/Batteries.hs b/src/Data/Traversable/Compat/Repl/Batteries.hs
--- a/src/Data/Traversable/Compat/Repl/Batteries.hs
+++ b/src/Data/Traversable/Compat/Repl/Batteries.hs
@@ -1,5 +1,5 @@
 {-# LANGUAGE PackageImports #-}
-{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -Wno-dodgy-exports -Wno-unused-imports #-}
 -- | Reexports "Data.Traversable.Compat"
 -- from a globally unique namespace.
 module Data.Traversable.Compat.Repl.Batteries (
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
@@ -1,12 +1,7 @@
 {-# LANGUAGE CPP, NoImplicitPrelude, PackageImports #-}
-#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.
+-- versions of GHC.
 module Data.Tuple.Compat
   (
 #if MIN_VERSION_ghc_prim(0,10,0)
@@ -14,13 +9,8 @@
 #elif MIN_VERSION_ghc_prim(0,7,0)
     Solo(Solo)
   , pattern MkSolo
-#elif __GLASGOW_HASKELL__ >= 800
-    Solo(MkSolo, Solo)
-#elif __GLASGOW_HASKELL__ >= 708
-    Solo(MkSolo)
-  , pattern Solo
 #else
-    Solo(MkSolo)
+    Solo(MkSolo, Solo)
 #endif
   , getSolo
   , fst
diff --git a/src/Data/Tuple/Compat/Repl/Batteries.hs b/src/Data/Tuple/Compat/Repl/Batteries.hs
--- a/src/Data/Tuple/Compat/Repl/Batteries.hs
+++ b/src/Data/Tuple/Compat/Repl/Batteries.hs
@@ -1,5 +1,5 @@
 {-# LANGUAGE PackageImports #-}
-{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -Wno-dodgy-exports -Wno-unused-imports #-}
 -- | Reexports "Data.Tuple.Compat"
 -- from a globally unique namespace.
 module Data.Tuple.Compat.Repl.Batteries (
diff --git a/src/Data/Type/Coercion/Compat.hs b/src/Data/Type/Coercion/Compat.hs
--- a/src/Data/Type/Coercion/Compat.hs
+++ b/src/Data/Type/Coercion/Compat.hs
@@ -1,10 +1,6 @@
-{-# LANGUAGE CPP, NoImplicitPrelude, PackageImports #-}
+{-# LANGUAGE NoImplicitPrelude, PackageImports #-}
 module Data.Type.Coercion.Compat (
-#if MIN_VERSION_base(4,7,0)
   module Base
-#endif
 ) where
 
-#if MIN_VERSION_base(4,7,0)
 import "base-compat" Data.Type.Coercion.Compat as Base
-#endif
diff --git a/src/Data/Type/Coercion/Compat/Repl/Batteries.hs b/src/Data/Type/Coercion/Compat/Repl/Batteries.hs
--- a/src/Data/Type/Coercion/Compat/Repl/Batteries.hs
+++ b/src/Data/Type/Coercion/Compat/Repl/Batteries.hs
@@ -1,5 +1,5 @@
 {-# LANGUAGE PackageImports #-}
-{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -Wno-dodgy-exports -Wno-unused-imports #-}
 -- | Reexports "Data.Type.Coercion.Compat"
 -- from a globally unique namespace.
 module Data.Type.Coercion.Compat.Repl.Batteries (
diff --git a/src/Data/Type/Equality/Compat.hs b/src/Data/Type/Equality/Compat.hs
--- a/src/Data/Type/Equality/Compat.hs
+++ b/src/Data/Type/Equality/Compat.hs
@@ -1,45 +1,27 @@
 {-# LANGUAGE CPP, NoImplicitPrelude, PackageImports #-}
-#if __GLASGOW_HASKELL__ >= 702
 {-# LANGUAGE Trustworthy #-}
-#endif
-#if __GLASGOW_HASKELL__ >= 708
 {-# LANGUAGE ExplicitNamespaces #-}
-#endif
 module Data.Type.Equality.Compat (
   -- * The equality types
   (:~:)(..),
-#if __GLASGOW_HASKELL__ >= 800
   type (~~),
-#endif
-#if __GLASGOW_HASKELL__ >= 800
   (:~~:)(..),
-#endif
 
   -- * Working with equality
   sym, trans, castWith, gcastWith,
-#if __GLASGOW_HASKELL__ >= 706
-    apply,
-#endif
-    inner,
-#if __GLASGOW_HASKELL__ >= 706
-    outer,
-#endif
+  apply,
+  inner,
+  outer,
 
   -- * Inferring equality from other types
   TestEquality(..),
 
-#if __GLASGOW_HASKELL__ >= 708
   -- * Boolean type-level equality
   type (==),
-#endif
 ) where
 
-#if MIN_VERSION_base(4,7,0)
 import "base" Data.Type.Equality
-#else
-import "type-equality" Data.Type.Equality
-#endif
 
-#if MIN_VERSION_base(4,9,0) && !MIN_VERSION_base(4,10,0)
+#if !MIN_VERSION_base(4,10,0)
 import "type-equality" Data.Type.Equality.Hetero
 #endif
diff --git a/src/Data/Type/Equality/Compat/Repl/Batteries.hs b/src/Data/Type/Equality/Compat/Repl/Batteries.hs
--- a/src/Data/Type/Equality/Compat/Repl/Batteries.hs
+++ b/src/Data/Type/Equality/Compat/Repl/Batteries.hs
@@ -1,5 +1,5 @@
 {-# LANGUAGE PackageImports #-}
-{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -Wno-dodgy-exports -Wno-unused-imports #-}
 -- | Reexports "Data.Type.Equality.Compat"
 -- from a globally unique namespace.
 module Data.Type.Equality.Compat.Repl.Batteries (
diff --git a/src/Data/Typeable/Compat/Repl/Batteries.hs b/src/Data/Typeable/Compat/Repl/Batteries.hs
--- a/src/Data/Typeable/Compat/Repl/Batteries.hs
+++ b/src/Data/Typeable/Compat/Repl/Batteries.hs
@@ -1,5 +1,5 @@
 {-# LANGUAGE PackageImports #-}
-{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -Wno-dodgy-exports -Wno-unused-imports #-}
 -- | Reexports "Data.Typeable.Compat"
 -- from a globally unique namespace.
 module Data.Typeable.Compat.Repl.Batteries (
diff --git a/src/Data/Version/Compat/Repl/Batteries.hs b/src/Data/Version/Compat/Repl/Batteries.hs
--- a/src/Data/Version/Compat/Repl/Batteries.hs
+++ b/src/Data/Version/Compat/Repl/Batteries.hs
@@ -1,5 +1,5 @@
 {-# LANGUAGE PackageImports #-}
-{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -Wno-dodgy-exports -Wno-unused-imports #-}
 -- | Reexports "Data.Version.Compat"
 -- from a globally unique namespace.
 module Data.Version.Compat.Repl.Batteries (
diff --git a/src/Data/Void/Compat.hs b/src/Data/Void/Compat.hs
--- a/src/Data/Void/Compat.hs
+++ b/src/Data/Void/Compat.hs
@@ -1,12 +1,8 @@
-{-# LANGUAGE CPP, NoImplicitPrelude, PackageImports #-}
+{-# LANGUAGE NoImplicitPrelude, PackageImports #-}
 module Data.Void.Compat (
   Void
 , absurd
 , vacuous
 ) where
 
-#if MIN_VERSION_base(4,8,0)
 import "base-compat" Data.Void.Compat as Base
-#else
-import "void" Data.Void as Base
-#endif
diff --git a/src/Data/Void/Compat/Repl/Batteries.hs b/src/Data/Void/Compat/Repl/Batteries.hs
--- a/src/Data/Void/Compat/Repl/Batteries.hs
+++ b/src/Data/Void/Compat/Repl/Batteries.hs
@@ -1,5 +1,5 @@
 {-# LANGUAGE PackageImports #-}
-{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -Wno-dodgy-exports -Wno-unused-imports #-}
 -- | Reexports "Data.Void.Compat"
 -- from a globally unique namespace.
 module Data.Void.Compat.Repl.Batteries (
diff --git a/src/Data/Word/Compat/Repl/Batteries.hs b/src/Data/Word/Compat/Repl/Batteries.hs
--- a/src/Data/Word/Compat/Repl/Batteries.hs
+++ b/src/Data/Word/Compat/Repl/Batteries.hs
@@ -1,5 +1,5 @@
 {-# LANGUAGE PackageImports #-}
-{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -Wno-dodgy-exports -Wno-unused-imports #-}
 -- | Reexports "Data.Word.Compat"
 -- from a globally unique namespace.
 module Data.Word.Compat.Repl.Batteries (
diff --git a/src/Debug/Trace/Compat/Repl/Batteries.hs b/src/Debug/Trace/Compat/Repl/Batteries.hs
--- a/src/Debug/Trace/Compat/Repl/Batteries.hs
+++ b/src/Debug/Trace/Compat/Repl/Batteries.hs
@@ -1,5 +1,5 @@
 {-# LANGUAGE PackageImports #-}
-{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -Wno-dodgy-exports -Wno-unused-imports #-}
 -- | Reexports "Debug.Trace.Compat"
 -- from a globally unique namespace.
 module Debug.Trace.Compat.Repl.Batteries (
diff --git a/src/Foreign/Compat/Repl/Batteries.hs b/src/Foreign/Compat/Repl/Batteries.hs
--- a/src/Foreign/Compat/Repl/Batteries.hs
+++ b/src/Foreign/Compat/Repl/Batteries.hs
@@ -1,5 +1,5 @@
 {-# LANGUAGE PackageImports #-}
-{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -Wno-dodgy-exports -Wno-unused-imports #-}
 -- | Reexports "Foreign.Compat"
 -- from a globally unique namespace.
 module Foreign.Compat.Repl.Batteries (
diff --git a/src/Foreign/ForeignPtr/Compat/Repl/Batteries.hs b/src/Foreign/ForeignPtr/Compat/Repl/Batteries.hs
--- a/src/Foreign/ForeignPtr/Compat/Repl/Batteries.hs
+++ b/src/Foreign/ForeignPtr/Compat/Repl/Batteries.hs
@@ -1,5 +1,5 @@
 {-# LANGUAGE PackageImports #-}
-{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -Wno-dodgy-exports -Wno-unused-imports #-}
 -- | Reexports "Foreign.ForeignPtr.Compat"
 -- from a globally unique namespace.
 module Foreign.ForeignPtr.Compat.Repl.Batteries (
diff --git a/src/Foreign/ForeignPtr/Safe/Compat/Repl/Batteries.hs b/src/Foreign/ForeignPtr/Safe/Compat/Repl/Batteries.hs
--- a/src/Foreign/ForeignPtr/Safe/Compat/Repl/Batteries.hs
+++ b/src/Foreign/ForeignPtr/Safe/Compat/Repl/Batteries.hs
@@ -1,5 +1,5 @@
 {-# LANGUAGE PackageImports #-}
-{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -Wno-dodgy-exports -Wno-unused-imports #-}
 -- | Reexports "Foreign.ForeignPtr.Safe.Compat"
 -- from a globally unique namespace.
 module Foreign.ForeignPtr.Safe.Compat.Repl.Batteries (
diff --git a/src/Foreign/ForeignPtr/Unsafe/Compat/Repl/Batteries.hs b/src/Foreign/ForeignPtr/Unsafe/Compat/Repl/Batteries.hs
--- a/src/Foreign/ForeignPtr/Unsafe/Compat/Repl/Batteries.hs
+++ b/src/Foreign/ForeignPtr/Unsafe/Compat/Repl/Batteries.hs
@@ -1,5 +1,5 @@
 {-# LANGUAGE PackageImports #-}
-{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -Wno-dodgy-exports -Wno-unused-imports #-}
 -- | Reexports "Foreign.ForeignPtr.Unsafe.Compat"
 -- from a globally unique namespace.
 module Foreign.ForeignPtr.Unsafe.Compat.Repl.Batteries (
diff --git a/src/Foreign/Marshal/Alloc/Compat/Repl/Batteries.hs b/src/Foreign/Marshal/Alloc/Compat/Repl/Batteries.hs
--- a/src/Foreign/Marshal/Alloc/Compat/Repl/Batteries.hs
+++ b/src/Foreign/Marshal/Alloc/Compat/Repl/Batteries.hs
@@ -1,5 +1,5 @@
 {-# LANGUAGE PackageImports #-}
-{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -Wno-dodgy-exports -Wno-unused-imports #-}
 -- | Reexports "Foreign.Marshal.Alloc.Compat"
 -- from a globally unique namespace.
 module Foreign.Marshal.Alloc.Compat.Repl.Batteries (
diff --git a/src/Foreign/Marshal/Array/Compat/Repl/Batteries.hs b/src/Foreign/Marshal/Array/Compat/Repl/Batteries.hs
--- a/src/Foreign/Marshal/Array/Compat/Repl/Batteries.hs
+++ b/src/Foreign/Marshal/Array/Compat/Repl/Batteries.hs
@@ -1,5 +1,5 @@
 {-# LANGUAGE PackageImports #-}
-{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -Wno-dodgy-exports -Wno-unused-imports #-}
 -- | Reexports "Foreign.Marshal.Array.Compat"
 -- from a globally unique namespace.
 module Foreign.Marshal.Array.Compat.Repl.Batteries (
diff --git a/src/Foreign/Marshal/Compat/Repl/Batteries.hs b/src/Foreign/Marshal/Compat/Repl/Batteries.hs
--- a/src/Foreign/Marshal/Compat/Repl/Batteries.hs
+++ b/src/Foreign/Marshal/Compat/Repl/Batteries.hs
@@ -1,5 +1,5 @@
 {-# LANGUAGE PackageImports #-}
-{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -Wno-dodgy-exports -Wno-unused-imports #-}
 -- | Reexports "Foreign.Marshal.Compat"
 -- from a globally unique namespace.
 module Foreign.Marshal.Compat.Repl.Batteries (
diff --git a/src/Foreign/Marshal/Safe/Compat/Repl/Batteries.hs b/src/Foreign/Marshal/Safe/Compat/Repl/Batteries.hs
--- a/src/Foreign/Marshal/Safe/Compat/Repl/Batteries.hs
+++ b/src/Foreign/Marshal/Safe/Compat/Repl/Batteries.hs
@@ -1,5 +1,5 @@
 {-# LANGUAGE PackageImports #-}
-{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -Wno-dodgy-exports -Wno-unused-imports #-}
 -- | Reexports "Foreign.Marshal.Safe.Compat"
 -- from a globally unique namespace.
 module Foreign.Marshal.Safe.Compat.Repl.Batteries (
diff --git a/src/Foreign/Marshal/Unsafe/Compat/Repl/Batteries.hs b/src/Foreign/Marshal/Unsafe/Compat/Repl/Batteries.hs
--- a/src/Foreign/Marshal/Unsafe/Compat/Repl/Batteries.hs
+++ b/src/Foreign/Marshal/Unsafe/Compat/Repl/Batteries.hs
@@ -1,5 +1,5 @@
 {-# LANGUAGE PackageImports #-}
-{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -Wno-dodgy-exports -Wno-unused-imports #-}
 -- | Reexports "Foreign.Marshal.Unsafe.Compat"
 -- from a globally unique namespace.
 module Foreign.Marshal.Unsafe.Compat.Repl.Batteries (
diff --git a/src/Foreign/Marshal/Utils/Compat/Repl/Batteries.hs b/src/Foreign/Marshal/Utils/Compat/Repl/Batteries.hs
--- a/src/Foreign/Marshal/Utils/Compat/Repl/Batteries.hs
+++ b/src/Foreign/Marshal/Utils/Compat/Repl/Batteries.hs
@@ -1,5 +1,5 @@
 {-# LANGUAGE PackageImports #-}
-{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -Wno-dodgy-exports -Wno-unused-imports #-}
 -- | Reexports "Foreign.Marshal.Utils.Compat"
 -- from a globally unique namespace.
 module Foreign.Marshal.Utils.Compat.Repl.Batteries (
diff --git a/src/Numeric/Compat/Repl/Batteries.hs b/src/Numeric/Compat/Repl/Batteries.hs
--- a/src/Numeric/Compat/Repl/Batteries.hs
+++ b/src/Numeric/Compat/Repl/Batteries.hs
@@ -1,5 +1,5 @@
 {-# LANGUAGE PackageImports #-}
-{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -Wno-dodgy-exports -Wno-unused-imports #-}
 -- | Reexports "Numeric.Compat"
 -- from a globally unique namespace.
 module Numeric.Compat.Repl.Batteries (
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,24 +1,8 @@
-{-# LANGUAGE CPP, NoImplicitPrelude, PackageImports #-}
-#if __GLASGOW_HASKELL__ >= 702
+{-# LANGUAGE NoImplicitPrelude, PackageImports #-}
 {-# 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/src/Numeric/Natural/Compat/Repl/Batteries.hs b/src/Numeric/Natural/Compat/Repl/Batteries.hs
--- a/src/Numeric/Natural/Compat/Repl/Batteries.hs
+++ b/src/Numeric/Natural/Compat/Repl/Batteries.hs
@@ -1,5 +1,5 @@
 {-# LANGUAGE PackageImports #-}
-{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -Wno-dodgy-exports -Wno-unused-imports #-}
 -- | Reexports "Numeric.Natural.Compat"
 -- from a globally unique namespace.
 module Numeric.Natural.Compat.Repl.Batteries (
diff --git a/src/Prelude/Compat.hs b/src/Prelude/Compat.hs
--- a/src/Prelude/Compat.hs
+++ b/src/Prelude/Compat.hs
@@ -1,18 +1,6 @@
-{-# LANGUAGE CPP, NoImplicitPrelude, PackageImports #-}
+{-# LANGUAGE NoImplicitPrelude, PackageImports #-}
 module Prelude.Compat (
   module Base
-#if !(MIN_VERSION_base(4,9,0))
-, Fail.MonadFail(Fail.fail)
-, Semi.Semigroup((Semi.<>))
-#endif
 ) where
 
 import "base-compat" Prelude.Compat as Base
-#if !(MIN_VERSION_base(4,9,0))
-  hiding (fail)
-#endif
-
-#if !(MIN_VERSION_base(4,9,0))
-import "fail"       Control.Monad.Fail as Fail
-import "semigroups" Data.Semigroup as Semi
-#endif
diff --git a/src/Prelude/Compat/Repl/Batteries.hs b/src/Prelude/Compat/Repl/Batteries.hs
--- a/src/Prelude/Compat/Repl/Batteries.hs
+++ b/src/Prelude/Compat/Repl/Batteries.hs
@@ -1,5 +1,5 @@
 {-# LANGUAGE PackageImports #-}
-{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -Wno-dodgy-exports -Wno-unused-imports #-}
 -- | Reexports "Prelude.Compat"
 -- from a globally unique namespace.
 module Prelude.Compat.Repl.Batteries (
diff --git a/src/System/Environment/Compat/Repl/Batteries.hs b/src/System/Environment/Compat/Repl/Batteries.hs
--- a/src/System/Environment/Compat/Repl/Batteries.hs
+++ b/src/System/Environment/Compat/Repl/Batteries.hs
@@ -1,5 +1,5 @@
 {-# LANGUAGE PackageImports #-}
-{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -Wno-dodgy-exports -Wno-unused-imports #-}
 -- | Reexports "System.Environment.Compat"
 -- from a globally unique namespace.
 module System.Environment.Compat.Repl.Batteries (
diff --git a/src/System/Exit/Compat/Repl/Batteries.hs b/src/System/Exit/Compat/Repl/Batteries.hs
--- a/src/System/Exit/Compat/Repl/Batteries.hs
+++ b/src/System/Exit/Compat/Repl/Batteries.hs
@@ -1,5 +1,5 @@
 {-# LANGUAGE PackageImports #-}
-{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -Wno-dodgy-exports -Wno-unused-imports #-}
 -- | Reexports "System.Exit.Compat"
 -- from a globally unique namespace.
 module System.Exit.Compat.Repl.Batteries (
diff --git a/src/System/IO/Compat/Repl/Batteries.hs b/src/System/IO/Compat/Repl/Batteries.hs
--- a/src/System/IO/Compat/Repl/Batteries.hs
+++ b/src/System/IO/Compat/Repl/Batteries.hs
@@ -1,5 +1,5 @@
 {-# LANGUAGE PackageImports #-}
-{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -Wno-dodgy-exports -Wno-unused-imports #-}
 -- | Reexports "System.IO.Compat"
 -- from a globally unique namespace.
 module System.IO.Compat.Repl.Batteries (
diff --git a/src/System/IO/Error/Compat/Repl/Batteries.hs b/src/System/IO/Error/Compat/Repl/Batteries.hs
--- a/src/System/IO/Error/Compat/Repl/Batteries.hs
+++ b/src/System/IO/Error/Compat/Repl/Batteries.hs
@@ -1,5 +1,5 @@
 {-# LANGUAGE PackageImports #-}
-{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -Wno-dodgy-exports -Wno-unused-imports #-}
 -- | Reexports "System.IO.Error.Compat"
 -- from a globally unique namespace.
 module System.IO.Error.Compat.Repl.Batteries (
diff --git a/src/System/IO/Unsafe/Compat/Repl/Batteries.hs b/src/System/IO/Unsafe/Compat/Repl/Batteries.hs
--- a/src/System/IO/Unsafe/Compat/Repl/Batteries.hs
+++ b/src/System/IO/Unsafe/Compat/Repl/Batteries.hs
@@ -1,5 +1,5 @@
 {-# LANGUAGE PackageImports #-}
-{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -Wno-dodgy-exports -Wno-unused-imports #-}
 -- | Reexports "System.IO.Unsafe.Compat"
 -- from a globally unique namespace.
 module System.IO.Unsafe.Compat.Repl.Batteries (
diff --git a/src/Text/Read/Compat/Repl/Batteries.hs b/src/Text/Read/Compat/Repl/Batteries.hs
--- a/src/Text/Read/Compat/Repl/Batteries.hs
+++ b/src/Text/Read/Compat/Repl/Batteries.hs
@@ -1,5 +1,5 @@
 {-# LANGUAGE PackageImports #-}
-{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -Wno-dodgy-exports -Wno-unused-imports #-}
 -- | Reexports "Text.Read.Compat"
 -- from a globally unique namespace.
 module Text.Read.Compat.Repl.Batteries (
diff --git a/src/Text/Read/Lex/Compat/Repl/Batteries.hs b/src/Text/Read/Lex/Compat/Repl/Batteries.hs
--- a/src/Text/Read/Lex/Compat/Repl/Batteries.hs
+++ b/src/Text/Read/Lex/Compat/Repl/Batteries.hs
@@ -1,5 +1,5 @@
 {-# LANGUAGE PackageImports #-}
-{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -Wno-dodgy-exports -Wno-unused-imports #-}
 -- | Reexports "Text.Read.Lex.Compat"
 -- from a globally unique namespace.
 module Text.Read.Lex.Compat.Repl.Batteries (
diff --git a/src/Type/Reflection/Compat/Repl/Batteries.hs b/src/Type/Reflection/Compat/Repl/Batteries.hs
--- a/src/Type/Reflection/Compat/Repl/Batteries.hs
+++ b/src/Type/Reflection/Compat/Repl/Batteries.hs
@@ -1,5 +1,5 @@
 {-# LANGUAGE PackageImports #-}
-{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -Wno-dodgy-exports -Wno-unused-imports #-}
 -- | Reexports "Type.Reflection.Compat"
 -- from a globally unique namespace.
 module Type.Reflection.Compat.Repl.Batteries (
diff --git a/test/Data/Bits/CompatSpec.hs b/test/Data/Bits/CompatSpec.hs
--- a/test/Data/Bits/CompatSpec.hs
+++ b/test/Data/Bits/CompatSpec.hs
@@ -1,4 +1,3 @@
-{-# LANGUAGE CPP #-}
 module Data.Bits.CompatSpec (main, spec) where
 
 import Test.Hspec
@@ -26,9 +25,7 @@
       popCountDefault (0  :: Int) `shouldBe` 0
       popCountDefault (1  :: Int) `shouldBe` 1
       popCountDefault (10 :: Int) `shouldBe` 2
-#if MIN_VERSION_base(4,7,0)
   describe "toIntegralSized" $
     it "converts an Integral type to another as measured by bitSizeMaybe" $ do
       toIntegralSized (42 :: Integer)                   `shouldBe` (Just 42 :: Maybe Int)
       toIntegralSized (12345678901234567890 :: Integer) `shouldBe` (Nothing :: Maybe Int)
-#endif
diff --git a/test/SafeHaskellSpec.hs b/test/SafeHaskellSpec.hs
--- a/test/SafeHaskellSpec.hs
+++ b/test/SafeHaskellSpec.hs
@@ -1,7 +1,5 @@
-{-# LANGUAGE CPP, NoImplicitPrelude #-}
-#if __GLASGOW_HASKELL__ >= 704
+{-# LANGUAGE NoImplicitPrelude #-}
 {-# LANGUAGE Safe #-}
-#endif
 module SafeHaskellSpec (main, spec) where
 
 import TestHspecTrustworthy
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
@@ -1,10 +1,7 @@
-{-# LANGUAGE CPP #-}
 module System.Environment.CompatSpec (main, spec) where
 
 import           Test.Hspec
-#if __GLASGOW_HASKELL__ >= 704
 import           Test.QuickCheck
-#endif
 
 import qualified Control.Exception as E
 import           GHC.IO.Exception (IOErrorType (InvalidArgument))
@@ -56,13 +53,11 @@
     it "throws an exception if key contains '='" $ do
       unsetEnv "some=key" `shouldThrow` (== InvalidArgument) . ioeGetErrorType
 
-#if __GLASGOW_HASKELL__ >= 704
     it "works for arbitrary keys" $
       property $ \k -> ('\NUL' `notElem` k && '=' `notElem` k && (not . null) k) ==> do
         setEnv k "foo"
         unsetEnv k
         getEnv k `shouldThrow` isDoesNotExistError
-#endif
 
   describe "setEnv" $ do
     it "sets specified environment variable to given value" $ do
@@ -96,7 +91,6 @@
       setEnv "FOO\NULBAR" "foo"
       getEnv "FOO" `shouldReturn` "foo"
 
-#if __GLASGOW_HASKELL__ >= 704
     it "works for unicode" $ do
       unsetEnv "FOO"
       setEnv "FOO" "foo-\955-bar"
@@ -106,7 +100,6 @@
       property $ \v -> ('\NUL' `notElem` v && (not . null) v) ==> do
         setEnv "FOO" v
         getEnv "FOO" `shouldReturn` v
-#endif
 
     it "works for unicode keys" $ do
       setEnv "foo-\955-bar" "foo"
@@ -118,9 +111,7 @@
     it "throws an exception if key contains '='" $ do
       setEnv "some=key" "foo" `shouldThrow` (== InvalidArgument) . ioeGetErrorType
 
-#if __GLASGOW_HASKELL__ >= 704
     it "works for arbitrary keys" $
       property $ \k -> ('\NUL' `notElem` k && '=' `notElem` k && (not . null) k) ==> do
         setEnv k "foo"
         getEnv k `shouldReturn` "foo"
-#endif
diff --git a/test/TestHspecTrustworthy.hs b/test/TestHspecTrustworthy.hs
--- a/test/TestHspecTrustworthy.hs
+++ b/test/TestHspecTrustworthy.hs
@@ -1,7 +1,4 @@
-{-# LANGUAGE CPP #-}
-#if __GLASGOW_HASKELL__ >= 702
 {-# LANGUAGE Trustworthy #-}
-#endif
 -- | Reexports "Test.Hspec" from a @Trustworthy@ module.
 module TestHspecTrustworthy (module Test.Hspec) where
 
