diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,7 @@
+# 2.2.1 (2024-05-16)
+
+- Support GHC-8.6.5..GHC-9.10.1
+
 # 2.2 (2022-03-15)
 
 - Drop `semigroupoids` dependency in favour of `foldable1-classes-compat`.
diff --git a/lattices.cabal b/lattices.cabal
--- a/lattices.cabal
+++ b/lattices.cabal
@@ -1,6 +1,6 @@
 cabal-version:      1.18
 name:               lattices
-version:            2.2
+version:            2.2.1
 category:           Math
 license:            BSD3
 license-file:       LICENSE
@@ -22,19 +22,14 @@
   wide.png
 
 tested-with:
-  GHC ==7.6.3
-   || ==7.8.4
-   || ==7.10.3
-   || ==8.0.2
-   || ==8.2.2
-   || ==8.4.4
-   || ==8.6.5
+  GHC ==8.6.5
    || ==8.8.3
    || ==8.10.4
    || ==9.0.2
-   || ==9.2.5
-   || ==9.4.4
-   || ==9.6.1
+   || ==9.2.8
+   || ==9.4.7
+   || ==9.6.3
+   || ==9.8.1
 
 synopsis:
   Fine-grained library for constructing and manipulating lattices
@@ -83,13 +78,12 @@
     Algebra.PartialOrd.Instances
 
   build-depends:
-      base                        >=4.6      && <4.19
-    , base-compat                 >=0.13     && <0.14
-    , containers                  >=0.5.0.0  && <0.7
-    , deepseq                     >=1.3.0.0  && <1.5
+      base                        >=4.12     && <4.21
+    , containers                  >=0.5.0.0  && <0.8
+    , deepseq                     >=1.3.0.0  && <1.6
     , hashable                    >=1.2.7.0  && <1.5
     , integer-logarithms          >=1.0.3    && <1.1
-    , QuickCheck                  >=2.12.6.1 && <2.15
+    , QuickCheck                  >=2.12.6.1 && <2.16
     , tagged                      >=0.8.6    && <0.9
     , transformers                >=0.3.0.0  && <0.7
     , universe-base               >=1.1      && <1.2
@@ -105,15 +99,6 @@
     else
       build-depends: OneTuple >=0.4 && <0.5
 
-  if !impl(ghc >=8.0)
-    build-depends: semigroups >=0.18.5 && <0.21
-
-  if !impl(ghc >=7.10)
-    build-depends: void >=0.7.2 && <0.8
-
-  if impl(ghc >=7.4 && <7.5)
-    build-depends: ghc-prim
-
 test-suite test
   type:             exitcode-stdio-1.0
   main-is:          Tests.hs
@@ -122,12 +107,11 @@
   default-language: Haskell2010
   build-depends:
       base
-    , base-compat
     , containers
     , lattices
     , QuickCheck
     , quickcheck-instances        >=0.3.19 && <0.4
-    , tasty                       >=1.2.1  && <1.5
+    , tasty                       >=1.2.1  && <1.6
     , tasty-quickcheck            >=0.10   && <0.11
     , transformers
     , universe-base
diff --git a/src/Algebra/Heyting.hs b/src/Algebra/Heyting.hs
--- a/src/Algebra/Heyting.hs
+++ b/src/Algebra/Heyting.hs
@@ -12,9 +12,6 @@
 ----------------------------------------------------------------------------
 module Algebra.Heyting where
 
-import Prelude ()
-import Prelude.Compat
-
 import Algebra.Lattice
 import Control.Applicative   (Const (..))
 import Data.Functor.Identity (Identity (..))
diff --git a/src/Algebra/Heyting/Free.hs b/src/Algebra/Heyting/Free.hs
--- a/src/Algebra/Heyting/Free.hs
+++ b/src/Algebra/Heyting/Free.hs
@@ -14,9 +14,6 @@
     toExpr,
     ) where
 
-import Prelude ()
-import Prelude.Compat
-
 import Algebra.Heyting
 import Algebra.Lattice
 import Algebra.PartialOrd
diff --git a/src/Algebra/Heyting/Free/Expr.hs b/src/Algebra/Heyting/Free/Expr.hs
--- a/src/Algebra/Heyting/Free/Expr.hs
+++ b/src/Algebra/Heyting/Free/Expr.hs
@@ -10,9 +10,6 @@
     proofSearch,
     ) where
 
