diff --git a/src/VMMonad.hs b/src/VMMonad.hs index 7fff7e5e3258e32d7fc5d69c105c73057e1eb08f..35549fd7804bbe4de177ce4b454581cda348722a 100644 --- a/src/VMMonad.hs +++ b/src/VMMonad.hs @@ -1,3 +1,5 @@ +{-# LANGUAGE CPP #-} + module VMMonad (Mnd, run, lift, rfetch, rstore, rpush, rpop, @@ -24,6 +26,7 @@ import Memory (Memory) import Annotation (Ann) import Opt (OptVal) import Control.Monad (ap, liftM) +-- Control.Monad.Fail import has become redundant in GHC 8.8+ import qualified Control.Monad.Fail as Fail import qualified Cpu (initialize, rfetch, rstore, rpush, rpop) import qualified Code (initialize, cload, cfind, cstore, cfetch) @@ -62,7 +65,10 @@ instance Monad Mnd where do x <- c r case f x of (Mnd c') -> c' r - fail = Fail.fail +#if !(MIN_VERSION_base(4,13,0)) + -- Monad(fail) is removed in GHC 8.8+ + fail = Fail.fail +#endif instance Fail.MonadFail Mnd where fail = error "fail: invalid pattern matching"