on master help sign in
Merge pull request #4396 from melted/ghc84
3e9de43Niklas Larsson
src/IRTS/JavaScript/Codegen.hs+6−1
@@ -5,7 +5,7 @@ Description : The JavaScript common code generator.
5License : BSD3
5License : BSD3
6Maintainer : The Idris Community.
6Maintainer : The Idris Community.
7-}
7-}
8−{-# LANGUAGE OverloadedStrings #-}
8+{-# LANGUAGE CPP, OverloadedStrings #-}
9
9
10module IRTS.JavaScript.Codegen( codegenJs
10module IRTS.JavaScript.Codegen( codegenJs
11 , CGConf(..)
11 , CGConf(..)
@@ -48,6 +48,11 @@ data CGStats = CGStats { usedBigInt :: Bool
48 , hiddenClasses :: Set HiddenClass
48 , hiddenClasses :: Set HiddenClass
49 }
49 }
50
50
51+#if (MIN_VERSION_base(4,11,0))
52+instance Semigroup CGStats where
53+ (<>) = mappend
54+#endif
55+
51-- If we generate code for two declarations we want to merge their code
56-- If we generate code for two declarations we want to merge their code
52-- generation stats.
57-- generation stats.
53instance Monoid CGStats where
58instance Monoid CGStats where
src/Idris/AbsSyntaxTree.hs+8−4
@@ -6,9 +6,10 @@ License : BSD3
6Maintainer : The Idris Community.
6Maintainer : The Idris Community.
7-}
7-}
8
8
9−{-# LANGUAGE DeriveDataTypeable, DeriveFoldable, DeriveFunctor, DeriveGeneric,
9+{-# LANGUAGE CPP, DeriveDataTypeable, DeriveFoldable, DeriveFunctor,
10− DeriveTraversable, FlexibleContexts, FlexibleInstances,
10+ DeriveGeneric, DeriveTraversable, FlexibleContexts,
11− MultiParamTypeClasses, PatternGuards, TypeSynonymInstances #-}
11+ FlexibleInstances, MultiParamTypeClasses, PatternGuards,
12+ TypeSynonymInstances #-}
12
13
13module Idris.AbsSyntaxTree where
14module Idris.AbsSyntaxTree where
14
15
@@ -25,8 +26,11 @@ import Util.Pretty
25import Idris.Colours
26import Idris.Colours
26
27
27import System.IO
28import System.IO
28−
29+#if (MIN_VERSION_base(4,11,0))
30+import Prelude hiding (Foldable, Traversable, (<$>), (<>))
31+#else
29import Prelude hiding (Foldable, Traversable, (<$>))
32import Prelude hiding (Foldable, Traversable, (<$>))
33+#endif
30
34
31import Control.Applicative ((<|>))
35import Control.Applicative ((<|>))
32import qualified Control.Monad.Trans.Class as Trans (lift)
36import 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,
10evaluation/checking inside the proof system, etc.
10evaluation/checking inside the proof system, etc.
11-}
11-}
12
12
13−{-# LANGUAGE FlexibleContexts, FlexibleInstances, MultiParamTypeClasses,
13+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, MultiParamTypeClasses,
14 PatternGuards #-}
14 PatternGuards #-}
15module Idris.Core.ProofState(
15module Idris.Core.ProofState(
16 ProofState(..), newProof, envAtFocus, goalAtFocus
16 ProofState(..), newProof, envAtFocus, goalAtFocus
@@ -32,6 +32,10 @@ import Control.Arrow ((***))
32import Control.Monad.State.Strict
32import Control.Monad.State.Strict
33import Data.List
33import Data.List
34
34
35+#if (MIN_VERSION_base(4,11,0))
36+import Prelude hiding ((<>))
37+#endif
38+
35data ProofState = PS { thname :: Name,
39data ProofState = PS { thname :: Name,
36 holes :: [Name], -- ^ holes still to be solved
40 holes :: [Name], -- ^ holes still to be solved
37 usedns :: [Name], -- ^ used names, don't use again
41 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:
22 * We have a simple collection of tactics which we use to elaborate source
22 * We have a simple collection of tactics which we use to elaborate source
23 programs with implicit syntax into fully explicit terms.
23 programs with implicit syntax into fully explicit terms.
24-}
24-}
25−{-# LANGUAGE DeriveDataTypeable, DeriveFoldable, DeriveFunctor, DeriveGeneric,
25+{-# LANGUAGE CPP, DeriveDataTypeable, DeriveFoldable, DeriveFunctor,
26− DeriveTraversable, FlexibleContexts, FlexibleInstances,
26+ DeriveGeneric, DeriveTraversable, FlexibleContexts,
27− FunctionalDependencies, MultiParamTypeClasses, PatternGuards,
27+ FlexibleInstances, FunctionalDependencies, MultiParamTypeClasses,
28− TypeSynonymInstances #-}
28+ PatternGuards, TypeSynonymInstances #-}
29{-# OPTIONS_GHC -fwarn-incomplete-patterns #-}
29{-# OPTIONS_GHC -fwarn-incomplete-patterns #-}
30module Idris.Core.TT(
30module Idris.Core.TT(
31 AppStatus(..), ArithTy(..), Binder(..), Const(..), Ctxt(..)
31 AppStatus(..), ArithTy(..), Binder(..), Const(..), Ctxt(..)
@@ -63,6 +63,10 @@ import Prelude (Bool(..), Double, Enum(..), Eq(..), FilePath, Functor(..), Int,
63 Ordering(..), Show(..), String, div, error, fst, max, min, mod,
63 Ordering(..), Show(..), String, div, error, fst, max, min, mod,
64 not, otherwise, read, snd, ($), (&&), (.), (||))
64 not, otherwise, read, snd, ($), (&&), (.), (||))
65
65
66+#if (MIN_VERSION_base(4,11,0))
67+import qualified Prelude as S (Semigroup(..))
68+#endif
69+
66import Control.Applicative (Alternative, Applicative(..))
70import Control.Applicative (Alternative, Applicative(..))
67import qualified Control.Applicative as A (Alternative(..))
71import qualified Control.Applicative as A (Alternative(..))
68import Control.DeepSeq (($!!))
72import Control.DeepSeq (($!!))
@@ -117,6 +121,11 @@ fc_end (FC _ _ end) = end
117fc_end NoFC = (0, 0)
121fc_end NoFC = (0, 0)
118fc_end (FileFC f) = (0, 0)
122fc_end (FileFC f) = (0, 0)
119
123
124+#if (MIN_VERSION_base(4,11,0))
125+instance S.Semigroup FC where
126+ (<>) = mappend
127+#endif
128+
120instance Monoid FC where
129instance Monoid FC where
121 mempty = NoFC
130 mempty = NoFC
122
131
src/Idris/Delaborate.hs+5−1
@@ -5,7 +5,7 @@ Description : Convert core TT back into high level syntax, primarily for display
5License : BSD3
5License : BSD3
6Maintainer : The Idris Community.
6Maintainer : The Idris Community.
7-}
7-}
8−{-# LANGUAGE PatternGuards #-}
8+{-# LANGUAGE CPP, PatternGuards #-}
9{-# OPTIONS_GHC -fwarn-incomplete-patterns #-}
9{-# OPTIONS_GHC -fwarn-incomplete-patterns #-}
10module Idris.Delaborate (
10module Idris.Delaborate (
11 annName, bugaddr, delab, delabWithEnv, delabDirect, delab', delabMV, delabSugared
11 annName, bugaddr, delab, delabWithEnv, delabDirect, delab', delabMV, delabSugared
@@ -21,7 +21,11 @@ import Idris.ErrReverse
21
21
22import Util.Pretty
22import Util.Pretty
23
23
24+#if (MIN_VERSION_base(4,11,0))
25+import Prelude hiding ((<$>), (<>))
26+#else
24import Prelude hiding ((<$>))
27import Prelude hiding ((<$>))
28+#endif
25
29
26import Control.Applicative (Alternative((<|>)))
30import Control.Applicative (Alternative((<|>)))
27import Control.Monad.State
31import Control.Monad.State
src/Idris/Docs.hs+5−1
@@ -6,7 +6,7 @@ License : BSD3
6Maintainer : The Idris Community.
6Maintainer : The Idris Community.
7-}
7-}
8
8
9−{-# LANGUAGE DeriveFunctor, MultiWayIf, PatternGuards #-}
9+{-# LANGUAGE CPP, DeriveFunctor, MultiWayIf, PatternGuards #-}
10{-# OPTIONS_GHC -fwarn-incomplete-patterns #-}
10{-# OPTIONS_GHC -fwarn-incomplete-patterns #-}
11
11
12module Idris.Docs (
12module Idris.Docs (
@@ -30,7 +30,11 @@ import Idris.Options (HowMuchDocs(..))
30
30
31import Util.Pretty
31import Util.Pretty
32
32
33+#if (MIN_VERSION_base(4,11,0))
34+import Prelude hiding ((<$>), (<>))
35+#else
33import Prelude hiding ((<$>))
36import Prelude hiding ((<$>))
37+#endif
34
38
35import Data.List
39import Data.List
36import Data.Maybe
40import Data.Maybe
src/Idris/Docstrings.hs+6−3
@@ -6,8 +6,8 @@ License : BSD3
6Maintainer : The Idris Community.
6Maintainer : The Idris Community.
7-}
7-}
8
8
9−{-# LANGUAGE DeriveFoldable, DeriveFunctor, DeriveGeneric, DeriveTraversable,
9+{-# LANGUAGE CPP, DeriveFoldable, DeriveFunctor, DeriveGeneric,
10− ScopedTypeVariables #-}
10+ DeriveTraversable, ScopedTypeVariables #-}
11{-# OPTIONS_GHC -fwarn-incomplete-patterns #-}
11{-# OPTIONS_GHC -fwarn-incomplete-patterns #-}
12module Idris.Docstrings (
12module Idris.Docstrings (
13 Docstring(..), Block(..), Inline(..), parseDocstring, renderDocstring
13 Docstring(..), Block(..), Inline(..), parseDocstring, renderDocstring
@@ -19,8 +19,11 @@ import Idris.Core.TT (Err, Name, OutputAnnotation(..), Term, TextFormatting(..))
19
19
20import Util.Pretty
20import Util.Pretty
21
21
22+#if (MIN_VERSION_base(4,11,0))
23+import Prelude hiding ((<$>), (<>))
24+#else
22import Prelude hiding ((<$>))
25import Prelude hiding ((<$>))
23−
26+#endif
24import qualified Cheapskate as C
27import qualified Cheapskate as C
25import Cheapskate.Html (renderDoc)
28import Cheapskate.Html (renderDoc)
26import qualified Cheapskate.Types as CT
29import qualified Cheapskate.Types as CT
src/Idris/Elab/Data.hs+5−1
@@ -5,7 +5,7 @@ Description : Code to elaborate data structures.
5License : BSD3
5License : BSD3
6Maintainer : The Idris Community.
6Maintainer : The Idris Community.
7-}
7-}
8−{-# LANGUAGE PatternGuards #-}
8+{-# LANGUAGE CPP, PatternGuards #-}
9module Idris.Elab.Data(elabData) where
9module Idris.Elab.Data(elabData) where
10
10
11import Idris.AbsSyntax
11import Idris.AbsSyntax
@@ -24,7 +24,11 @@ import Idris.Output (iWarn, sendHighlighting)
24
24
25import Util.Pretty
25import Util.Pretty
26
26
27+#if (MIN_VERSION_base(4,11,0))
28+import Prelude hiding (id, (.), (<>))
29+#else
27import Prelude hiding (id, (.))
30import Prelude hiding (id, (.))
31+#endif
28
32
29import Control.Category
33import Control.Category
30import Control.Monad
34import Control.Monad
src/Idris/Elab/Utils.hs+5−1
@@ -5,7 +5,7 @@ Description : Elaborator utilities.
5License : BSD3
5License : BSD3
6Maintainer : The Idris Community.
6Maintainer : The Idris Community.
7-}
7-}
8−{-# LANGUAGE FlexibleContexts, PatternGuards #-}
8+{-# LANGUAGE CPP, FlexibleContexts, PatternGuards #-}
9module Idris.Elab.Utils where
9module Idris.Elab.Utils where
10
10
11import Idris.AbsSyntax
11import Idris.AbsSyntax
@@ -21,6 +21,10 @@ import Idris.Output
21
21
22import Util.Pretty
22import Util.Pretty
23
23
24+#if (MIN_VERSION_base(4,11,0))
25+import Prelude hiding ((<>))
26+#endif
27+
24import Control.Monad
28import Control.Monad
25import Control.Monad.State
29import Control.Monad.State
26import Data.List
30import Data.List
src/Idris/Output.hs+5−1
@@ -6,7 +6,7 @@ License : BSD3
6Maintainer : The Idris Community.
6Maintainer : The Idris Community.
7-}
7-}
8
8
9−{-# LANGUAGE FlexibleInstances #-}
9+{-# LANGUAGE CPP, FlexibleInstances #-}
10{-# OPTIONS_GHC -fwarn-incomplete-patterns #-}
10{-# OPTIONS_GHC -fwarn-incomplete-patterns #-}
11
11
12module Idris.Output (clearHighlights, emitWarning, formatMessage, idemodePutSExp,
12module Idris.Output (clearHighlights, emitWarning, formatMessage, idemodePutSExp,
@@ -30,7 +30,11 @@ import Util.Pretty
30import Util.ScreenSize (getScreenWidth)
30import Util.ScreenSize (getScreenWidth)
31import Util.System (isATTY)
31import Util.System (isATTY)
32
32
33+#if (MIN_VERSION_base(4,11,0))
34+import Prelude hiding ((<$>), (<>))
35+#else
33import Prelude hiding ((<$>))
36import Prelude hiding ((<$>))
37+#endif
34
38
35import Control.Arrow (first)
39import Control.Arrow (first)
36import Control.Monad.Trans.Except (ExceptT(ExceptT), runExceptT)
40import Control.Monad.Trans.Except (ExceptT(ExceptT), runExceptT)
src/Idris/REPL.hs+5−1
@@ -5,7 +5,7 @@ License : BSD3
5Maintainer : The Idris Community.
5Maintainer : The Idris Community.
6-}
6-}
7
7
8−{-# LANGUAGE FlexibleContexts, PatternGuards #-}
8+{-# LANGUAGE CPP, FlexibleContexts, PatternGuards #-}
9-- FIXME: {-# OPTIONS_GHC -fwarn-incomplete-patterns #-}
9-- FIXME: {-# OPTIONS_GHC -fwarn-incomplete-patterns #-}
10{-# OPTIONS_GHC -fwarn-unused-imports #-}
10{-# OPTIONS_GHC -fwarn-unused-imports #-}
11
11
@@ -82,7 +82,11 @@ import Idris.WhoCalls
82import IRTS.CodegenCommon
82import IRTS.CodegenCommon
83import IRTS.Compiler
83import IRTS.Compiler
84import Network
84import Network
85+#if (MIN_VERSION_base(4,11,0))
86+import Prelude hiding (id, (.), (<$>), (<>))
87+#else
85import Prelude hiding (id, (.), (<$>))
88import Prelude hiding (id, (.), (<$>))
89+#endif
86import System.Console.Haskeline as H
90import System.Console.Haskeline as H
87import System.Directory
91import System.Directory
88import System.Environment
92import System.Environment
src/Idris/TypeSearch.hs+17−2
@@ -5,7 +5,7 @@ Description : A Hoogle for Idris.
5License : BSD3
5License : BSD3
6Maintainer : The Idris Community.
6Maintainer : The Idris Community.
7-}
7-}
8−{-# LANGUAGE ScopedTypeVariables #-}
8+{-# LANGUAGE CPP, ScopedTypeVariables #-}
9
9
10module Idris.TypeSearch (
10module Idris.TypeSearch (
11 searchByType
11 searchByType
@@ -32,8 +32,12 @@ import Idris.Output (iPrintResult, iRenderError, iRenderOutput, iRenderResult,
32
32
33import Util.Pretty (Doc, annotate, char, text, vsep, (<>))
33import Util.Pretty (Doc, annotate, char, text, vsep, (<>))
34
34
35+#if (MIN_VERSION_base(4,11,0))
36+import Prelude hiding (Semigroup(..), pred)
37+import qualified Prelude as S (Semigroup(..))
38+#else
35import Prelude hiding (pred)
39import Prelude hiding (pred)
36−
40+#endif
37import Control.Applicative (Applicative(..), (<$>), (<*>), (<|>))
41import Control.Applicative (Applicative(..), (<$>), (<*>), (<|>))
38import Control.Arrow (first, second, (&&&), (***))
42import Control.Arrow (first, second, (&&&), (***))
39import Control.Monad (guard, when)
43import Control.Monad (guard, when)
@@ -238,6 +242,17 @@ instance Ord Score where
238 compare = comparing defaultScoreFunction
242 compare = comparing defaultScoreFunction
239
243
240
244
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+
241instance Monoid a => Monoid (Sided a) where
256instance Monoid a => Monoid (Sided a) where
242 mempty = Sided mempty mempty
257 mempty = Sided mempty mempty
243 (Sided l1 r1) `mappend` (Sided l2 r2) = Sided (l1 `mappend` l2) (r1 `mappend` r2)
258 (Sided l1 r1) `mappend` (Sided l2 r2) = Sided (l1 `mappend` l2) (r1 `mappend` r2)