Skip to content

Commit b3e8f3b

Browse files
Add module hierarchy Agda2Hs.Language.Haskell (#413)
1 parent 256e604 commit b3e8f3b

File tree

20 files changed

+77
-70
lines changed

20 files changed

+77
-70
lines changed

agda2hs.cabal

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,8 @@ executable agda2hs
4545
Agda2Hs.Compile.Utils,
4646
Agda2Hs.Compile.Var,
4747
Agda2Hs.Config,
48-
Agda2Hs.HsUtils,
48+
Agda2Hs.Language.Haskell,
49+
Agda2Hs.Language.Haskell.Utils,
4950
Agda2Hs.Pragma,
5051
Agda2Hs.Render,
5152
AgdaInternals,

src/Agda2Hs/Compile.hs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,6 @@ import Agda.Utils.List
2121
import Agda.Utils.Null
2222
import Agda.Utils.Monad ( whenM, anyM, when, unless )
2323

24-
import qualified Language.Haskell.Exts.Extension as Hs
25-
2624
import Agda2Hs.Compile.ClassInstance ( compileInstance )
2725
import Agda2Hs.Compile.Data ( compileData )
2826
import Agda2Hs.Compile.Function ( compileFun, checkTransparentPragma, checkInlinePragma )
@@ -32,9 +30,8 @@ import Agda2Hs.Compile.Record ( compileRecord, checkUnboxPragma )
3230
import Agda2Hs.Compile.Types
3331
import Agda2Hs.Compile.Utils
3432
import Agda2Hs.Pragma
35-
import qualified Language.Haskell.Exts.Syntax as Hs
36-
import qualified Language.Haskell.Exts.Pretty as Hs
3733

34+
import qualified Agda2Hs.Language.Haskell as Hs
3835

3936
initCompileEnv :: TopLevelModuleName -> SpecialRules -> CompileEnv
4037
initCompileEnv tlm rewrites = CompileEnv

src/Agda2Hs/Compile/ClassInstance.hs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,6 @@ import Data.List ( nub )
88
import Data.Maybe ( isNothing, mapMaybe )
99
import qualified Data.HashMap.Strict as HMap
1010

11-
import qualified Language.Haskell.Exts as Hs
12-
import Language.Haskell.Exts.Extension as Hs
13-
1411
import Agda.Compiler.Backend
1512
import Agda.Compiler.Common ( curDefs, sortDefs )
1613

@@ -40,8 +37,9 @@ import Agda2Hs.Compile.Term
4037
import Agda2Hs.Compile.Type
4138
import Agda2Hs.Compile.Types
4239
import Agda2Hs.Compile.Utils
43-
import Agda2Hs.HsUtils
4440

41+
import qualified Agda2Hs.Language.Haskell as Hs
42+
import Agda2Hs.Language.Haskell.Utils ( hsName, pp, replaceName, unQual )
4543

4644
enableCopatterns :: C a -> C a
4745
enableCopatterns = local $ \e -> e { copatternsEnabled = True }

src/Agda2Hs/Compile/Data.hs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
module Agda2Hs.Compile.Data where
22

3-
import qualified Language.Haskell.Exts.Syntax as Hs
4-
53
import Control.Monad ( when )
64
import Agda.Compiler.Backend
75
import Agda.Syntax.Common
@@ -18,7 +16,9 @@ import Agda.Utils.Impossible ( __IMPOSSIBLE__ )
1816
import Agda2Hs.Compile.Type ( compileDomType, compileTeleBinds )
1917
import Agda2Hs.Compile.Types
2018
import Agda2Hs.Compile.Utils
21-
import Agda2Hs.HsUtils
19+
20+
import qualified Agda2Hs.Language.Haskell as Hs
21+
import Agda2Hs.Language.Haskell.Utils ( hsName )
2222

2323
checkNewtype :: Hs.Name () -> [Hs.QualConDecl ()] -> C ()
2424
checkNewtype name cs = do

src/Agda2Hs/Compile/Function.hs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,6 @@ import Data.List
1010
import Data.Maybe ( fromMaybe, isJust )
1111
import qualified Data.Text as Text
1212

13-
import qualified Language.Haskell.Exts as Hs
14-
1513
import Agda.Compiler.Backend
1614
import Agda.Compiler.Common
1715

@@ -46,8 +44,10 @@ import Agda2Hs.Compile.TypeDefinition ( compileTypeDef )
4644
import Agda2Hs.Compile.Types
4745
import Agda2Hs.Compile.Utils
4846
import Agda2Hs.Compile.Var ( compileDBVar )
49-
import Agda2Hs.HsUtils
5047

48+
import qualified Agda2Hs.Language.Haskell as Hs
49+
import Agda2Hs.Language.Haskell.Utils
50+
( Strictness, hsName, pApp, patToExp, constrainType, qualifyType )
5151

5252
-- | Compilation rules for specific constructors in patterns.
5353
isSpecialCon :: QName -> Maybe (Type -> NAPs -> C (Hs.Pat ()))

src/Agda2Hs/Compile/Function.hs-boot

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
module Agda2Hs.Compile.Function where
22

3-
import qualified Language.Haskell.Exts.Syntax as Hs ( Match, Name )
3+
import qualified Agda2Hs.Language.Haskell as Hs ( Match, Name )
44
import Agda.Syntax.Internal ( Clause, ModuleName, QName, Type )
55
import Agda2Hs.Compile.Types ( C )
66

src/Agda2Hs/Compile/Imports.hs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,14 @@ module Agda2Hs.Compile.Imports ( compileImports, preludeImportDecl ) where
22

33
import Data.Char ( isUpper )
44
import Data.List ( isPrefixOf )
5+
import qualified Data.List as L
56
import Data.Map ( Map )
67
import qualified Data.Map as Map
78
import Data.Set ( Set )
89
import qualified Data.Set as Set
910

10-
import qualified Language.Haskell.Exts as Hs
11+
import qualified Agda2Hs.Language.Haskell as Hs
12+
import Agda2Hs.Language.Haskell.Utils ( validVarId, validConId, pp )
1113

1214
import Agda.Compiler.Backend
1315
import Agda.TypeChecking.Pretty ( text )
@@ -17,8 +19,6 @@ import Agda2Hs.AgdaUtils
1719
import Agda2Hs.Compile.Name
1820
import Agda2Hs.Compile.Types
1921
import Agda2Hs.Compile.Utils
20-
import Agda2Hs.HsUtils
21-
import qualified Data.List as L
2222

2323
type ImportSpecMap = Map NamespacedName (Set NamespacedName)
2424
type ImportDeclMap = Map (Hs.ModuleName (), Qualifier) ImportSpecMap

src/Agda2Hs/Compile/Name.hs

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,6 @@ import Data.List ( intercalate, isPrefixOf, stripPrefix )
1212
import Data.Text ( unpack )
1313
import qualified Data.Map.Strict as Map
1414

15-
import qualified Language.Haskell.Exts as Hs
16-
1715
import Agda.Compiler.Backend hiding ( topLevelModuleName )
1816
import Agda.Compiler.Common ( topLevelModuleName )
1917

@@ -34,14 +32,15 @@ import Agda.TypeChecking.Records ( isRecordConstructor )
3432
import Agda.TypeChecking.Warnings ( warning )
3533

3634
import qualified Agda.Utils.List1 as List1
37-
import Agda.Utils.Monad
3835
import Agda.Utils.Maybe ( isJust, isNothing, whenJust, fromMaybe, caseMaybeM )
39-
import Agda.Utils.Monad ( whenM )
36+
import Agda.Utils.Monad ( orM, whenM )
4037

4138
import Agda2Hs.AgdaUtils
4239
import Agda2Hs.Compile.Types
4340
import Agda2Hs.Compile.Utils
44-
import Agda2Hs.HsUtils
41+
42+
import qualified Agda2Hs.Language.Haskell as Hs
43+
import Agda2Hs.Language.Haskell.Utils ( hsName, hsModuleName, pp )
4544

4645

4746
isSpecialCon :: QName -> Maybe (Hs.QName ())

src/Agda2Hs/Compile/Postulate.hs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
module Agda2Hs.Compile.Postulate where
22

3-
import qualified Language.Haskell.Exts.Syntax as Hs
4-
53
import Agda.Compiler.Backend
64

75
import Agda.Syntax.Internal
@@ -10,7 +8,9 @@ import Agda.Syntax.Common.Pretty ( prettyShow )
108
import Agda2Hs.Compile.Type ( compileType )
119
import Agda2Hs.Compile.Types
1210
import Agda2Hs.Compile.Utils
13-
import Agda2Hs.HsUtils
11+
12+
import qualified Agda2Hs.Language.Haskell as Hs
13+
import Agda2Hs.Language.Haskell.Utils ( hsName, pp, hsError )
1414

1515
compilePostulate :: Definition -> C [Hs.Decl ()]
1616
compilePostulate def = do

src/Agda2Hs/Compile/Record.hs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,6 @@ import Data.List.NonEmpty ( NonEmpty(..) )
88
import Data.Map ( Map )
99
import qualified Data.Map as Map
1010

11-
import qualified Language.Haskell.Exts as Hs
12-
1311
import Agda.Compiler.Backend
1412

1513
import Agda.Syntax.Common ( Arg(unArg), defaultArg )
@@ -29,7 +27,9 @@ import Agda2Hs.Compile.Function ( compileFun )
2927
import Agda2Hs.Compile.Type ( compileDomType, compileTeleBinds, compileDom, DomOutput(..) )
3028
import Agda2Hs.Compile.Types
3129
import Agda2Hs.Compile.Utils
32-
import Agda2Hs.HsUtils
30+
31+
import qualified Agda2Hs.Language.Haskell as Hs
32+
import Agda2Hs.Language.Haskell.Utils ( hsName, definedName, pp )
3333

3434
-- | Primitive fields and default implementations
3535
type MinRecord = ([Hs.Name ()], Map (Hs.Name ()) (Hs.Decl ()))

0 commit comments

Comments
 (0)