on master help sign in
Fix compilation with GHC 8.4
commitfb717cc23bfe23af416356e44df900939469484b authorNiklas Larsson <niklas@mm.st> dateThu 29 Mar 2018, 00:48 (9 years ago) parentab9a0fd
12 files changed+85−21
src/IRTS/JavaScript/Codegen.hs+6−1 src/Idris/AbsSyntaxTree.hs+8−4 src/Idris/Core/ProofState.hs+5−1 src/Idris/Core/TT.hs+13−4 src/Idris/Delaborate.hs+5−1 src/Idris/Docs.hs+5−1 src/Idris/Docstrings.hs+6−3 src/Idris/Elab/Data.hs+5−1 src/Idris/Elab/Utils.hs+5−1 src/Idris/Output.hs+5−1 src/Idris/REPL.hs+5−1 src/Idris/TypeSearch.hs+17−2
src/IRTS/JavaScript/Codegen.hs+6−1
@@ -5,7 +5,7 @@ Description : The JavaScript common code generator.
55License : BSD3
66Maintainer : The Idris Community.
77-}
8−{-# LANGUAGE OverloadedStrings #-}
8+{-# LANGUAGE CPP, OverloadedStrings #-}
99
1010module IRTS.JavaScript.Codegen( codegenJs
1111 , CGConf(..)
@@ -48,6 +48,11 @@ data CGStats = CGStats { usedBigInt :: Bool
4848 , hiddenClasses :: Set HiddenClass
4949 }
5050
51+#if (MIN_VERSION_base(4,11,0))
52+instance Semigroup CGStats where
53+ (<>) = mappend
54+#endif
55+
5156-- If we generate code for two declarations we want to merge their code
5257-- generation stats.
5358instance Monoid CGStats where
src/Idris/AbsSyntaxTree.hs+8−4
@@ -6,9 +6,10 @@ License : BSD3
66Maintainer : The Idris Community.
77-}
88
9−{-# LANGUAGE DeriveDataTypeable, DeriveFoldable, DeriveFunctor, DeriveGeneric,
10− DeriveTraversable, FlexibleContexts, FlexibleInstances,
11− MultiParamTypeClasses, PatternGuards, TypeSynonymInstances #-}
9+{-# LANGUAGE CPP, DeriveDataTypeable, DeriveFoldable, DeriveFunctor,
10+ DeriveGeneric, DeriveTraversable, FlexibleContexts,
11+ FlexibleInstances, MultiParamTypeClasses, PatternGuards,
12+ TypeSynonymInstances #-}
1213
1314module Idris.AbsSyntaxTree where
1415
@@ -25,8 +26,11 @@ import Util.Pretty
2526import Idris.Colours
2627
2728import System.IO
28−
29+#if (MIN_VERSION_base(4,11,0))
30+import Prelude hiding (Foldable, Traversable, (<$>), (<>))
31+#else
2932import Prelude hiding (Foldable, Traversable, (<$>))
33+#endif
3034
3135import Control.Applicative ((<|>))
3236import qualified Control.Monad.Trans.Class as Trans (lift)
src/Idris/Core/ProofState.hs+5−1
@@ -10,7 +10,7 @@ proofs, and some high level commands for introducing new theorems,
1010evaluation/checking inside the proof system, etc.
1111-}
1212
13−{-# LANGUAGE FlexibleContexts, FlexibleInstances, MultiParamTypeClasses,
13+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, MultiParamTypeClasses,
1414 PatternGuards #-}
1515module Idris.Core.ProofState(
1616 ProofState(..), newProof, envAtFocus, goalAtFocus
@@ -32,6 +32,10 @@ import Control.Arrow ((***))
3232import Control.Monad.State.Strict
3333import Data.List
3434
35+#if (MIN_VERSION_base(4,11,0))
36+import Prelude hiding ((<>))
37+#endif
38+
3539data ProofState = PS { thname :: Name,
3640 holes :: [Name], -- ^ holes still to be solved
3741 usedns :: [Name], -- ^ used names, don't use again
src/Idris/Core/TT.hs+13−4
@@ -22,10 +22,10 @@ TT is the core language of Idris. The language has:
2222 * We have a simple collection of tactics which we use to elaborate source
2323 programs with implicit syntax into fully explicit terms.
2424-}
25−{-# LANGUAGE DeriveDataTypeable, DeriveFoldable, DeriveFunctor, DeriveGeneric,
26− DeriveTraversable, FlexibleContexts, FlexibleInstances,
27− FunctionalDependencies, MultiParamTypeClasses, PatternGuards,
28− TypeSynonymInstances #-}
25+{-# LANGUAGE CPP, DeriveDataTypeable, DeriveFoldable, DeriveFunctor,
26+ DeriveGeneric, DeriveTraversable, FlexibleContexts,
27+ FlexibleInstances, FunctionalDependencies, MultiParamTypeClasses,
28+ PatternGuards, TypeSynonymInstances #-}
2929{-# OPTIONS_GHC -fwarn-incomplete-patterns #-}
3030module Idris.Core.TT(
3131 AppStatus(..), ArithTy(..), Binder(..), Const(..), Ctxt(..)
@@ -63,6 +63,10 @@ import Prelude (Bool(..), Double, Enum(..), Eq(..), FilePath, Functor(..), Int,
6363 Ordering(..), Show(..), String, div, error, fst, max, min, mod,
6464 not, otherwise, read, snd, ($), (&&), (.), (||))
6565
66+#if (MIN_VERSION_base(4,11,0))
67+import qualified Prelude as S (Semigroup(..))
68+#endif
69+
6670import Control.Applicative (Alternative, Applicative(..))
6771import qualified Control.Applicative as A (Alternative(..))
6872import Control.DeepSeq (($!!))
@@ -117,6 +121,11 @@ fc_end (FC _ _ end) = end
117121fc_end NoFC = (0, 0)
118122fc_end (FileFC f) = (0, 0)
119123
124+#if (MIN_VERSION_base(4,11,0))
125+instance S.Semigroup FC where
126+ (<>) = mappend
127+#endif
128+
120129instance Monoid FC where
121130 mempty = NoFC
122131
src/Idris/Delaborate.hs+5−1
@@ -5,7 +5,7 @@ Description : Convert core TT back into high level syntax, primarily for display
55License : BSD3
66Maintainer : The Idris Community.
77-}
8−{-# LANGUAGE PatternGuards #-}
8+{-# LANGUAGE CPP, PatternGuards #-}
99{-# OPTIONS_GHC -fwarn-incomplete-patterns #-}
1010module Idris.Delaborate (
1111 annName, bugaddr, delab, delabWithEnv, delabDirect, delab', delabMV, delabSugared
@@ -21,7 +21,11 @@ import Idris.ErrReverse
2121
2222import Util.Pretty
2323
24+#if (MIN_VERSION_base(4,11,0))
25+import Prelude hiding ((<$>), (<>))
26+#else
2427import Prelude hiding ((<$>))
28+#endif
2529
2630import Control.Applicative (Alternative((<|>)))
2731import Control.Monad.State
src/Idris/Docs.hs+5−1
@@ -6,7 +6,7 @@ License : BSD3
66Maintainer : The Idris Community.
77-}
88
9−{-# LANGUAGE DeriveFunctor, MultiWayIf, PatternGuards #-}
9+{-# LANGUAGE CPP, DeriveFunctor, MultiWayIf, PatternGuards #-}
1010{-# OPTIONS_GHC -fwarn-incomplete-patterns #-}
1111
1212module Idris.Docs (
@@ -30,7 +30,11 @@ import Idris.Options (HowMuchDocs(..))
3030
3131import Util.Pretty
3232
33+#if (MIN_VERSION_base(4,11,0))
34+import Prelude hiding ((<$>), (<>))
35+#else
3336import Prelude hiding ((<$>))
37+#endif
3438
3539import Data.List
3640import Data.Maybe
src/Idris/Docstrings.hs+6−3
@@ -6,8 +6,8 @@ License : BSD3
66Maintainer : The Idris Community.
77-}
88
9−{-# LANGUAGE DeriveFoldable, DeriveFunctor, DeriveGeneric, DeriveTraversable,
10− ScopedTypeVariables #-}
9+{-# LANGUAGE CPP, DeriveFoldable, DeriveFunctor, DeriveGeneric,
10+ DeriveTraversable, ScopedTypeVariables #-}
1111{-# OPTIONS_GHC -fwarn-incomplete-patterns #-}
1212module Idris.Docstrings (
1313 Docstring(..), Block(..), Inline(..), parseDocstring, renderDocstring
@@ -19,8 +19,11 @@ import Idris.Core.TT (Err, Name, OutputAnnotation(..), Term, TextFormatting(..))
1919
2020import Util.Pretty
2121
22+#if (MIN_VERSION_base(4,11,0))
23+import Prelude hiding ((<$>), (<>))
24+#else
2225import Prelude hiding ((<$>))
23−
26+#endif
2427import qualified Cheapskate as C
2528import Cheapskate.Html (renderDoc)
2629import qualified Cheapskate.Types as CT
src/Idris/Elab/Data.hs+5−1
@@ -5,7 +5,7 @@ Description : Code to elaborate data structures.
55License : BSD3
66Maintainer : The Idris Community.
77-}
8−{-# LANGUAGE PatternGuards #-}
8+{-# LANGUAGE CPP, PatternGuards #-}
99module Idris.Elab.Data(elabData) where
1010
1111import Idris.AbsSyntax
@@ -24,7 +24,11 @@ import Idris.Output (iWarn, sendHighlighting)
2424
2525import Util.Pretty
2626
27+#if (MIN_VERSION_base(4,11,0))
28+import Prelude hiding (id, (.), (<>))
29+#else
2730import Prelude hiding (id, (.))
31+#endif
2832
2933import Control.Category
3034import Control.Monad
src/Idris/Elab/Utils.hs+5−1
@@ -5,7 +5,7 @@ Description : Elaborator utilities.
55License : BSD3
66Maintainer : The Idris Community.
77-}
8−{-# LANGUAGE FlexibleContexts, PatternGuards #-}
8+{-# LANGUAGE CPP, FlexibleContexts, PatternGuards #-}
99module Idris.Elab.Utils where
1010
1111import Idris.AbsSyntax
@@ -21,6 +21,10 @@ import Idris.Output
2121
2222import Util.Pretty
2323
24+#if (MIN_VERSION_base(4,11,0))
25+import Prelude hiding ((<>))
26+#endif
27+
2428import Control.Monad
2529import Control.Monad.State
2630import Data.List
src/Idris/Output.hs+5−1
@@ -6,7 +6,7 @@ License : BSD3
66Maintainer : The Idris Community.
77-}
88
9−{-# LANGUAGE FlexibleInstances #-}
9+{-# LANGUAGE CPP, FlexibleInstances #-}
1010{-# OPTIONS_GHC -fwarn-incomplete-patterns #-}
1111
1212module Idris.Output (clearHighlights, emitWarning, formatMessage, idemodePutSExp,
@@ -30,7 +30,11 @@ import Util.Pretty
3030import Util.ScreenSize (getScreenWidth)
3131import Util.System (isATTY)
3232
33+#if (MIN_VERSION_base(4,11,0))
34+import Prelude hiding ((<$>), (<>))
35+#else
3336import Prelude hiding ((<$>))
37+#endif
3438
3539import Control.Arrow (first)
3640import Control.Monad.Trans.Except (ExceptT(ExceptT), runExceptT)
src/Idris/REPL.hs+5−1
@@ -5,7 +5,7 @@ License : BSD3
55Maintainer : The Idris Community.
66-}
77
8−{-# LANGUAGE FlexibleContexts, PatternGuards #-}
8+{-# LANGUAGE CPP, FlexibleContexts, PatternGuards #-}
99-- FIXME: {-# OPTIONS_GHC -fwarn-incomplete-patterns #-}
1010{-# OPTIONS_GHC -fwarn-unused-imports #-}
1111
@@ -82,7 +82,11 @@ import Idris.WhoCalls
8282import IRTS.CodegenCommon
8383import IRTS.Compiler
8484import Network
85+#if (MIN_VERSION_base(4,11,0))
86+import Prelude hiding (id, (.), (<$>), (<>))
87+#else
8588import Prelude hiding (id, (.), (<$>))
89+#endif
8690import System.Console.Haskeline as H
8791import System.Directory
8892import System.Environment
src/Idris/TypeSearch.hs+17−2
@@ -5,7 +5,7 @@ Description : A Hoogle for Idris.
55License : BSD3
66Maintainer : The Idris Community.
77-}
8−{-# LANGUAGE ScopedTypeVariables #-}
8+{-# LANGUAGE CPP, ScopedTypeVariables #-}
99
1010module Idris.TypeSearch (
1111 searchByType
@@ -32,8 +32,12 @@ import Idris.Output (iPrintResult, iRenderError, iRenderOutput, iRenderResult,
3232
3333import Util.Pretty (Doc, annotate, char, text, vsep, (<>))
3434
35+#if (MIN_VERSION_base(4,11,0))
36+import Prelude hiding (Semigroup(..), pred)
37+import qualified Prelude as S (Semigroup(..))
38+#else
3539import Prelude hiding (pred)
36−
40+#endif
3741import Control.Applicative (Applicative(..), (<$>), (<*>), (<|>))
3842import Control.Arrow (first, second, (&&&), (***))
3943import Control.Monad (guard, when)
@@ -238,6 +242,17 @@ instance Ord Score where
238242 compare = comparing defaultScoreFunction
239243
240244
245+#if (MIN_VERSION_base(4,11,0))
246+instance S.Semigroup a => S.Semigroup (Sided a) where
247+ (Sided l1 r1) <> (Sided l2 r2) = Sided (l1 S.<> l2) (r1 S.<> r2)
248+
249+instance S.Semigroup AsymMods where
250+ (<>) = mappend
251+
252+instance S.Semigroup Score where
253+ (<>) = mappend
254+#endif
255+
241256instance Monoid a => Monoid (Sided a) where
242257 mempty = Sided mempty mempty
243258 (Sided l1 r1) `mappend` (Sided l2 r2) = Sided (l1 `mappend` l2) (r1 `mappend` r2)