-import Prelude ()
-import Prelude.Compat
-
 import Control.Monad             (ap)
 import Control.Monad.Trans.State (State, evalState, get, put)
 import Data.Data                 (Data, Typeable)
diff --git a/src/Algebra/Lattice.hs b/src/Algebra/Lattice.hs
--- a/src/Algebra/Lattice.hs
+++ b/src/Algebra/Lattice.hs
@@ -40,9 +40,6 @@
     gfp, gfpFrom, unsafeGfp,
   ) where
 
-import Prelude ()
-import Prelude.Compat
-
 import qualified Algebra.PartialOrd as PO
 
 import Control.Applicative   (Const (..))
diff --git a/src/Algebra/Lattice/Divisibility.hs b/src/Algebra/Lattice/Divisibility.hs
--- a/src/Algebra/Lattice/Divisibility.hs
+++ b/src/Algebra/Lattice/Divisibility.hs
@@ -20,9 +20,6 @@
     Divisibility(..)
   ) where
 
-import Prelude ()
-import Prelude.Compat
-
 import Algebra.Lattice
 import Algebra.PartialOrd
 
diff --git a/src/Algebra/Lattice/Dropped.hs b/src/Algebra/Lattice/Dropped.hs
--- a/src/Algebra/Lattice/Dropped.hs
+++ b/src/Algebra/Lattice/Dropped.hs
@@ -22,9 +22,6 @@
   , foldDropped
   ) where
 
-import Prelude ()
-import Prelude.Compat
-
 import Algebra.Lattice
 import Algebra.PartialOrd
 
diff --git a/src/Algebra/Lattice/Free.hs b/src/Algebra/Lattice/Free.hs
--- a/src/Algebra/Lattice/Free.hs
+++ b/src/Algebra/Lattice/Free.hs
@@ -14,9 +14,6 @@
     toExpr,
     ) where
 
-import Prelude ()
-import Prelude.Compat
-
 import Algebra.Lattice
 import Algebra.PartialOrd
 
diff --git a/src/Algebra/Lattice/Free/Final.hs b/src/Algebra/Lattice/Free/Final.hs
--- a/src/Algebra/Lattice/Free/Final.hs
+++ b/src/Algebra/Lattice/Free/Final.hs
@@ -24,9 +24,6 @@
     retractFBoundedLattice,
     ) where
 
-import Prelude ()
-import Prelude.Compat
-
 import Algebra.Lattice
 
 import Data.Universe.Class (Finite (..), Universe (..))
diff --git a/src/Algebra/Lattice/Levitated.hs b/src/Algebra/Lattice/Levitated.hs
--- a/src/Algebra/Lattice/Levitated.hs
+++ b/src/Algebra/Lattice/Levitated.hs
@@ -22,9 +22,6 @@
   , foldLevitated
   ) where
 
-import Prelude ()
-import Prelude.Compat
-
 import Algebra.Lattice
 import Algebra.PartialOrd
 
diff --git a/src/Algebra/Lattice/Lexicographic.hs b/src/Algebra/Lattice/Lexicographic.hs
--- a/src/Algebra/Lattice/Lexicographic.hs
+++ b/src/Algebra/Lattice/Lexicographic.hs
@@ -20,9 +20,6 @@
     Lexicographic(..)
   ) where
 
-import Prelude ()
-import Prelude.Compat
-
 import Algebra.Lattice
 import Algebra.PartialOrd
 
diff --git a/src/Algebra/Lattice/Lifted.hs b/src/Algebra/Lattice/Lifted.hs
--- a/src/Algebra/Lattice/Lifted.hs
+++ b/src/Algebra/Lattice/Lifted.hs
@@ -22,9 +22,6 @@
   , foldLifted
   ) where
 
-import Prelude ()
-import Prelude.Compat
-
 import Algebra.Lattice
 import Algebra.PartialOrd
 
diff --git a/src/Algebra/Lattice/M2.hs b/src/Algebra/Lattice/M2.hs
--- a/src/Algebra/Lattice/M2.hs
+++ b/src/Algebra/Lattice/M2.hs
@@ -16,9 +16,6 @@
     fromSetBool,
     ) where
 
-import Prelude ()
-import Prelude.Compat
-
 import Control.DeepSeq     (NFData (..))
 import Data.Data           (Data, Typeable)
 import Data.Hashable       (Hashable (..))
