on master help sign in
Switch Canonicalize/ over to Data.Name

Almost exclusively changing type signatures

commit42f3721d0d67bc557042f5f7d7684b1f93d338db authorEvan Czaplicki <evancz@users.noreply.github.com> dateMon 19 Nov 2018, 12:42 (8 years ago) parentc7504cc
9 files changed+125−125
compiler/src/Canonicalize/Effects.hs+20−20 compiler/src/Canonicalize/Environment.hs+17−17 compiler/src/Canonicalize/Environment/Dups.hs+11−11 compiler/src/Canonicalize/Environment/Foreign.hs+14−14 compiler/src/Canonicalize/Environment/Local.hs+14−14 compiler/src/Canonicalize/Expression.hs+19−19 compiler/src/Canonicalize/Module.hs+17−17 compiler/src/Canonicalize/Pattern.hs+7−7 compiler/src/Canonicalize/Type.hs+6−6
compiler/src/Canonicalize/Effects.hs+20−20
@@ -8,6 +8,7 @@ module Canonicalize.Effects
88
99import qualified Data.Foldable as F
1010import qualified Data.Map as Map
11+import qualified Data.Name as Name
1112
1213import qualified AST.Canonical as Can
1314import qualified AST.Valid as Valid
@@ -15,7 +16,6 @@ import qualified AST.Module.Name as ModuleName
1516import qualified AST.Utils.Type as Type
1617import qualified Canonicalize.Environment as Env
1718import qualified Canonicalize.Type as Type
18−import qualified Elm.Name as N
1919import qualified Reporting.Annotation as A
2020import qualified Reporting.Error.Canonicalize as Error
2121import qualified Reporting.Region as R
@@ -37,7 +37,7 @@ type Result i w a =
3737canonicalize
3838 :: Env.Env
3939 -> [A.Located Valid.Decl]
40− -> Map.Map N.Name union
40+ -> Map.Map Name.Name union
4141 -> Valid.Effects
4242 -> Result i w Can.Effects
4343canonicalize env decls unions effects =
@@ -79,12 +79,12 @@ canonicalize env decls unions effects =
7979-- CANONICALIZE PORT
8080
8181
82−canonicalizePort :: Env.Env -> Valid.Port -> Result i w (N.Name, Can.Port)
82+canonicalizePort :: Env.Env -> Valid.Port -> Result i w (Name.Name, Can.Port)
8383canonicalizePort env (Valid.Port (A.At region portName) tipe) =
8484 do (Can.Forall freeVars ctipe) <- Type.toAnnotation env tipe
8585 case reverse (Type.delambda (Type.deepDealias ctipe)) of
8686 Can.TType home name [msg] : revArgs
87− | home == ModuleName.cmd && name == N.cmd ->
87+ | home == ModuleName.cmd && name == Name.cmd ->
8888 case revArgs of
8989 [] ->
9090 Result.throw (Error.PortTypeInvalid region portName Error.CmdNoArg)
@@ -105,7 +105,7 @@ canonicalizePort env (Valid.Port (A.At region portName) tipe) =
105105 _ ->
106106 Result.throw (Error.PortTypeInvalid region portName (Error.CmdExtraArgs (length revArgs)))
107107
108− | home == ModuleName.sub && name == N.sub ->
108+ | home == ModuleName.sub && name == Name.sub ->
109109 case revArgs of
110110 [Can.TLambda incomingType (Can.TVar msg1)] ->
111111 case msg of
@@ -131,7 +131,7 @@ canonicalizePort env (Valid.Port (A.At region portName) tipe) =
131131-- VERIFY MANAGER
132132
133133
134−verifyEffectType :: A.Located N.Name -> Map.Map N.Name a -> Result i w N.Name
134+verifyEffectType :: A.Located Name.Name -> Map.Map Name.Name a -> Result i w Name.Name
135135verifyEffectType (A.At region name) unions =
136136 if Map.member name unions then
137137 Result.ok name
@@ -139,12 +139,12 @@ verifyEffectType (A.At region name) unions =
139139 Result.throw (Error.EffectNotFound region name)
140140
141141
142−toNameRegion :: A.Located Valid.Decl -> (N.Name, R.Region)
142+toNameRegion :: A.Located Valid.Decl -> (Name.Name, R.Region)
143143toNameRegion (A.At _ (Valid.Decl (A.At region name) _ _ _)) =
144144 (name, region)
145145
146146
147−verifyManager :: R.Region -> Map.Map N.Name R.Region -> N.Name -> Result i w R.Region
147+verifyManager :: R.Region -> Map.Map Name.Name R.Region -> Name.Name -> Result i w R.Region
148148verifyManager tagRegion decls name =
149149 case Map.lookup name decls of
150150 Just region ->
@@ -210,43 +210,43 @@ checkFieldPayload (Can.FieldType _ tipe) =
210210 checkPayload tipe
211211
212212
213−isIntFloatBool :: ModuleName.Canonical -> N.Name -> Bool
213+isIntFloatBool :: ModuleName.Canonical -> Name.Name -> Bool
214214isIntFloatBool home name =
215215 home == ModuleName.basics
216216 &&
217− (name == N.int || name == N.float || name == N.bool)
217+ (name == Name.int || name == Name.float || name == Name.bool)
218218
219219
220−isString :: ModuleName.Canonical -> N.Name -> Bool
220+isString :: ModuleName.Canonical -> Name.Name -> Bool
221221isString home name =
222222 home == ModuleName.string
223223 &&
224− name == N.string
224+ name == Name.string
225225
226226
227−isJson :: ModuleName.Canonical -> N.Name -> Bool
227+isJson :: ModuleName.Canonical -> Name.Name -> Bool
228228isJson home name =
229229 home == ModuleName.jsonEncode
230230 &&
231− name == N.value
231+ name == Name.value
232232
233233
234−isList :: ModuleName.Canonical -> N.Name -> Bool
234+isList :: ModuleName.Canonical -> Name.Name -> Bool
235235isList home name =
236236 home == ModuleName.list
237237 &&
238− name == N.list
238+ name == Name.list
239239
240240
241−isMaybe :: ModuleName.Canonical -> N.Name -> Bool
241+isMaybe :: ModuleName.Canonical -> Name.Name -> Bool
242242isMaybe home name =
243243 home == ModuleName.maybe
244244 &&
245− name == N.maybe
245+ name == Name.maybe
246246
247247
248−isArray :: ModuleName.Canonical -> N.Name -> Bool
248+isArray :: ModuleName.Canonical -> Name.Name -> Bool
249249isArray home name =
250250 home == ModuleName.array
251251 &&
252− name == N.array
252+ name == Name.array
compiler/src/Canonicalize/Environment.hs+17−17
@@ -21,12 +21,12 @@ module Canonicalize.Environment
2121import qualified Data.Map.Merge.Strict as Map
2222import qualified Data.Map.Strict as Map
2323import qualified Data.Map.Strict.Internal as I
24+import qualified Data.Name as Name
2425
2526import qualified AST.Utils.Binop as Binop
2627import qualified AST.Canonical as Can
2728import qualified AST.Module.Name as ModuleName
2829import qualified Data.Index as Index
29−import qualified Elm.Name as N
3030import qualified Reporting.Error.Canonicalize as Error
3131import qualified Reporting.Region as R
3232import qualified Reporting.Result as Result
@@ -47,7 +47,7 @@ type Result i w a =
4747data Env =
4848 Env
4949 { _home :: ModuleName.Canonical
50− , _vars :: Map.Map N.Name Var
50+ , _vars :: Map.Map Name.Name Var
5151 , _types :: Exposed Type
5252 , _ctors :: Exposed Ctor
5353 , _binops :: Exposed Binop
@@ -58,11 +58,11 @@ data Env =
5858
5959
6060type Exposed a =
61− Map.Map N.Name (Map.Map ModuleName.Canonical a)
61+ Map.Map Name.Name (Map.Map ModuleName.Canonical a)
6262
6363
6464type Qualified a =
65− Map.Map N.Name (Map.Map N.Name (Map.Map ModuleName.Canonical a))
65+ Map.Map Name.Name (Map.Map Name.Name (Map.Map ModuleName.Canonical a))
6666
6767
6868
@@ -80,7 +80,7 @@ data Var
8080
8181
8282data Type
83− = Alias Int ModuleName.Canonical [N.Name] Can.Type
83+ = Alias Int ModuleName.Canonical [Name.Name] Can.Type
8484 | Union Int ModuleName.Canonical
8585
8686
@@ -89,10 +89,10 @@ data Type
8989
9090
9191data Ctor
92− = RecordCtor ModuleName.Canonical [N.Name] Can.Type
92+ = RecordCtor ModuleName.Canonical [Name.Name] Can.Type
9393 | Ctor
9494 { _c_home :: ModuleName.Canonical
95− , _c_type :: N.Name
95+ , _c_type :: Name.Name
9696 , _c_union :: Can.Union
9797 , _c_index :: Index.ZeroBased
9898 , _c_args :: [Can.Type]
@@ -105,9 +105,9 @@ data Ctor
105105
106106data Binop =
107107 Binop
108− { _op :: N.Name
108+ { _op :: Name.Name
109109 , _op_home :: ModuleName.Canonical
110− , _op_name :: N.Name
110+ , _op_name :: Name.Name
111111 , _op_annotation :: Can.Annotation
112112 , _op_associativity :: Binop.Associativity
113113 , _op_precedence :: Binop.Precedence
@@ -118,7 +118,7 @@ data Binop =
118118-- VARIABLE -- ADD LOCALS
119119
120120
121−addLocals :: Map.Map N.Name R.Region -> Env -> Result i w Env
121+addLocals :: Map.Map Name.Name R.Region -> Env -> Result i w Env
122122addLocals names (Env home vars ts cs bs qvs qts qcs) =
123123 do newVars <-
124124 Map.mergeA
@@ -131,12 +131,12 @@ addLocals names (Env home vars ts cs bs qvs qts qcs) =
131131 Result.ok (Env home newVars ts cs bs qvs qts qcs)
132132
133133
134−addLocalLeft :: N.Name -> R.Region -> Var
134+addLocalLeft :: Name.Name -> R.Region -> Var
135135addLocalLeft _ region =
136136 Local region
137137
138138
139−addLocalBoth :: N.Name -> R.Region -> Var -> Result i w Var
139+addLocalBoth :: Name.Name -> R.Region -> Var -> Result i w Var
140140addLocalBoth name region var =
141141 case var of
142142 Foreign _ ->
@@ -153,7 +153,7 @@ addLocalBoth name region var =
153153-- FIND TYPE
154154
155155
156−findType :: R.Region -> Env -> N.Name -> Result i w Type
156+findType :: R.Region -> Env -> Name.Name -> Result i w Type
157157findType region (Env _ _ ts _ _ _ qts _) name =
158158 case Map.lookup name ts of
159159 Just (I.Bin 1 _ tipe _ _) ->
@@ -166,7 +166,7 @@ findType region (Env _ _ ts _ _ _ qts _) name =
166166 Result.throw (Error.NotFoundType region Nothing name (toPossibleNames ts qts))
167167
168168
169−findTypeQual :: R.Region -> Env -> N.Name -> N.Name -> Result i w Type
169+findTypeQual :: R.Region -> Env -> Name.Name -> Name.Name -> Result i w Type
170170findTypeQual region (Env _ _ ts _ _ _ qts _) prefix name =
171171 case Map.lookup prefix qts of
172172 Just qualified ->
@@ -188,7 +188,7 @@ findTypeQual region (Env _ _ ts _ _ _ qts _) prefix name =
188188-- FIND CTOR
189189
190190
191−findCtor :: R.Region -> Env -> N.Name -> Result i w Ctor
191+findCtor :: R.Region -> Env -> Name.Name -> Result i w Ctor
192192findCtor region (Env _ _ _ cs _ _ _ qcs) name =
193193 case Map.lookup name cs of
194194 Just (I.Bin 1 _ ctor _ _) ->
@@ -201,7 +201,7 @@ findCtor region (Env _ _ _ cs _ _ _ qcs) name =
201201 Result.throw (Error.NotFoundCtor region Nothing name (toPossibleNames cs qcs))
202202
203203
204−findCtorQual :: R.Region -> Env -> N.Name -> N.Name -> Result i w Ctor
204+findCtorQual :: R.Region -> Env -> Name.Name -> Name.Name -> Result i w Ctor
205205findCtorQual region (Env _ _ _ cs _ _ _ qcs) prefix name =
206206 case Map.lookup prefix qcs of
207207 Just qualified ->
@@ -223,7 +223,7 @@ findCtorQual region (Env _ _ _ cs _ _ _ qcs) prefix name =
223223-- FIND BINOP
224224
225225
226−findBinop :: R.Region -> Env -> N.Name -> Result i w Binop
226+findBinop :: R.Region -> Env -> Name.Name -> Result i w Binop
227227findBinop region (Env _ _ _ _ binops _ _ _) name =
228228 case Map.lookup name binops of
229229 Just (I.Bin 1 _ binop _ _) ->
compiler/src/Canonicalize/Environment/Dups.hs+11−11
@@ -15,9 +15,9 @@ module Canonicalize.Environment.Dups
1515
1616
1717import qualified Data.Map as Map
18+import qualified Data.Name as Name
1819
1920import qualified Data.OneOrMore as OneOrMore
20−import qualified Elm.Name as N
2121import qualified Reporting.Annotation as A
2222import qualified Reporting.Error.Canonicalize as Error
2323import qualified Reporting.Region as R
@@ -29,7 +29,7 @@ import qualified Reporting.Result as Result
2929
3030
3131type Dict value =
32− Map.Map N.Name (OneOrMore.OneOrMore (Info value))
32+ Map.Map Name.Name (OneOrMore.OneOrMore (Info value))
3333
3434
3535data Info value =
@@ -44,15 +44,15 @@ data Info value =
4444
4545
4646type ToError =
47− N.Name -> R.Region -> R.Region -> Error.Error
47+ Name.Name -> R.Region -> R.Region -> Error.Error
4848
4949
50−detect :: ToError -> Dict a -> Result.Result i w Error.Error (Map.Map N.Name a)
50+detect :: ToError -> Dict a -> Result.Result i w Error.Error (Map.Map Name.Name a)
5151detect toError dict =
5252 Map.traverseWithKey (detectHelp toError) dict
5353
5454
55−detectHelp :: ToError -> N.Name -> OneOrMore.OneOrMore (Info a) -> Result.Result i w Error.Error a
55+detectHelp :: ToError -> Name.Name -> OneOrMore.OneOrMore (Info a) -> Result.Result i w Error.Error a
5656detectHelp toError name values =
5757 case values of
5858 OneOrMore.One (Info _ value) ->
@@ -67,22 +67,22 @@ detectHelp toError name values =
6767-- CHECK FIELDS
6868
6969
70−checkFields :: [(A.Located N.Name, a)] -> Result.Result i w Error.Error (Map.Map N.Name a)
70+checkFields :: [(A.Located Name.Name, a)] -> Result.Result i w Error.Error (Map.Map Name.Name a)
7171checkFields fields =
7272 detect Error.DuplicateField (foldr addField none fields)
7373
7474
75−addField :: (A.Located N.Name, a) -> Dict a -> Dict a
75+addField :: (A.Located Name.Name, a) -> Dict a -> Dict a
7676addField (A.At region name, value) dups =
7777 Map.insertWith OneOrMore.more name (OneOrMore.one (Info region value)) dups
7878
7979
80−checkFields' :: (R.Region -> a -> b) -> [(A.Located N.Name, a)] -> Result.Result i w Error.Error (Map.Map N.Name b)
80+checkFields' :: (R.Region -> a -> b) -> [(A.Located Name.Name, a)] -> Result.Result i w Error.Error (Map.Map Name.Name b)
8181checkFields' toValue fields =
8282 detect Error.DuplicateField (foldr (addField' toValue) none fields)
8383
8484
85−addField' :: (R.Region -> a -> b) -> (A.Located N.Name, a) -> Dict b -> Dict b
85+addField' :: (R.Region -> a -> b) -> (A.Located Name.Name, a) -> Dict b -> Dict b
8686addField' toValue (A.At region name, value) dups =
8787 Map.insertWith OneOrMore.more name (OneOrMore.one (Info region (toValue region value))) dups
8888
@@ -96,12 +96,12 @@ none =
9696 Map.empty
9797
9898
99−one :: N.Name -> R.Region -> value -> Dict value
99+one :: Name.Name -> R.Region -> value -> Dict value
100100one name region value =
101101 Map.singleton name (OneOrMore.one (Info region value))
102102
103103
104−insert :: N.Name -> R.Region -> a -> Dict a -> Dict a
104+insert :: Name.Name -> R.Region -> a -> Dict a -> Dict a
105105insert name region value dict =
106106 Map.insertWith OneOrMore.more name (OneOrMore.one (Info region value)) dict
107107
compiler/src/Canonicalize/Environment/Foreign.hs+14−14
@@ -8,15 +8,15 @@ module Canonicalize.Environment.Foreign
88
99
1010import Control.Monad (foldM)
11+import qualified Data.List as List
1112import qualified Data.Map.Strict as Map
13+import qualified Data.Name as Name
1214
1315import qualified AST.Canonical as Can
1416import qualified AST.Source as Src
1517import qualified AST.Module.Name as ModuleName
1618import qualified Canonicalize.Environment as Env
17−import qualified Data.List as List
1819import qualified Elm.Interface as I
19−import qualified Elm.Name as N
2020import qualified Reporting.Annotation as A
2121import qualified Reporting.Error.Canonicalize as Error
2222import qualified Reporting.Result as Result
@@ -35,7 +35,7 @@ type Result i w a =
3535
3636
3737type ImportDict =
38− Map.Map N.Name ModuleName.Canonical
38+ Map.Map Name.Name ModuleName.Canonical
3939
4040
4141createInitialEnv :: ModuleName.Canonical -> ImportDict -> I.Interfaces -> [Src.Import] -> Result i w Env.Env
@@ -47,7 +47,7 @@ createInitialEnv home importDict interfaces sourceImports =
4747
4848isNotKernel :: Src.Import -> Bool
4949isNotKernel (Src.Import (A.At _ name) _ _) =
50− not (ModuleName.isKernel name)
50+ not (Name.isKernel name)
5151
5252
5353
@@ -118,7 +118,7 @@ addExposed =
118118 Map.unionWith Map.union
119119
120120
121−addQualified :: N.Name -> Env.Exposed a -> Env.Qualified a -> Env.Qualified a
121+addQualified :: Name.Name -> Env.Exposed a -> Env.Qualified a -> Env.Qualified a
122122addQualified prefix exposed qualified =
123123 Map.insertWith addExposed prefix exposed qualified
124124
@@ -127,12 +127,12 @@ addQualified prefix exposed qualified =
127127-- UNION
128128
129129
130−unionToType :: ModuleName.Canonical -> N.Name -> I.Union -> Maybe (Env.Type, Env.Exposed Env.Ctor)
130+unionToType :: ModuleName.Canonical -> Name.Name -> I.Union -> Maybe (Env.Type, Env.Exposed Env.Ctor)
131131unionToType home name union =
132132 unionToTypeHelp home name <$> I.toPublicUnion union
133133
134134
135−unionToTypeHelp :: ModuleName.Canonical -> N.Name -> Can.Union -> (Env.Type, Env.Exposed Env.Ctor)
135+unionToTypeHelp :: ModuleName.Canonical -> Name.Name -> Can.Union -> (Env.Type, Env.Exposed Env.Ctor)
136136unionToTypeHelp home name union@(Can.Union vars ctors _ _) =
137137 let
138138 addCtor dict (Can.Ctor ctor index _ args) =
@@ -147,12 +147,12 @@ unionToTypeHelp home name union@(Can.Union vars ctors _ _) =
147147-- ALIAS
148148
149149
150−aliasToType :: ModuleName.Canonical -> N.Name -> I.Alias -> Maybe (Env.Type, Env.Exposed Env.Ctor)
150+aliasToType :: ModuleName.Canonical -> Name.Name -> I.Alias -> Maybe (Env.Type, Env.Exposed Env.Ctor)
151151aliasToType home name alias =
152152 aliasToTypeHelp home name <$> I.toPublicAlias alias
153153
154154
155−aliasToTypeHelp :: ModuleName.Canonical -> N.Name -> Can.Alias -> (Env.Type, Env.Exposed Env.Ctor)
155+aliasToTypeHelp :: ModuleName.Canonical -> Name.Name -> Can.Alias -> (Env.Type, Env.Exposed Env.Ctor)
156156aliasToTypeHelp home name (Can.Alias vars tipe) =
157157 (
158158 Env.Alias (length vars) home vars tipe
@@ -178,7 +178,7 @@ aliasToTypeHelp home name (Can.Alias vars tipe) =
178178-- BINOP
179179
180180
181−binopToBinop :: ModuleName.Canonical -> N.Name -> I.Binop -> Map.Map ModuleName.Canonical Env.Binop
181+binopToBinop :: ModuleName.Canonical -> Name.Name -> I.Binop -> Map.Map ModuleName.Canonical Env.Binop
182182binopToBinop home op (I.Binop name annotation associativity precedence) =
183183 Map.singleton home (Env.Binop op home name annotation associativity precedence)
184184
@@ -190,8 +190,8 @@ binopToBinop home op (I.Binop name annotation associativity precedence) =
190190addExposedValue
191191 :: ModuleName.Canonical
192192 -> Env.Exposed Can.Annotation
193− -> Map.Map N.Name (Env.Type, Env.Exposed Env.Ctor)
194− -> Map.Map N.Name I.Binop
193+ -> Map.Map Name.Name (Env.Type, Env.Exposed Env.Ctor)
194+ -> Map.Map Name.Name I.Binop
195195 -> State
196196 -> A.Located Src.Exposed
197197 -> Result i w State
@@ -262,7 +262,7 @@ addExposedValue home vars types binops (State vs ts cs bs qvs qts qcs) (A.At reg
262262
263263
264264
265−toCtors :: Map.Map N.Name (Env.Type, Env.Exposed Env.Ctor) -> Map.Map N.Name N.Name
265+toCtors :: Map.Map Name.Name (Env.Type, Env.Exposed Env.Ctor) -> Map.Map Name.Name Name.Name
266266toCtors types =
267267 Map.foldr addCtors Map.empty types
268268 where
@@ -286,7 +286,7 @@ data Import =
286286 Import
287287 { _name :: ModuleName.Canonical
288288 , _interface :: I.Interface
289− , _prefix :: N.Name
289+ , _prefix :: Name.Name
290290 , _exposing :: Src.Exposing
291291 }
292292
compiler/src/Canonicalize/Environment/Local.hs+14−14
@@ -10,6 +10,7 @@ import Control.Monad (foldM)
1010import qualified Data.Graph as Graph
1111import qualified Data.List as List
1212import qualified Data.Map.Strict as Map
13+import qualified Data.Name as Name
1314
1415import qualified AST.Canonical as Can
1516import qualified AST.Source as Src
@@ -19,7 +20,6 @@ import qualified Canonicalize.Environment as Env
1920import qualified Canonicalize.Environment.Dups as Dups
2021import qualified Canonicalize.Type as Type
2122import qualified Data.Index as Index
22−import qualified Elm.Name as N
2323import qualified Reporting.Annotation as A
2424import qualified Reporting.Error.Canonicalize as Error
2525import qualified Reporting.Region as R
@@ -34,8 +34,8 @@ type Result i w a =
3434 Result.Result i w Error.Error a
3535
3636
37−type Unions = Map.Map N.Name Can.Union
38−type Aliases = Map.Map N.Name Can.Alias
37+type Unions = Map.Map Name.Name Can.Union
38+type Aliases = Map.Map Name.Name Can.Alias
3939
4040
4141add :: Valid.Module -> Env.Env -> Result i w (Env.Env, Unions, Aliases)
@@ -55,7 +55,7 @@ addVars module_ (Env.Env home vs ts cs bs qvs qts qcs) =
5555 Result.ok $ Env.Env home vs2 ts cs bs qvs qts qcs
5656
5757
58−collectVars :: Valid.Module -> Result i w (Map.Map N.Name Env.Var)
58+collectVars :: Valid.Module -> Result i w (Map.Map Name.Name Env.Var)
5959collectVars (Valid.Module _ _ _ _ _ decls _ _ _ effects) =
6060 let
6161 addDecl dict (A.At _ (Valid.Decl (A.At region name) _ _ _)) =
@@ -152,12 +152,12 @@ addAlias env@(Env.Env home vs ts cs bs qvs qts qcs) scc =
152152-- DETECT TYPE ALIAS CYCLES
153153
154154
155−toNode :: Valid.Alias -> (Valid.Alias, N.Name, [N.Name])
155+toNode :: Valid.Alias -> (Valid.Alias, Name.Name, [Name.Name])
156156toNode alias@(Valid.Alias _ (A.At _ name) _ tipe) =
157157 ( alias, name, getEdges [] tipe )
158158
159159
160−getEdges :: [N.Name] -> Src.Type -> [N.Name]
160+getEdges :: [Name.Name] -> Src.Type -> [Name.Name]
161161getEdges edges (A.At _ tipe) =
162162 case tipe of
163163 Src.TLambda arg result ->
@@ -206,7 +206,7 @@ checkUnionFreeVars (Valid.Union unionRegion (A.At _ name) args ctors) =
206206 Error.TypeVarsUnboundInUnion unionRegion name (map A.toValue args) unbound unbounds
207207
208208
209−checkAliasFreeVars :: Valid.Alias -> Result i w [N.Name]
209+checkAliasFreeVars :: Valid.Alias -> Result i w [Name.Name]
210210checkAliasFreeVars (Valid.Alias aliasRegion (A.At _ name) args tipe) =
211211 let
212212 addArg (A.At region arg) dict =
@@ -225,7 +225,7 @@ checkAliasFreeVars (Valid.Alias aliasRegion (A.At _ name) args tipe) =
225225 (Map.toList (Map.difference freeVars boundVars))
226226
227227
228−addFreeVars :: Map.Map N.Name R.Region -> Src.Type -> Map.Map N.Name R.Region
228+addFreeVars :: Map.Map Name.Name R.Region -> Src.Type -> Map.Map Name.Name R.Region
229229addFreeVars freeVars (A.At region tipe) =
230230 case tipe of
231231 Src.TLambda arg result ->
@@ -290,7 +290,7 @@ type CtorDups = Dups.Dict (Map.Map ModuleName.Canonical Env.Ctor)
290290-- CANONICALIZE ALIAS
291291
292292
293−canonicalizeAlias :: Env.Env -> Valid.Alias -> Result i w ( (N.Name, Can.Alias), CtorDups )
293+canonicalizeAlias :: Env.Env -> Valid.Alias -> Result i w ( (Name.Name, Can.Alias), CtorDups )
294294canonicalizeAlias env@(Env.Env home _ _ _ _ _ _ _) (Valid.Alias _ (A.At region name) args tipe) =
295295 do let vars = map A.toValue args
296296 ctipe <- Type.canonicalize env tipe
@@ -305,7 +305,7 @@ canonicalizeAlias env@(Env.Env home _ _ _ _ _ _ _) (Valid.Alias _ (A.At region n
305305 Dups.none
306306 )
307307
308−toRecordCtor :: ModuleName.Canonical -> N.Name -> [N.Name] -> Map.Map N.Name Can.FieldType -> Env.Ctor
308+toRecordCtor :: ModuleName.Canonical -> Name.Name -> [Name.Name] -> Map.Map Name.Name Can.FieldType -> Env.Ctor
309309toRecordCtor home name vars fields =
310310 let
311311 avars = map (\var -> (var, Can.TVar var)) vars
@@ -322,7 +322,7 @@ toRecordCtor home name vars fields =
322322-- CANONICALIZE UNION
323323
324324
325−canonicalizeUnion :: Env.Env -> Valid.Union -> Result i w ( (N.Name, Can.Union), CtorDups )
325+canonicalizeUnion :: Env.Env -> Valid.Union -> Result i w ( (Name.Name, Can.Union), CtorDups )
326326canonicalizeUnion env@(Env.Env home _ _ _ _ _ _ _) (Valid.Union _ (A.At _ name) avars ctors) =
327327 do cctors <- Index.indexedTraverse (canonicalizeCtor env) ctors
328328 let vars = map A.toValue avars
@@ -334,14 +334,14 @@ canonicalizeUnion env@(Env.Env home _ _ _ _ _ _ _) (Valid.Union _ (A.At _ name)
334334 )
335335
336336
337−canonicalizeCtor :: Env.Env -> Index.ZeroBased -> (A.Located N.Name, [Src.Type]) -> Result i w (A.Located Can.Ctor)
337+canonicalizeCtor :: Env.Env -> Index.ZeroBased -> (A.Located Name.Name, [Src.Type]) -> Result i w (A.Located Can.Ctor)
338338canonicalizeCtor env index (A.At region ctor, tipes) =
339339 do ctipes <- traverse (Type.canonicalize env) tipes
340340 Result.ok $ A.At region $
341341 Can.Ctor ctor index (length ctipes) ctipes
342342
343343
344−toOpts :: [(A.Located N.Name, [Src.Type])] -> Can.CtorOpts
344+toOpts :: [(A.Located Name.Name, [Src.Type])] -> Can.CtorOpts
345345toOpts ctors =
346346 case ctors of
347347 [ (_,[_]) ] ->
@@ -351,7 +351,7 @@ toOpts ctors =
351351 if all (null . snd) ctors then Can.Enum else Can.Normal
352352
353353
354−toCtor :: ModuleName.Canonical -> N.Name -> Can.Union -> A.Located Can.Ctor -> CtorDups
354+toCtor :: ModuleName.Canonical -> Name.Name -> Can.Union -> A.Located Can.Ctor -> CtorDups
355355toCtor home typeName union (A.At region (Can.Ctor name index _ args)) =
356356 Dups.one name region $ Map.singleton home $
357357 Env.Ctor home typeName union index args
compiler/src/Canonicalize/Expression.hs+19−19
@@ -15,6 +15,7 @@ import qualified Data.Graph as Graph
1515import qualified Data.List as List
1616import qualified Data.Map.Strict as Map
1717import qualified Data.Map.Strict.Internal as I
18+import qualified Data.Name as Name
1819
1920import qualified AST.Canonical as Can
2021import qualified AST.Source as Src
@@ -27,7 +28,6 @@ import qualified Canonicalize.Environment.Dups as Dups
2728import qualified Canonicalize.Pattern as Pattern
2829import qualified Canonicalize.Type as Type
2930import qualified Data.Index as Index
30−import qualified Elm.Name as N
3131import qualified Elm.Package as Pkg
3232import qualified Reporting.Annotation as A
3333import qualified Reporting.Error.Canonicalize as Error
@@ -45,7 +45,7 @@ type Result i w a =
4545
4646
4747type FreeLocals =
48− Map.Map N.Name Uses
48+ Map.Map Name.Name Uses
4949
5050
5151data Uses =
@@ -214,7 +214,7 @@ canonicalizeCaseBranch env (pattern, expr) =
214214-- CANONICALIZE BINOPS
215215
216216
217−canonicalizeBinops :: R.Region -> Env.Env -> [(Valid.Expr, A.Located N.Name)] -> Valid.Expr -> Result FreeLocals [W.Warning] Can.Expr
217+canonicalizeBinops :: R.Region -> Env.Env -> [(Valid.Expr, A.Located Name.Name)] -> Valid.Expr -> Result FreeLocals [W.Warning] Can.Expr
218218canonicalizeBinops overallRegion env ops final =
219219 let
220220 canonicalizeHelp (expr, A.At region op) =
@@ -379,12 +379,12 @@ addBindingsHelp bindings (A.At region pattern) =
379379
380380
381381type Node =
382− (Binding, N.Name, [N.Name])
382+ (Binding, Name.Name, [Name.Name])
383383
384384
385385data Binding
386386 = Define Can.Def
387− | Edge (A.Located N.Name)
387+ | Edge (A.Located Name.Name)
388388 | Destruct Can.Pattern Can.Expr
389389
390390
@@ -439,7 +439,7 @@ addDefNodes env nodes def =
439439 (\freeLocals warnings cbody ->
440440 let
441441 names = getPatternNames [] pattern
442− name = N.toCompositeName (map A.toValue names)
442+ name = Name.fromManyNames (map A.toValue names)
443443 node = ( Destruct cpattern cbody, name, Map.keys freeLocals )
444444 in
445445 good
@@ -462,12 +462,12 @@ logLetLocals args letLocals value =
462462 value
463463
464464
465−addEdge :: [N.Name] -> [Node] -> A.Located N.Name -> [Node]
465+addEdge :: [Name.Name] -> [Node] -> A.Located Name.Name -> [Node]
466466addEdge edges nodes aname@(A.At _ name) =
467467 (Edge aname, name, edges) : nodes
468468
469469
470−getPatternNames :: [A.Located N.Name] -> Src.Pattern -> [A.Located N.Name]
470+getPatternNames :: [A.Located Name.Name] -> Src.Pattern -> [A.Located Name.Name]
471471getPatternNames names (A.At region pattern) =
472472 case pattern of
473473 Src.PAnything -> names
@@ -491,7 +491,7 @@ getPatternNames names (A.At region pattern) =
491491
492492gatherTypedArgs
493493 :: Env.Env
494− -> N.Name
494+ -> Name.Name
495495 -> [Src.Pattern]
496496 -> Can.Type
497497 -> Index.ZeroBased
@@ -575,7 +575,7 @@ checkCycle bindings defs =
575575 checkCycle otherBindings defs
576576
577577
578−toNames :: [Binding] -> [Can.Def] -> [N.Name]
578+toNames :: [Binding] -> [Can.Def] -> [Name.Name]
579579toNames bindings revDefs =
580580 case bindings of
581581 [] ->
@@ -588,7 +588,7 @@ toNames bindings revDefs =
588588 Destruct _ _ -> toNames otherBindings revDefs
589589
590590
591−getDefName :: Can.Def -> N.Name
591+getDefName :: Can.Def -> Name.Name
592592getDefName def =
593593 case def of
594594 Can.Def (A.At _ name) _ _ ->
@@ -602,7 +602,7 @@ getDefName def =
602602-- LOG VARIABLE USES
603603
604604
605−logVar :: N.Name -> a -> Result FreeLocals w a
605+logVar :: Name.Name -> a -> Result FreeLocals w a
606606logVar name value =
607607 Result.Result $ \freeLocals warnings _ good ->
608608 good (Map.insertWith combineUses name oneDirectUse freeLocals) warnings value
@@ -657,7 +657,7 @@ verifyBindings context bindings (Result.Result k) =
657657 )
658658
659659
660−addUnusedWarning :: W.Context -> [W.Warning] -> N.Name -> R.Region -> [W.Warning]
660+addUnusedWarning :: W.Context -> [W.Warning] -> Name.Name -> R.Region -> [W.Warning]
661661addUnusedWarning context warnings name region =
662662 W.UnusedVariable region context name : warnings
663663
@@ -687,7 +687,7 @@ delayedUsage (Result.Result k) =
687687-- FIND VARIABLE
688688
689689
690−findVar :: R.Region -> Env.Env -> N.Name -> Result FreeLocals w Can.Expr_
690+findVar :: R.Region -> Env.Env -> Name.Name -> Result FreeLocals w Can.Expr_
691691findVar region (Env.Env localHome vs _ _ _ qvs _ _) name =
692692 case Map.lookup name vs of
693693 Just var ->
@@ -712,7 +712,7 @@ findVar region (Env.Env localHome vs _ _ _ qvs _ _) name =
712712 Result.throw (Error.NotFoundVar region Nothing name (toPossibleNames vs qvs))
713713
714714
715−findVarQual :: R.Region -> Env.Env -> N.Name -> N.Name -> Result FreeLocals w Can.Expr_
715+findVarQual :: R.Region -> Env.Env -> Name.Name -> Name.Name -> Result FreeLocals w Can.Expr_
716716findVarQual region (Env.Env localHome vs _ _ _ qvs _ _) prefix name =
717717 case Map.lookup prefix qvs of
718718 Just qualified ->
@@ -731,13 +731,13 @@ findVarQual region (Env.Env localHome vs _ _ _ qvs _ _) prefix name =
731731 Result.throw (Error.NotFoundVar region (Just prefix) name (toPossibleNames vs qvs))
732732
733733 Nothing ->
734− if ModuleName.isKernel prefix && Pkg.isKernel (ModuleName._package localHome) then
735− Result.ok $ Can.VarKernel (ModuleName.getKernel prefix) name
734+ if Name.isKernel prefix && Pkg.isKernel (ModuleName._package localHome) then
735+ Result.ok $ Can.VarKernel (Name.getKernel prefix) name
736736 else
737737 Result.throw (Error.NotFoundVar region (Just prefix) name (toPossibleNames vs qvs))
738738
739739
740−toPossibleNames :: Map.Map N.Name Env.Var -> Env.Qualified Can.Annotation -> Error.PossibleNames
740+toPossibleNames :: Map.Map Name.Name Env.Var -> Env.Qualified Can.Annotation -> Error.PossibleNames
741741toPossibleNames exposed qualified =
742742 Error.PossibleNames (Map.keysSet exposed) (Map.map Map.keysSet qualified)
743743
@@ -746,7 +746,7 @@ toPossibleNames exposed qualified =
746746-- FIND CTOR
747747
748748
749−toVarCtor :: N.Name -> Env.Ctor -> Can.Expr_
749+toVarCtor :: Name.Name -> Env.Ctor -> Can.Expr_
750750toVarCtor name ctor =
751751 case ctor of
752752 Env.Ctor home typeName (Can.Union vars _ _ opts) index args ->
compiler/src/Canonicalize/Module.hs+17−17
@@ -7,6 +7,7 @@ module Canonicalize.Module
77
88import qualified Data.Graph as Graph
99import qualified Data.Map as Map
10+import qualified Data.Name as Name
1011
1112import qualified AST.Canonical as Can
1213import qualified AST.Source as Src
@@ -22,7 +23,6 @@ import qualified Canonicalize.Pattern as Pattern
2223import qualified Canonicalize.Type as Type
2324import qualified Data.Index as Index
2425import qualified Elm.Interface as I
25−import qualified Elm.Name as N
2626import qualified Elm.Package as Pkg
2727import qualified Reporting.Annotation as A
2828import qualified Reporting.Error.Canonicalize as Error
@@ -45,7 +45,7 @@ type Result i w a =
4545
4646canonicalize
4747 :: Pkg.Name
48− -> Map.Map N.Name ModuleName.Canonical
48+ -> Map.Map Name.Name ModuleName.Canonical
4949 -> I.Interfaces
5050 -> Valid.Module
5151 -> Result i [W.Warning] Can.Module
@@ -82,7 +82,7 @@ toDocs (Valid.Module _ docs comments _ _ _ _ _ _ _) =
8282-- CANONICALIZE BINOP
8383
8484
85−canonicalizeBinop :: Valid.Binop -> ( N.Name, Can.Binop )
85+canonicalizeBinop :: Valid.Binop -> ( Name.Name, Can.Binop )
8686canonicalizeBinop (Valid.Binop op associativity precedence func) =
8787 ( op, Can.Binop_ associativity precedence func )
8888
@@ -142,13 +142,13 @@ detectBadCycles scc =
142142-- Phase one nodes track ALL dependencies.
143143-- This allows us to find cyclic values for type inference.
144144type NodeOne =
145− (NodeTwo, N.Name, [N.Name])
145+ (NodeTwo, Name.Name, [Name.Name])
146146
147147
148148-- Phase two nodes track DIRECT dependencies.
149149-- This allows us to detect cycles that definitely do not terminate.
150150type NodeTwo =
151− (Can.Def, N.Name, [N.Name])
151+ (Can.Def, Name.Name, [Name.Name])
152152
153153
154154toNodeOne :: Env.Env -> A.Located Valid.Decl -> Result i [W.Warning] NodeOne
@@ -193,7 +193,7 @@ toNodeOne env (A.At _ (Valid.Decl aname@(A.At _ name) srcArgs body maybeType)) =
193193 )
194194
195195
196−toNodeTwo :: N.Name -> [arg] -> Can.Def -> Expr.FreeLocals -> NodeTwo
196+toNodeTwo :: Name.Name -> [arg] -> Can.Def -> Expr.FreeLocals -> NodeTwo
197197toNodeTwo name args def freeLocals =
198198 case args of
199199 [] ->
@@ -203,7 +203,7 @@ toNodeTwo name args def freeLocals =
203203 (def, name, [])
204204
205205
206−addDirects :: N.Name -> Expr.Uses -> [N.Name] -> [N.Name]
206+addDirects :: Name.Name -> Expr.Uses -> [Name.Name] -> [Name.Name]
207207addDirects name (Expr.Uses directUses _) directDeps =
208208 if directUses > 0 then
209209 name:directDeps
@@ -217,9 +217,9 @@ addDirects name (Expr.Uses directUses _) directDeps =
217217
218218canonicalizeExports
219219 :: [A.Located Valid.Decl]
220− -> Map.Map N.Name union
221− -> Map.Map N.Name alias
222− -> Map.Map N.Name binop
220+ -> Map.Map Name.Name union
221+ -> Map.Map Name.Name alias
222+ -> Map.Map Name.Name binop
223223 -> Can.Effects
224224 -> A.Located Src.Exposing
225225 -> Result i w Can.Exports
@@ -234,16 +234,16 @@ canonicalizeExports decls unions aliases binops effects (A.At region exposing) =
234234 Can.Export <$> Dups.detect Error.ExportDuplicate (Dups.unions infos)
235235
236236
237−declToName :: A.Located Valid.Decl -> ( N.Name, () )
237+declToName :: A.Located Valid.Decl -> ( Name.Name, () )
238238declToName (A.At _ (Valid.Decl (A.At _ name) _ _ _)) =
239239 ( name, () )
240240
241241
242242checkExposed
243− :: Map.Map N.Name decl
244− -> Map.Map N.Name union
245− -> Map.Map N.Name alias
246− -> Map.Map N.Name binop
243+ :: Map.Map Name.Name decl
244+ -> Map.Map Name.Name union
245+ -> Map.Map Name.Name alias
246+ -> Map.Map Name.Name binop
247247 -> Can.Effects
248248 -> A.Located Src.Exposed
249249 -> Result i w (Dups.Dict (A.Located Can.Export))
@@ -287,7 +287,7 @@ checkExposed decls unions aliases binops effects (A.At region exposed) =
287287 Map.keys unions ++ Map.keys aliases
288288
289289
290−checkPorts :: Can.Effects -> N.Name -> Maybe [N.Name]
290+checkPorts :: Can.Effects -> Name.Name -> Maybe [Name.Name]
291291checkPorts effects name =
292292 case effects of
293293 Can.NoEffects ->
@@ -300,6 +300,6 @@ checkPorts effects name =
300300 Just []
301301
302302
303−ok :: N.Name -> R.Region -> Can.Export -> Result i w (Dups.Dict (A.Located Can.Export))
303+ok :: Name.Name -> R.Region -> Can.Export -> Result i w (Dups.Dict (A.Located Can.Export))
304304ok name region export =
305305 Result.ok $ Dups.one name region (A.At region export)
compiler/src/Canonicalize/Pattern.hs+7−7
@@ -9,6 +9,7 @@ module Canonicalize.Pattern
99
1010
1111import qualified Data.Map.Strict as Map
12+import qualified Data.Name as Name
1213
1314import qualified AST.Canonical as Can
1415import qualified AST.Module.Name as ModuleName
@@ -16,7 +17,6 @@ import qualified AST.Source as Src
1617import qualified Canonicalize.Environment as Env
1718import qualified Canonicalize.Environment.Dups as Dups
1819import qualified Data.Index as Index
19−import qualified Elm.Name as N
2020import qualified Reporting.Annotation as A
2121import qualified Reporting.Error.Canonicalize as Error
2222import qualified Reporting.Region as R
@@ -32,7 +32,7 @@ type Result i w a =
3232
3333
3434type Bindings =
35− Map.Map N.Name R.Region
35+ Map.Map Name.Name R.Region
3636
3737
3838
@@ -113,7 +113,7 @@ canonicalize env (A.At region pattern) =
113113 Result.ok (Can.PInt int)
114114
115115
116−canonicalizeCtor :: Env.Env -> R.Region -> N.Name -> [Src.Pattern] -> Env.Ctor -> Result DupsDict w Can.Pattern_
116+canonicalizeCtor :: Env.Env -> R.Region -> Name.Name -> [Src.Pattern] -> Env.Ctor -> Result DupsDict w Can.Pattern_
117117canonicalizeCtor env region name patterns ctor =
118118 case ctor of
119119 Env.Ctor home tipe union index args ->
@@ -124,8 +124,8 @@ canonicalizeCtor env region name patterns ctor =
124124 do verifiedList <- Index.indexedZipWithA toCanonicalArg patterns args
125125 case verifiedList of
126126 Index.LengthMatch cargs ->
127− if tipe == N.bool && home == ModuleName.basics then
128− Result.ok (Can.PBool union (name == N.true))
127+ if tipe == Name.bool && home == ModuleName.basics then
128+ Result.ok (Can.PBool union (name == Name.true))
129129 else
130130 Result.ok (Can.PCtor home tipe union name index cargs)
131131
@@ -165,13 +165,13 @@ canonicalizeList env list =
165165-- LOG BINDINGS
166166
167167
168−logVar :: N.Name -> R.Region -> a -> Result DupsDict w a
168+logVar :: Name.Name -> R.Region -> a -> Result DupsDict w a
169169logVar name region value =
170170 Result.Result $ \bindings warnings _ ok ->
171171 ok (Dups.insert name region region bindings) warnings value
172172
173173
174−logFields :: [A.Located N.Name] -> a -> Result DupsDict w a
174+logFields :: [A.Located Name.Name] -> a -> Result DupsDict w a
175175logFields fields value =
176176 let
177177 addField (A.At region name) dict =
compiler/src/Canonicalize/Type.hs+6−6
@@ -9,12 +9,12 @@ module Canonicalize.Type
99
1010import qualified Data.List as List
1111import qualified Data.Map as Map
12+import qualified Data.Name as Name
1213
1314import qualified AST.Canonical as Can
1415import qualified AST.Source as Src
1516import qualified Canonicalize.Environment as Env
1617import qualified Canonicalize.Environment.Dups as Dups
17−import qualified Elm.Name as N
1818import qualified Reporting.Annotation as A
1919import qualified Reporting.Error.Canonicalize as Error
2020import qualified Reporting.Region as R
@@ -85,7 +85,7 @@ canonicalize env (A.At typeRegion tipe) =
8585 Result.throw $ Error.TupleLargerThanThree typeRegion
8686
8787
88−canonicalizeFields :: Env.Env -> [(A.Located N.Name, Src.Type)] -> [(A.Located N.Name, Result i w Can.FieldType)]
88+canonicalizeFields :: Env.Env -> [(A.Located Name.Name, Src.Type)] -> [(A.Located Name.Name, Result i w Can.FieldType)]
8989canonicalizeFields env fields =
9090 let
9191 len = fromIntegral (length fields)
@@ -99,7 +99,7 @@ canonicalizeFields env fields =
9999-- CANONICALIZE TYPE
100100
101101
102−canonicalizeType :: Env.Env -> R.Region -> N.Name -> [Src.Type] -> Env.Type -> Result i w Can.Type
102+canonicalizeType :: Env.Env -> R.Region -> Name.Name -> [Src.Type] -> Env.Type -> Result i w Can.Type
103103canonicalizeType env region name args info =
104104 do cargs <- traverse (canonicalize env) args
105105 case info of
@@ -112,7 +112,7 @@ canonicalizeType env region name args info =
112112 Can.TType home name cargs
113113
114114
115−checkArity :: Int -> R.Region -> N.Name -> [A.Located arg] -> answer -> Result i w answer
115+checkArity :: Int -> R.Region -> Name.Name -> [A.Located arg] -> answer -> Result i w answer
116116checkArity expected region name args answer =
117117 let actual = length args in
118118 if expected == actual then
@@ -125,7 +125,7 @@ checkArity expected region name args answer =
125125-- ADD FREE VARS
126126
127127
128−addFreeVars :: Map.Map N.Name () -> Can.Type -> Map.Map N.Name ()
128+addFreeVars :: Map.Map Name.Name () -> Can.Type -> Map.Map Name.Name ()
129129addFreeVars freeVars tipe =
130130 case tipe of
131131 Can.TLambda arg result ->
@@ -158,6 +158,6 @@ addFreeVars freeVars tipe =
158158 List.foldl' (\fvs (_,arg) -> addFreeVars fvs arg) freeVars args
159159
160160
161−addFieldFreeVars :: Map.Map N.Name () -> Can.FieldType -> Map.Map N.Name ()
161+addFieldFreeVars :: Map.Map Name.Name () -> Can.FieldType -> Map.Map Name.Name ()
162162addFieldFreeVars freeVars (Can.FieldType _ tipe) =
163163 addFreeVars freeVars tipe