diff --git a/gf.cabal b/gf.cabal index da54010d1..022cc1e21 100644 --- a/gf.cabal +++ b/gf.cabal @@ -85,6 +85,8 @@ library if impl(ghc<8.0) build-depends: + -- We need this in order for ghc-7.10 to build + transformers-compat >= 0.6.3 && < 0.7, fail >= 4.9.0 && < 4.10 hs-source-dirs: src/runtime/haskell diff --git a/src/compiler/GF/Interactive.hs b/src/compiler/GF/Interactive.hs index 676511680..1970533d6 100644 --- a/src/compiler/GF/Interactive.hs +++ b/src/compiler/GF/Interactive.hs @@ -38,6 +38,10 @@ import GF.Server(server) #endif import GF.Command.Messages(welcome) +#if !(MIN_VERSION_base(4,9,0)) +-- Needed to make it compile on GHC < 8 +import Control.Monad.Trans.Instances () +#endif -- | Run the GF Shell in quiet mode (@gf -run@). mainRunGFI :: Options -> [FilePath] -> IO () diff --git a/src/tools/c/GFCC/ErrM.hs b/src/tools/c/GFCC/ErrM.hs index 78295d30e..872a8aec0 100644 --- a/src/tools/c/GFCC/ErrM.hs +++ b/src/tools/c/GFCC/ErrM.hs @@ -1,3 +1,5 @@ +{-# LANGUAGE CPP #-} +{-# LANGUAGE DeriveFunctor #-} -- BNF Converter: Error Monad -- Copyright (C) 2004 Author: Aarne Ranta @@ -6,12 +8,17 @@ module GFCC.ErrM where -- Control.Monad.Fail import will become redundant in GHC 8.8+ import qualified Control.Monad.Fail as Fail +import Control.Monad (ap) -- the Error monad: like Maybe type with error msgs data Err a = Ok a | Bad String - deriving (Read, Show, Eq) + deriving (Read, Show, Eq, Functor) + +instance Applicative Err where + pure = Ok + (<*>) = ap instance Monad Err where return = Ok