diff --git a/ChangeLog b/ChangeLog
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+5.8.0.0
+-------
+
+* Breaking change: MonadFail is no longer a superclass of GraphM.
+  This is to support GHC 9.4.  This has no effect on the IO and ST
+  instances of GraphM, but may affect users.
+
 5.7.0.3
 -------
 
diff --git a/Data/Graph/Inductive/Monad.hs b/Data/Graph/Inductive/Monad.hs
--- a/Data/Graph/Inductive/Monad.hs
+++ b/Data/Graph/Inductive/Monad.hs
@@ -19,10 +19,6 @@
 
 
 import Data.Graph.Inductive.Graph
-#if MIN_VERSION_base(4,12,0)
-import Control.Monad.Fail
-import Prelude hiding (fail)
-#endif
 
 {-# ANN module "HLint: ignore Redundant lambda" #-}
 
@@ -43,13 +39,7 @@
 
 -- Monadic Graph
 --
-class
-#if MIN_VERSION_base(4,12,0)
- (MonadFail m)
-#else
- (Monad m)
-#endif
-  => GraphM m gr where
+class (Monad m) => GraphM m gr where
   {-# MINIMAL emptyM, isEmptyM, matchM, mkGraphM, labNodesM #-}
 
   emptyM     :: m (gr a b)
@@ -65,8 +55,8 @@
   matchAnyM  :: m (gr a b) -> m (GDecomp gr a b)
   matchAnyM g = do vs <- labNodesM g
                    case vs of
-                     []      -> fail "Match Exception, Empty Graph"
-                     (v,_):_ -> do (Just c,g') <- matchM v g
+                     []      -> error "Match Exception, Empty Graph"
+                     (v,_):_ -> do ~(Just c,g') <- matchM v g
                                    return (c,g')
 
   noNodesM   :: m (gr a b) -> m Int
@@ -75,7 +65,7 @@
   nodeRangeM :: m (gr a b) -> m (Node,Node)
   nodeRangeM g = do isE <- isEmptyM g
                     if isE
-                       then fail "nodeRangeM of empty graph"
+                       then error "nodeRangeM of empty graph"
                        else do vs <- nodesM g
                                return (minimum vs,maximum vs)
 
diff --git a/fgl.cabal b/fgl.cabal
--- a/fgl.cabal
+++ b/fgl.cabal
@@ -1,5 +1,5 @@
 name:          fgl
-version:       5.7.0.3
+version:       5.8.0.0
 license:       BSD3
 license-file:  LICENSE
 author:        Martin Erwig, Ivan Lazar Miljenovic
@@ -18,8 +18,9 @@
                ChangeLog
 
 tested-with:   GHC == 7.2.2,  GHC == 7.4.2, GHC == 7.6.3, GHC == 7.8.4,
-               GHC == 7.10.2, GHC == 8.0.1, GHC == 8.2.2, GHC == 8.4.3,
-               GHC == 8.6.2,  GHC == 8.8.2, GHC == 8.10.1
+               GHC == 7.10.3, GHC == 8.0.2, GHC == 8.2.2, GHC == 8.4.3,
+               GHC == 8.6.2,  GHC == 8.8.2, GHC == 8.10.7, GHC == 9.0.2,
+               GHC == 9.2.3, GHC == 9.4.2
 
 source-repository head
     type:         git
@@ -92,7 +93,7 @@
     build-depends:    fgl
                     , base
                     , QuickCheck >= 2.8 && < 2.15
-                    , hspec >= 2.1 && < 2.8
+                    , hspec >= 2.1 && < 2.11
                     , containers
 
     hs-source-dirs:   test
