@@ -15,6 +15,7 @@ import qualified Data.Graph as Graph
15import qualified Data.List as List
15import qualified Data.List as List
16import qualified Data.Map.Strict as Map
16import qualified Data.Map.Strict as Map
17import qualified Data.Map.Strict.Internal as I
17import qualified Data.Map.Strict.Internal as I
18+import qualified Data.Name as Name
19import qualified AST.Canonical as Can
20import qualified AST.Canonical as Can
20import qualified AST.Source as Src
21import qualified AST.Source as Src
@@ -27,7 +28,6 @@ import qualified Canonicalize.Environment.Dups as Dups
27import qualified Canonicalize.Pattern as Pattern
28import qualified Canonicalize.Pattern as Pattern
28import qualified Canonicalize.Type as Type
29import qualified Canonicalize.Type as Type
29import qualified Data.Index as Index
30import qualified Data.Index as Index
30−import qualified Elm.Name as N
31import qualified Elm.Package as Pkg
31import qualified Elm.Package as Pkg
32import qualified Reporting.Annotation as A
32import qualified Reporting.Annotation as A
33import qualified Reporting.Error.Canonicalize as Error
33import qualified Reporting.Error.Canonicalize as Error
@@ -45,7 +45,7 @@ type Result i w a =
47type FreeLocals =
47type FreeLocals =
48− Map.Map N.Name Uses
48+ Map.Map Name.Name Uses
51data Uses =
51data Uses =
@@ -214,7 +214,7 @@ canonicalizeCaseBranch env (pattern, expr) =
214-- CANONICALIZE BINOPS
214-- CANONICALIZE BINOPS
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
218canonicalizeBinops overallRegion env ops final =
218canonicalizeBinops overallRegion env ops final =
220 canonicalizeHelp (expr, A.At region op) =
220 canonicalizeHelp (expr, A.At region op) =
@@ -379,12 +379,12 @@ addBindingsHelp bindings (A.At region pattern) =
381type Node =
381type Node =
382− (Binding, N.Name, [N.Name])
382+ (Binding, Name.Name, [Name.Name])
385data Binding
385data Binding
386 = Define Can.Def
386 = Define Can.Def
387− | Edge (A.Located N.Name)
387+ | Edge (A.Located Name.Name)
388 | Destruct Can.Pattern Can.Expr
388 | Destruct Can.Pattern Can.Expr
@@ -439,7 +439,7 @@ addDefNodes env nodes def =
439 (\freeLocals warnings cbody ->
439 (\freeLocals warnings cbody ->
441 names = getPatternNames [] pattern
441 names = getPatternNames [] pattern
442− name = N.toCompositeName (map A.toValue names)
442+ name = Name.fromManyNames (map A.toValue names)
443 node = ( Destruct cpattern cbody, name, Map.keys freeLocals )
443 node = ( Destruct cpattern cbody, name, Map.keys freeLocals )
@@ -462,12 +462,12 @@ logLetLocals args letLocals value =
465−addEdge :: [N.Name] -> [Node] -> A.Located N.Name -> [Node]
465+addEdge :: [Name.Name] -> [Node] -> A.Located Name.Name -> [Node]
466addEdge edges nodes aname@(A.At _ name) =
466addEdge edges nodes aname@(A.At _ name) =
467 (Edge aname, name, edges) : nodes
467 (Edge aname, name, edges) : nodes
470−getPatternNames :: [A.Located N.Name] -> Src.Pattern -> [A.Located N.Name]
470+getPatternNames :: [A.Located Name.Name] -> Src.Pattern -> [A.Located Name.Name]
471getPatternNames names (A.At region pattern) =
471getPatternNames names (A.At region pattern) =
472 case pattern of
472 case pattern of
473 Src.PAnything -> names
473 Src.PAnything -> names
@@ -491,7 +491,7 @@ getPatternNames names (A.At region pattern) =
492gatherTypedArgs
492gatherTypedArgs
493 :: Env.Env
493 :: Env.Env
494− -> N.Name
494+ -> Name.Name
495 -> [Src.Pattern]
495 -> [Src.Pattern]
496 -> Can.Type
496 -> Can.Type
497 -> Index.ZeroBased
497 -> Index.ZeroBased
@@ -575,7 +575,7 @@ checkCycle bindings defs =
575 checkCycle otherBindings defs
575 checkCycle otherBindings defs
578−toNames :: [Binding] -> [Can.Def] -> [N.Name]
578+toNames :: [Binding] -> [Can.Def] -> [Name.Name]
579toNames bindings revDefs =
579toNames bindings revDefs =
580 case bindings of
580 case bindings of
@@ -588,7 +588,7 @@ toNames bindings revDefs =
588 Destruct _ _ -> toNames otherBindings revDefs
588 Destruct _ _ -> toNames otherBindings revDefs
591−getDefName :: Can.Def -> N.Name
591+getDefName :: Can.Def -> Name.Name
592getDefName def =
592getDefName def =
593 case def of
593 case def of
594 Can.Def (A.At _ name) _ _ ->
594 Can.Def (A.At _ name) _ _ ->
@@ -602,7 +602,7 @@ getDefName def =
602-- LOG VARIABLE USES
602-- LOG VARIABLE USES
605−logVar :: N.Name -> a -> Result FreeLocals w a
605+logVar :: Name.Name -> a -> Result FreeLocals w a
606logVar name value =
606logVar name value =
607 Result.Result $ \freeLocals warnings _ good ->
607 Result.Result $ \freeLocals warnings _ good ->
608 good (Map.insertWith combineUses name oneDirectUse freeLocals) warnings value
608 good (Map.insertWith combineUses name oneDirectUse freeLocals) warnings value
@@ -657,7 +657,7 @@ verifyBindings context bindings (Result.Result k) =
660−addUnusedWarning :: W.Context -> [W.Warning] -> N.Name -> R.Region -> [W.Warning]
660+addUnusedWarning :: W.Context -> [W.Warning] -> Name.Name -> R.Region -> [W.Warning]
661addUnusedWarning context warnings name region =
661addUnusedWarning context warnings name region =
662 W.UnusedVariable region context name : warnings
662 W.UnusedVariable region context name : warnings
@@ -687,7 +687,7 @@ delayedUsage (Result.Result k) =
687-- FIND VARIABLE
687-- FIND VARIABLE
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_
691findVar region (Env.Env localHome vs _ _ _ qvs _ _) name =
691findVar region (Env.Env localHome vs _ _ _ qvs _ _) name =
692 case Map.lookup name vs of
692 case Map.lookup name vs of
693 Just var ->
693 Just var ->
@@ -712,7 +712,7 @@ findVar region (Env.Env localHome vs _ _ _ qvs _ _) name =
712 Result.throw (Error.NotFoundVar region Nothing name (toPossibleNames vs qvs))
712 Result.throw (Error.NotFoundVar region Nothing name (toPossibleNames vs qvs))
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_
716findVarQual region (Env.Env localHome vs _ _ _ qvs _ _) prefix name =
716findVarQual region (Env.Env localHome vs _ _ _ qvs _ _) prefix name =
717 case Map.lookup prefix qvs of
717 case Map.lookup prefix qvs of
718 Just qualified ->
718 Just qualified ->
@@ -731,13 +731,13 @@ findVarQual region (Env.Env localHome vs _ _ _ qvs _ _) prefix name =
731 Result.throw (Error.NotFoundVar region (Just prefix) name (toPossibleNames vs qvs))
731 Result.throw (Error.NotFoundVar region (Just prefix) name (toPossibleNames vs qvs))
733 Nothing ->
733 Nothing ->
734− if ModuleName.isKernel prefix && Pkg.isKernel (ModuleName._package localHome) then
734+ if Name.isKernel prefix && Pkg.isKernel (ModuleName._package localHome) then
735− Result.ok $ Can.VarKernel (ModuleName.getKernel prefix) name
735+ Result.ok $ Can.VarKernel (Name.getKernel prefix) name
737 Result.throw (Error.NotFoundVar region (Just prefix) name (toPossibleNames vs qvs))
737 Result.throw (Error.NotFoundVar region (Just prefix) name (toPossibleNames vs qvs))
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
741toPossibleNames exposed qualified =
741toPossibleNames exposed qualified =
742 Error.PossibleNames (Map.keysSet exposed) (Map.map Map.keysSet qualified)
742 Error.PossibleNames (Map.keysSet exposed) (Map.map Map.keysSet qualified)
@@ -746,7 +746,7 @@ toPossibleNames exposed qualified =
746-- FIND CTOR
746-- FIND CTOR
749−toVarCtor :: N.Name -> Env.Ctor -> Can.Expr_
749+toVarCtor :: Name.Name -> Env.Ctor -> Can.Expr_
750toVarCtor name ctor =
750toVarCtor name ctor =
751 case ctor of
751 case ctor of
752 Env.Ctor home typeName (Can.Union vars _ _ opts) index args ->
752 Env.Ctor home typeName (Can.Union vars _ _ opts) index args ->