diff --git a/CHANGELOG.markdown b/CHANGELOG.markdown
--- a/CHANGELOG.markdown
+++ b/CHANGELOG.markdown
@@ -1,3 +1,7 @@
+0.7.3 [2025.03.03]
+------------------
+* Drop support for pre-8.0 versions of GHC.
+
 0.7.2 [2022.05.07]
 ------------------
 * Allow building with `transformers-0.6.*`.
diff --git a/graphs.cabal b/graphs.cabal
--- a/graphs.cabal
+++ b/graphs.cabal
@@ -1,6 +1,6 @@
 name:          graphs
 category:      Algorithms, Data Structures, Graphs
-version:       0.7.2
+version:       0.7.3
 license:       BSD3
 cabal-version: >= 1.10
 license-file:  LICENSE
@@ -76,26 +76,25 @@
   @
 
 build-type:    Simple
-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
              , GHC == 8.8.4
              , GHC == 8.10.7
              , GHC == 9.0.2
-             , GHC == 9.2.2
+             , GHC == 9.2.8
+             , GHC == 9.4.8
+             , GHC == 9.6.6
+             , GHC == 9.8.4
+             , GHC == 9.10.1
+             , GHC == 9.12.1
 
 extra-source-files: CHANGELOG.markdown README.markdown
 
 source-repository head
   type: git
-  location: git://github.com/ekmett/graphs.git
+  location: https://github.com/ekmett/graphs.git
 
 library
   other-extensions:
@@ -103,17 +102,13 @@
     FlexibleContexts
 
   build-depends:
-    base         >= 4       && < 5,
+    base         >= 4.9     && < 5,
     array        >= 0.3     && < 0.7,
     transformers >= 0.2.2   && < 0.7,
     transformers-compat >= 0.3 && < 1,
-    containers   >= 0.3     && < 0.7,
+    containers   >= 0.3     && < 0.9,
     void         >= 0.5.5.1 && < 1
 
-  if !impl(ghc >= 8.0)
-    build-depends:
-      semigroups >= 0.16    && < 1
-
   exposed-modules:
     Data.Graph.AdjacencyList
     Data.Graph.AdjacencyMatrix
@@ -131,12 +126,11 @@
   other-modules:
     Data.Graph.Internal.Color
 
-  ghc-options: -Wall -fno-warn-deprecations
+  ghc-options: -Wall -Wno-deprecations
   default-language: Haskell2010
 
   -- hack around the buggy unused matches check for class associated types in ghc 8 rc1
-  if impl(ghc >= 8)
-    ghc-options: -fno-warn-unused-matches
+  ghc-options: -Wno-unused-matches
   if impl(ghc >= 8.6)
     ghc-options: -Wno-star-is-type
 
diff --git a/src/Data/Graph/AdjacencyList.hs b/src/Data/Graph/AdjacencyList.hs
--- a/src/Data/Graph/AdjacencyList.hs
+++ b/src/Data/Graph/AdjacencyList.hs
@@ -17,9 +17,6 @@
   , ask
   ) where
 
-#if __GLASGOW_HASKELL__ < 710
-import Control.Applicative
-#endif
 import Data.Ix
 import Data.Array
 import Data.Graph.PropertyMap
diff --git a/src/Data/Graph/AdjacencyMatrix.hs b/src/Data/Graph/AdjacencyMatrix.hs
--- a/src/Data/Graph/AdjacencyMatrix.hs
+++ b/src/Data/Graph/AdjacencyMatrix.hs
@@ -17,9 +17,6 @@
   , ask
   ) where
 
-#if __GLASGOW_HASKELL__ < 710
-import Control.Applicative
-#endif
 import Data.Ix
 import Data.Array.IArray
 import Data.Graph.PropertyMap
diff --git a/src/Data/Graph/Algorithm.hs b/src/Data/Graph/Algorithm.hs
--- a/src/Data/Graph/Algorithm.hs
+++ b/src/Data/Graph/Algorithm.hs
@@ -17,10 +17,6 @@
   ) where
 
 import Control.Monad
-#if __GLASGOW_HASKELL__ < 710
-import Control.Applicative
-import Data.Monoid (Monoid(..))
-#endif
 #if !(MIN_VERSION_base(4,11,0))
 import Data.Semigroup (Semigroup(..))
 #endif