diff --git a/src/Algebra/Lattice/M3.hs b/src/Algebra/Lattice/M3.hs
--- a/src/Algebra/Lattice/M3.hs
+++ b/src/Algebra/Lattice/M3.hs
@@ -14,9 +14,6 @@
     M3 (..),
     ) where
 
-import Prelude ()
-import Prelude.Compat
-
 import Control.DeepSeq     (NFData (..))
 import Data.Data           (Data, Typeable)
 import Data.Hashable       (Hashable (..))
diff --git a/src/Algebra/Lattice/N5.hs b/src/Algebra/Lattice/N5.hs
--- a/src/Algebra/Lattice/N5.hs
+++ b/src/Algebra/Lattice/N5.hs
@@ -14,9 +14,6 @@
     N5 (..),
     ) where
 
-import Prelude ()
-import Prelude.Compat
-
 import Control.DeepSeq     (NFData (..))
 import Data.Data           (Data, Typeable)
 import Data.Hashable       (Hashable (..))
diff --git a/src/Algebra/Lattice/Op.hs b/src/Algebra/Lattice/Op.hs
--- a/src/Algebra/Lattice/Op.hs
+++ b/src/Algebra/Lattice/Op.hs
@@ -19,9 +19,6 @@
     Op(..)
   ) where
 
-import Prelude ()
-import Prelude.Compat
-
 import Algebra.Lattice
 import Algebra.PartialOrd
 
diff --git a/src/Algebra/Lattice/Ordered.hs b/src/Algebra/Lattice/Ordered.hs
--- a/src/Algebra/Lattice/Ordered.hs
+++ b/src/Algebra/Lattice/Ordered.hs
@@ -20,9 +20,6 @@
     Ordered(..)
   ) where
 
-import Prelude ()
-import Prelude.Compat
-
 import Algebra.Heyting
 import Algebra.Lattice
 import Algebra.PartialOrd
diff --git a/src/Algebra/Lattice/Wide.hs b/src/Algebra/Lattice/Wide.hs
--- a/src/Algebra/Lattice/Wide.hs
+++ b/src/Algebra/Lattice/Wide.hs
@@ -19,9 +19,6 @@
     Wide(..)
   ) where
 
-import Prelude ()
-import Prelude.Compat
-
 import Algebra.Lattice
 import Algebra.PartialOrd
 
diff --git a/src/Algebra/Lattice/ZeroHalfOne.hs b/src/Algebra/Lattice/ZeroHalfOne.hs
--- a/src/Algebra/Lattice/ZeroHalfOne.hs
+++ b/src/Algebra/Lattice/ZeroHalfOne.hs
@@ -14,9 +14,6 @@
     ZeroHalfOne (..),
     ) where
 
-import Prelude ()
-import Prelude.Compat
-
 import Control.DeepSeq     (NFData (..))
 import Data.Data           (Data, Typeable)
 import Data.Hashable       (Hashable (..))
diff --git a/src/Algebra/PartialOrd.hs b/src/Algebra/PartialOrd.hs
--- a/src/Algebra/PartialOrd.hs
+++ b/src/Algebra/PartialOrd.hs
@@ -24,7 +24,7 @@
 import qualified Data.HashSet      as HS
 import qualified Data.IntMap       as IM
 import qualified Data.IntSet       as IS
-import qualified Data.List.Compat  as L
+import qualified Data.List         as L
 import qualified Data.Map          as Map
 import           Data.Monoid       (All (..), Any (..))
 import qualified Data.Set          as Set
diff --git a/test/Tests.hs b/test/Tests.hs
--- a/test/Tests.hs
+++ b/test/Tests.hs
@@ -1,4 +1,3 @@
-{-# LANGUAGE CPP                 #-}
 {-# LANGUAGE ConstraintKinds     #-}
 {-# LANGUAGE DeriveDataTypeable  #-}
 {-# LANGUAGE FlexibleContexts    #-}
@@ -7,9 +6,6 @@
 {-# LANGUAGE ScopedTypeVariables #-}
 module Main (main) where
 
-import Prelude ()
-import Prelude.Compat
-
 import Control.Monad            (ap, guard)
 import Data.Int                 (Int8)
 import Data.List                (genericLength, nub)
@@ -147,9 +143,6 @@
 -------------------------------------------------------------------------------
 
 monadLaws :: forall (m :: * -> *). ( Monad m
-#if !MIN_VERSION_base(4, 8, 0)
-                                   , Applicative m
-#endif
                                    , Arbitrary (m Int)
                                    , Eq (m Int)
                                    , Show (m Int)
