on master help sign in
Alphabetize and indent imports and LANGUAGE pragmas

I ran stylish-haskell over everything. The import grouping was inconsistent so I just picked something: Idris.* and IRTS.*, then Util, then autogenerated files, then modules from other packages.

commite6ceb5c72486043288a093f3e3448551c10d803c authorEcho Nolan <echo@echonolan.net> dateFri 30 Sep 2016, 20:12 (10 years ago) parentb73004a
102 files changed+1084−1270
codegen/idris-codegen-c/Main.hs+7−5 codegen/idris-codegen-javascript/Main.hs+4−3 codegen/idris-codegen-node/Main.hs+4−5 main/Main.hs+6−6 src/IRTS/BCImp.hs+1−1 src/IRTS/Bytecode.hs+3−2 src/IRTS/CodegenC.hs+11−11 src/IRTS/CodegenCommon.hs+3−3 src/IRTS/CodegenJavaScript.hs+13−16 src/IRTS/Compiler.hs+28−33 src/IRTS/Defunctionalise.hs+5−5 src/IRTS/DumpBC.hs+2−2 src/IRTS/Exports.hs+1−1 src/IRTS/Inliner.hs−1 src/IRTS/JavaScript/AST.hs+2−4 src/IRTS/Lang.hs+5−6 src/IRTS/LangOpts.hs+6−6 src/IRTS/Portable.hs+3−5 src/IRTS/Simplified.hs+4−4 src/IRTS/System.hs+8−8 src/Idris/ASTUtils.hs+7−6 src/Idris/AbsSyntax.hs+17−23 src/Idris/AbsSyntaxTree.hs+21−27 src/Idris/Apropos.hs+5−5 src/Idris/CaseSplit.hs+15−19 src/Idris/Chaser.hs+8−9 src/Idris/CmdOptions.hs+9−12 src/Idris/Completion.hs+9−11 src/Idris/Core/Binary.hs+5−5 src/Idris/Core/CaseTree.hs+14−14 src/Idris/Core/Constraints.hs+3−3 src/Idris/Core/DeepSeq.hs+1−1 src/Idris/Core/Elaborate.hs+7−7 src/Idris/Core/Evaluate.hs+11−11 src/Idris/Core/Execute.hs+13−18 src/Idris/Core/ProofState.hs+6−6 src/Idris/Core/ProofTerm.hs+2−2 src/Idris/Core/TT.hs+24−25 src/Idris/Core/Typecheck.hs+7−7 src/Idris/Core/Unify.hs+2−2 src/Idris/Core/WHNF.hs+1−1 src/Idris/Coverage.hs+7−9 src/Idris/DSL.hs+2−4 src/Idris/DeepSeq.hs+8−8 src/Idris/Delaborate.hs+11−12 src/Idris/Directives.hs+2−3 src/Idris/Docs.hs+7−6 src/Idris/Docstrings.hs+7−10 src/Idris/Elab/AsPat.hs+1−2 src/Idris/Elab/Clause.hs+29−34 src/Idris/Elab/Data.hs+26−30 src/Idris/Elab/Implementation.hs+24−27 src/Idris/Elab/Interface.hs+25−28 src/Idris/Elab/Provider.hs+25−29 src/Idris/Elab/Quasiquote.hs+1−1 src/Idris/Elab/Record.hs+20−24 src/Idris/Elab/Rewrite.hs+4−5 src/Idris/Elab/RunElab.hs+5−8 src/Idris/Elab/Term.hs+18−18 src/Idris/Elab/Transform.hs+22−26 src/Idris/Elab/Type.hs+24−29 src/Idris/Elab/Utils.hs+9−12 src/Idris/Elab/Value.hs+23−27 src/Idris/ElabDecls.hs+31−36 src/Idris/Erasure.hs+13−14 src/Idris/Error.hs+10−10 src/Idris/IBC.hs+17−19 src/Idris/IdeMode.hs+9−10 src/Idris/IdrisDoc.hs+17−24 src/Idris/Imports.hs+5−8 src/Idris/Info.hs+5−8 src/Idris/Info/Show.hs+2−2 src/Idris/Inliner.hs+1−1 src/Idris/Interactive.hs+11−12 src/Idris/Main.hs+20−27 src/Idris/ModeCommon.hs+11−14 src/Idris/Output.hs+9−12 src/Idris/Package.hs+25−29 src/Idris/Package/Common.hs+1−2 src/Idris/Package/Parser.hs+11−11 src/Idris/Parser.hs+37−45 src/Idris/Parser/Data.hs+21−27 src/Idris/Parser/Expr.hs+6−10 src/Idris/Parser/Helpers.hs+20−24 src/Idris/Parser/Ops.hs+16−19 src/Idris/PartialEval.hs+3−4 src/Idris/Primitives.hs+5−7 src/Idris/ProofSearch.hs+5−6 src/Idris/Prover.hs+20−24 src/Idris/Providers.hs+3−3 src/Idris/REPL.hs+56−69 src/Idris/REPL/Browse.hs+6−7 src/Idris/REPL/Commands.hs+2−2 src/Idris/REPL/Parser.hs+10−14 src/Idris/Reflection.hs+15−15 src/Idris/TypeSearch.hs+31−28 src/Idris/Unlit.hs+1 src/Idris/WhoCalls.hs−2 src/Util/DynamicLinker.hs+7−7 src/Util/Net.hs+2−2 src/Util/System.hs+7−12 test/TestRun.hs+10−11
codegen/idris-codegen-c/Main.hs+7−5
@@ -1,19 +1,21 @@
11module Main where
22
3−import Idris.Core.TT
43import Idris.AbsSyntax
4+import Idris.Core.TT
55import Idris.ElabDecls
66import Idris.Main
7−import IRTS.Compiler
87import IRTS.CodegenC
8+import IRTS.Compiler
9+
10+import Util.System
911
12+import Paths_idris
13+
14+import Control.Monad
1015import System.Environment
1116import System.Exit
12−import Control.Monad
1317
14−import Paths_idris
1518
16−import Util.System
1719
1820data Opts = Opts { inputs :: [FilePath],
1921 interface :: Bool,
codegen/idris-codegen-javascript/Main.hs+4−3
@@ -1,16 +1,17 @@
11module Main where
22
3−import Idris.Core.TT
43import Idris.AbsSyntax
4+import Idris.Core.TT
55import Idris.ElabDecls
66import Idris.Main
7−import IRTS.Compiler
87import IRTS.CodegenJavaScript
8+import IRTS.Compiler
9+
10+import Paths_idris
911
1012import System.Environment
1113import System.Exit
1214
13−import Paths_idris
1415
1516data Opts = Opts {
1617 inputs :: [FilePath]
codegen/idris-codegen-node/Main.hs+4−5
@@ -1,18 +1,17 @@
11module Main where
22
3−import Idris.Core.TT
43import Idris.AbsSyntax
4+import Idris.Core.TT
55import Idris.ElabDecls
66import Idris.Main
7−
8−import IRTS.Compiler
97import IRTS.CodegenJavaScript
8+import IRTS.Compiler
9+
10+import Paths_idris
1011
1112import System.Environment
1213import System.Exit
1314
14−import Paths_idris
15−
1615data Opts = Opts { inputs :: [FilePath]
1716 , output :: FilePath
1817 }
main/Main.hs+6−6
@@ -1,16 +1,16 @@
11module Main where
22
3−import Control.Monad ( when )
4−import System.Exit ( exitSuccess )
5−
63import Idris.AbsSyntax
7−import Idris.Error
84import Idris.CmdOptions
5+import Idris.Error
96import Idris.Info.Show
10−import Idris.Package
117import Idris.Main
8+import Idris.Package
9+
10+import Util.System (setupBundledCC)
1211
13−import Util.System ( setupBundledCC )
12+import Control.Monad (when)
13+import System.Exit (exitSuccess)
1414
1515processShowOptions :: [Opt] -> Idris ()
1616processShowOptions opts = runIO $ do
src/IRTS/BCImp.hs+1−1
@@ -7,9 +7,9 @@ Maintainer : The Idris Community.
77-}
88module IRTS.BCImp where
99
10+import Idris.Core.TT
1011import IRTS.Lang
1112import IRTS.Simplified
12−import Idris.Core.TT
1313
1414data Reg = RVal | L Int
1515
src/IRTS/Bytecode.hs+3−2
@@ -21,10 +21,11 @@ returns) are stored.
2121module IRTS.Bytecode where
2222
2323
24+import Idris.Core.TT
25+import IRTS.Defunctionalise
2426import IRTS.Lang
2527import IRTS.Simplified
26−import IRTS.Defunctionalise
27−import Idris.Core.TT
28+
2829import Data.Maybe
2930
3031data Reg = RVal | L Int | T Int | Tmp
src/IRTS/CodegenC.hs+11−11
@@ -8,27 +8,27 @@ Maintainer : The Idris Community.
88module IRTS.CodegenC (codegenC) where
99
1010import Idris.AbsSyntax
11+import Idris.Core.TT
1112import IRTS.Bytecode
13+import IRTS.CodegenCommon
14+import IRTS.Defunctionalise
1215import IRTS.Lang
1316import IRTS.Simplified
14−import IRTS.Defunctionalise
1517import IRTS.System
16−import IRTS.CodegenCommon
17−import Idris.Core.TT
18+
1819import Util.System
1920
20−import Numeric
21−import Data.Char
21+import Control.Monad
2222import Data.Bits
23+import Data.Char
2324import Data.List (intercalate, nubBy)
24−import System.Process
25+import Debug.Trace
26+import Numeric
27+import System.Directory
2528import System.Exit
29+import System.FilePath ((<.>), (</>))
2630import System.IO
27−import System.Directory
28−import System.FilePath ((</>), (<.>))
29−import Control.Monad
30−
31−import Debug.Trace
31+import System.Process
3232
3333codegenC :: CodeGenerator
3434codegenC ci = do codegenC' (simpleDecls ci)
src/IRTS/CodegenCommon.hs+3−3
@@ -8,11 +8,11 @@ Maintainer : The Idris Community.
88-}
99module IRTS.CodegenCommon where
1010
11−import GHC.Generics (Generic)
12−
1311import Idris.Core.TT
14−import IRTS.Simplified
1512import IRTS.Defunctionalise
13+import IRTS.Simplified
14+
15+import GHC.Generics (Generic)
1616
1717data DbgLevel = NONE | DEBUG | TRACE deriving Eq
1818data OutputType = Raw | Object | Executable deriving (Eq, Show, Generic)
src/IRTS/CodegenJavaScript.hs+13−16
@@ -5,44 +5,41 @@ Copyright :
55License : BSD3
66Maintainer : The Idris Community.
77-}
8−{-# LANGUAGE PatternGuards #-}
9−{-# LANGUAGE OverloadedStrings #-}
8+{-# LANGUAGE OverloadedStrings, PatternGuards #-}
109module IRTS.CodegenJavaScript (codegenJavaScript
1110 , codegenNode
1211 , JSTarget(..)
1312 ) where
1413
15−import IRTS.JavaScript.AST
16−
1714import Idris.AbsSyntax hiding (TypeCase)
15+import Idris.Core.TT
1816import IRTS.Bytecode
19−import IRTS.Lang
17+import IRTS.CodegenCommon
18+import IRTS.Defunctionalise
2019import IRTS.Exports
20+import IRTS.JavaScript.AST
21+import IRTS.Lang
2122import IRTS.Simplified
22−import IRTS.Defunctionalise
23−import IRTS.CodegenCommon
24−import Idris.Core.TT
2523import IRTS.System
2624import Util.System
2725
26+import Control.Applicative (pure, (<$>), (<*>))
2827import Control.Arrow
2928import Control.Monad (mapM)
30−import Control.Applicative ((<$>), (<*>), pure)
3129import Control.Monad.RWS hiding (mapM)
3230import Control.Monad.State
3331import Data.Char
34−import Numeric
3532import Data.List
33+import qualified Data.Map.Strict as M
3634import Data.Maybe
37−import Data.Word
35+import qualified Data.Text as T
36+import qualified Data.Text.IO as TIO
3837import Data.Traversable hiding (mapM)
39−import System.IO
38+import Data.Word
39+import Numeric
4040import System.Directory
4141import System.FilePath
42−
43−import qualified Data.Map.Strict as M
44−import qualified Data.Text as T
45−import qualified Data.Text.IO as TIO
42+import System.IO
4643
4744
4845data CompileInfo = CompileInfo { compileInfoApplyCases :: [Int]
src/IRTS/Compiler.hs+28−33
@@ -5,55 +5,50 @@ Copyright :
55License : BSD3
66Maintainer : The Idris Community.
77-}
8−{-# LANGUAGE PatternGuards, TypeSynonymInstances, CPP #-}
8+{-# LANGUAGE CPP, PatternGuards, TypeSynonymInstances #-}
99
1010module IRTS.Compiler(compile, generate) where
1111
12−import IRTS.Lang
13−import IRTS.LangOpts
14−import IRTS.Defunctionalise
15−import IRTS.Simplified
16−import IRTS.CodegenCommon
17−import IRTS.CodegenC
18−import IRTS.DumpBC
19−import IRTS.CodegenJavaScript
20−import IRTS.Inliner
21−import IRTS.Exports
22−import IRTS.Portable
23−
2412import Idris.AbsSyntax
2513import Idris.AbsSyntaxTree
2614import Idris.ASTUtils
15+import Idris.Core.CaseTree
16+import Idris.Core.Evaluate
17+import Idris.Core.TT
2718import Idris.Erasure
2819import Idris.Error
2920import Idris.Output
21+import IRTS.CodegenC
22+import IRTS.CodegenCommon
23+import IRTS.CodegenJavaScript
24+import IRTS.Defunctionalise
25+import IRTS.DumpBC
26+import IRTS.Exports
27+import IRTS.Inliner
28+import IRTS.Lang
29+import IRTS.LangOpts
30+import IRTS.Portable
31+import IRTS.Simplified
3032
31−import Debug.Trace
32−
33−import Idris.Core.TT
34−import Idris.Core.Evaluate
35−import Idris.Core.CaseTree
36−
37−import Control.Category
3833import Prelude hiding (id, (.))
3934
4035import Control.Applicative
36+import Control.Category
4137import Control.Monad.State
42−
43−import Data.Maybe
44−import Data.List
45−import Data.Ord
46−import Data.IntSet (IntSet)
47−import qualified Data.IntSet as IS
48−import qualified Data.Map as M
49−import qualified Data.Set as S
50−
51−import System.Process
52−import System.IO
53−import System.Exit
38+import Data.IntSet (IntSet)
39+import qualified Data.IntSet as IS
40+import Data.List
41+import qualified Data.Map as M
42+import Data.Maybe
43+import Data.Ord
44+import qualified Data.Set as S
45+import Debug.Trace
5446import System.Directory
5547import System.Environment
56−import System.FilePath ((</>), addTrailingPathSeparator)
48+import System.Exit
49+import System.FilePath (addTrailingPathSeparator, (</>))
50+import System.IO
51+import System.Process
5752
5853-- | Compile to simplified forms and return CodegenInfo
5954compile :: Codegen -> FilePath -> Maybe Term -> Idris CodegenInfo
src/IRTS/Defunctionalise.hs+5−5
@@ -24,15 +24,15 @@ module IRTS.Defunctionalise(module IRTS.Defunctionalise
2424 , module IRTS.Lang
2525 ) where
2626
27−import IRTS.Lang
28−import Idris.Core.TT
2927import Idris.Core.CaseTree
28+import Idris.Core.TT
29+import IRTS.Lang
3030
31−import Debug.Trace
32−import Data.Maybe
33−import Data.List
3431import Control.Monad
3532import Control.Monad.State
33+import Data.List
34+import Data.Maybe
35+import Debug.Trace
3636
3737data DExp = DV LVar
3838 | DApp Bool Name [DExp] -- True = tail call
src/IRTS/DumpBC.hs+2−2
@@ -7,11 +7,11 @@ Maintainer : The Idris Community.
77-}
88module IRTS.DumpBC where
99
10+import Idris.Core.TT
11+import IRTS.Bytecode
1012import IRTS.Lang
1113import IRTS.Simplified
12−import Idris.Core.TT
1314
14−import IRTS.Bytecode
1515import Data.List
1616
1717interMap :: [a] -> [b] -> (a -> [b]) -> [b]
src/IRTS/Exports.hs+1−1
@@ -9,9 +9,9 @@ Maintainer : The Idris Community.
99module IRTS.Exports(findExports, getExpNames) where
1010
1111import Idris.AbsSyntax
12−import Idris.Core.TT
1312import Idris.Core.CaseTree
1413import Idris.Core.Evaluate
14+import Idris.Core.TT
1515import Idris.Error
1616import IRTS.Lang
1717
src/IRTS/Inliner.hs−1
@@ -8,7 +8,6 @@ Maintainer : The Idris Community.
88module IRTS.Inliner where
99
1010import Idris.Core.TT
11−
1211import IRTS.Defunctionalise
1312
1413inline :: DDefs -> DDefs
src/IRTS/JavaScript/AST.hs+2−4
@@ -5,14 +5,12 @@ Copyright :
55License : BSD3
66Maintainer : The Idris Community.
77-}
8−{-# LANGUAGE PatternGuards #-}
9−{-# LANGUAGE OverloadedStrings #-}
8+{-# LANGUAGE OverloadedStrings, PatternGuards #-}
109module IRTS.JavaScript.AST where
1110
12−import Data.Word
1311import Data.Char (isDigit)
14−
1512import qualified Data.Text as T
13+import Data.Word
1614
1715data JSType = JSIntTy
1816 | JSStringTy
src/IRTS/Lang.hs+5−6
@@ -5,16 +5,15 @@ Copyright :
55License : BSD3
66Maintainer : The Idris Community.
77-}
8−{-# LANGUAGE PatternGuards, DeriveFunctor, DeriveGeneric #-}
8+{-# LANGUAGE DeriveFunctor, DeriveGeneric, PatternGuards #-}
99
1010module IRTS.Lang where
1111
12−import Control.Monad.State hiding (lift)
13−import Control.Applicative hiding (Const)
14−
15−import Idris.Core.TT
1612import Idris.Core.CaseTree
13+import Idris.Core.TT
1714
15+import Control.Applicative hiding (Const)
16+import Control.Monad.State hiding (lift)
1817import Data.List
1918import Debug.Trace
2019import GHC.Generics (Generic)
@@ -319,7 +318,7 @@ lsubst n new (LCon lv t cn args) = let args' = map (lsubst n new) args in
319318 LCon lv t cn args'
320319lsubst n new (LOp op args) = let args' = map (lsubst n new) args in
321320 LOp op args'
322−lsubst n new (LForeign fd rd args)
321+lsubst n new (LForeign fd rd args)
323322 = let args' = map (\(d, a) -> (d, lsubst n new a)) args in
324323 LForeign fd rd args'
325324lsubst n new (LCase t e alts) = let e' = lsubst n new e
src/IRTS/LangOpts.hs+6−6
@@ -5,16 +5,16 @@ Copyright :
55License : BSD3
66Maintainer : The Idris Community.
77-}
8−{-# LANGUAGE PatternGuards, DeriveFunctor #-}
8+{-# LANGUAGE DeriveFunctor, PatternGuards #-}
99
1010module IRTS.LangOpts where
1111
12−import Control.Monad.State hiding (lift)
13−import Control.Applicative hiding (Const)
14−
15−import IRTS.Lang
16−import Idris.Core.TT
1712import Idris.Core.CaseTree
13+import Idris.Core.TT
14+import IRTS.Lang
15+
16+import Control.Applicative hiding (Const)
17+import Control.Monad.State hiding (lift)
1818import Data.List
1919import Debug.Trace
2020
src/IRTS/Portable.hs+3−5
@@ -8,19 +8,17 @@ Maintainer : The Idris Community.
88{-# LANGUAGE OverloadedStrings #-}
99module IRTS.Portable (writePortable) where
1010
11−import Data.Aeson
12−import qualified Data.ByteString.Lazy as B
13−import qualified Data.Text as T
14−
1511import Idris.Core.CaseTree
1612import Idris.Core.TT
17−
1813import IRTS.Bytecode
1914import IRTS.CodegenCommon
2015import IRTS.Defunctionalise
2116import IRTS.Lang
2217import IRTS.Simplified
2318
19+import Data.Aeson
20+import qualified Data.ByteString.Lazy as B
21+import qualified Data.Text as T
2422import System.IO
2523
2624data CodegenFile = CGFile {
src/IRTS/Simplified.hs+4−4
@@ -7,13 +7,13 @@ Maintainer : The Idris Community.
77-}
88module IRTS.Simplified(simplifyDefs, SDecl(..), SExp(..), SAlt(..)) where
99
10−import IRTS.Defunctionalise
11−import Idris.Core.TT
1210import Idris.Core.CaseTree
11+import Idris.Core.TT
1312import Idris.Core.Typecheck
14−import Data.Maybe
15−import Control.Monad.State
13+import IRTS.Defunctionalise
1614
15+import Control.Monad.State
16+import Data.Maybe
1717import Debug.Trace
1818
1919data SExp = SV LVar
src/IRTS/System.hs+8−8
@@ -19,20 +19,20 @@ module IRTS.System( getDataFileName
1919 , version
2020 ) where
2121
22−import Data.List.Split
23−
24−import Control.Applicative ((<$>))
25−import Data.Maybe (fromMaybe)
26−import System.FilePath ((</>), addTrailingPathSeparator)
27−import System.Environment
28−
2922#ifdef FREESTANDING
30−import Target_idris
3123import Paths_idris (version)
24+import Target_idris
3225#else
3326import Paths_idris
3427#endif
3528
29+import Control.Applicative ((<$>))
30+import Data.List.Split
31+import Data.Maybe (fromMaybe)
32+import System.Environment
33+import System.FilePath (addTrailingPathSeparator, (</>))
34+
35+
3636getIdrisDataDir :: IO String
3737getIdrisDataDir = do
3838 envValue <- lookupEnv "TARGET"
src/Idris/ASTUtils.hs+7−6
@@ -44,15 +44,16 @@ module Idris.ASTUtils(
4444 , opts_idrisCmdline, repl_definitions
4545 ) where
4646
47−import Control.Category
47+import Idris.AbsSyntaxTree
48+import Idris.Core.Evaluate
49+import Idris.Core.TT
50+
51+import Prelude hiding (id, (.))
52+
4853import Control.Applicative
54+import Control.Category
4955import Control.Monad.State.Class
5056import Data.Maybe
51−import Prelude hiding (id, (.))
52−
53−import Idris.Core.TT
54−import Idris.Core.Evaluate
55−import Idris.AbsSyntaxTree
5657
5758data Field rec fld = Field
5859 { fget :: rec -> fld
src/Idris/AbsSyntax.hs+17−23
@@ -5,53 +5,47 @@ Copyright :
55License : BSD3
66Maintainer : The Idris Community.
77-}
8−{-# LANGUAGE MultiParamTypeClasses, FlexibleInstances, DeriveFunctor,
9− TypeSynonymInstances, PatternGuards #-}
8+{-# LANGUAGE DeriveFunctor, FlexibleInstances, MultiParamTypeClasses,
9+ PatternGuards, TypeSynonymInstances #-}
1010
1111module Idris.AbsSyntax(
1212 module Idris.AbsSyntax
1313 , module Idris.AbsSyntaxTree
1414 ) where
1515
16−import Idris.Core.TT
17−import Idris.Core.Evaluate
18−import Idris.Core.Elaborate hiding (Tactic(..))
19−import Idris.Core.Typecheck
2016import Idris.AbsSyntaxTree
2117import Idris.Colours
18+import Idris.Core.Elaborate hiding (Tactic(..))
19+import Idris.Core.Evaluate
20+import Idris.Core.TT
21+import Idris.Core.Typecheck
2222import Idris.Docstrings
2323import Idris.IdeMode hiding (Opt(..))
2424import IRTS.CodegenCommon
25−import Util.DynamicLinker
2625
27−import System.Console.Haskeline
28−import System.IO
29−import System.Directory (canonicalizePath, doesFileExist)
26+import Util.DynamicLinker
27+import Util.Pretty
28+import Util.ScreenSize
29+import Util.System
3030
3131import Control.Applicative
3232import Control.Monad (liftM3)
3333import Control.Monad.State
34−
35−import Data.List hiding (insert,union)
3634import Data.Char
37−import qualified Data.Text as T
3835import Data.Either
36+import Data.Generics.Uniplate.Data (descend, descendM)
37+import Data.List hiding (insert, union)
3938import qualified Data.Map as M
4039import Data.Maybe
4140import qualified Data.Set as S
41+import qualified Data.Text as T
4242import Data.Word (Word)
43−
44−import Data.Generics.Uniplate.Data (descend, descendM)
45−
4643import Debug.Trace
47−
48−import System.IO.Error(isUserError, ioeGetErrorString, tryIOError)
49−
5044import Network (PortID(PortNumber))
51−
52−import Util.Pretty
53−import Util.ScreenSize
54−import Util.System
45+import System.Console.Haskeline
46+import System.Directory (canonicalizePath, doesFileExist)
47+import System.IO
48+import System.IO.Error (ioeGetErrorString, isUserError, tryIOError)
5549
5650getContext :: Idris Context
5751getContext = do i <- getIState; return (tt_ctxt i)
src/Idris/AbsSyntaxTree.hs+21−27
@@ -5,54 +5,48 @@ Copyright :
55License : BSD3
66Maintainer : The Idris Community.
77-}
8−{-# LANGUAGE MultiParamTypeClasses, FlexibleInstances, DeriveFunctor,
9− DeriveDataTypeable, DeriveGeneric, TypeSynonymInstances,
10− PatternGuards #-}
8+{-# LANGUAGE DeriveDataTypeable, DeriveFunctor, DeriveGeneric,
9+ FlexibleInstances, MultiParamTypeClasses, PatternGuards,
10+ TypeSynonymInstances #-}
1111
1212module Idris.AbsSyntaxTree where
1313
14−import Idris.Core.TT
15−import Idris.Core.Evaluate
14+import Idris.Colours
1615import Idris.Core.Elaborate hiding (Tactic(..))
16+import Idris.Core.Evaluate
17+import Idris.Core.TT
1718import Idris.Core.Typecheck
1819import Idris.Docstrings
19−import IRTS.Lang
2020import IRTS.CodegenCommon
21−import Util.Pretty
21+import IRTS.Lang
2222import Util.DynamicLinker
23−
24−import Idris.Colours
25−
26−import System.Console.Haskeline
27−import System.IO
23+import Util.Pretty
2824
2925import Prelude hiding ((<$>))
3026
3127import Control.Applicative ((<|>))
32−
33−import Control.Monad.Trans.State.Strict
34−import Control.Monad.Trans.Except
3528import qualified Control.Monad.Trans.Class as Trans (lift)
36−
29+import Control.Monad.Trans.Except
30+import Control.Monad.Trans.State.Strict
31+import Data.Char
3732import Data.Data (Data)
33+import Data.Either
34+import Data.Foldable (Foldable)
3835import Data.Function (on)
39−import Data.Generics.Uniplate.Data (universe, children)
36+import Data.Generics.Uniplate.Data (children, universe)
4037import Data.List hiding (group)
41−import Data.Char
4238import qualified Data.Map.Strict as M
43−import qualified Data.Text as T
44−import Data.Either
45−import qualified Data.Set as S
46−import Data.Word (Word)
4739import Data.Maybe (fromMaybe, mapMaybe, maybeToList)
40+import qualified Data.Set as S
41+import qualified Data.Text as T
4842import Data.Traversable (Traversable)
4943import Data.Typeable
50−import Data.Foldable (Foldable)
51−import GHC.Generics (Generic)
52−import Network.Socket(PortNumber)
53−
44+import Data.Word (Word)
5445import Debug.Trace
55−
46+import GHC.Generics (Generic)
47+import Network.Socket (PortNumber)
48+import System.Console.Haskeline
49+import System.IO
5650import Text.PrettyPrint.Annotated.Leijen
5751
5852data ElabWhat = ETypes | EDefns | EAll
src/Idris/Apropos.hs+5−5
@@ -8,12 +8,12 @@ Maintainer : The Idris Community.
88module Idris.Apropos (apropos, aproposModules) where
99
1010import Idris.AbsSyntax
11−import Idris.Core.Evaluate (ctxtAlist, Def(..))
12−import Idris.Core.TT (Name(..), Type, TT(..), NameType(..), Binder(..), Const(..),
13− lookupCtxtExact, toAlist)
14−import Idris.Docstrings (Docstring, DocTerm, containsText)
11+import Idris.Core.Evaluate (Def(..), ctxtAlist)
12+import Idris.Core.TT (Binder(..), Const(..), Name(..), NameType(..), TT(..),
13+ Type, lookupCtxtExact, toAlist)
14+import Idris.Docstrings (DocTerm, Docstring, containsText)
1515
16−import Data.List (nub, nubBy, intersperse)
16+import Data.List (intersperse, nub, nubBy)
1717import qualified Data.Text as T
1818
1919-- | Find definitions that are relevant to all space-delimited components of
src/Idris/CaseSplit.hs+15−19
@@ -28,34 +28,30 @@ module Idris.CaseSplit(
2828 ) where
2929
3030import Idris.AbsSyntax
31−import Idris.AbsSyntaxTree (Idris, IState, PTerm)
32−import Idris.ElabDecls
31+import Idris.AbsSyntaxTree (IState, Idris, PTerm)
32+import Idris.Core.Evaluate
33+import Idris.Core.TT
34+import Idris.Core.Typecheck
3335import Idris.Delaborate
34−import Idris.Parser
35−import Idris.Parser.Helpers
36+import Idris.Elab.Term
37+import Idris.Elab.Value
38+import Idris.ElabDecls
3639import Idris.Error
3740import Idris.Output
41+import Idris.Parser
42+import Idris.Parser.Helpers
3843
39−import Idris.Elab.Value
40−import Idris.Elab.Term
41−
42−import Idris.Core.TT
43−import Idris.Core.Typecheck
44−import Idris.Core.Evaluate
45−
46−import Data.Maybe
47−import Data.Char
48−import Data.List (isPrefixOf, isSuffixOf)
4944import Control.Monad
5045import Control.Monad.State.Strict
51−
46+import Data.Char
47+import Data.List (isPrefixOf, isSuffixOf)
48+import Data.Maybe
49+import Debug.Trace
50+import Text.Parser.Char (anyChar)
5251import Text.Parser.Combinators
53−import Text.Parser.Char(anyChar)
54−import Text.Trifecta(Result(..), parseString)
52+import Text.Trifecta (Result(..), parseString)
5553import Text.Trifecta.Delta
5654
57−import Debug.Trace
58−
5955-- | Given a variable to split, and a term application, return a list
6056-- of variable updates, paired with a flag to say whether the given
6157-- update typechecks (False = impossible) if the flag is 'False' the
src/Idris/Chaser.hs+8−9
@@ -11,22 +11,21 @@ module Idris.Chaser(
1111 , ModuleTree(..)
1212 ) where
1313
14−import Idris.Core.TT
15−import Idris.Parser
1614import Idris.AbsSyntax
17−import Idris.Imports
18−import Idris.Unlit
15+import Idris.Core.TT
1916import Idris.Error
2017import Idris.IBC
18+import Idris.Imports
19+import Idris.Parser
20+import Idris.Unlit
2121
22−import System.FilePath
23−import System.Directory
24−import Data.Time.Clock
25−import Control.Monad.Trans
2622import Control.Monad.State
23+import Control.Monad.Trans
2724import Data.List
28−
25+import Data.Time.Clock
2926import Debug.Trace
27+import System.Directory
28+import System.FilePath
3029import Util.System (readSource, writeSource)
3130
3231data ModuleTree = MTree { mod_path :: IFileType,
src/Idris/CmdOptions.hs+9−12
@@ -13,27 +13,24 @@ module Idris.CmdOptions
1313 , getPkgREPL, getPkgTest, getPort, getIBCSubDir
1414 ) where
1515
16+import Idris.AbsSyntax (getClient, getIBCSubDir, getPkg, getPkgCheck,
17+ getPkgClean, getPkgMkDoc, getPkgREPL, getPkgTest,
18+ getPort, opt)
1619import Idris.AbsSyntaxTree
17−import Idris.AbsSyntax (opt, getClient, getPkg, getPkgCheck, getPkgClean, getPkgMkDoc
18− , getPkgREPL, getPkgTest, getPort, getIBCSubDir)
19−-- import Idris.REPL
2020import Idris.Info (getIdrisVersion)
21−
21+-- import Idris.REPL
2222import IRTS.CodegenCommon
2323
24−import Options.Applicative
25−import Options.Applicative.Arrows
26−import Options.Applicative.Types (ReadM(..))
2724import Control.Monad.Trans (lift)
28−import Control.Monad.Trans.Reader (ask)
2925import Control.Monad.Trans.Except (throwE)
26+import Control.Monad.Trans.Reader (ask)
3027import Data.Char
3128import Data.Maybe
32−
33−import Text.ParserCombinators.ReadP hiding (many, option)
34−
29+import Options.Applicative
30+import Options.Applicative.Arrows
31+import Options.Applicative.Types (ReadM(..))
3532import Safe (lastMay)
36−
33+import Text.ParserCombinators.ReadP hiding (many, option)
3734import qualified Text.PrettyPrint.ANSI.Leijen as PP
3835
3936runArgParser :: IO [Opt]
src/Idris/Completion.hs+9−11
@@ -7,28 +7,26 @@ Maintainer : The Idris Community.
77-}
88module Idris.Completion (replCompletion, proverCompletion) where
99
10−import Idris.Core.Evaluate (definitions, ctxtAlist)
11−import Idris.Core.TT
12−
1310import Idris.AbsSyntax (runIO)
1411import Idris.AbsSyntaxTree
12+import Idris.Colours
13+import Idris.Core.Evaluate (ctxtAlist, definitions)
14+import Idris.Core.TT
1515import Idris.Help
1616import Idris.Imports (installedPackages)
17−import Idris.Colours
18−import Idris.Parser.Helpers(opChars)
17+import Idris.Parser.Expr (TacticArg(..))
1918import qualified Idris.Parser.Expr (constants, tactics)
20−import Idris.Parser.Expr (TacticArg (..))
19+import Idris.Parser.Helpers (opChars)
2120import Idris.REPL.Parser (allHelp, setOptions)
22−import Control.Monad.State.Strict
2321
22+import Control.Monad.State.Strict
23+import Data.Char (toLower)
2424import Data.List
25−import Data.Maybe
26−import Data.Char(toLower)
2725import qualified Data.Map.Strict as Map
26+import Data.Maybe
2827import qualified Data.Text as T
29−
30−import System.Console.Haskeline
3128import System.Console.ANSI (Color)
29+import System.Console.Haskeline
3230
3331commands = [ n | (names, _, _) <- allHelp ++ extraHelp, n <- names ]
3432
src/Idris/Core/Binary.hs+5−5
@@ -8,15 +8,15 @@ Maintainer : The Idris Community.
88{-# OPTIONS_GHC -fwarn-incomplete-patterns #-}
99module Idris.Core.Binary where
1010
11−import Control.Applicative ((<*>), (<$>))
12−import Control.Monad (liftM2)
13−import Control.DeepSeq (($!!))
11+import Idris.Core.TT
1412
13+import Control.Applicative ((<$>), (<*>))
14+import Control.DeepSeq (($!!))
15+import Control.Monad (liftM2)
1516import Data.Binary
16−import Data.Vector.Binary
1717import qualified Data.Text as T
1818import qualified Data.Text.Encoding as E
19−import Idris.Core.TT
19+import Data.Vector.Binary
2020
2121instance Binary ErrorReportPart where
2222 put (TextPart msg) = do putWord8 0 ; put msg
src/Idris/Core/CaseTree.hs+14−14
@@ -18,8 +18,8 @@ allows casing on arbitrary terms, here we choose to maintain the distinction
1818in order to allow for better optimisation opportunities.
1919
2020-}
21−{-# LANGUAGE PatternGuards, DeriveFunctor, TypeSynonymInstances,
22− DeriveGeneric #-}
21+{-# LANGUAGE DeriveFunctor, DeriveGeneric, PatternGuards, TypeSynonymInstances
22+ #-}
2323
2424module Idris.Core.CaseTree (
2525 CaseDef(..), SC, SC'(..), CaseAlt, CaseAlt'(..), ErasureInfo
@@ -31,11 +31,11 @@ module Idris.Core.CaseTree (
3131import Idris.Core.TT
3232
3333import Control.Applicative hiding (Const)
34−import Control.Monad.State
3534import Control.Monad.Reader
36−import Data.Maybe
35+import Control.Monad.State
3736import Data.List hiding (partition)
38−import qualified Data.List(partition)
37+import qualified Data.List (partition)
38+import Data.Maybe
3939import Debug.Trace
4040import GHC.Generics (Generic)
4141
@@ -169,9 +169,9 @@ findCalls' ignoreasserts sc topargs = nub $ nu' topargs sc where
169169 | otherwise = [(n, [])] -- tmp
170170 nut ps fn@(App _ f a)
171171 | (P _ n _, args) <- unApply fn
172− = if ignoreasserts && n == sUN "assert_total"
172+ = if ignoreasserts && n == sUN "assert_total"
173173 then []
174− else if n `elem` ps
174+ else if n `elem` ps
175175 then nut ps f ++ nut ps a
176176 else [(n, map argNames args)] ++ concatMap (nut ps) args
177177 | (P (TCon _ _) n _, _) <- unApply fn = []
@@ -249,7 +249,7 @@ data Phase = CompileTime | RunTime
249249-- Work Right to Left
250250
251251simpleCase :: Bool -> SC -> Bool ->
252− Phase -> FC -> [Int] ->
252+ Phase -> FC -> [Int] ->
253253 [(Type, Bool)] -> -- (Argument type, whether it's canonical)
254254 [([Name], Term, Term)] ->
255255 ErasureInfo ->
@@ -431,12 +431,12 @@ partition xs = error $ "Partition " ++ show xs
431431-- The first argument means [(Name, IsInaccessible)].
432432
433433order :: Phase -> [(Name, Bool)] -> [Clause] -> [Bool] -> ([Name], [Clause])
434−-- do nothing at compile time: FIXME (EB): Put this in after checking
434+-- do nothing at compile time: FIXME (EB): Put this in after checking
435435-- implications for Franck's reflection work... see issue 3233
436−-- order CompileTime ns cs _ = (map fst ns, cs)
436+-- order CompileTime ns cs _ = (map fst ns, cs)
437437order _ [] cs cans = ([], cs)
438438order _ ns' [] cans = (map fst ns', [])
439−order phase ns' cs cans
439+order phase ns' cs cans
440440 = let patnames = transpose (map (zip ns') (map (zip cans) (map fst cs)))
441441 -- only sort the arguments where there is no clash in
442442 -- constructor tags between families, the argument type is canonical,
@@ -444,7 +444,7 @@ order phase ns' cs cans
444444 -- clash, because otherwise we can't reliable make the
445445 -- case distinction on evaluation
446446 (patnames_ord, patnames_rest)
447− = Data.List.partition (noClash . map snd) patnames
447+ = Data.List.partition (noClash . map snd) patnames
448448 patnames_ord' = case phase of
449449 CompileTime -> patnames_ord
450450 -- reversing tends to make better case trees
@@ -460,7 +460,7 @@ order phase ns' cs cans
460460 rebuild patnames clause = (map (snd . snd) patnames, snd clause)
461461
462462 noClash [] = True
463− noClash ((can, p) : ps) = can && not (any (clashPat p) (map snd ps))
463+ noClash ((can, p) : ps) = can && not (any (clashPat p) (map snd ps))
464464 && noClash ps
465465
466466 clashPat (PCon _ _ _ _) (PConst _) = True
@@ -471,7 +471,7 @@ order phase ns' cs cans
471471 clashPat _ _ = False
472472
473473 -- this compares (+isInaccessible, -numberOfCases)
474− moreDistinct xs ys
474+ moreDistinct xs ys
475475 = compare (snd . fst . head $ xs, numNames [] (map snd ys))
476476 (snd . fst . head $ ys, numNames [] (map snd xs))
477477
src/Idris/Core/Constraints.hs+3−3
@@ -7,12 +7,12 @@ Maintainer : The Idris Community.
77-}
88module Idris.Core.Constraints ( ucheck ) where
99
10−import Idris.Core.TT ( TC(..), UExp(..), UConstraint(..), FC(..),
11− ConstraintFC(..), Err'(..) )
10+import Idris.Core.TT (ConstraintFC(..), Err'(..), FC(..), TC(..),
11+ UConstraint(..), UExp(..))
1212
1313import Control.Applicative
1414import Control.Monad.State.Strict
15−import Data.List ( partition )
15+import Data.List (partition)
1616import qualified Data.Map.Strict as M
1717import qualified Data.Set as S
1818import Debug.Trace
src/Idris/Core/DeepSeq.hs+1−1
@@ -10,9 +10,9 @@ Maintainer : The Idris Community.
1010
1111module Idris.Core.DeepSeq where
1212
13−import Idris.Core.TT
1413import Idris.Core.CaseTree
1514import Idris.Core.Evaluate
15+import Idris.Core.TT
1616
1717import Control.DeepSeq
1818
src/Idris/Core/Elaborate.hs+7−7
@@ -10,20 +10,22 @@ because this gives us a language to build derived tactics out of the
1010primitives.
1111-}
1212
13−{-# LANGUAGE MultiParamTypeClasses, FlexibleInstances, PatternGuards #-}
13+{-# LANGUAGE FlexibleInstances, MultiParamTypeClasses, PatternGuards #-}
1414module Idris.Core.Elaborate (
1515 module Idris.Core.Elaborate
1616 , module Idris.Core.ProofState
1717 ) where
1818
19+import Idris.Core.DeepSeq
20+import Idris.Core.Evaluate
1921import Idris.Core.ProofState
20−import Idris.Core.ProofTerm(bound_in, getProofTerm, mkProofTerm, bound_in_term,
21− refocus)
22+import Idris.Core.ProofTerm (bound_in, bound_in_term, getProofTerm, mkProofTerm,
23+ refocus)
2224import Idris.Core.TT
23−import Idris.Core.Evaluate
2425import Idris.Core.Typecheck
2526import Idris.Core.Unify
26−import Idris.Core.DeepSeq
27+
28+import Util.Pretty hiding (fill)
2729
2830import Control.DeepSeq
2931import Control.Monad.State.Strict
@@ -31,8 +33,6 @@ import Data.Char
3133import Data.List
3234import Debug.Trace
3335
34−import Util.Pretty hiding (fill)
35−
3636data ElabState aux = ES (ProofState, aux) String (Maybe (ElabState aux))
3737 deriving Show
3838
src/Idris/Core/Evaluate.hs+11−11
@@ -5,8 +5,8 @@ Copyright :
55License : BSD3
66Maintainer : The Idris Community.
77-}
8−{-# LANGUAGE MultiParamTypeClasses, FlexibleInstances, BangPatterns,
9− PatternGuards, DeriveGeneric #-}
8+{-# LANGUAGE BangPatterns, DeriveGeneric, FlexibleInstances,
9+ MultiParamTypeClasses, PatternGuards #-}
1010{-# OPTIONS_GHC -fwarn-incomplete-patterns #-}
1111
1212module Idris.Core.Evaluate(normalise, normaliseTrace, normaliseC,
@@ -21,22 +21,22 @@ module Idris.Core.Evaluate(normalise, normaliseTrace, normaliseC,
2121 lookupP, lookupP_all, lookupDef, lookupNameDef, lookupDefExact, lookupDefAcc, lookupDefAccExact, lookupVal,
2222 mapDefCtxt,
2323 lookupTotal, lookupTotalExact, lookupInjectiveExact,
24− lookupNameTotal, lookupMetaInformation, lookupTyEnv, isTCDict,
24+ lookupNameTotal, lookupMetaInformation, lookupTyEnv, isTCDict,
2525 isCanonical, isDConName, canBeDConName, isTConName, isConName, isFnName,
2626 Value(..), Quote(..), initEval, uniqueNameCtxt, uniqueBindersCtxt, definitions,
2727 isUniverse) where
2828
29−import Debug.Trace
29+import Idris.Core.CaseTree
30+import Idris.Core.TT
31+
3032import Control.Applicative hiding (Const)
31−import Control.Monad.State -- not Strict!
32−import qualified Data.Binary as B
33+import Control.Monad.State
3334import Data.Binary hiding (get, put)
35+import qualified Data.Binary as B
3436import Data.Maybe (listToMaybe)
37+import Debug.Trace
3538import GHC.Generics (Generic)
3639
37−import Idris.Core.TT
38−import Idris.Core.CaseTree
39−
4040data EvalState = ES { limited :: [(Name, Int)],
4141 nexthole :: Int,
4242 blocking :: Bool }
@@ -687,7 +687,7 @@ convEq ctxt holes topx topy = ceq [] topx topy where
687687 caseeq ((x,y):ps) xdef ydef
688688 _ -> return False
689689
690− sameCase :: [(Name, Name)] -> Name -> Name -> [Term] -> [Term] ->
690+ sameCase :: [(Name, Name)] -> Name -> Name -> [Term] -> [Term] ->
691691 StateT UCs TC Bool
692692 sameCase ps x y xargs yargs
693693 = case (lookupDef x ctxt, lookupDef y ctxt) of
@@ -697,7 +697,7 @@ convEq ctxt holes topx topy = ceq [] topx topy where
697697 [CaseOp _ _ _ _ _ yd])
698698 -> let (xin, xdef) = cases_compiletime xd
699699 (yin, ydef) = cases_compiletime yd in
700− do liftM2 (&&)
700+ do liftM2 (&&)
701701 (do ok <- zipWithM (ceq ps)
702702 (drop (length xin) xargs)
703703 (drop (length yin) yargs)
src/Idris/Core/Execute.hs+13−18
@@ -6,48 +6,43 @@ License : BSD3
66Maintainer : The Idris Community.
77-}
88
9−{-# LANGUAGE PatternGuards, ExistentialQuantification, CPP #-}
9+{-# LANGUAGE CPP, ExistentialQuantification, PatternGuards #-}
1010{-# OPTIONS_GHC -fwarn-incomplete-patterns #-}
1111module Idris.Core.Execute (execute) where
1212
1313import Idris.AbsSyntax
1414import Idris.AbsSyntaxTree
15−import IRTS.Lang(FDesc(..), FType(..))
16−
17−import Idris.Primitives(Prim(..), primitives)
18−
19−import Idris.Core.TT
20−import Idris.Core.Evaluate
2115import Idris.Core.CaseTree
22−
16+import Idris.Core.Evaluate
17+import Idris.Core.TT
2318import Idris.Error
24−
25−import Debug.Trace
19+import Idris.Primitives (Prim(..), primitives)
20+import IRTS.Lang (FDesc(..), FType(..))
2621
2722import Util.DynamicLinker
2823import Util.System
2924
3025import Control.Applicative hiding (Const)
3126import Control.Exception
27+import Control.Monad hiding (forM)
3228import Control.Monad.Trans
33−import Control.Monad.Trans.State.Strict
3429import Control.Monad.Trans.Except (ExceptT, runExceptT, throwE)
35−import Control.Monad hiding (forM)
36−import Data.Maybe
30+import Control.Monad.Trans.State.Strict
3731import Data.Bits
38−import Data.Traversable (forM)
39−import Data.Time.Clock.POSIX (getPOSIXTime)
4032import qualified Data.Map as M
33+import Data.Maybe
34+import Data.Time.Clock.POSIX (getPOSIXTime)
35+import Data.Traversable (forM)
36+import Debug.Trace
37+import System.IO
4138
4239#ifdef IDRIS_FFI
43−import Foreign.LibFFI
4440import Foreign.C.String
41+import Foreign.LibFFI
4542import Foreign.Marshal.Alloc (free)
4643import Foreign.Ptr
4744#endif
4845
49−import System.IO
50−
5146#ifndef IDRIS_FFI
5247execute :: Term -> Idris Term
5348execute tm = fail "libffi not supported, rebuild Idris with -f FFI"
src/Idris/Core/ProofState.hs+6−6
@@ -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 MultiParamTypeClasses, FlexibleInstances, PatternGuards #-}
13+{-# LANGUAGE FlexibleInstances, MultiParamTypeClasses, PatternGuards #-}
1414module Idris.Core.ProofState(
1515 ProofState(..), newProof, envAtFocus, goalAtFocus
1616 , Tactic(..), Goal(..), processTactic, nowElaboratingPS
@@ -18,20 +18,20 @@ module Idris.Core.ProofState(
1818 , keepGiven, getProvenance
1919 ) where
2020
21−import Idris.Core.Typecheck
2221import Idris.Core.Evaluate
22+import Idris.Core.ProofTerm
2323import Idris.Core.TT
24+import Idris.Core.Typecheck
2425import Idris.Core.Unify
25−import Idris.Core.ProofTerm
2626
27−import Control.Monad.State.Strict
27+import Util.Pretty hiding (fill)
28+
2829import Control.Applicative hiding (empty)
2930import Control.Arrow ((***))
31+import Control.Monad.State.Strict
3032import Data.List
3133import Debug.Trace
3234
33−import Util.Pretty hiding (fill)
34−
3535data ProofState = PS { thname :: Name,
3636 holes :: [Name], -- ^ holes still to be solved
3737 usedns :: [Name], -- ^ used names, don't use again
src/Idris/Core/ProofTerm.hs+2−2
@@ -6,7 +6,7 @@ License : BSD3
66Maintainer : The Idris Community.
77-}
88
9−{-# LANGUAGE MultiParamTypeClasses, FlexibleInstances, PatternGuards #-}
9+{-# LANGUAGE FlexibleInstances, MultiParamTypeClasses, PatternGuards #-}
1010module Idris.Core.ProofTerm(
1111 ProofTerm, Goal(..), mkProofTerm, getProofTerm
1212 , resetProofTerm
@@ -16,9 +16,9 @@ module Idris.Core.ProofTerm(
1616 , goal, atHole
1717 ) where
1818
19−import Idris.Core.Typecheck
2019import Idris.Core.Evaluate
2120import Idris.Core.TT
21+import Idris.Core.Typecheck
2222
2323import Control.Monad.State.Strict
2424import Data.List
src/Idris/Core/TT.hs+24−25
@@ -22,8 +22,8 @@ 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 MultiParamTypeClasses, FunctionalDependencies, DeriveFunctor,
26− DeriveDataTypeable, DeriveGeneric, PatternGuards #-}
25+{-# LANGUAGE DeriveDataTypeable, DeriveFunctor, DeriveGeneric,
26+ FunctionalDependencies, MultiParamTypeClasses, PatternGuards #-}
2727{-# OPTIONS_GHC -fwarn-incomplete-patterns #-}
2828module Idris.Core.TT(
2929 AppStatus(..), ArithTy(..), Binder(..), Const(..), Ctxt(..)
@@ -51,40 +51,39 @@ module Idris.Core.TT(
5151 , uniqueNameFrom, uniqueNameSet, unList, updateDef, vToP, weakenTm
5252 ) where
5353
54+import Util.Pretty hiding (Str)
55+
5456-- Work around AMP without CPP
55−import Prelude (Eq(..), Show(..), Ord(..), Functor(..), Monad(..), String, Int,
56− Integer, Ordering(..), Maybe(..), Num(..), Bool(..), Enum(..),
57− Read(..), FilePath, Double, (&&), (||), ($), (.), div, error, flip,
58− fst, snd, not, mod, read, otherwise)
57+import Prelude (Bool(..), Double, Enum(..), Eq(..), FilePath, Functor(..), Int,
58+ Integer, Maybe(..), Monad(..), Num(..), Ord(..), Ordering(..),
59+ Read(..), Show(..), String, div, error, flip, fst, mod, not,
60+ otherwise, read, snd, ($), (&&), (.), (||))
5961
60−import Control.Applicative (Applicative (..), Alternative)
61−import qualified Control.Applicative as A (Alternative (..))
62+import Control.Applicative (Alternative, Applicative(..))
63+import qualified Control.Applicative as A (Alternative(..))
6264import Control.DeepSeq (($!!))
6365import Control.Monad.State.Strict
64−import Control.Monad.Trans.Except (Except (..))
65−import Debug.Trace
66−import qualified Data.Map.Strict as Map
66+import Control.Monad.Trans.Except (Except(..))
67+import Data.Binary hiding (get, put)
68+import qualified Data.Binary as B
6769import Data.Char
6870import Data.Data (Data)
69−import Data.Monoid (mconcat)
70−import Numeric (showIntAtBase)
71−import qualified Data.Text as T
71+import Data.Foldable (Foldable)
7272import Data.List hiding (group, insert)
73−import Data.Set(Set, member, fromList, insert)
73+import qualified Data.Map.Strict as Map
7474import Data.Maybe (listToMaybe)
75−import Data.Foldable (Foldable)
75+import Data.Monoid (mconcat)
76+import Data.Set (Set, fromList, insert, member)
77+import qualified Data.Text as T
7678import Data.Traversable (Traversable)
7779import Data.Typeable (Typeable)
7880import Data.Vector.Unboxed (Vector)
7981import qualified Data.Vector.Unboxed as V
80−import qualified Data.Binary as B
81−import Data.Binary hiding (get, put)
82+import Debug.Trace
8283import Foreign.Storable (sizeOf)
8384import GHC.Generics (Generic)
84−
85−import Numeric.IEEE (IEEE (identicalIEEE))
86−
87−import Util.Pretty hiding (Str)
85+import Numeric (showIntAtBase)
86+import Numeric.IEEE (IEEE(identicalIEEE))
8887
8988data Option = TTypeInTType
9089 | CheckConv
@@ -941,7 +940,7 @@ instance Sized UExp where
941940 size _ = 1
942941
943942instance Show UExp where
944− show (UVar ns x)
943+ show (UVar ns x)
945944 | x < 26 = ns ++ "." ++ [toEnum (x + fromEnum 'a')]
946945 | otherwise = ns ++ "." ++ toEnum ((x `mod` 26) + fromEnum 'a') : show (x `div` 26)
947946 show (UVal x) = show x
@@ -1289,7 +1288,7 @@ substTerm old new = st where
12891288 st (Bind x b sc) = Bind x (fmap st b) (st sc)
12901289 st t = t
12911290
1292− eqAlpha as (P _ x _) (P _ y _)
1291+ eqAlpha as (P _ x _) (P _ y _)
12931292 = x == y || (x, y) `elem` as || (y, x) `elem` as
12941293 eqAlpha as (V x) (V y) = x == y
12951294 eqAlpha as (Bind x xb xs) (Bind y yb ys)
@@ -1301,7 +1300,7 @@ substTerm old new = st where
13011300 = eqAlpha as xt yt && eqAlpha as xv yv
13021301 eqAlphaB as (Guess xt xv) (Guess yt yv)
13031302 = eqAlpha as xt yt && eqAlpha as xv yv
1304− eqAlphaB as bx by = eqAlpha as (binderTy bx) (binderTy by)
1303+ eqAlphaB as bx by = eqAlpha as (binderTy bx) (binderTy by)
13051304
13061305-- | Return number of occurrences of V 0 or bound name i the term
13071306occurrences :: Eq n => n -> TT n -> Int
src/Idris/Core/Typecheck.hs+7−7
@@ -6,17 +6,17 @@ License : BSD3
66Maintainer : The Idris Community.
77-}
88
9−{-# LANGUAGE MultiParamTypeClasses, FlexibleInstances, DeriveFunctor,
9+{-# LANGUAGE DeriveFunctor, FlexibleInstances, MultiParamTypeClasses,
1010 PatternGuards #-}
1111
1212module Idris.Core.Typecheck where
1313
14+import Idris.Core.Evaluate
15+import Idris.Core.TT
16+
1417import Control.Monad.State
15−import Debug.Trace
1618import qualified Data.Vector.Unboxed as V (length)
17−
18−import Idris.Core.TT
19−import Idris.Core.Evaluate
19+import Debug.Trace
2020
2121-- To check conversion, normalise each term wrt the current environment.
2222-- Since we haven't converted everything to de Bruijn indices yet, we'll have to
@@ -83,7 +83,7 @@ recheck_borrowing uniq_check bs tcns ctxt env tm orig
8383check :: Context -> Env -> Raw -> TC (Term, Type)
8484check ctxt env tm
8585 -- Holes allowed, so constraint namespace doesn't matter
86− = evalStateT (check' True [] ctxt env tm) (0, [])
86+ = evalStateT (check' True [] ctxt env tm) (0, [])
8787
8888check' :: Bool -> String -> Context -> Env -> Raw -> StateT UCs TC (Term, Type)
8989check' holes tcns ctxt env top = chk (TType (UVar tcns (-5))) Nothing env top where
@@ -343,7 +343,7 @@ checkUnique borrowed ctxt env tm
343343 StateT [(Name, (UniqueUse, Universe))] TC ()
344344 chkBinderName env n b
345345 = do let rawty = forgetEnv (map fst env) (binderTy b)
346− (_, kind) <- lift $ check ctxt env rawty
346+ (_, kind) <- lift $ check ctxt env rawty
347347 case kind of
348348 UType UniqueType -> do ns <- get
349349 if n `elem` borrowed
src/Idris/Core/Unify.hs+2−2
@@ -19,13 +19,13 @@ module Idris.Core.Unify(
1919 , unrecoverable
2020 ) where
2121
22−import Idris.Core.TT
2322import Idris.Core.Evaluate
23+import Idris.Core.TT
2424
2525import Control.Monad
2626import Control.Monad.State.Strict
27−import Data.Maybe
2827import Data.List
28+import Data.Maybe
2929import Debug.Trace
3030
3131-- terms which need to be injective, with the things we're trying to unify
src/Idris/Core/WHNF.hs+1−1
@@ -10,10 +10,10 @@ Maintainer : The Idris Community.
1010{-# OPTIONS_GHC -fwarn-incomplete-patterns #-}
1111module Idris.Core.WHNF(whnf, WEnv) where
1212
13−import Idris.Core.TT
1413import Idris.Core.CaseTree
1514import Idris.Core.Evaluate hiding (quote)
1615import qualified Idris.Core.Evaluate as Evaluate
16+import Idris.Core.TT
1717
1818import Debug.Trace
1919
src/Idris/Coverage.hs+7−9
@@ -8,23 +8,21 @@ Maintainer : The Idris Community.
88{-# LANGUAGE PatternGuards #-}
99module Idris.Coverage where
1010
11−import Idris.Core.TT
12−import Idris.Core.Evaluate
13−import Idris.Core.CaseTree
14−
1511import Idris.AbsSyntax
12+import Idris.Core.CaseTree
13+import Idris.Core.Evaluate
14+import Idris.Core.TT
1615import Idris.Delaborate
1716import Idris.Error
1817import Idris.Output (iWarn, iputStrLn)
1918
19+import Control.Monad.State.Strict
2020import Data.Char
21−import Data.List
2221import Data.Either
22+import Data.List
2323import Data.Maybe
2424import Debug.Trace
2525
26−import Control.Monad.State.Strict
27−
2826-- | Generate a pattern from an 'impossible' LHS.
2927--
3028-- We need this to eliminate the pattern clauses which have been
@@ -213,7 +211,7 @@ genAll i (addPH, args)
213211
214212 -- Merge patterns with placeholders in other patterns, to ensure we've
215213 -- covered all possible generated cases
216− -- e.g. if we have (True, _) (False, _) (_, True) (_, False)
214+ -- e.g. if we have (True, _) (False, _) (_, True) (_, False)
217215 -- we should merge these to get (True, True), (False, False)
218216 -- (False, True) and (True, False)
219217 mergePHs :: [PTerm] -> [PTerm]
@@ -224,7 +222,7 @@ genAll i (addPH, args)
224222
225223 mergePH :: PTerm -> [PTerm] -> [PTerm]
226224 mergePH tm [] = []
227− mergePH tm (x : xs)
225+ mergePH tm (x : xs)
228226 | Just merged <- mergePTerm tm x = merged : mergePH tm xs
229227 | otherwise = mergePH tm xs
230228
src/Idris/DSL.hs+2−4
@@ -10,14 +10,12 @@ Maintainer : The Idris Community.
1010
1111module Idris.DSL where
1212
13−import Data.Generics.Uniplate.Data (transform)
14−
1513import Idris.AbsSyntax
16−
17−import Idris.Core.TT
1814import Idris.Core.Evaluate
15+import Idris.Core.TT
1916
2017import Control.Monad.State.Strict
18+import Data.Generics.Uniplate.Data (transform)
2119import Debug.Trace
2220
2321debindApp :: SyntaxInfo -> PTerm -> PTerm
src/Idris/DeepSeq.hs+8−8
@@ -12,20 +12,20 @@ module Idris.DeepSeq(
1212 , module Idris.Core.DeepSeq
1313 ) where
1414
15−import Idris.Core.DeepSeq
16−import Idris.Docstrings
17−import Idris.Core.TT
1815import Idris.AbsSyntaxTree
1916import Idris.Colours
17+import Idris.Core.DeepSeq
18+import Idris.Core.TT
19+import Idris.Docstrings
20+import qualified Idris.Docstrings as D
21+import IRTS.CodegenCommon (OutputType(..))
2022import IRTS.Lang (PrimFn(..))
21−import IRTS.CodegenCommon (OutputType (..))
22−import Util.DynamicLinker
2323
24−import Control.DeepSeq
25−import Network.Socket(PortNumber)
24+import Util.DynamicLinker
2625
2726import qualified Cheapskate.Types as CT
28−import qualified Idris.Docstrings as D
27+import Control.DeepSeq
28+import Network.Socket (PortNumber)
2929
3030-- These types don't have Generic instances
3131instance NFData CT.Options where
src/Idris/Delaborate.hs+11−12
@@ -13,23 +13,22 @@ module Idris.Delaborate (
1313 , pprintDelabTy, pprintErr, resugar
1414 ) where
1515
16−import Util.Pretty
17−
1816import Idris.AbsSyntax
19−import Idris.Core.TT
2017import Idris.Core.Evaluate
21−import Idris.Docstrings (overview, renderDocstring, renderDocTerm)
18+import Idris.Core.TT
19+import Idris.Docstrings (overview, renderDocTerm, renderDocstring)
2220import Idris.ErrReverse
2321
22+import Util.Pretty
23+
2424import Prelude hiding ((<$>))
2525
26+import Control.Applicative (Alternative((<|>)))
27+import Control.Monad.State
2628import Data.Generics.Uniplate.Data (transform)
27−import Data.Maybe (mapMaybe)
2829import Data.List (intersperse, nub)
30+import Data.Maybe (mapMaybe)
2931import qualified Data.Text as T
30−import Control.Applicative (Alternative((<|>)))
31−import Control.Monad.State
32−
3332import Debug.Trace
3433
3534bugaddr = "https://github.com/idris-lang/Idris-dev/issues"
@@ -81,10 +80,10 @@ delabSugared ist tm = resugar ist $ delab ist tm
8180
8281-- | Delaborate a term without resugaring
8382delab :: IState -> Term -> PTerm
84−delab i tm = delab' i tm False False
83+delab i tm = delab' i tm False False
8584
8685delabMV :: IState -> Term -> PTerm
87−delabMV i tm = delab' i tm False True
86+delabMV i tm = delab' i tm False True
8887
8988-- | Delaborate a term directly, leaving case applications as they are.
9089-- We need this for interactive case splitting, where we need access to the
@@ -112,7 +111,7 @@ delabTy' :: IState -> [PArg] -- ^ implicit arguments to type, if any
112111delabTy' ist imps tm fullname mvs docases = de [] imps tm
113112 where
114113 un = fileFC "(val)"
115−
114+
116115 -- Special case for spotting applications of case functions
117116 -- (Normally the scrutinee is let-bound, but hole types get normalised,
118117 -- so they could appear in this form. The scrutinee is always added as
@@ -123,7 +122,7 @@ delabTy' ist imps tm fullname mvs docases = de [] imps tm
123122 | docases
124123 , isCaseApp sc
125124 , (P _ cOp _, args@(_:_)) <- unApply sc
126− , Just caseblock <- delabCase env imps (last args) cOp args
125+ , Just caseblock <- delabCase env imps (last args) cOp args
127126 = caseblock
128127
129128 de env _ (App _ f a) = deFn env f [a]
src/Idris/Directives.hs+2−3
@@ -9,11 +9,10 @@ module Idris.Directives(directiveAction) where
99
1010import Idris.AbsSyntax
1111import Idris.ASTUtils
12−import Idris.Imports
13−import Idris.Output (sendHighlighting)
14−
1512import Idris.Core.Evaluate
1613import Idris.Core.TT
14+import Idris.Imports
15+import Idris.Output (sendHighlighting)
1716
1817import Util.DynamicLinker
1918
src/Idris/Docs.hs+7−6
@@ -5,7 +5,7 @@ Copyright :
55License : BSD3
66Maintainer : The Idris Community.
77-}
8−{-# LANGUAGE DeriveFunctor, PatternGuards, MultiWayIf #-}
8+{-# LANGUAGE DeriveFunctor, MultiWayIf, PatternGuards #-}
99{-# OPTIONS_GHC -fwarn-incomplete-patterns #-}
1010module Idris.Docs (
1111 pprintDocs
@@ -15,19 +15,20 @@ module Idris.Docs (
1515
1616import Idris.AbsSyntax
1717import Idris.AbsSyntaxTree
18−import Idris.Delaborate
19−import Idris.Core.TT
2018import Idris.Core.Evaluate
21−import Idris.Docstrings (Docstring, emptyDocstring, noDocs, nullDocstring, renderDocstring, DocTerm, renderDocTerm, overview)
19+import Idris.Core.TT
20+import Idris.Delaborate
21+import Idris.Docstrings (DocTerm, Docstring, emptyDocstring, noDocs,
22+ nullDocstring, overview, renderDocTerm,
23+ renderDocstring)
2224
2325import Util.Pretty
2426
2527import Prelude hiding ((<$>))
2628
2729import Control.Arrow (first)
28−
29−import Data.Maybe
3030import Data.List
31+import Data.Maybe
3132import qualified Data.Text as T
3233
3334-- TODO: Only include names with public/export accessibility
src/Idris/Docstrings.hs+7−10
@@ -14,24 +14,21 @@ module Idris.Docstrings (
1414 , renderHtml, annotCode, DocTerm(..), renderDocTerm, checkDocstring
1515 ) where
1616
17−import qualified Cheapskate as C
18−import qualified Cheapskate.Types as CT
19−import Cheapskate.Html (renderDoc)
17+import Idris.Core.TT (Err, Name, OutputAnnotation(..), Term, TextFormatting(..))
2018
2119import Util.Pretty
2220
23−import Idris.Core.TT (OutputAnnotation(..), TextFormatting(..), Name, Term, Err)
24−
2521import Prelude hiding ((<$>))
2622
27−import qualified Data.Text as T
28−import qualified Data.Foldable as F
23+import qualified Cheapskate as C
24+import Cheapskate.Html (renderDoc)
25+import qualified Cheapskate.Types as CT
2926import Data.Foldable (Foldable)
30−import Data.Traversable (Traversable)
27+import qualified Data.Foldable as F
3128import qualified Data.Sequence as S
32−
29+import qualified Data.Text as T
30+import Data.Traversable (Traversable)
3331import GHC.Generics (Generic)
34−
3532import Text.Blaze.Html (Html)
3633
3734-- | The various kinds of code samples that can be embedded in docs
src/Idris/Elab/AsPat.hs+1−2
@@ -7,12 +7,11 @@ Maintainer : The Idris Community.
77-}
88module Idris.Elab.AsPat(desugarAs) where
99
10−import Idris.Core.TT
1110import Idris.AbsSyntax
11+import Idris.Core.TT
1212
1313import Control.Applicative
1414import Control.Monad.State.Strict
15−
1615import Data.Generics.Uniplate.Data (transformM)
1716
1817-- | Desugar by changing x@y on lhs to let x = y in ... or rhs
src/Idris/Elab/Clause.hs+29−34
@@ -10,58 +10,53 @@ module Idris.Elab.Clause where
1010
1111import Idris.AbsSyntax
1212import Idris.ASTUtils
13+import Idris.Core.CaseTree
14+import Idris.Core.Elaborate hiding (Tactic(..))
15+import Idris.Core.Evaluate
16+import Idris.Core.Execute
17+import Idris.Core.TT
18+import Idris.Core.Typecheck
19+import Idris.Coverage
20+import Idris.DataOpts
21+import Idris.DeepSeq
22+import Idris.Delaborate
23+import Idris.Docstrings hiding (Unchecked)
1324import Idris.DSL
25+import Idris.Elab.AsPat
26+import Idris.Elab.Term
27+import Idris.Elab.Transform
28+import Idris.Elab.Type
29+import Idris.Elab.Utils
1430import Idris.Error
15−import Idris.Delaborate
1631import Idris.Imports
17−import Idris.Elab.Term
18−import Idris.Coverage
19−import Idris.DataOpts
20−import Idris.Providers
21−import Idris.Primitives
2232import Idris.Inliner
33+import Idris.Output (iRenderResult, iWarn, iputStrLn, pshow, sendHighlighting)
2334import Idris.PartialEval
35+import Idris.Primitives
36+import Idris.Providers
2437import Idris.Transforms
25−import Idris.DeepSeq
26−import Idris.Output (iputStrLn, pshow, iWarn, iRenderResult, sendHighlighting)
2738import IRTS.Lang
2839
29−import Idris.Elab.AsPat
30−import Idris.Elab.Type
31−import Idris.Elab.Transform
32−import Idris.Elab.Utils
33−
34−import Idris.Core.TT
35−import Idris.Core.Elaborate hiding (Tactic(..))
36−import Idris.Core.Evaluate
37−import Idris.Core.Execute
38−import Idris.Core.Typecheck
39−import Idris.Core.CaseTree
40−
41−import Idris.Docstrings hiding (Unchecked)
4240import Util.Pretty hiding ((<$>))
41+import Util.Pretty (pretty, text)
4342
4443import Prelude hiding (id, (.))
45−import Control.Category
4644
4745import Control.Applicative hiding (Const)
46+import Control.Category
4847import Control.DeepSeq
4948import Control.Monad
50−import Control.Monad.State.Strict as State
5149import qualified Control.Monad.State.Lazy as LState
50+import Control.Monad.State.Strict as State
51+import Data.Char (isLetter, toLower)
5252import Data.List
53−import Data.Maybe
54−import Data.Word
55−
56−import Debug.Trace
57−
53+import Data.List.Split (splitOn)
5854import qualified Data.Map as Map
55+import Data.Maybe
5956import qualified Data.Set as S
6057import qualified Data.Text as T
61−import Data.Char(isLetter, toLower)
62−import Data.List.Split (splitOn)
63−
64−import Util.Pretty(pretty, text)
58+import Data.Word
59+import Debug.Trace
6560import Numeric
6661
6762-- | Elaborate a collection of left-hand and right-hand pairs - that is, a
@@ -404,7 +399,7 @@ elabPE info fc caller r =
404399 let opts = [Specialise ((if pe_simple specdecl
405400 then map (\x -> (x, Nothing)) cgns'
406401 else []) ++
407− (n, Just maxred) : specnames ++
402+ (n, Just maxred) : specnames ++
408403 concat descs)]
409404 logElab 3 $ "Specialising application: " ++ show specapp
410405 ++ " in " ++ show caller ++
@@ -454,7 +449,7 @@ elabPE info fc caller r =
454449 i <- getIState
455450 let statics = filter (staticFn i) ns
456451 return (map (\n -> (n, Nothing)) statics)
457−
452+
458453 staticFn :: IState -> Name -> Bool
459454 staticFn i n = case lookupCtxt n (idris_flags i) of
460455 [opts] -> elem StaticFn opts
src/Idris/Elab/Data.hs+26−30
@@ -10,53 +10,49 @@ module Idris.Elab.Data(elabData) where
1010
1111import Idris.AbsSyntax
1212import Idris.ASTUtils
13−import Idris.DSL
14−import Idris.Error
15−import Idris.Delaborate
16−import Idris.Imports
17−import Idris.Elab.Term
13+import Idris.Core.CaseTree
14+import Idris.Core.Elaborate hiding (Tactic(..))
15+import Idris.Core.Evaluate
16+import Idris.Core.Execute
17+import Idris.Core.TT
18+import Idris.Core.Typecheck
1819import Idris.Coverage
1920import Idris.DataOpts
20−import Idris.Providers
21−import Idris.Primitives
22−import Idris.Inliner
23−import Idris.PartialEval
2421import Idris.DeepSeq
25−import Idris.Output (iputStrLn, pshow, iWarn, sendHighlighting)
26−import IRTS.Lang
27−
22+import Idris.Delaborate
23+import Idris.Docstrings
24+import Idris.DSL
25+import Idris.Elab.Rewrite
26+import Idris.Elab.Term
2827import Idris.Elab.Type
2928import Idris.Elab.Utils
30−import Idris.Elab.Rewrite
3129import Idris.Elab.Value
30+import Idris.Error
31+import Idris.Imports
32+import Idris.Inliner
33+import Idris.Output (iWarn, iputStrLn, pshow, sendHighlighting)
34+import Idris.PartialEval
35+import Idris.Primitives
36+import Idris.Providers
37+import IRTS.Lang
3238
33−import Idris.Core.TT
34−import Idris.Core.Elaborate hiding (Tactic(..))
35−import Idris.Core.Evaluate
36−import Idris.Core.Execute
37−import Idris.Core.Typecheck
38−import Idris.Core.CaseTree
39−
40−import Idris.Docstrings
39+import Util.Pretty
4140
4241import Prelude hiding (id, (.))
43−import Control.Category
4442
4543import Control.Applicative hiding (Const)
44+import Control.Category
4645import Control.DeepSeq
4746import Control.Monad
4847import Control.Monad.State.Strict as State
48+import Data.Char (isLetter, toLower)
4949import Data.List
50−import Data.Maybe
51−import Debug.Trace
52−
50+import Data.List.Split (splitOn)
5351import qualified Data.Map as Map
52+import Data.Maybe
5453import qualified Data.Set as S
5554import qualified Data.Text as T
56−import Data.Char(isLetter, toLower)
57−import Data.List.Split (splitOn)
58−
59−import Util.Pretty
55+import Debug.Trace
6056
6157warnLC :: FC -> Name -> Idris ()
6258warnLC fc n
@@ -289,7 +285,7 @@ addParamConstraints fc ps cty cons
289285 then ULE avar cvar
290286 else ULT avar cvar
291287 addConstraints fc (tv, [con])
292− addIBC (IBCConstraint fc con)
288+ addIBC (IBCConstraint fc con)
293289 _ -> return ()
294290 constraintTy t = return ()
295291
src/Idris/Elab/Implementation.hs+24−27
@@ -10,52 +10,49 @@ module Idris.Elab.Implementation(elabImplementation) where
1010
1111import Idris.AbsSyntax
1212import Idris.ASTUtils
13+import Idris.Core.CaseTree
14+import Idris.Core.Elaborate hiding (Tactic(..))
15+import Idris.Core.Evaluate
16+import Idris.Core.Execute
17+import Idris.Core.TT
18+import Idris.Core.Typecheck
19+import Idris.Coverage
20+import Idris.DataOpts
21+import Idris.DeepSeq
22+import Idris.Delaborate
23+import Idris.Docstrings
1324import Idris.DSL
25+import Idris.Elab.Data
26+import Idris.Elab.Term
27+import Idris.Elab.Type
28+import Idris.Elab.Utils
1429import Idris.Error
15−import Idris.Delaborate
1630import Idris.Imports
17−import Idris.Coverage
18−import Idris.DataOpts
19−import Idris.Providers
20−import Idris.Primitives
2131import Idris.Inliner
32+import Idris.Output (iWarn, iputStrLn, pshow, sendHighlighting)
2233import Idris.PartialEval
23−import Idris.DeepSeq
24−import Idris.Output (iputStrLn, pshow, iWarn, sendHighlighting)
34+import Idris.Primitives
35+import Idris.Providers
2536import IRTS.Lang
2637
27−import Idris.Elab.Type
28−import Idris.Elab.Data
29−import Idris.Elab.Utils
30−import Idris.Elab.Term
31−
32−import Idris.Core.TT
33−import Idris.Core.Elaborate hiding (Tactic(..))
34−import Idris.Core.Evaluate
35−import Idris.Core.Execute
36−import Idris.Core.Typecheck
37−import Idris.Core.CaseTree
38−
39−import Idris.Docstrings
38+import Util.Pretty (pretty, text)
4039
4140import Prelude hiding (id, (.))
42−import Control.Category
4341
4442import Control.Applicative hiding (Const)
43+import Control.Category
4544import Control.DeepSeq
4645import Control.Monad
4746import Control.Monad.State.Strict as State
47+import Data.Char (isLetter, toLower)
4848import Data.List
49−import Data.Maybe
50−import Debug.Trace
51−
49+import Data.List.Split (splitOn)
5250import qualified Data.Map as Map
51+import Data.Maybe
5352import qualified Data.Set as S
5453import qualified Data.Text as T
55−import Data.Char(isLetter, toLower)
56−import Data.List.Split (splitOn)
54+import Debug.Trace
5755
58−import Util.Pretty(pretty, text)
5956
6057elabImplementation :: ElabInfo
6158 -> SyntaxInfo
src/Idris/Elab/Interface.hs+25−28
@@ -11,53 +11,50 @@ module Idris.Elab.Interface(elabInterface) where
1111
1212import Idris.AbsSyntax
1313import Idris.ASTUtils
14+import Idris.Core.CaseTree
15+import Idris.Core.Elaborate hiding (Tactic(..))
16+import Idris.Core.Evaluate
17+import Idris.Core.Execute
18+import Idris.Core.TT
19+import Idris.Core.Typecheck
20+import Idris.Coverage
21+import Idris.DataOpts
22+import Idris.DeepSeq
23+import Idris.Delaborate
24+import Idris.Docstrings
1425import Idris.DSL
26+import Idris.Elab.Data
27+import Idris.Elab.Term
28+import Idris.Elab.Type
29+import Idris.Elab.Utils
1530import Idris.Error
16−import Idris.Delaborate
1731import Idris.Imports
18−import Idris.Elab.Term
19−import Idris.Coverage
20−import Idris.DataOpts
21−import Idris.Providers
22−import Idris.Primitives
2332import Idris.Inliner
33+import Idris.Output (iWarn, iputStrLn, pshow, sendHighlighting)
2434import Idris.PartialEval
25−import Idris.DeepSeq
26−import Idris.Output (iputStrLn, pshow, iWarn, sendHighlighting)
35+import Idris.Primitives
36+import Idris.Providers
2737import IRTS.Lang
2838
29−import Idris.Elab.Type
30−import Idris.Elab.Data
31−import Idris.Elab.Utils
32−
33−import Idris.Core.TT
34−import Idris.Core.Elaborate hiding (Tactic(..))
35−import Idris.Core.Evaluate
36−import Idris.Core.Execute
37−import Idris.Core.Typecheck
38−import Idris.Core.CaseTree
39−
40−import Idris.Docstrings
39+import Util.Pretty (pretty, text)
4140
4241import Prelude hiding (id, (.))
43−import Control.Category
4442
4543import Control.Applicative hiding (Const)
44+import Control.Category
4645import Control.DeepSeq
4746import Control.Monad
4847import Control.Monad.State.Strict as State
48+import Data.Char (isLetter, toLower)
49+import Data.Generics.Uniplate.Data (transform)
4950import Data.List
50−import Data.Maybe
51−import Debug.Trace
52−
51+import Data.List.Split (splitOn)
5352import qualified Data.Map as Map
53+import Data.Maybe
5454import qualified Data.Set as S
5555import qualified Data.Text as T
56−import Data.Char(isLetter, toLower)
57−import Data.List.Split (splitOn)
58−import Data.Generics.Uniplate.Data (transform)
56+import Debug.Trace
5957
60−import Util.Pretty(pretty, text)
6158
6259data MArgTy = IA Name | EA Name | CA deriving Show
6360
src/Idris/Elab/Provider.hs+25−29
@@ -10,53 +10,49 @@ module Idris.Elab.Provider(elabProvider) where
1010
1111import Idris.AbsSyntax
1212import Idris.ASTUtils
13+import Idris.Core.CaseTree
14+import Idris.Core.Elaborate hiding (Tactic(..))
15+import Idris.Core.Evaluate
16+import Idris.Core.Execute
17+import Idris.Core.TT
18+import Idris.Core.Typecheck
19+import Idris.Coverage
20+import Idris.DataOpts
21+import Idris.DeepSeq
22+import Idris.Delaborate
23+import Idris.Docstrings
1324import Idris.DSL
25+import Idris.Elab.Clause
26+import Idris.Elab.Term
27+import Idris.Elab.Type
28+import Idris.Elab.Utils
29+import Idris.Elab.Value
1430import Idris.Error
15−import Idris.Delaborate
1631import Idris.Imports
17−import Idris.Coverage
18−import Idris.DataOpts
19−import Idris.Providers
20−import Idris.Primitives
2132import Idris.Inliner
33+import Idris.Output (iWarn, iputStrLn, pshow)
2234import Idris.PartialEval
23−import Idris.DeepSeq
24−import Idris.Output (iputStrLn, pshow, iWarn)
35+import Idris.Primitives
36+import Idris.Providers
2537import IRTS.Lang
2638
27−import Idris.Elab.Type
28−import Idris.Elab.Clause
29−import Idris.Elab.Value
30−import Idris.Elab.Utils
31−import Idris.Elab.Term
32−
33−import Idris.Core.TT
34−import Idris.Core.Elaborate hiding (Tactic(..))
35−import Idris.Core.Evaluate
36−import Idris.Core.Execute
37−import Idris.Core.Typecheck
38−import Idris.Core.CaseTree
39−
40−import Idris.Docstrings
39+import Util.Pretty (pretty, text)
4140
4241import Prelude hiding (id, (.))
43−import Control.Category
4442
4543import Control.Applicative hiding (Const)
44+import Control.Category
4645import Control.DeepSeq
4746import Control.Monad
4847import Control.Monad.State.Strict as State
48+import Data.Char (isLetter, toLower)
4949import Data.List
50−import Data.Maybe
51−import Debug.Trace
52−
50+import Data.List.Split (splitOn)
5351import qualified Data.Map as Map
52+import Data.Maybe
5453import qualified Data.Set as S
5554import qualified Data.Text as T
56−import Data.Char(isLetter, toLower)
57−import Data.List.Split (splitOn)
58−
59−import Util.Pretty(pretty, text)
55+import Debug.Trace
6056
6157-- | Elaborate a type provider
6258elabProvider :: Docstring (Either Err PTerm) -> ElabInfo -> SyntaxInfo -> FC -> FC -> ProvideWhat -> Name -> Idris ()
src/Idris/Elab/Quasiquote.hs+1−1
@@ -7,9 +7,9 @@ Maintainer : The Idris Community.
77-}
88module Idris.Elab.Quasiquote (extractUnquotes) where
99
10+import Idris.AbsSyntax
1011import Idris.Core.Elaborate hiding (Tactic(..))
1112import Idris.Core.TT
12−import Idris.AbsSyntax
1313
1414
1515extract1 :: Int -> (PTerm -> a) -> PTerm -> Elab' aux (a, [(Name, PTerm)])
src/Idris/Elab/Record.hs+20−24
@@ -5,39 +5,35 @@ Copyright :
55License : BSD3
66Maintainer : The Idris Community.
77-}
8−{-# LANGUAGE PatternGuards, ViewPatterns #-}
8+{-# LANGUAGE PatternGuards #-}
99module Idris.Elab.Record(elabRecord) where
1010
1111import Idris.AbsSyntax
12+import Idris.Core.Evaluate
13+import Idris.Core.TT
14+import Idris.Coverage
15+import Idris.DataOpts
16+import Idris.DeepSeq
17+import Idris.Delaborate
1218import Idris.Docstrings
19+import Idris.Elab.Data
20+import Idris.Elab.Data
21+import Idris.Elab.Term
22+import Idris.Elab.Type
23+import Idris.Elab.Utils
1324import Idris.Error
14−import Idris.Delaborate
1525import Idris.Imports
16−import Idris.Elab.Term
17−import Idris.Coverage
18−import Idris.DataOpts
19−import Idris.Providers
20−import Idris.Primitives
2126import Idris.Inliner
27+import Idris.Output (iWarn, iputStrLn, pshow, sendHighlighting)
28+import Idris.Parser.Expr (tryFullExpr)
2229import Idris.PartialEval
23−import Idris.DeepSeq
24−import Idris.Output (iputStrLn, pshow, iWarn, sendHighlighting)
30+import Idris.Primitives
31+import Idris.Providers
2532import IRTS.Lang
2633
27−import Idris.Parser.Expr (tryFullExpr)
28−
29−import Idris.Elab.Type
30−import Idris.Elab.Data
31−import Idris.Elab.Utils
32−
33−import Idris.Core.TT
34−import Idris.Core.Evaluate
35−
36−import Idris.Elab.Data
37−
38−import Data.Maybe
39−import Data.List
4034import Control.Monad
35+import Data.List
36+import Data.Maybe
4137
4238-- | Elaborate a record declaration
4339elabRecord :: ElabInfo
@@ -271,7 +267,7 @@ elabRecordFunctions info rsyn fc tyn params fields dconName target
271267
272268 -- | Elaborate the projection functions.
273269 elabProj :: Name -> [Name] -> [(Name, Name, Plicity, PTerm, Docstring (Either Err PTerm), Int)] -> Idris ()
274− elabProj cn paramnames fs
270+ elabProj cn paramnames fs
275271 = let phArgs = map (uncurry placeholderArg) [(p, n) | (n, _, p, _, _, _) <- fs]
276272 elab = \(n, n', p, t, doc, i) ->
277273 -- Use projections in types
@@ -283,7 +279,7 @@ elabRecordFunctions info rsyn fc tyn params fields dconName target
283279
284280 -- | Elaborate the update functions.
285281 elabUp :: Name -> [Name] -> [(Name, Name, Plicity, PTerm, Docstring (Either Err PTerm), Int)] -> Idris ()
286− elabUp cn paramnames fs
282+ elabUp cn paramnames fs
287283 = let args = map (uncurry asPRefArg) [(p, n) | (n, _, p, _, _, _) <- fs]
288284 elab = \(n, n', p, t, doc, i) -> elabUpdate info n paramnames n' p t doc rsyn fc target cn args fieldNames i (optionalSetter n)
289285 in mapM_ elab fs
src/Idris/Elab/Rewrite.hs+4−5
@@ -5,23 +5,22 @@ Copyright :
55License : BSD3
66Maintainer : The Idris Community.
77-}
8−{-# LANGUAGE PatternGuards, ViewPatterns #-}
8+{-# LANGUAGE PatternGuards #-}
99{-# OPTIONS_GHC -fwarn-incomplete-patterns #-}
1010module Idris.Elab.Rewrite(elabRewrite, elabRewriteLemma) where
1111
1212import Idris.AbsSyntax
1313import Idris.AbsSyntaxTree
14−import Idris.Delaborate
15−import Idris.Error
16−import Idris.Core.TT
1714import Idris.Core.Elaborate
1815import Idris.Core.Evaluate
16+import Idris.Core.TT
17+import Idris.Delaborate
1918import Idris.Docstrings
19+import Idris.Error
2020
2121import Control.Monad
2222import Control.Monad.State.Strict
2323import Data.List
24−
2524import Debug.Trace
2625
2726elabRewrite :: (PTerm -> ElabD ()) -> IState ->
src/Idris/Elab/RunElab.hs+5−8
@@ -7,19 +7,16 @@ Maintainer : The Idris Community.
77-}
88module Idris.Elab.RunElab (elabRunElab) where
99
10−import Idris.Elab.Term
11−import Idris.Elab.Value (elabVal)
12−
1310import Idris.AbsSyntax
14−import Idris.Error
15−
16−import Idris.Core.Elaborate hiding (Tactic (..))
11+import Idris.Core.Elaborate hiding (Tactic(..))
1712import Idris.Core.Evaluate
1813import Idris.Core.Execute
1914import Idris.Core.TT
2015import Idris.Core.Typecheck
21−
22−import Idris.Output (iputStrLn, pshow, iWarn, sendHighlighting)
16+import Idris.Elab.Term
17+import Idris.Elab.Value (elabVal)
18+import Idris.Error
19+import Idris.Output (iWarn, iputStrLn, pshow, sendHighlighting)
2320
2421elabScriptTy :: Type
2522elabScriptTy = App Complete (P Ref (sNS (sUN "Elab") ["Elab", "Reflection", "Language"]) Erased)
src/Idris/Elab/Term.hs+18−18
@@ -11,26 +11,27 @@ module Idris.Elab.Term where
1111
1212import Idris.AbsSyntax
1313import Idris.AbsSyntaxTree
14−import Idris.DSL
15−import Idris.Delaborate
16−import Idris.Error
17−import Idris.ProofSearch
18−import Idris.Output (pshow)
19−
2014import Idris.Core.CaseTree (SC, SC'(STerm), findCalls, findUsedArgs)
2115import Idris.Core.Elaborate hiding (Tactic(..))
22−import Idris.Core.TT
2316import Idris.Core.Evaluate
24−import Idris.Core.Unify
2517import Idris.Core.ProofTerm (getProofTerm)
26−import Idris.Core.Typecheck (check, recheck, converts, isType)
18+import Idris.Core.TT
19+import Idris.Core.Typecheck (check, converts, isType, recheck)
20+import Idris.Core.Unify
2721import Idris.Core.WHNF (whnf)
28−import Idris.Coverage (buildSCG, checkDeclTotality, checkPositive, genClauses, recoverableCoverage, validCoverageCase)
29−import Idris.ErrReverse (errReverse)
22+import Idris.Coverage (buildSCG, checkDeclTotality, checkPositive, genClauses,
23+ recoverableCoverage, validCoverageCase)
24+import Idris.Delaborate
25+import Idris.DSL
3026import Idris.Elab.Quasiquote (extractUnquotes)
31−import Idris.Elab.Utils
3227import Idris.Elab.Rewrite
28+import Idris.Elab.Utils
29+import Idris.Error
30+import Idris.ErrReverse (errReverse)
31+import Idris.Output (pshow)
32+import Idris.ProofSearch
3333import Idris.Reflection
34+
3435import qualified Util.Pretty as U
3536
3637import Control.Applicative ((<$>))
@@ -39,10 +40,9 @@ import Control.Monad.State.Strict
3940import Data.Foldable (for_)
4041import Data.List
4142import qualified Data.Map as M
42−import Data.Maybe (mapMaybe, fromMaybe, catMaybes, maybeToList)
43+import Data.Maybe (catMaybes, fromMaybe, mapMaybe, maybeToList)
4344import qualified Data.Set as S
4445import qualified Data.Text as T
45−
4646import Debug.Trace
4747
4848data ElabMode = ETyDecl | ETransLHS | ELHS | ERHS
@@ -878,7 +878,7 @@ elab ist info emode opts fn tm
878878 ns <- apply (Var f) (map isph args)
879879-- trace ("ns is " ++ show ns) $ return ()
880880 -- mark any interface arguments as injective
881−-- when (not pattern) $
881+-- when (not pattern) $
882882 mapM_ checkIfInjective (map snd ns)
883883 unifyProblems -- try again with the new information,
884884 -- to help with disambiguation
@@ -916,7 +916,7 @@ elab ist info emode opts fn tm
916916 ivs' <- get_implementations
917917 -- Attempt to resolve any interfaces which have 'complete' types,
918918 -- i.e. no holes in them
919− when (not pattern || (e_inarg ina && not tcgen)) $
919+ when (not pattern || (e_inarg ina && not tcgen)) $
920920 mapM_ (\n -> do focus n
921921 g <- goal
922922 env <- get_env
@@ -969,7 +969,7 @@ elab ist info emode opts fn tm
969969 ulog <- getUnifyLog
970970 probs <- get_probs
971971 inj <- get_inj
972− traceWhen ulog ("Injective now " ++ show args ++ "\nAll: " ++ show inj
972+ traceWhen ulog ("Injective now " ++ show args ++ "\nAll: " ++ show inj
973973 ++ "\nProblems: " ++ qshow probs) $
974974 unifyProblems
975975 probs <- get_probs
@@ -1421,7 +1421,7 @@ elab ist info emode opts fn tm
14211421 insertLazy ina t@(PApp _ (PRef _ _ (UN l)) _) | l == txt "Delay" = return t
14221422 insertLazy ina t@(PApp _ (PRef _ _ (UN l)) _) | l == txt "Force" = return t
14231423 insertLazy ina (PCoerced t) = return t
1424− -- Don't add a delay to top level pattern variables, since they
1424+ -- Don't add a delay to top level pattern variables, since they
14251425 -- can be forced on the rhs if needed
14261426 insertLazy ina t@(PPatvar _ _) | pattern && not (e_guarded ina) = return t
14271427 insertLazy ina t =
src/Idris/Elab/Transform.hs+22−26
@@ -10,50 +10,46 @@ module Idris.Elab.Transform where
1010
1111import Idris.AbsSyntax
1212import Idris.ASTUtils
13+import Idris.Core.CaseTree
14+import Idris.Core.Elaborate hiding (Tactic(..))
15+import Idris.Core.Evaluate
16+import Idris.Core.Execute
17+import Idris.Core.TT
18+import Idris.Core.Typecheck
19+import Idris.Coverage
20+import Idris.DataOpts
21+import Idris.DeepSeq
22+import Idris.Delaborate
23+import Idris.Docstrings
1324import Idris.DSL
25+import Idris.Elab.Term
26+import Idris.Elab.Utils
1427import Idris.Error
15−import Idris.Delaborate
1628import Idris.Imports
17−import Idris.Coverage
18−import Idris.DataOpts
19−import Idris.Providers
20−import Idris.Primitives
2129import Idris.Inliner
30+import Idris.Output (iWarn, iputStrLn, pshow, sendHighlighting)
2231import Idris.PartialEval
23−import Idris.DeepSeq
24−import Idris.Output (iputStrLn, pshow, iWarn, sendHighlighting)
32+import Idris.Primitives
33+import Idris.Providers
2534import IRTS.Lang
2635
27−import Idris.Elab.Utils
28−import Idris.Elab.Term
29−
30−import Idris.Core.TT
31−import Idris.Core.Elaborate hiding (Tactic(..))
32−import Idris.Core.Evaluate
33−import Idris.Core.Execute
34−import Idris.Core.Typecheck
35−import Idris.Core.CaseTree
36−
37−import Idris.Docstrings
36+import Util.Pretty (pretty, text)
3837
3938import Prelude hiding (id, (.))
40−import Control.Category
4139
4240import Control.Applicative hiding (Const)
41+import Control.Category
4342import Control.DeepSeq
4443import Control.Monad
4544import Control.Monad.State.Strict as State
45+import Data.Char (isLetter, toLower)
4646import Data.List
47−import Data.Maybe
48−import Debug.Trace
49−
47+import Data.List.Split (splitOn)
5048import qualified Data.Map as Map
49+import Data.Maybe
5150import qualified Data.Set as S
5251import qualified Data.Text as T
53−import Data.Char(isLetter, toLower)
54−import Data.List.Split (splitOn)
55−
56−import Util.Pretty(pretty, text)
52+import Debug.Trace
5753
5854elabTransform :: ElabInfo -> FC -> Bool -> PTerm -> PTerm -> Idris (Term, Term)
5955elabTransform info fc safe lhs_in@(PApp _ (PRef _ _ tf) _) rhs_in
src/Idris/Elab/Type.hs+24−29
@@ -13,53 +13,48 @@ module Idris.Elab.Type (
1313
1414import Idris.AbsSyntax
1515import Idris.ASTUtils
16+import Idris.Core.CaseTree
17+import Idris.Core.Elaborate hiding (Tactic(..))
18+import Idris.Core.Evaluate
19+import Idris.Core.Execute
20+import Idris.Core.TT
21+import Idris.Core.Typecheck
22+import Idris.Coverage
23+import Idris.DataOpts
24+import Idris.DeepSeq
25+import Idris.Delaborate
26+import Idris.Docstrings (Docstring)
1627import Idris.DSL
28+import Idris.Elab.Term
29+import Idris.Elab.Utils
30+import Idris.Elab.Value
1731import Idris.Error
18−import Idris.Delaborate
1932import Idris.Imports
20−import Idris.Elab.Term
21−import Idris.Coverage
22−import Idris.DataOpts
23−import Idris.Providers
24−import Idris.Primitives
2533import Idris.Inliner
34+import Idris.Output (iWarn, iputStrLn, pshow, sendHighlighting)
2635import Idris.PartialEval
27−import Idris.DeepSeq
28−import Idris.Output (iputStrLn, pshow, iWarn, sendHighlighting)
36+import Idris.Primitives
37+import Idris.Providers
2938import IRTS.Lang
3039
31−import Idris.Elab.Utils
32−import Idris.Elab.Value
33−
34−import Idris.Core.TT
35−import Idris.Core.Elaborate hiding (Tactic(..))
36−import Idris.Core.Evaluate
37−import Idris.Core.Execute
38−import Idris.Core.Typecheck
39−import Idris.Core.CaseTree
40−
41−import Idris.Docstrings (Docstring)
40+import Util.Pretty (pretty, text)
4241
4342import Prelude hiding (id, (.))
44−import Control.Category
4543
4644import Control.Applicative hiding (Const)
45+import Control.Category
4746import Control.DeepSeq
4847import Control.Monad
4948import Control.Monad.State.Strict as State
49+import Data.Char (isLetter, toLower)
5050import Data.List
51−import Data.Maybe
52−import Debug.Trace
53−
54−import qualified Data.Traversable as Traversable
55−
51+import Data.List.Split (splitOn)
5652import qualified Data.Map as Map
53+import Data.Maybe
5754import qualified Data.Set as S
5855import qualified Data.Text as T
59−import Data.Char(isLetter, toLower)
60−import Data.List.Split (splitOn)
61−
62−import Util.Pretty(pretty, text)
56+import qualified Data.Traversable as Traversable
57+import Debug.Trace
6358
6459buildType :: ElabInfo
6560 -> SyntaxInfo
src/Idris/Elab/Utils.hs+9−12
@@ -9,35 +9,32 @@ Maintainer : The Idris Community.
99module Idris.Elab.Utils where
1010
1111import Idris.AbsSyntax
12−import Idris.Error
12+import Idris.Core.Elaborate hiding (Tactic(..))
13+import Idris.Core.Evaluate
14+import Idris.Core.TT
15+import Idris.Core.Typecheck
1316import Idris.DeepSeq
1417import Idris.Delaborate
1518import Idris.Docstrings
19+import Idris.Error
1620import Idris.Output
1721
18−import Idris.Core.TT
19−import Idris.Core.Elaborate hiding (Tactic(..))
20−import Idris.Core.Evaluate
21−import Idris.Core.Typecheck
22−
2322import Util.Pretty
2423
2524import Control.Applicative hiding (Const)
26−import Control.Monad.State
2725import Control.Monad
26+import Control.Monad.State
2827import Data.List
28+import qualified Data.Map as Map
2929import Data.Maybe
3030import qualified Data.Traversable as Traversable
31−
3231import Debug.Trace
3332
34−import qualified Data.Map as Map
35−
3633recheckC = recheckC_borrowing False True []
3734
3835recheckC_borrowing uniq_check addConstrs bs tcns fc mkerr env t
3936 = do -- t' <- applyOpts (forget t) (doesn't work, or speed things up...)
40−
37+
4138 ctxt <- getContext
4239 t' <- case safeForget t of
4340 Just ft -> return ft
@@ -47,7 +44,7 @@ recheckC_borrowing uniq_check addConstrs bs tcns fc mkerr env t
4744 OK x -> return x
4845 logElab 6 $ "CONSTRAINTS ADDED: " ++ show (tm, ty, cs)
4946 tit <- typeInType
50− when (not tit && addConstrs) $
47+ when (not tit && addConstrs) $
5148 do addConstraints fc cs
5249 mapM_ (\c -> addIBC (IBCConstraint fc c)) (snd cs)
5350 mapM_ (checkDeprecated fc) (allTTNames tm)
src/Idris/Elab/Value.hs+23−27
@@ -14,51 +14,47 @@ module Idris.Elab.Value(
1414
1515import Idris.AbsSyntax
1616import Idris.ASTUtils
17+import Idris.Core.CaseTree
18+import Idris.Core.Elaborate hiding (Tactic(..))
19+import Idris.Core.Evaluate hiding (Unchecked)
20+import Idris.Core.Execute
21+import Idris.Core.TT
22+import Idris.Core.Typecheck
23+import Idris.Coverage
24+import Idris.DataOpts
25+import Idris.DeepSeq
26+import Idris.Delaborate
27+import Idris.Docstrings
1728import Idris.DSL
29+import Idris.Elab.Term
30+import Idris.Elab.Utils
1831import Idris.Error
19−import Idris.Delaborate
2032import Idris.Imports
21−import Idris.Coverage
22−import Idris.DataOpts
23−import Idris.Providers
24−import Idris.Primitives
2533import Idris.Inliner
34+import Idris.Output (iWarn, iputStrLn, pshow, sendHighlighting)
2635import Idris.PartialEval
27−import Idris.DeepSeq
28−import Idris.Output (iputStrLn, pshow, iWarn, sendHighlighting)
36+import Idris.Primitives
37+import Idris.Providers
2938import IRTS.Lang
3039
31−import Idris.Elab.Utils
32−import Idris.Elab.Term
33−
34−import Idris.Core.TT
35−import Idris.Core.Elaborate hiding (Tactic(..))
36−import Idris.Core.Evaluate hiding (Unchecked)
37−import Idris.Core.Execute
38−import Idris.Core.Typecheck
39−import Idris.Core.CaseTree
40−
41−import Idris.Docstrings
40+import Util.Pretty (pretty, text)
4241
4342import Prelude hiding (id, (.))
44−import Control.Category
4543
4644import Control.Applicative hiding (Const)
45+import Control.Category
4746import Control.DeepSeq
4847import Control.Monad
4948import Control.Monad.State.Strict as State
49+import Data.Char (isLetter, toLower)
5050import Data.List
51−import Data.Maybe
52−import qualified Data.Traversable as Traversable
53−import Debug.Trace
54−
51+import Data.List.Split (splitOn)
5552import qualified Data.Map as Map
53+import Data.Maybe
5654import qualified Data.Set as S
5755import qualified Data.Text as T
58−import Data.Char(isLetter, toLower)
59−import Data.List.Split (splitOn)
60−
61−import Util.Pretty(pretty, text)
56+import qualified Data.Traversable as Traversable
57+import Debug.Trace
6258
6359-- | Elaborate a value, returning any new bindings created (this will only
6460-- happen if elaborating as a pattern clause)
src/Idris/ElabDecls.hs+31−36
@@ -6,69 +6,64 @@ License : BSD3
66Maintainer : The Idris Community.
77-}
88
9−{-# LANGUAGE MultiParamTypeClasses, FlexibleInstances, DeriveFunctor,
9+{-# LANGUAGE DeriveFunctor, FlexibleInstances, MultiParamTypeClasses,
1010 PatternGuards #-}
1111
1212module Idris.ElabDecls where
1313
1414import Idris.AbsSyntax
1515import Idris.ASTUtils
16−import Idris.DSL
17−import Idris.Error
18−import Idris.Delaborate
19−import Idris.Directives
20−import Idris.Imports
21−import Idris.Elab.Term
16+import Idris.Core.CaseTree
17+import Idris.Core.Elaborate hiding (Tactic(..))
18+import Idris.Core.Evaluate
19+import Idris.Core.Execute
20+import Idris.Core.TT
21+import Idris.Core.Typecheck
2222import Idris.Coverage
2323import Idris.DataOpts
24−import Idris.Providers
25−import Idris.Primitives
26−import Idris.Inliner
27−import Idris.PartialEval
2824import Idris.DeepSeq
29−import Idris.Output (iputStrLn, pshow, iWarn, sendHighlighting)
30−import IRTS.Lang
31−
32−import Idris.Elab.Utils
33−import Idris.Elab.Type
25+import Idris.Delaborate
26+import Idris.Directives
27+import Idris.Docstrings hiding (Unchecked)
28+import Idris.DSL
3429import Idris.Elab.Clause
3530import Idris.Elab.Data
36−import Idris.Elab.Record
37−import Idris.Elab.Interface
3831import Idris.Elab.Implementation
32+import Idris.Elab.Interface
3933import Idris.Elab.Provider
34+import Idris.Elab.Record
4035import Idris.Elab.RunElab
36+import Idris.Elab.Term
4137import Idris.Elab.Transform
38+import Idris.Elab.Type
39+import Idris.Elab.Utils
4240import Idris.Elab.Value
41+import Idris.Error
42+import Idris.Imports
43+import Idris.Inliner
44+import Idris.Output (iWarn, iputStrLn, pshow, sendHighlighting)
45+import Idris.PartialEval
46+import Idris.Primitives
47+import Idris.Providers
48+import IRTS.Lang
4349
44−import Idris.Core.TT
45−import Idris.Core.Elaborate hiding (Tactic(..))
46−import Idris.Core.Evaluate
47−import Idris.Core.Execute
48−import Idris.Core.Typecheck
49−import Idris.Core.CaseTree
50−
51−import Idris.Docstrings hiding (Unchecked)
50+import Util.Pretty (pretty, text)
5251
5352import Prelude hiding (id, (.))
54−import Control.Category
5553
5654import Control.Applicative hiding (Const)
55+import Control.Category
5756import Control.DeepSeq
5857import Control.Monad
5958import Control.Monad.State.Strict as State
59+import Data.Char (isLetter, toLower)
6060import Data.List
61−import Data.Maybe
62−import Debug.Trace
63−
61+import Data.List.Split (splitOn)
6462import qualified Data.Map as Map
63+import Data.Maybe
6564import qualified Data.Set as S
6665import qualified Data.Text as T
67−import Data.Char(isLetter, toLower)
68−import Data.List.Split (splitOn)
69−
70−import Util.Pretty(pretty, text)
71−
66+import Debug.Trace
7267
7368-- | Top level elaborator info, supporting recursive elaboration
7469recinfo :: FC -> ElabInfo
@@ -87,7 +82,7 @@ elabPrims :: Idris ()
8782elabPrims = do i <- getIState
8883 let cs_in = idris_constraints i
8984 let mkdec opt decl docs argdocs =
90− PData docs argdocs defaultSyntax (fileFC "builtin")
85+ PData docs argdocs defaultSyntax (fileFC "builtin")
9186 opt decl
9287 elabDecl' EAll (recinfo primfc) (mkdec inferOpts inferDecl emptyDocstring [])
9388 -- We don't want the constraints generated by 'Infer' since
src/Idris/Erasure.hs+13−14
@@ -12,32 +12,31 @@ module Idris.Erasure (performUsageAnalysis, mkFieldName) where
1212import Idris.AbsSyntax
1313import Idris.ASTUtils
1414import Idris.Core.CaseTree
15−import Idris.Core.TT
1615import Idris.Core.Evaluate
17−import Idris.Primitives
16+import Idris.Core.TT
1817import Idris.Error
18+import Idris.Primitives
1919
20−import Debug.Trace
21−import System.IO.Unsafe
22−
23−import Control.Category
2420import Prelude hiding (id, (.))
2521
26−import Control.Arrow
2722import Control.Applicative
23+import Control.Arrow
24+import Control.Category
2825import Control.Monad.State
29−import Data.Maybe
30−import Data.List
31−import qualified Data.Set as S
32−import qualified Data.IntSet as IS
33−import qualified Data.Map as M
26+import Data.IntMap (IntMap)
3427import qualified Data.IntMap as IM
35−import Data.Set (Set)
3628import Data.IntSet (IntSet)
29+import qualified Data.IntSet as IS
30+import Data.List
3731import Data.Map (Map)
38−import Data.IntMap (IntMap)
32+import qualified Data.Map as M
33+import Data.Maybe
34+import Data.Set (Set)
35+import qualified Data.Set as S
3936import Data.Text (pack)
4037import qualified Data.Text as T
38+import Debug.Trace
39+import System.IO.Unsafe
4140
4241-- | UseMap maps names to the set of used (reachable) argument
4342-- positions.
src/Idris/Error.hs+10−10
@@ -10,28 +10,28 @@ Maintainer : The Idris Community.
1010
1111module Idris.Error where
1212
13−import Prelude hiding (catch)
1413import Idris.AbsSyntax
15−import Idris.Delaborate
16−
14+import Idris.Core.Constraints
1715import Idris.Core.Evaluate (ctxtAlist)
1816import Idris.Core.TT
1917import Idris.Core.Typecheck
20−import Idris.Core.Constraints
18+import Idris.Delaborate
2119import Idris.Output
2220
23−import System.Console.Haskeline
24−import System.Console.Haskeline.MonadException
21+import Prelude hiding (catch)
22+
2523import Control.Monad (when)
2624import Control.Monad.State.Strict
27−import System.IO.Error(isUserError, ioeGetErrorString)
2825import Data.Char
26+import qualified Data.Foldable as Foldable
2927import Data.List (intercalate, isPrefixOf)
30−import qualified Data.Text as T
3128import qualified Data.Set as S
32−import Data.Typeable
29+import qualified Data.Text as T
3330import qualified Data.Traversable as Traversable
34−import qualified Data.Foldable as Foldable
31+import Data.Typeable
32+import System.Console.Haskeline
33+import System.Console.Haskeline.MonadException
34+import System.IO.Error (ioeGetErrorString, isUserError)
3535
3636iucheck :: Idris ()
3737iucheck = do tit <- typeInType
src/Idris/IBC.hs+17−19
@@ -12,41 +12,39 @@ module Idris.IBC (loadIBC, loadPkgIndex,
1212 writeIBC, writePkgIndex,
1313 hasValidIBCVersion, IBCPhase(..)) where
1414
15−import Idris.Core.Evaluate
16−import Idris.Core.TT
15+import Idris.AbsSyntax
1716import Idris.Core.Binary
1817import Idris.Core.CaseTree
19−import Idris.AbsSyntax
20−import Idris.Imports
21−import Idris.Error
18+import Idris.Core.Evaluate
19+import Idris.Core.TT
2220import Idris.DeepSeq
2321import Idris.Delaborate
24−import qualified Idris.Docstrings as D
2522import Idris.Docstrings (Docstring)
23+import qualified Idris.Docstrings as D
24+import Idris.Error
25+import Idris.Imports
2626import Idris.Output
2727import IRTS.System (getIdrisLibDir)
28+
2829import Paths_idris
2930
3031import qualified Cheapskate.Types as CT
31−
32+import Codec.Archive.Zip
33+import Control.DeepSeq
34+import Control.Monad
35+import Control.Monad.State.Strict hiding (get, put)
36+import qualified Control.Monad.State.Strict as ST
3237import Data.Binary
38+import Data.ByteString.Lazy as B hiding (elem, length, map)
3339import Data.Functor
34−import Data.Vector.Binary
3540import Data.List as L
3641import Data.Maybe (catMaybes)
37−import Data.ByteString.Lazy as B hiding (length, elem, map)
38−import qualified Data.Text as T
3942import qualified Data.Set as S
40−
41−import Control.Monad
42−import Control.DeepSeq
43−import Control.Monad.State.Strict hiding (get, put)
44−import qualified Control.Monad.State.Strict as ST
45−import System.FilePath
46−import System.Directory
47−import Codec.Archive.Zip
48−
43+import qualified Data.Text as T
44+import Data.Vector.Binary
4945import Debug.Trace
46+import System.Directory
47+import System.FilePath
5048
5149ibcVersion :: Word16
5250ibcVersion = 149
src/Idris/IdeMode.hs+9−10
@@ -11,23 +11,22 @@ Maintainer : The Idris Community.
1111
1212module Idris.IdeMode(parseMessage, convSExp, WhatDocs(..), IdeModeCommand(..), sexpToCommand, toSExp, SExp(..), SExpable, Opt(..), ideModeEpoch, getLen, getNChar, sExpToString) where
1313
14−import Text.Printf
15−import Numeric
16−import Data.List
17−import Data.Maybe (isJust)
14+import Idris.Core.Binary
15+import Idris.Core.TT
16+
17+import Control.Applicative hiding (Const)
1818import qualified Data.Binary as Binary
1919import qualified Data.ByteString.Base64 as Base64
2020import qualified Data.ByteString.Lazy as Lazy
2121import qualified Data.ByteString.UTF8 as UTF8
22+import Data.List
23+import Data.Maybe (isJust)
2224import qualified Data.Text as T
25+import Numeric
26+import System.IO
27+import Text.Printf
2328import Text.Trifecta hiding (Err)
2429import Text.Trifecta.Delta
25−import System.IO
26−
27−import Idris.Core.TT
28−import Idris.Core.Binary
29−
30−import Control.Applicative hiding (Const)
3130
3231getNChar :: Handle -> Int -> String -> IO (String)
3332getNChar _ 0 s = return (reverse s)
src/Idris/IdrisDoc.hs+17−24
@@ -5,57 +5,50 @@ Copyright :
55License : BSD3
66Maintainer : The Idris Community.
77-}
8−{-# LANGUAGE PatternGuards #-}
9−{-# LANGUAGE OverloadedStrings #-}
8+{-# LANGUAGE OverloadedStrings, PatternGuards #-}
109{-# OPTIONS_GHC -fwarn-incomplete-patterns #-}
1110module Idris.IdrisDoc (generateDocs) where
1211
13−import Idris.Core.TT (Name (..), sUN, SpecialName (..), OutputAnnotation (..),
14− TextFormatting (..), txt, str, nsroot, constIsType, toAlist)
15−import Idris.Core.Evaluate (ctxtAlist, Def (..), lookupDefAcc,
16− Accessibility (..), isDConName, isFnName,
17− isTConName)
18−import Idris.Parser.Helpers (opChars)
1912import Idris.AbsSyntax
13+import Idris.Core.Evaluate (Accessibility(..), Def(..), ctxtAlist, isDConName,
14+ isFnName, isTConName, lookupDefAcc)
15+import Idris.Core.TT (Name(..), OutputAnnotation(..), SpecialName(..),
16+ TextFormatting(..), constIsType, nsroot, sUN, str,
17+ toAlist, txt)
2018import Idris.Docs
2119import Idris.Docstrings (nullDocstring)
2220import qualified Idris.Docstrings as Docstrings
23−
21+import Idris.Parser.Helpers (opChars)
2422import IRTS.System (getDataFileName)
2523
2624import Control.Applicative ((<|>))
2725import Control.Monad (forM_)
2826import Control.Monad.Trans.Except
2927import Control.Monad.Trans.State.Strict
30−
31−import Data.Maybe
32−
3328import qualified Data.ByteString as BS
3429import qualified Data.ByteString.Lazy as BS2
35−import qualified Data.Text.Encoding as E
3630import qualified Data.List as L
3731import qualified Data.List.Split as LS
3832import qualified Data.Map as M hiding ((!))
33+import Data.Maybe
3934import Data.Monoid (mempty)
4035import qualified Data.Ord (compare)
4136import qualified Data.Set as S
4237import qualified Data.Text as T
43−
38+import qualified Data.Text.Encoding as E
39+import System.Directory
40+import System.FilePath
4441import System.IO
4542import System.IO.Error
46−import System.FilePath
47−import System.Directory
48−
49−import Text.PrettyPrint.Annotated.Leijen (displayDecorated, renderCompact)
50−
51−import Text.Blaze (toValue, contents)
52−import Text.Blaze.Internal (MarkupM (Empty))
53−import Text.Blaze.Html5 ((!), toHtml, preEscapedToHtml)
43+import Text.Blaze (contents, toValue)
44+import qualified Text.Blaze.Html.Renderer.String as R
45+import Text.Blaze.Html.Renderer.Utf8 (renderHtml)
46+import Text.Blaze.Html5 (preEscapedToHtml, toHtml, (!))
5447import qualified Text.Blaze.Html5 as H
5548import Text.Blaze.Html5.Attributes as A
56−import Text.Blaze.Html.Renderer.Utf8 (renderHtml)
57−import qualified Text.Blaze.Html.Renderer.String as R
49+import Text.Blaze.Internal (MarkupM(Empty))
5850import Text.Blaze.Renderer.String (renderMarkup)
51+import Text.PrettyPrint.Annotated.Leijen (displayDecorated, renderCompact)
5952
6053-- ---------------------------------------------------------------- [ Public ]
6154
src/Idris/Imports.hs+5−8
@@ -10,19 +10,16 @@ module Idris.Imports(
1010 , ibcPathNoFallback, installedPackages, pkgIndex
1111 ) where
1212
13−import Control.Applicative ((<$>))
14−import Data.List (isSuffixOf)
15−
1613import Idris.AbsSyntax
17−import Idris.Error
18−
1914import Idris.Core.TT
20−
15+import Idris.Error
2116import IRTS.System (getIdrisLibDir)
2217
23−import System.FilePath
24−import System.Directory
18+import Control.Applicative ((<$>))
2519import Control.Monad.State.Strict
20+import Data.List (isSuffixOf)
21+import System.Directory
22+import System.FilePath
2623
2724data IFileType = IDR FilePath | LIDR FilePath | IBC FilePath IFileType
2825 deriving (Show, Eq)
src/Idris/Info.hs+5−8
@@ -24,19 +24,16 @@ module Idris.Info
2424 , getIdrisLoggingCategories
2525 ) where
2626
27−import System.FilePath
28−import System.Directory
29−import Data.Version
30−
31−import Idris.Imports (installedPackages)
3227import Idris.AbsSyntax (loggingCatsStr)
33−
28+import Idris.Imports (installedPackages)
3429import qualified IRTS.System as S
3530
36−import Version_idris (gitHash)
37−
3831import Paths_idris
32+import Version_idris (gitHash)
3933
34+import Data.Version
35+import System.Directory
36+import System.FilePath
4037getIdrisDataDir :: IO String
4138getIdrisDataDir = S.getIdrisDataDir
4239
src/Idris/Info/Show.hs+2−2
@@ -1,9 +1,9 @@
11module Idris.Info.Show where
22
3−import System.Exit
4−
53import Idris.Info
64
5+import System.Exit
6+
77showIdrisCRTSDir :: IO ()
88showIdrisCRTSDir = do
99 ldir <- getIdrisCRTSDir
src/Idris/Inliner.hs+1−1
@@ -9,8 +9,8 @@ Maintainer : The Idris Community.
99
1010module Idris.Inliner(inlineDef, inlineTerm) where
1111
12−import Idris.Core.TT
1312import Idris.AbsSyntax
13+import Idris.Core.TT
1414
1515inlineDef :: IState -> [([Name], Term, Term)] -> [([Name], Term, Term)]
1616inlineDef ist ds = map (\ (ns, lhs, rhs) -> (ns, lhs, inlineTerm ist rhs)) ds
src/Idris/Interactive.hs+11−12
@@ -14,30 +14,29 @@ module Idris.Interactive(
1414 , makeLemma
1515 ) where
1616
17−import Idris.Core.TT
18−import Idris.Core.Evaluate
19−import Idris.CaseSplit
2017import Idris.AbsSyntax
18+import Idris.CaseSplit
19+import Idris.Core.Evaluate
20+import Idris.Core.TT
21+import Idris.Delaborate
22+import Idris.Elab.Term
23+import Idris.Elab.Value
2124import Idris.ElabDecls
2225import Idris.Error
2326import Idris.ErrReverse
24−import Idris.Delaborate
25−import Idris.Output
2627import Idris.IdeMode hiding (IdeModeCommand(..))
27−import Idris.Elab.Value
28−import Idris.Elab.Term
28+import Idris.Output
2929
3030import Util.Pretty
3131import Util.System
3232
33−import System.FilePath
34−import System.Directory
35−import System.IO
3633import Data.Char
37−import Data.Maybe (fromMaybe)
3834import Data.List (isSuffixOf)
39−
35+import Data.Maybe (fromMaybe)
4036import Debug.Trace
37+import System.Directory
38+import System.FilePath
39+import System.IO
4140
4241caseSplitAt :: FilePath -> Bool -> Int -> Name -> Idris ()
4342caseSplitAt fn updatefile l n
src/Idris/Main.hs+20−27
@@ -13,46 +13,39 @@ module Idris.Main
1313 ) where
1414
1515import Idris.AbsSyntax
16−import Idris.ModeCommon
17−import Idris.REPL.Parser
16+import Idris.Core.Execute (execute)
17+import Idris.Core.TT
18+import Idris.Elab.Term
19+import Idris.Elab.Value
20+import Idris.ElabDecls
1821import Idris.Error
1922import Idris.IBC
20−import Idris.Parser hiding (indent)
23+import Idris.Info
24+import Idris.ModeCommon
2125import Idris.Output
22−
23−import Idris.REPL.Commands
26+import Idris.Parser hiding (indent)
2427import Idris.REPL
25−
26−import Idris.ElabDecls
27−import Idris.Elab.Value
28−import Idris.Elab.Term
29−import Idris.Info
28+import Idris.REPL.Commands
29+import Idris.REPL.Parser
30+import IRTS.CodegenCommon
3031
3132import Util.System
3233
33−import Idris.Core.Execute (execute)
34−import Idris.Core.TT
35−
36−import IRTS.CodegenCommon
34+import Prelude hiding (id, (.), (<$>))
3735
3836import Control.Category
39−import Prelude hiding ((<$>), (.), id)
40−
41−import Text.Trifecta.Result(Result(..), ErrInfo(..))
42−
43−import System.Console.Haskeline as H
44−import System.FilePath
45−import System.Exit
46−import System.Directory
47−import System.IO
37+import Control.DeepSeq
4838import Control.Monad
39+import Control.Monad.Trans (lift)
4940import Control.Monad.Trans.Except (runExceptT)
5041import Control.Monad.Trans.State.Strict (execStateT)
51−import Control.Monad.Trans ( lift )
5242import Data.Maybe
53−import Control.DeepSeq
54−
55−
43+import System.Console.Haskeline as H
44+import System.Directory
45+import System.Exit
46+import System.FilePath
47+import System.IO
48+import Text.Trifecta.Result (ErrInfo(..), Result(..))
5649
5750-- | How to run Idris programs.
5851runMain :: Idris () -> IO ()
src/Idris/ModeCommon.hs+11−14
@@ -6,32 +6,29 @@ Maintainer : The Idris Community.
66-}
77module Idris.ModeCommon where
88
9−
109import Idris.AbsSyntax
10+import Idris.Chaser
11+import Idris.Core.TT
12+import Idris.Delaborate
1113import Idris.Erasure
1214import Idris.Error
1315import Idris.IBC
14−import Idris.Delaborate
15−import Idris.Parser hiding (indent)
16−import Idris.Chaser
1716import Idris.Imports
18−import Idris.Output
1917import Idris.Info
20−import Idris.Core.TT
21−
18+import Idris.Output
19+import Idris.Parser hiding (indent)
2220import IRTS.Exports
2321
24−import Control.Category
25−import Prelude hiding ((<$>), (.), id)
22+import Prelude hiding (id, (.), (<$>))
2623
27−import System.Directory
24+import Control.Category
25+import Control.DeepSeq
2826import Control.Monad
2927import Control.Monad.Trans.State.Strict (get)
30−import Network.Socket (PortNumber)
31−import Data.Maybe
3228import Data.List hiding (group)
33−import Control.DeepSeq
34−
29+import Data.Maybe
30+import Network.Socket (PortNumber)
31+import System.Directory
3532
3633defaultPort :: PortNumber
3734defaultPort = fromIntegral 4294
src/Idris/Output.hs+9−12
@@ -10,11 +10,10 @@ Maintainer : The Idris Community.
1010
1111module Idris.Output where
1212
13−import Idris.Core.TT
14−import Idris.Core.Evaluate (isDConName, isTConName, isFnName, normaliseAll)
15−
1613import Idris.AbsSyntax
17−import Idris.Colours (hStartColourise, hEndColourise)
14+import Idris.Colours (hEndColourise, hStartColourise)
15+import Idris.Core.Evaluate (isDConName, isFnName, isTConName, normaliseAll)
16+import Idris.Core.TT
1817import Idris.Delaborate
1918import Idris.Docstrings
2019import Idris.IdeMode
@@ -23,18 +22,16 @@ import Util.Pretty
2322import Util.ScreenSize (getScreenWidth)
2423import Util.System (isATTY)
2524
26−import Control.Monad.Trans.Except (ExceptT (ExceptT), runExceptT)
27−
28−import System.Console.Haskeline.MonadException
29− (MonadException (controlIO), RunIO (RunIO))
30−import System.IO (stdout, Handle, hPutStrLn, hPutStr)
31−import System.FilePath (replaceExtension)
32−
3325import Prelude hiding ((<$>))
3426
27+import Control.Monad.Trans.Except (ExceptT(ExceptT), runExceptT)
3528import Data.Char (isAlpha)
36−import Data.List (nub, intersperse)
29+import Data.List (intersperse, nub)
3730import Data.Maybe (fromMaybe)
31+import System.Console.Haskeline.MonadException (MonadException(controlIO),
32+ RunIO(RunIO))
33+import System.FilePath (replaceExtension)
34+import System.IO (Handle, hPutStr, hPutStrLn, stdout)
3835
3936instance MonadException m => MonadException (ExceptT Err m) where
4037 controlIO f = ExceptT $ controlIO $ \(RunIO run) -> let
src/Idris/Package.hs+25−29
@@ -8,42 +8,38 @@ Maintainer : The Idris Community.
88{-# LANGUAGE CPP #-}
99module Idris.Package where
1010
11−import System.Process
12−import System.Directory
13−import System.Exit
14−import System.IO
15−import System.FilePath ((</>), addTrailingPathSeparator, takeFileName,
16− takeDirectory, normalise, addExtension, hasExtension)
17−import System.Directory (createDirectoryIfMissing, copyFile)
18−
19−import Util.System
20−
21−import Control.Monad
22−import Control.Monad.Trans.State.Strict (execStateT)
23−import Control.Monad.Trans.Except (runExceptT)
24−
25−import Data.List
26−import Data.List.Split(splitOn)
27−import Data.Maybe(fromMaybe)
28−import Data.Either(partitionEithers)
29−
30−import Idris.Core.TT
31−import Idris.REPL
32−import Idris.Parser (loadModule)
33−import Idris.Output (pshow)
3411import Idris.AbsSyntax
35−import Idris.IdrisDoc
12+import Idris.Core.TT
13+import Idris.Error (ifail)
3614import Idris.IBC
37−import Idris.Output
15+import Idris.IdrisDoc
3816import Idris.Imports
39−import Idris.Error (ifail)
40−import Idris.Main (idrisMain, idris)
41−
17+import Idris.Main (idris, idrisMain)
18+import Idris.Output (pshow)
19+import Idris.Output
4220import Idris.Package.Common
4321import Idris.Package.Parser
44−
22+import Idris.Parser (loadModule)
23+import Idris.REPL
4524import IRTS.System
4625
26+import Util.System
27+
28+import Control.Monad
29+import Control.Monad.Trans.Except (runExceptT)
30+import Control.Monad.Trans.State.Strict (execStateT)
31+import Data.Either (partitionEithers)
32+import Data.List
33+import Data.List.Split (splitOn)
34+import Data.Maybe (fromMaybe)
35+import System.Directory
36+import System.Directory (copyFile, createDirectoryIfMissing)
37+import System.Exit
38+import System.FilePath (addExtension, addTrailingPathSeparator, hasExtension,
39+ normalise, takeDirectory, takeFileName, (</>))
40+import System.IO
41+import System.Process
42+
4743-- To build a package:
4844-- * read the package description
4945-- * check all the library dependencies exist
src/Idris/Package/Common.hs+1−2
@@ -6,9 +6,8 @@ Maintainer : The Idris Community.
66-}
77module Idris.Package.Common where
88
9−import Idris.Core.TT (Name)
10−
119import Idris.AbsSyntaxTree (Opt(..))
10+import Idris.Core.TT (Name)
1211
1312-- | Description of an Idris package.
1413data PkgDesc = PkgDesc {
src/Idris/Package/Parser.hs+11−11
@@ -11,23 +11,23 @@ Maintainer : The Idris Community.
1111#endif
1212module Idris.Package.Parser where
1313
14−import Text.Trifecta hiding (span, charLiteral, natural, symbol, char, string, whiteSpace)
15−import qualified Text.PrettyPrint.ANSI.Leijen as PP
16−import Idris.Core.TT
17−import Idris.REPL
1814import Idris.AbsSyntaxTree
19−import Idris.Parser.Helpers hiding (stringLiteral)
2015import Idris.CmdOptions
21−
16+import Idris.Core.TT
2217import Idris.Package.Common
18+import Idris.Parser.Helpers hiding (stringLiteral)
19+import Idris.REPL
20+
21+import Util.System
2322
24−import Control.Monad.State.Strict
2523import Control.Applicative
26−import System.FilePath (takeFileName, isValid)
27−import Data.Maybe (isNothing, fromJust)
24+import Control.Monad.State.Strict
2825import Data.List (union)
29−
30−import Util.System
26+import Data.Maybe (fromJust, isNothing)
27+import System.FilePath (isValid, takeFileName)
28+import qualified Text.PrettyPrint.ANSI.Leijen as PP
29+import Text.Trifecta hiding (char, charLiteral, natural, span, string, symbol,
30+ whiteSpace)
3131
3232type PParser = StateT PkgDesc IdrisInnerParser
3333
src/Idris/Parser.hs+37−45
@@ -5,7 +5,7 @@ Copyright :
55License : BSD3
66Maintainer : The Idris Community.
77-}
8−{-# LANGUAGE GeneralizedNewtypeDeriving, ConstraintKinds, PatternGuards #-}
8+{-# LANGUAGE ConstraintKinds, GeneralizedNewtypeDeriving, PatternGuards #-}
99{-# OPTIONS_GHC -O0 #-}
1010module Idris.Parser(module Idris.Parser,
1111 module Idris.Parser.Expr,
@@ -13,74 +13,66 @@ module Idris.Parser(module Idris.Parser,
1313 module Idris.Parser.Helpers,
1414 module Idris.Parser.Ops) where
1515
16−import Prelude hiding (pi)
17−
18−import qualified System.Directory as Dir (makeAbsolute)
19−
20−import Text.Trifecta.Delta
21−import Text.Trifecta hiding (span, stringLiteral, charLiteral, natural, symbol, char, string, whiteSpace, Err)
22−import Text.Parser.LookAhead
23−import Text.Parser.Expression
24−import qualified Text.Parser.Token as Tok
25−import qualified Text.Parser.Char as Chr
26−import qualified Text.Parser.Token.Highlight as Hi
27−
28−import Text.PrettyPrint.ANSI.Leijen (Doc, plain)
29−import qualified Text.PrettyPrint.ANSI.Leijen as ANSI
30−
3116import Idris.AbsSyntax hiding (namespace, params)
32−import Idris.DSL
33−import Idris.Imports
17+import Idris.Core.Evaluate
18+import Idris.Core.TT
19+import Idris.Coverage
3420import Idris.Delaborate
35−import Idris.Error
36−import Idris.Elab.Value
21+import Idris.Docstrings hiding (Unchecked)
22+import Idris.DSL
3723import Idris.Elab.Term
24+import Idris.Elab.Value
3825import Idris.ElabDecls
39−import Idris.Coverage
26+import Idris.Error
4027import Idris.IBC
41−import Idris.Unlit
42−import Idris.Providers
28+import Idris.Imports
4329import Idris.Output
44−
30+import Idris.Parser.Data
31+import Idris.Parser.Expr
4532import Idris.Parser.Helpers
4633import Idris.Parser.Ops
47−import Idris.Parser.Expr
48−import Idris.Parser.Data
49−
50−import Idris.Docstrings hiding (Unchecked)
51−
52−import Paths_idris
34+import Idris.Providers
35+import Idris.Unlit
5336
5437import Util.DynamicLinker
55−import Util.System (readSource, writeSource)
5638import qualified Util.Pretty as P
39+import Util.System (readSource, writeSource)
5740
58−import Idris.Core.TT
59−import Idris.Core.Evaluate
41+import Paths_idris
42+
43+import Prelude hiding (pi)
6044
6145import Control.Applicative hiding (Const)
6246import Control.Monad
6347import Control.Monad.State.Strict
64−
65−import Data.Function
66−import Data.Maybe
67−import qualified Data.List.Split as Spl
68−import Data.List
69−import Data.Monoid
48+import qualified Data.ByteString.UTF8 as UTF8
7049import Data.Char
71−import Data.Ord
7250import Data.Foldable (asum)
51+import Data.Function
7352import Data.Generics.Uniplate.Data (descendM)
74−import qualified Data.Map as M
7553import qualified Data.HashSet as HS
76−import qualified Data.Text as T
77−import qualified Data.ByteString.UTF8 as UTF8
54+import Data.List
55+import qualified Data.List.Split as Spl
56+import qualified Data.Map as M
57+import Data.Maybe
58+import Data.Monoid
59+import Data.Ord
7860import qualified Data.Set as S
79−
61+import qualified Data.Text as T
8062import Debug.Trace
81−
63+import qualified System.Directory as Dir (makeAbsolute)
8264import System.FilePath
8365import System.IO
66+import qualified Text.Parser.Char as Chr
67+import Text.Parser.Expression
68+import Text.Parser.LookAhead
69+import qualified Text.Parser.Token as Tok
70+import qualified Text.Parser.Token.Highlight as Hi
71+import Text.PrettyPrint.ANSI.Leijen (Doc, plain)
72+import qualified Text.PrettyPrint.ANSI.Leijen as ANSI
73+import Text.Trifecta hiding (Err, char, charLiteral, natural, span, string,
74+ stringLiteral, symbol, whiteSpace)
75+import Text.Trifecta.Delta
8476
8577{-
8678@
src/Idris/Parser/Data.hs+21−27
@@ -5,46 +5,40 @@ Copyright :
55License : BSD3
66Maintainer : The Idris Community.
77-}
8−{-# LANGUAGE GeneralizedNewtypeDeriving, ConstraintKinds, PatternGuards #-}
8+{-# LANGUAGE ConstraintKinds, GeneralizedNewtypeDeriving, PatternGuards #-}
99module Idris.Parser.Data where
1010
11−import Prelude hiding (pi)
12−
13−import Text.Trifecta.Delta
14−import Text.Trifecta hiding ( span, stringLiteral, charLiteral, natural
15− , symbol, char, string, whiteSpace, Err)
16−
17−import Text.Parser.LookAhead
18−import Text.Parser.Expression
19−import qualified Text.Parser.Token as Tok
20−import qualified Text.Parser.Char as Chr
21−import qualified Text.Parser.Token.Highlight as Hi
22−
2311import Idris.AbsSyntax
12+import Idris.Core.Evaluate
13+import Idris.Core.TT
14+import Idris.Docstrings
15+import Idris.DSL
16+import Idris.Parser.Expr
2417import Idris.Parser.Helpers
2518import Idris.Parser.Ops
26−import Idris.Parser.Expr
27−import Idris.DSL
2819
29−import Idris.Core.TT
30−import Idris.Core.Evaluate
31−
32−import Idris.Docstrings
20+import Prelude hiding (pi)
3321
3422import Control.Applicative
3523import Control.Monad
3624import Control.Monad.State.Strict
37−
38−import Data.Maybe
39−import qualified Data.List.Split as Spl
40−import Data.List
41−import Data.Monoid
42−import Data.Char
25+import qualified Data.ByteString.UTF8 as UTF8
26+import Data.Char
4327import qualified Data.HashSet as HS
28+import Data.List
29+import qualified Data.List.Split as Spl
30+import Data.Maybe
31+import Data.Monoid
4432import qualified Data.Text as T
45−import qualified Data.ByteString.UTF8 as UTF8
46−
4733import Debug.Trace
34+import qualified Text.Parser.Char as Chr
35+import Text.Parser.Expression
36+import Text.Parser.LookAhead
37+import qualified Text.Parser.Token as Tok
38+import qualified Text.Parser.Token.Highlight as Hi
39+import Text.Trifecta hiding (Err, char, charLiteral, natural, span, string,
40+ stringLiteral, symbol, whiteSpace)
41+import Text.Trifecta.Delta
4842
4943{- | Parses a record type declaration
5044Record ::=
src/Idris/Parser/Expr.hs+6−10
@@ -9,6 +9,12 @@ Maintainer : The Idris Community.
99{-# LANGUAGE PatternGuards, TupleSections #-}
1010module Idris.Parser.Expr where
1111
12+import Idris.AbsSyntax
13+import Idris.Parser.Helpers
14+import Idris.Parser.Ops
15+import Idris.DSL
16+import Idris.Core.TT
17+
1218import Prelude hiding (pi)
1319
1420import Text.Trifecta.Delta
@@ -18,18 +24,9 @@ import Text.Parser.Expression
1824import qualified Text.Parser.Token as Tok
1925import qualified Text.Parser.Char as Chr
2026import qualified Text.Parser.Token.Highlight as Hi
21−
22−import Idris.AbsSyntax
23−import Idris.Parser.Helpers
24−import Idris.Parser.Ops
25−import Idris.DSL
26−
27−import Idris.Core.TT
28−
2927import Control.Applicative
3028import Control.Monad
3129import Control.Monad.State.Strict
32−
3330import Data.Function (on)
3431import Data.Maybe
3532import qualified Data.List.Split as Spl
@@ -39,7 +36,6 @@ import Data.Char
3936import qualified Data.HashSet as HS
4037import qualified Data.Text as T
4138import qualified Data.ByteString.UTF8 as UTF8
42−
4339import Debug.Trace
4440
4541-- | Allow implicit type declarations
src/Idris/Parser/Helpers.hs+20−24
@@ -5,50 +5,46 @@ Copyright :
55License : BSD3
66Maintainer : The Idris Community.
77-}
8−{-# LANGUAGE CPP, GeneralizedNewtypeDeriving, ConstraintKinds #-}
9−{-# LANGUAGE PatternGuards, StandaloneDeriving #-}
8+{-# LANGUAGE CPP, ConstraintKinds, GeneralizedNewtypeDeriving, PatternGuards,
9+ StandaloneDeriving #-}
1010#if !(MIN_VERSION_base(4,8,0))
1111{-# LANGUAGE OverlappingInstances #-}
1212#endif
1313module Idris.Parser.Helpers where
1414
15−import Prelude hiding (pi)
16−
17−import Text.Trifecta.Delta
18−import Text.Trifecta hiding (span, stringLiteral, charLiteral, natural, symbol, char, string, whiteSpace, Err)
19−import Text.Parser.LookAhead
20−import Text.Parser.Expression
21−import qualified Text.Parser.Token as Tok
22−import qualified Text.Parser.Char as Chr
23−import qualified Text.Parser.Token.Highlight as Hi
24−
2515import Idris.AbsSyntax
26−
27−import Idris.Core.TT
2816import Idris.Core.Evaluate
17+import Idris.Core.TT
2918import Idris.Delaborate (pprintErr)
3019import Idris.Docstrings
3120import Idris.Output (iWarn)
3221
3322import qualified Util.Pretty as Pretty (text)
3423
24+import Prelude hiding (pi)
25+
3526import Control.Applicative
3627import Control.Monad
3728import Control.Monad.State.Strict
38−
39−import Data.Maybe
40−import qualified Data.List.Split as Spl
41−import Data.List
42−import Data.Monoid
29+import qualified Data.ByteString.UTF8 as UTF8
4330import Data.Char
44−import qualified Data.Map as M
4531import qualified Data.HashSet as HS
32+import Data.List
33+import qualified Data.List.Split as Spl
34+import qualified Data.Map as M
35+import Data.Maybe
36+import Data.Monoid
4637import qualified Data.Text as T
47−import qualified Data.ByteString.UTF8 as UTF8
48−
49−import System.FilePath
50−
5138import Debug.Trace
39+import System.FilePath
40+import qualified Text.Parser.Char as Chr
41+import Text.Parser.Expression
42+import Text.Parser.LookAhead
43+import qualified Text.Parser.Token as Tok
44+import qualified Text.Parser.Token.Highlight as Hi
45+import Text.Trifecta hiding (Err, char, charLiteral, natural, span, string,
46+ stringLiteral, symbol, whiteSpace)
47+import Text.Trifecta.Delta
5248
5349-- | Idris parser with state used during parsing
5450type IdrisParser = StateT IState IdrisInnerParser
src/Idris/Parser/Ops.hs+16−19
@@ -5,38 +5,35 @@ Copyright :
55License : BSD3
66Maintainer : The Idris Community.
77-}
8−{-# LANGUAGE GeneralizedNewtypeDeriving, ConstraintKinds, PatternGuards #-}
8+{-# LANGUAGE ConstraintKinds, GeneralizedNewtypeDeriving, PatternGuards #-}
99module Idris.Parser.Ops where
1010
11−import Prelude hiding (pi)
12−
13−import Text.Trifecta.Delta
14−import Text.Trifecta hiding (span, stringLiteral, charLiteral, natural, symbol, char, string, whiteSpace)
15−import Text.Parser.LookAhead
16−import Text.Parser.Expression
17−import qualified Text.Parser.Token as Tok
18−import qualified Text.Parser.Char as Chr
19−import qualified Text.Parser.Token.Highlight as Hi
20−
2111import Idris.AbsSyntax
12+import Idris.Core.TT
2213import Idris.Parser.Helpers
2314
24−import Idris.Core.TT
15+import Prelude hiding (pi)
2516
2617import Control.Applicative
2718import Control.Monad
2819import Control.Monad.State.Strict
29−
30−import Data.Maybe
31−import qualified Data.List.Split as Spl
32−import Data.List
33−import Data.Monoid
20+import qualified Data.ByteString.UTF8 as UTF8
3421import Data.Char
3522import qualified Data.HashSet as HS
23+import Data.List
24+import qualified Data.List.Split as Spl
25+import Data.Maybe
26+import Data.Monoid
3627import qualified Data.Text as T
37−import qualified Data.ByteString.UTF8 as UTF8
38−
3928import Debug.Trace
29+import qualified Text.Parser.Char as Chr
30+import Text.Parser.Expression
31+import Text.Parser.LookAhead
32+import qualified Text.Parser.Token as Tok
33+import qualified Text.Parser.Token.Highlight as Hi
34+import Text.Trifecta hiding (char, charLiteral, natural, span, string,
35+ stringLiteral, symbol, whiteSpace)
36+import Text.Trifecta.Delta
4037
4138-- | Creates table for fixity declarations to build expression parser
4239-- using pre-build and user-defined operator/fixity declarations
src/Idris/PartialEval.hs+3−4
@@ -14,14 +14,13 @@ module Idris.PartialEval(
1414 ) where
1515
1616import Idris.AbsSyntax
17−import Idris.Delaborate
18−
19−import Idris.Core.TT
2017import Idris.Core.CaseTree
2118import Idris.Core.Evaluate
19+import Idris.Core.TT
20+import Idris.Delaborate
2221
23−import Control.Monad.State
2422import Control.Applicative
23+import Control.Monad.State
2524import Data.Maybe
2625import Debug.Trace
2726
src/Idris/Primitives.hs+5−7
@@ -5,23 +5,21 @@ Copyright :
55License : BSD3
66Maintainer : The Idris Community.
77-}
8−{-# LANGUAGE RankNTypes, ScopedTypeVariables, PatternGuards #-}
8+{-# LANGUAGE PatternGuards, RankNTypes, ScopedTypeVariables #-}
99
1010module Idris.Primitives(primitives, Prim(..)) where
1111
1212import Idris.AbsSyntax
13−
13+import Idris.Core.Evaluate
14+import Idris.Core.TT
1415import IRTS.Lang
1516
16−import Idris.Core.TT
17−import Idris.Core.Evaluate
1817import Data.Bits
19−import Data.Word
20−import Data.Int
2118import Data.Char
2219import Data.Function (on)
20+import Data.Int
2321import qualified Data.Vector.Unboxed as V
24−
22+import Data.Word
2523import Debug.Trace
2624
2725data Prim = Prim { p_name :: Name,
src/Idris/ProofSearch.hs+5−6
@@ -15,22 +15,21 @@ module Idris.ProofSearch(
1515 , resolveTC
1616 ) where
1717
18+import Idris.AbsSyntax
19+import Idris.Core.CaseTree
1820import Idris.Core.Elaborate hiding (Tactic(..))
19−import Idris.Core.TT
20−import Idris.Core.Unify
2121import Idris.Core.Evaluate
22−import Idris.Core.CaseTree
22+import Idris.Core.TT
2323import Idris.Core.Typecheck
24−
25−import Idris.AbsSyntax
24+import Idris.Core.Unify
2625import Idris.Delaborate
2726import Idris.Error
2827
2928import Control.Applicative ((<$>))
3029import Control.Monad
3130import Control.Monad.State.Strict
32−import qualified Data.Set as S
3331import Data.List
32+import qualified Data.Set as S
3433import Debug.Trace
3534
3635-- Pass in a term elaborator to avoid a cyclic dependency with ElabTerm
src/Idris/Prover.hs+20−24
@@ -10,45 +10,41 @@ module Idris.Prover (prover, showProof, showRunElab) where
1010
1111-- Hack for GHC 7.10 and earlier compat without CPP or warnings
1212-- This exludes (<$>) as fmap, because wl-pprint uses it for newline
13−import Prelude (Eq(..), Show(..),
14− Bool(..), Either(..), Maybe(..), String,
15− (.), ($), (++), (||), (&&),
16− concatMap, id, elem, error, fst, flip, foldl, foldr, init,
17− length, lines, map, not, null, repeat, reverse, tail, zip)
13+import Prelude (Bool(..), Either(..), Eq(..), Maybe(..), Show(..), String,
14+ concatMap, elem, error, flip, foldl, foldr, fst, id, init,
15+ length, lines, map, not, null, repeat, reverse, tail, zip, ($),
16+ (&&), (++), (.), (||))
1817
18+import Idris.AbsSyntax
19+import Idris.AbsSyntaxTree
20+import Idris.Completion
21+import Idris.Core.CaseTree
1922import Idris.Core.Elaborate hiding (Tactic(..))
20−import Idris.Core.TT
2123import Idris.Core.Evaluate
22−import Idris.Core.CaseTree
24+import Idris.Core.TT
2325import Idris.Core.Typecheck
24−
26+import Idris.DataOpts
27+import Idris.Delaborate
28+import Idris.Docs (getDocs, pprintConstDocs, pprintDocs)
29+import Idris.Elab.Term
2530import Idris.Elab.Utils
2631import Idris.Elab.Value
27−import Idris.Elab.Term
28−
29−import Idris.AbsSyntax
30−import Idris.AbsSyntaxTree
31−import Idris.Delaborate
32−import Idris.Docs (getDocs, pprintDocs, pprintConstDocs)
3332import Idris.ElabDecls
34−import Idris.Parser hiding (params)
3533import Idris.Error
36−import Idris.DataOpts
37−import Idris.Completion
3834import qualified Idris.IdeMode as IdeMode
3935import Idris.Output
36+import Idris.Parser hiding (params)
4037import Idris.TypeSearch (searchByType)
4138
42−import Text.Trifecta.Result(Result(..), ErrInfo(..))
39+import Util.Pretty
4340
44−import System.IO (Handle, stdin, stdout, hPutStrLn)
45−import System.Console.Haskeline
46−import System.Console.Haskeline.History
47−import Control.Monad.State.Strict
4841import Control.DeepSeq
49−
50−import Util.Pretty
42+import Control.Monad.State.Strict
5143import Debug.Trace
44+import System.Console.Haskeline
45+import System.Console.Haskeline.History
46+import System.IO (Handle, hPutStrLn, stdin, stdout)
47+import Text.Trifecta.Result (ErrInfo(..), Result(..))
5248
5349-- | Launch the proof shell
5450prover :: ElabInfo -> Bool -> Bool -> Name -> Idris ()
src/Idris/Providers.hs+3−3
@@ -5,17 +5,17 @@ Copyright :
55License : BSD3
66Maintainer : The Idris Community.
77-}
8−{-# LANGUAGE PatternGuards, DeriveFunctor #-}
8+{-# LANGUAGE DeriveFunctor, PatternGuards #-}
99module Idris.Providers (
1010 providerTy
1111 , getProvided
1212 , Provided(..)
1313 ) where
1414
15−import Idris.Core.TT
16−import Idris.Core.Evaluate
1715import Idris.AbsSyntax
1816import Idris.AbsSyntaxTree
17+import Idris.Core.Evaluate
18+import Idris.Core.TT
1919import Idris.Error
2020
2121-- | Wrap a type provider in the type of type providers
src/Idris/REPL.hs+56−69
@@ -4,8 +4,8 @@ Description : Entry Point for the Idris REPL and CLI.
44License : BSD3
55Maintainer : The Idris Community.
66-}
7−{-# LANGUAGE MultiParamTypeClasses, FlexibleInstances, DeriveFunctor,
8− PatternGuards, CPP #-}
7+{-# LANGUAGE CPP, DeriveFunctor, FlexibleInstances, MultiParamTypeClasses,
8+ PatternGuards #-}
99module Idris.REPL
1010 ( idemodeStart
1111 , startServer
@@ -17,97 +17,84 @@ module Idris.REPL
1717 ) where
1818
1919import Idris.AbsSyntax
20−import Idris.ASTUtils
2120import Idris.Apropos (apropos, aproposModules)
22−import Idris.REPL.Parser
21+import Idris.ASTUtils
22+import Idris.Colours hiding (colourise)
23+import Idris.Completion
24+import Idris.Core.Constraints
25+import Idris.Core.Evaluate
26+import Idris.Core.Execute (execute)
27+import Idris.Core.TT
28+import Idris.Core.Unify
29+import Idris.Core.WHNF
30+import Idris.Coverage
31+import Idris.Delaborate
32+import Idris.Docs hiding (Doc)
33+import Idris.Docstrings (overview, renderDocTerm, renderDocstring)
34+import Idris.Elab.Clause
35+import Idris.Elab.Term
36+import Idris.Elab.Value
37+import Idris.ElabDecls
2338import Idris.Error
24−import Idris.IBC
2539import Idris.ErrReverse
26−import Idris.Delaborate
27−import Idris.Docstrings (overview, renderDocstring, renderDocTerm)
2840import Idris.Help
29−import Idris.IdrisDoc
30−import Idris.Prover
31−import Idris.Parser hiding (indent)
32−import Idris.Coverage
33−import Idris.Docs hiding (Doc)
34−import Idris.Completion
41+import Idris.IBC
3542import qualified Idris.IdeMode as IdeMode
36−import Idris.Colours hiding (colourise)
43+import Idris.IdrisDoc
44+import Idris.Info
3745import Idris.Inliner
38−import Idris.Output
3946import Idris.Interactive
40−import Idris.WhoCalls
41−import Idris.TypeSearch (searchByType)
42−
47+import Idris.ModeCommon
48+import Idris.Output
49+import Idris.Parser hiding (indent)
50+import Idris.Prover
4351import Idris.REPL.Browse (namesInNS, namespacesInNS)
4452import Idris.REPL.Commands
53+import Idris.REPL.Parser
54+import Idris.TypeSearch (searchByType)
55+import Idris.WhoCalls
56+import IRTS.Compiler
4557
46−import Idris.ElabDecls
47−import Idris.Elab.Clause
48−import Idris.Elab.Value
49−import Idris.Elab.Term
50−import Idris.ModeCommon
51−import Idris.Info
52−
53−import Version_idris (gitHash)
54−import Util.System
5558import Util.DynamicLinker
5659import Util.Net (listenOnLocalhost, listenOnLocalhostAnyPort)
5760import Util.Pretty hiding ((</>))
61+import Util.System
5862
59−import Idris.Core.Evaluate
60−import Idris.Core.Execute (execute)
61−import Idris.Core.TT
62−import Idris.Core.Unify
63−import Idris.Core.WHNF
64−import Idris.Core.Constraints
63+import Version_idris (gitHash)
6564
66−import IRTS.Compiler
65+import Prelude hiding (id, (.), (<$>))
6766
6867import Control.Category
68+import Control.Concurrent
69+import Control.Concurrent.Async (race)
70+import Control.Concurrent.MVar
71+import Control.DeepSeq
6972import qualified Control.Exception as X
70−import Prelude hiding ((<$>), (.), id)
71−import Data.List.Split (splitOn)
72−import qualified Data.Text as T
73−
74−import Text.Trifecta.Result(Result(..), ErrInfo(..))
75−
76−import System.Console.Haskeline as H
77−import System.FilePath
78− ( (</>)
79− , (<.>)
80− , splitExtension
81− , addExtension
82− , dropExtension
83− , takeExtension
84− , takeDirectory
85− )
86−import System.Exit
87−import System.Environment
88−import System.Process
89−import System.Directory
90−import System.IO
9173import Control.Monad
74+import Control.Monad.Trans (lift)
9275import Control.Monad.Trans.Except (ExceptT, runExceptT)
93−import Control.Monad.Trans.State.Strict ( StateT, execStateT, evalStateT, get, put )
94−import Control.Monad.Trans ( lift )
95−import Control.Concurrent.MVar
96−import Network
97−import Control.Concurrent
98−import Data.Maybe
99−import Data.List hiding (group)
76+import Control.Monad.Trans.State.Strict (StateT, evalStateT, execStateT, get,
77+ put)
10078import Data.Char
79+import Data.Either (partitionEithers)
80+import Data.List hiding (group)
81+import Data.List.Split (splitOn)
82+import Data.Maybe
10183import qualified Data.Set as S
84+import qualified Data.Text as T
10285import Data.Version
103−import Data.Either (partitionEithers)
104−import Control.DeepSeq
105−
106−import Control.Concurrent.Async (race)
107−import System.FSNotify (withManager, watchDir)
86+import Network
87+import System.Console.Haskeline as H
88+import System.Directory
89+import System.Environment
90+import System.Exit
91+import System.FilePath (addExtension, dropExtension, splitExtension,
92+ takeDirectory, takeExtension, (<.>), (</>))
93+import System.FSNotify (watchDir, withManager)
10894import System.FSNotify.Devel (allEvents, doAllEvents)
109−
110−
95+import System.IO
96+import System.Process
97+import Text.Trifecta.Result (ErrInfo(..), Result(..))
11198
11299-- | Run the REPL
113100repl :: IState -- ^ The initial state
src/Idris/REPL/Browse.hs+6−7
@@ -10,18 +10,17 @@ Maintainer : The Idris Community.
1010
1111module Idris.REPL.Browse (namespacesInNS, namesInNS) where
1212
13−import Control.Monad (filterM)
13+import Idris.AbsSyntax (getContext)
14+import Idris.AbsSyntaxTree (Idris)
15+import Idris.Core.Evaluate (Accessibility(Hidden, Private), ctxtAlist,
16+ lookupDefAccExact)
17+import Idris.Core.TT (Name(..))
1418
19+import Control.Monad (filterM)
1520import Data.List (isSuffixOf, nub)
1621import Data.Maybe (mapMaybe)
1722import qualified Data.Text as T (unpack)
1823
19−import Idris.Core.Evaluate (ctxtAlist, Accessibility(Private, Hidden), lookupDefAccExact)
20−import Idris.Core.TT (Name(..))
21−
22−import Idris.AbsSyntaxTree (Idris)
23−import Idris.AbsSyntax (getContext)
24−
2524-- | Find the sub-namespaces of a given namespace. The components
2625-- should be in display order rather than the order that they are in
2726-- inside of NS constructors.
src/Idris/REPL/Commands.hs+2−2
@@ -1,8 +1,8 @@
11module Idris.REPL.Commands where
22
3−import Idris.Core.TT
4−import Idris.Colours
53import Idris.AbsSyntaxTree
4+import Idris.Colours
5+import Idris.Core.TT
66
77-- | REPL commands
88data Command = Quit
src/Idris/REPL/Parser.hs+10−14
@@ -11,31 +11,27 @@ module Idris.REPL.Parser (
1111 , setOptions
1212 ) where
1313
14−import System.FilePath ((</>))
15−import System.Console.ANSI (Color(..))
16−
17−import Idris.Colours
1814import Idris.AbsSyntax
15+import Idris.Colours
1916import Idris.Core.TT
2017import Idris.Help
2118import qualified Idris.Parser as P
22−
2319import Idris.REPL.Commands
2420
2521import Control.Applicative
2622import Control.Monad.State.Strict
27−
23+import qualified Data.ByteString.UTF8 as UTF8
24+import Data.Char (isSpace, toLower)
25+import Data.List
26+import Data.List.Split (splitOn)
27+import Debug.Trace
28+import System.Console.ANSI (Color(..))
29+import System.FilePath ((</>))
30+import Text.Parser.Char (anyChar, oneOf)
2831import Text.Parser.Combinators
29−import Text.Parser.Char(anyChar,oneOf)
30−import Text.Trifecta(Result, parseString)
32+import Text.Trifecta (Result, parseString)
3133import Text.Trifecta.Delta
3234
33−import Debug.Trace
34−import Data.List
35−import Data.List.Split(splitOn)
36−import Data.Char(isSpace, toLower)
37−import qualified Data.ByteString.UTF8 as UTF8
38−
3935parseCmd :: IState -> String -> String -> Result (Either String Command)
4036parseCmd i inputname = P.runparser pCmd i inputname . trim
4137 where trim = f . f
src/Idris/Reflection.hs+15−15
@@ -6,31 +6,31 @@ License : BSD3
66Maintainer : The Idris Community.
77-}
88
9−{-# LANGUAGE PatternGuards, CPP #-}
9+{-# LANGUAGE CPP, PatternGuards #-}
1010{-# OPTIONS_GHC -fwarn-incomplete-patterns -fwarn-unused-imports #-}
1111module Idris.Reflection where
1212
13−#if __GLASGOW_HASKELL__ < 710
14−import Control.Applicative ((<$>), (<*>), pure)
15−import Prelude hiding (mapM)
16−import Data.Traversable (mapM)
17−#endif
18−import Control.Monad (liftM, liftM2, liftM4)
19−import Control.Monad.State.Strict (lift)
20−import Data.Maybe (catMaybes)
21−import Data.List ((\\), findIndex)
22−import qualified Data.Text as T
23−
2413import Idris.Core.Elaborate (claim, fill, focus, getNameFrom, initElaborator,
2514 movelast, runElab, solve)
26−import Idris.Core.Evaluate (Def(TyDecl), initContext, lookupDefExact, lookupTyExact)
15+import Idris.Core.Evaluate (Def(TyDecl), initContext, lookupDefExact,
16+ lookupTyExact)
2717import Idris.Core.TT
2818
29−import Idris.AbsSyntaxTree (ArgOpt(..),ElabD, IState(tt_ctxt, idris_implicits,idris_datatypes, idris_patdefs),
30− PArg'(..), PArg, PTactic, PTactic'(..), PTerm(..), Fixity (..),
19+import Idris.AbsSyntaxTree (ArgOpt(..), ElabD, Fixity(..), IState(idris_datatypes, idris_implicits, idris_patdefs, tt_ctxt),
20+ PArg, PArg'(..), PTactic, PTactic'(..), PTerm(..),
3121 initEState, pairCon, pairTy)
3222import Idris.Delaborate (delab)
3323
24+#if __GLASGOW_HASKELL__ < 710
25+import Control.Applicative (pure, (<$>), (<*>))
26+import Data.Traversable (mapM)
27+import Prelude hiding (mapM)
28+#endif
29+import Control.Monad (liftM, liftM2, liftM4)
30+import Control.Monad.State.Strict (lift)
31+import Data.List (findIndex, (\\))
32+import Data.Maybe (catMaybes)
33+import qualified Data.Text as T
3434
3535data RErasure = RErased | RNotErased deriving Show
3636
src/Idris/TypeSearch.hs+31−28
@@ -13,38 +13,41 @@ module Idris.TypeSearch (
1313 , defaultScoreFunction
1414 ) where
1515
16−import Control.Applicative (Applicative (..), (<$>), (<*>), (<|>))
17−import Control.Arrow (first, second, (&&&), (***))
18−import Control.Monad (when, guard)
19−
20−import Data.List (find, partition, (\\))
21−import Data.Map (Map)
22−import qualified Data.Map as M
23−import Data.Maybe (catMaybes, fromMaybe, isJust, maybeToList, mapMaybe)
24−import Data.Monoid (Monoid (mempty, mappend))
25−import Data.Ord (comparing)
26−import qualified Data.PriorityQueue.FingerTree as Q
27−import Data.Set (Set)
28−import qualified Data.Set as S
29−import qualified Data.Text as T (pack, isPrefixOf)
30−import Data.Traversable (traverse)
31−
32−import Idris.AbsSyntax (addUsingConstraints, addImpl, getIState, putIState, implicit, logLvl)
33−import Idris.AbsSyntaxTree (interface_implementations, InterfaceInfo, defaultSyntax, eqTy, Idris
34− , IState (idris_interfaces, idris_docstrings, tt_ctxt, idris_outputmode),
35− implicitAllowed, OutputMode(..), PTerm, toplevel)
36−import Idris.Core.Evaluate (Context (definitions), Def (Function, TyDecl, CaseOp), normaliseC)
37−import Idris.Core.TT hiding (score)
38−import Idris.Core.Unify (match_unify)
39−import Idris.Delaborate (delabTy)
40−import Idris.Docstrings (noDocs, overview)
41−import Idris.Elab.Type (elabType)
42−import Idris.Output (iputStrLn, iRenderOutput, iPrintResult, iRenderError, iRenderResult, prettyDocumentedIst)
16+import Idris.AbsSyntax (addImpl, addUsingConstraints, getIState, implicit,
17+ logLvl, putIState)
18+import Idris.AbsSyntaxTree (IState(idris_docstrings, idris_interfaces, idris_outputmode, tt_ctxt),
19+ Idris, InterfaceInfo, OutputMode(..), PTerm,
20+ defaultSyntax, eqTy, implicitAllowed,
21+ interface_implementations, toplevel)
22+import Idris.Core.Evaluate (Context(definitions), Def(CaseOp, Function, TyDecl),
23+ normaliseC)
24+import Idris.Core.TT hiding (score)
25+import Idris.Core.Unify (match_unify)
26+import Idris.Delaborate (delabTy)
27+import Idris.Docstrings (noDocs, overview)
28+import Idris.Elab.Type (elabType)
4329import Idris.IBC
30+import Idris.Output (iPrintResult, iRenderError, iRenderOutput, iRenderResult,
31+ iputStrLn, prettyDocumentedIst)
32+
33+import Util.Pretty (Doc, annotate, char, text, vsep, (<>))
4434
4535import Prelude hiding (pred)
4636
47−import Util.Pretty (text, char, vsep, (<>), Doc, annotate)
37+import Control.Applicative (Applicative(..), (<$>), (<*>), (<|>))
38+import Control.Arrow (first, second, (&&&), (***))
39+import Control.Monad (guard, when)
40+import Data.List (find, partition, (\\))
41+import Data.Map (Map)
42+import qualified Data.Map as M
43+import Data.Maybe (catMaybes, fromMaybe, isJust, mapMaybe, maybeToList)
44+import Data.Monoid (Monoid(mappend, mempty))
45+import Data.Ord (comparing)
46+import qualified Data.PriorityQueue.FingerTree as Q
47+import Data.Set (Set)
48+import qualified Data.Set as S
49+import qualified Data.Text as T (isPrefixOf, pack)
50+import Data.Traversable (traverse)
4851
4952searchByType :: [String] -> PTerm -> Idris ()
5053searchByType pkgs pterm = do
src/Idris/Unlit.hs+1
@@ -8,6 +8,7 @@ Maintainer : The Idris Community.
88module Idris.Unlit(unlit) where
99
1010import Idris.Core.TT
11+
1112import Data.Char
1213
1314unlit :: FilePath -> String -> TC String
src/Idris/WhoCalls.hs−2
@@ -8,14 +8,12 @@ Maintainer : The Idris Community.
88module Idris.WhoCalls (whoCalls, callsWho) where
99
1010import Idris.AbsSyntax
11−
1211import Idris.Core.CaseTree
1312import Idris.Core.Evaluate
1413import Idris.Core.TT
1514
1615import Data.List (nub)
1716
18−
1917occurs :: Name -> Term -> Bool
2018occurs n (P Bound _ _) = False
2119occurs n (P _ n' _) = n == n'
src/Util/DynamicLinker.hs+7−7
@@ -5,7 +5,7 @@ Copyright :
55License : BSD3
66Maintainer : The Idris Community.
77-}
8−{-# LANGUAGE ExistentialQuantification, CPP, ScopedTypeVariables #-}
8+{-# LANGUAGE CPP, ExistentialQuantification, ScopedTypeVariables #-}
99module Util.DynamicLinker ( ForeignFun(..)
1010 , DynamicLib(..)
1111 , tryLoadLib
@@ -14,21 +14,21 @@ module Util.DynamicLinker ( ForeignFun(..)
1414
1515#ifdef IDRIS_FFI
1616import Foreign.LibFFI
17−import Foreign.Ptr (Ptr(), nullPtr, FunPtr, nullFunPtr, castPtrToFunPtr)
17+import Foreign.Ptr (FunPtr, Ptr(), castPtrToFunPtr, nullFunPtr, nullPtr)
1818import System.Directory
1919#ifndef mingw32_HOST_OS
20−import Control.Exception (try, IOException, throwIO)
21−import Data.Array (Array, inRange, bounds, (!))
20+import Control.Exception (IOException, throwIO, try)
21+import Data.Array (Array, bounds, inRange, (!))
2222import Data.Functor ((<$>))
2323import Data.Maybe (catMaybes)
24−import System.Posix.DynamicLinker
2524import System.FilePath.Posix ((</>))
25+import System.Posix.DynamicLinker
2626import Text.Regex.TDFA
2727#else
28−import qualified Control.Exception as Exception (catch, IOException)
28+import qualified Control.Exception as Exception (IOException, catch)
29+import System.FilePath.Windows ((</>))
2930import System.Win32.DLL
3031import System.Win32.Types
31−import System.FilePath.Windows ((</>))
3232type DL = HMODULE
3333#endif
3434
src/Util/Net.hs+2−2
@@ -7,10 +7,10 @@ Maintainer : The Idris Community.
77-}
88module Util.Net (listenOnLocalhost, listenOnLocalhostAnyPort) where
99
10+import Control.Exception (bracketOnError)
1011import Network hiding (socketPort)
11−import Network.Socket hiding (sClose)
1212import Network.BSD (getProtocolNumber)
13−import Control.Exception (bracketOnError)
13+import Network.Socket hiding (sClose)
1414
1515-- Copied from upstream impl of listenOn
1616-- bound to localhost interface instead of iNADDR_ANY
src/Util/System.hs+7−12
@@ -22,25 +22,20 @@ import Control.Exception as CE
2222import Control.Monad (when)
2323import qualified Data.Text as T
2424import qualified Data.Text.IO as TIO
25−
2625import Foreign.C
27−
28−import System.Directory (getTemporaryDirectory
29− , removeFile
30− , removeDirectoryRecursive
31− , createDirectoryIfMissing
32− )
33−import System.FilePath ((</>), normalise)
34−import System.IO
26+import System.Directory (createDirectoryIfMissing, getTemporaryDirectory,
27+ removeDirectoryRecursive, removeFile)
28+import System.FilePath (normalise, (</>))
3529import System.Info
30+import System.IO
3631import System.IO.Error
3732
3833#ifdef FREESTANDING
39−import Tools_idris
4034import Data.List (intercalate)
41−import System.FilePath (isAbsolute, dropFileName, searchPathSeparator)
4235import System.Directory (doesDirectoryExist)
43−import System.Environment (getEnv, setEnv, getExecutablePath)
36+import System.Environment (getEnv, getExecutablePath, setEnv)
37+import System.FilePath (dropFileName, isAbsolute, searchPathSeparator)
38+import Tools_idris
4439#endif
4540
4641catchIO :: IO a -> (IOError -> IO a) -> IO a
test/TestRun.hs+10−11
@@ -1,27 +1,26 @@
11module Main where
22
3+import TestData
4+
35import Control.Monad
46import Data.Char (isLetter)
5−import Data.Typeable
6−import Data.Proxy
7−import Data.List
87import qualified Data.IntMap as IMap
9−
8+import Data.List
9+import Data.Proxy
10+import Data.Typeable
11+import Options.Applicative
1012import System.Directory
1113import System.Environment
1214import System.Exit
13−import System.Process
15+import System.FilePath ((</>))
1416import System.Info
1517import System.IO
16−import System.FilePath ((</>))
17−import Options.Applicative
18+import System.Process
1819import Test.Tasty
1920import Test.Tasty.Golden
20−import Test.Tasty.Runners
21−import Test.Tasty.Options
2221import Test.Tasty.Ingredients.Rerun
23−
24−import TestData
22+import Test.Tasty.Options
23+import Test.Tasty.Runners
2524
2625--------------------------------------------------------------------- [ Config ]
2726