diff --git a/src/Data/Graph/Algorithm/BreadthFirstSearch.hs b/src/Data/Graph/Algorithm/BreadthFirstSearch.hs
--- a/src/Data/Graph/Algorithm/BreadthFirstSearch.hs
+++ b/src/Data/Graph/Algorithm/BreadthFirstSearch.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE CPP, TypeFamilies #-}
+{-# LANGUAGE TypeFamilies #-}
 -----------------------------------------------------------------------------
 -- |
 -- Module      :  Data.Graph.Algorithm.BreadthFirstSearch
@@ -20,9 +20,6 @@
 import Control.Monad.Trans.Class
 import Control.Monad.Trans.State.Strict
 import Data.Foldable
-#if __GLASGOW_HASKELL__ < 710
-import Data.Monoid
-#endif
 import Data.Sequence (Seq(..), ViewL(..), (|>), viewl)
 
 import Data.Graph.Algorithm
diff --git a/src/Data/Graph/Algorithm/DepthFirstSearch.hs b/src/Data/Graph/Algorithm/DepthFirstSearch.hs
--- a/src/Data/Graph/Algorithm/DepthFirstSearch.hs
+++ b/src/Data/Graph/Algorithm/DepthFirstSearch.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE CPP, TypeFamilies #-}
+{-# LANGUAGE TypeFamilies #-}
 -----------------------------------------------------------------------------
 -- |
 -- Module      :  Data.Graph.Algorithm.DepthFirstSearch
@@ -20,9 +20,6 @@
 import Control.Monad.Trans.Class
 import Control.Monad.Trans.State.Strict
 import Data.Foldable
-#if __GLASGOW_HASKELL__ < 710
-import Data.Monoid
-#endif
 
 import Data.Graph.Algorithm
 import Data.Graph.Class
diff --git a/src/Data/Graph/Class.hs b/src/Data/Graph/Class.hs
--- a/src/Data/Graph/Class.hs
+++ b/src/Data/Graph/Class.hs
@@ -34,9 +34,6 @@
 import Control.Monad.Trans.Reader
 import Control.Monad.Trans.Class
 import Data.Functor.Identity
-#if __GLASGOW_HASKELL__ < 710
-import Data.Monoid
-#endif
 import Data.Graph.PropertyMap
 import Data.Void
 
diff --git a/src/Data/Graph/Class/AdjacencyList.hs b/src/Data/Graph/Class/AdjacencyList.hs
--- a/src/Data/Graph/Class/AdjacencyList.hs
+++ b/src/Data/Graph/Class/AdjacencyList.hs
@@ -32,9 +32,6 @@
 #endif
 import Control.Monad.Trans.Reader
 import Data.Functor.Identity
-#if __GLASGOW_HASKELL__ < 710
-import Data.Monoid
-#endif
 import Data.Graph.Class
 
 defaultOutEdges :: AdjacencyListGraph g => Vertex g -> g [(Vertex g, Vertex g)]
diff --git a/src/Data/Graph/Class/AdjacencyMatrix.hs b/src/Data/Graph/Class/AdjacencyMatrix.hs
--- a/src/Data/Graph/Class/AdjacencyMatrix.hs
+++ b/src/Data/Graph/Class/AdjacencyMatrix.hs
@@ -30,9 +30,6 @@
 #endif
 import Control.Monad.Trans.Class
 import Data.Functor.Identity
-#if __GLASGOW_HASKELL__ < 710
-import Data.Monoid
-#endif
 import Data.Graph.Class
 
 class Graph g => AdjacencyMatrixGraph g where
diff --git a/src/Data/Graph/Class/Bidirectional.hs b/src/Data/Graph/Class/Bidirectional.hs
--- a/src/Data/Graph/Class/Bidirectional.hs
+++ b/src/Data/Graph/Class/Bidirectional.hs
@@ -31,9 +31,6 @@
 import Control.Monad.Trans.Error
 #endif
 import Data.Functor.Identity
-#if __GLASGOW_HASKELL__ < 710
-import Data.Monoid
-#endif
 import Data.Graph.Class.AdjacencyList
 
 class AdjacencyListGraph g => BidirectionalGraph g where
diff --git a/src/Data/Graph/Class/EdgeEnumerable.hs b/src/Data/Graph/Class/EdgeEnumerable.hs
--- a/src/Data/Graph/Class/EdgeEnumerable.hs
+++ b/src/Data/Graph/Class/EdgeEnumerable.hs
@@ -30,9 +30,6 @@
 #endif
 import Control.Monad.Trans.Class
 import Data.Functor.Identity
-#if __GLASGOW_HASKELL__ < 710
-import Data.Monoid
-#endif
 import Data.Graph.Class
 
 class Graph g => EdgeEnumerableGraph g where
diff --git a/src/Data/Graph/Class/VertexEnumerable.hs b/src/Data/Graph/Class/VertexEnumerable.hs
--- a/src/Data/Graph/Class/VertexEnumerable.hs
+++ b/src/Data/Graph/Class/VertexEnumerable.hs
@@ -29,9 +29,6 @@
 #endif
 import Control.Monad.Trans.Class
 import Control.Monad.Trans.Reader
-#if __GLASGOW_HASKELL__ < 710
-import Data.Monoid
-#endif
 import Data.Graph.Class
 import Data.Functor.Identity
 
diff --git a/src/Data/Graph/Dual.hs b/src/Data/Graph/Dual.hs
--- a/src/Data/Graph/Dual.hs
+++ b/src/Data/Graph/Dual.hs
@@ -15,9 +15,6 @@
   ( Dual(..)
   ) where
 
-#if __GLASGOW_HASKELL__ < 710
-import Control.Applicative
-#endif
 import Control.Monad
 import Control.Monad.Trans.Class
 import Data.Graph.PropertyMap
