@@ -16,6 +16,7 @@ import qualified Data.IntMap as IntMap
1616import qualified Data.List as List
1717import Data.Map ((!))
1818import qualified Data.Map as Map
19+import qualified Data.Name as Name
1920import qualified Data.Set as Set
2021import qualified Data.Text.Encoding as Text
2122import qualified Data.Utf8 as Utf8
@@ -26,12 +27,11 @@ import qualified AST.Module.Name as ModuleName
2627import qualified Data.Index as Index
2728import qualified Elm.Compiler.Type as Type
2829import qualified Elm.Compiler.Type.Extract as Extract
29−import qualified Elm.Name as N
3030import qualified Elm.Package as Pkg
3131import qualified Elm.Compiler.Version as Version
3232import qualified Generate.JavaScript.Builder as JS
3333import qualified Generate.JavaScript.Mode as Mode
34−import qualified Generate.JavaScript.Name as Name
34+import qualified Generate.JavaScript.Name as JsName
3535import qualified Json.Encode as Encode
3636import qualified Optimize.DecisionTree as DT
3737import qualified Reporting.Region as R
@@ -71,15 +71,15 @@ generate mode expression =
7171 JsExpr $ JS.Float float
7272
7373 Opt.VarLocal name ->
74− JsExpr $ JS.Ref (Name.fromLocal name)
74+ JsExpr $ JS.Ref (JsName.fromLocal name)
7575
7676 Opt.VarGlobal (Opt.Global home name) ->
77− JsExpr $ JS.Ref (Name.fromGlobal home name)
77+ JsExpr $ JS.Ref (JsName.fromGlobal home name)
7878
7979 Opt.VarEnum (Opt.Global home name) index ->
8080 case mode of
8181 Mode.Dev _ _ ->
82− JsExpr $ JS.Ref (Name.fromGlobal home name)
82+ JsExpr $ JS.Ref (JsName.fromGlobal home name)
8383
8484 Mode.Prod _ _ ->
8585 JsExpr $ JS.Int (Index.toMachine index)
@@ -87,32 +87,32 @@ generate mode expression =
8787 Opt.VarBox (Opt.Global home name) ->
8888 JsExpr $ JS.Ref $
8989 case mode of
90− Mode.Dev _ _ -> Name.fromGlobal home name
91− Mode.Prod _ _ -> Name.fromGlobal ModuleName.basics N.identity
90+ Mode.Dev _ _ -> JsName.fromGlobal home name
91+ Mode.Prod _ _ -> JsName.fromGlobal ModuleName.basics Name.identity
9292
9393 Opt.VarCycle home name ->
94− JsExpr $ JS.Call (JS.Ref (Name.fromCycle home name)) []
94+ JsExpr $ JS.Call (JS.Ref (JsName.fromCycle home name)) []
9595
9696 Opt.VarDebug name home region unhandledValueName ->
9797 JsExpr $ generateDebug name home region unhandledValueName
9898
9999 Opt.VarKernel home name ->
100− JsExpr $ JS.Ref (Name.fromKernel home name)
100+ JsExpr $ JS.Ref (JsName.fromKernel home name)
101101
102102 Opt.List entries ->
103103 case entries of
104104 [] ->
105− JsExpr $ JS.Ref (Name.fromKernel N.list "Nil")
105+ JsExpr $ JS.Ref (JsName.fromKernel Name.list "Nil")
106106
107107 _ ->
108108 JsExpr $
109109 JS.Call
110− (JS.Ref (Name.fromKernel N.list "fromArray"))
110+ (JS.Ref (JsName.fromKernel Name.list "fromArray"))
111111 [ JS.Array $ map (generateJsExpr mode) entries
112112 ]
113113
114114 Opt.Function args body ->
115− generateFunction (map Name.fromLocal args) (generate mode body)
115+ generateFunction (map JsName.fromLocal args) (generate mode body)
116116
117117 Opt.Call func args ->
118118 JsExpr $ generateCall mode func args
@@ -130,7 +130,7 @@ generate mode expression =
130130 Opt.Destruct (Opt.Destructor name path) body ->
131131 let
132132 pathExpr = generatePath mode path
133− pathDef = JS.Var [ (Name.fromLocal name, Just pathExpr) ]
133+ pathDef = JS.Var [ (JsName.fromLocal name, Just pathExpr) ]
134134 in
135135 JsBlock $ pathDef : codeToStmtList (generate mode body)
136136
@@ -138,9 +138,9 @@ generate mode expression =
138138 JsBlock $ generateCase mode label root decider jumps
139139
140140 Opt.Accessor field ->
141− JsExpr $ JS.Function Nothing [Name.dollar]
141+ JsExpr $ JS.Function Nothing [JsName.dollar]
142142 [ JS.Return $ Just $
143− JS.Access (JS.Ref Name.dollar) (generateField mode field)
143+ JS.Access (JS.Ref JsName.dollar) (generateField mode field)
144144 ]
145145
146146 Opt.Access record field ->
@@ -148,7 +148,7 @@ generate mode expression =
148148
149149 Opt.Update record fields ->
150150 JsExpr $
151− JS.Call (JS.Ref (Name.fromKernel N.utils "update"))
151+ JS.Call (JS.Ref (JsName.fromKernel Name.utils "update"))
152152 [ generateJsExpr mode record
153153 , generateRecord mode fields
154154 ]
@@ -159,7 +159,7 @@ generate mode expression =
159159 Opt.Unit ->
160160 case mode of
161161 Mode.Dev _ _ ->
162− JsExpr $ JS.Ref (Name.fromKernel N.utils "Tuple0")
162+ JsExpr $ JS.Ref (JsName.fromKernel Name.utils "Tuple0")
163163
164164 Mode.Prod _ _ ->
165165 JsExpr $ JS.Int 0
@@ -168,13 +168,13 @@ generate mode expression =
168168 JsExpr $
169169 case maybeC of
170170 Nothing ->
171− JS.Call (JS.Ref (Name.fromKernel N.utils "Tuple2"))
171+ JS.Call (JS.Ref (JsName.fromKernel Name.utils "Tuple2"))
172172 [ generateJsExpr mode a
173173 , generateJsExpr mode b
174174 ]
175175
176176 Just c ->
177− JS.Call (JS.Ref (Name.fromKernel N.utils "Tuple3"))
177+ JS.Call (JS.Ref (JsName.fromKernel Name.utils "Tuple3"))
178178 [ generateJsExpr mode a
179179 , generateJsExpr mode b
180180 , generateJsExpr mode c
@@ -183,17 +183,17 @@ generate mode expression =
183183 Opt.Shader src attributes uniforms ->
184184 let
185185 toTranlation field =
186− ( Name.fromLocal field
187− , JS.String (Name.toBuilder (generateField mode field))
186+ ( JsName.fromLocal field
187+ , JS.String (JsName.toBuilder (generateField mode field))
188188 )
189189
190190 toTranslationObject fields =
191191 JS.Object (map toTranlation (Set.toList fields))
192192 in
193193 JsExpr $ JS.Object $
194− [ ( Name.fromLocal "src", JS.String (Text.encodeUtf8Builder src) )
195− , ( Name.fromLocal "attributes", toTranslationObject attributes )
196− , ( Name.fromLocal "uniforms", toTranslationObject uniforms )
194+ [ ( JsName.fromLocal "src", JS.String (Text.encodeUtf8Builder src) )
195+ , ( JsName.fromLocal "attributes", toTranslationObject attributes )
196+ , ( JsName.fromLocal "uniforms", toTranslationObject uniforms )
197197 ]
198198
199199
@@ -255,7 +255,7 @@ codeToStmt code =
255255{-# NOINLINE toChar #-}
256256toChar :: JS.Expr
257257toChar =
258− JS.Ref (Name.fromKernel N.utils "chr")
258+ JS.Ref (JsName.fromKernel Name.utils "chr")
259259
260260
261261
@@ -266,18 +266,18 @@ generateCtor :: Mode.Mode -> Opt.Global -> Index.ZeroBased -> Int -> Code
266266generateCtor mode (Opt.Global home name) index arity =
267267 let
268268 argNames =
269− Index.indexedMap (\i _ -> Name.fromIndex i) [1 .. arity]
269+ Index.indexedMap (\i _ -> JsName.fromIndex i) [1 .. arity]
270270
271271 ctorTag =
272272 case mode of
273− Mode.Dev _ _ -> JS.String (N.toBuilder name)
273+ Mode.Dev _ _ -> JS.String (Name.toBuilder name)
274274 Mode.Prod _ _ -> JS.Int (ctorToInt home name index)
275275 in
276276 generateFunction argNames $ JsExpr $ JS.Object $
277− (Name.dollar, ctorTag) : map (\n -> (n, JS.Ref n)) argNames
277+ (JsName.dollar, ctorTag) : map (\n -> (n, JS.Ref n)) argNames
278278
279279
280−ctorToInt :: ModuleName.Canonical -> N.Name -> Index.ZeroBased -> Int
280+ctorToInt :: ModuleName.Canonical -> Name.Name -> Index.ZeroBased -> Int
281281ctorToInt home name index =
282282 if home == ModuleName.dict && name == "RBNode_elm_builtin" || name == "RBEmpty_elm_builtin" then
283283 0 - Index.toHuman index
@@ -289,7 +289,7 @@ ctorToInt home name index =
289289-- RECORDS
290290
291291
292−generateRecord :: Mode.Mode -> Map.Map N.Name Opt.Expr -> JS.Expr
292+generateRecord :: Mode.Mode -> Map.Map Name.Name Opt.Expr -> JS.Expr
293293generateRecord mode fields =
294294 let
295295 toPair (field, value) =
@@ -298,11 +298,11 @@ generateRecord mode fields =
298298 JS.Object (map toPair (Map.toList fields))
299299
300300
301−generateField :: Mode.Mode -> N.Name -> Name.Name
301+generateField :: Mode.Mode -> Name.Name -> JsName.Name
302302generateField mode name =
303303 case mode of
304304 Mode.Dev _ _ ->
305− Name.fromLocal name
305+ JsName.fromLocal name
306306
307307 Mode.Prod _ fields ->
308308 fields ! name
@@ -313,39 +313,39 @@ generateField mode name =
313313-- DEBUG
314314
315315
316−generateDebug :: N.Name -> ModuleName.Canonical -> R.Region -> Maybe N.Name -> JS.Expr
316+generateDebug :: Name.Name -> ModuleName.Canonical -> R.Region -> Maybe Name.Name -> JS.Expr
317317generateDebug name (ModuleName.Canonical _ home) region unhandledValueName =
318318 if name /= "todo" then
319− JS.Ref (Name.fromGlobal ModuleName.debug name)
319+ JS.Ref (JsName.fromGlobal ModuleName.debug name)
320320 else
321321 case unhandledValueName of
322322 Nothing ->
323− JS.Call (JS.Ref (Name.fromKernel N.debug "todo")) $
324− [ JS.String (N.toBuilder home)
323+ JS.Call (JS.Ref (JsName.fromKernel Name.debug "todo")) $
324+ [ JS.String (Name.toBuilder home)
325325 , regionToJsExpr region
326326 ]
327327
328328 Just valueName ->
329− JS.Call (JS.Ref (Name.fromKernel N.debug "todoCase")) $
330− [ JS.String (N.toBuilder home)
329+ JS.Call (JS.Ref (JsName.fromKernel Name.debug "todoCase")) $
330+ [ JS.String (Name.toBuilder home)
331331 , regionToJsExpr region
332− , JS.Ref (Name.fromLocal valueName)
332+ , JS.Ref (JsName.fromLocal valueName)
333333 ]
334334
335335
336336regionToJsExpr :: R.Region -> JS.Expr
337337regionToJsExpr (R.Region start end) =
338338 JS.Object
339− [ ( Name.fromLocal "start", positionToJsExpr start )
340− , ( Name.fromLocal "end", positionToJsExpr end )
339+ [ ( JsName.fromLocal "start", positionToJsExpr start )
340+ , ( JsName.fromLocal "end", positionToJsExpr end )
341341 ]
342342
343343
344344positionToJsExpr :: R.Position -> JS.Expr
345345positionToJsExpr (R.Position line column) =
346346 JS.Object
347− [ ( Name.fromLocal "line", JS.Int line )
348− , ( Name.fromLocal "column", JS.Int column )
347+ [ ( JsName.fromLocal "line", JS.Int line )
348+ , ( JsName.fromLocal "column", JS.Int column )
349349 ]
350350
351351
@@ -353,7 +353,7 @@ positionToJsExpr (R.Position line column) =
353353-- FUNCTION
354354
355355
356−generateFunction :: [Name.Name] -> Code -> Code
356+generateFunction :: [JsName.Name] -> Code -> Code
357357generateFunction args body =
358358 case IntMap.lookup (length args) funcHelpers of
359359 Just helper ->
@@ -376,7 +376,7 @@ generateFunction args body =
376376funcHelpers :: IntMap.IntMap JS.Expr
377377funcHelpers =
378378 IntMap.fromList $
379− map (\n -> (n, JS.Ref (Name.makeF n))) [2..9]
379+ map (\n -> (n, JS.Ref (JsName.makeF n))) [2..9]
380380
381381
382382
@@ -413,9 +413,9 @@ generateCallHelp mode func args =
413413 (map (generateJsExpr mode) args)
414414
415415
416−generateGlobalCall :: ModuleName.Canonical -> N.Name -> [JS.Expr] -> JS.Expr
416+generateGlobalCall :: ModuleName.Canonical -> Name.Name -> [JS.Expr] -> JS.Expr
417417generateGlobalCall home name args =
418− generateNormalCall (JS.Ref (Name.fromGlobal home name)) args
418+ generateNormalCall (JS.Ref (JsName.fromGlobal home name)) args
419419
420420
421421generateNormalCall :: JS.Expr -> [JS.Expr] -> JS.Expr
@@ -432,7 +432,7 @@ generateNormalCall func args =
432432callHelpers :: IntMap.IntMap JS.Expr
433433callHelpers =
434434 IntMap.fromList $
435− map (\n -> (n, JS.Ref (Name.makeA n))) [2..9]
435+ map (\n -> (n, JS.Ref (JsName.makeA n))) [2..9]
436436
437437
438438
@@ -441,36 +441,36 @@ callHelpers =
441441
442442generateCoreCall :: Mode.Mode -> Opt.Global -> [Opt.Expr] -> JS.Expr
443443generateCoreCall mode (Opt.Global home@(ModuleName.Canonical _ moduleName) name) args =
444− if moduleName == N.basics then
444+ if moduleName == Name.basics then
445445 generateBasicsCall mode home name args
446446
447− else if moduleName == N.bitwise then
447+ else if moduleName == Name.bitwise then
448448 generateBitwiseCall home name (map (generateJsExpr mode) args)
449449
450− else if moduleName == N.tuple then
450+ else if moduleName == Name.tuple then
451451 generateTupleCall home name (map (generateJsExpr mode) args)
452452
453− else if moduleName == N.jsArray then
453+ else if moduleName == Name.jsArray then
454454 generateJsArrayCall home name (map (generateJsExpr mode) args)
455455
456456 else
457457 generateGlobalCall home name (map (generateJsExpr mode) args)
458458
459459
460−generateTupleCall :: ModuleName.Canonical -> N.Name -> [JS.Expr] -> JS.Expr
460+generateTupleCall :: ModuleName.Canonical -> Name.Name -> [JS.Expr] -> JS.Expr
461461generateTupleCall home name args =
462462 case args of
463463 [value] ->
464464 case name of
465− "first" -> JS.Access value (Name.fromLocal "a")
466− "second" -> JS.Access value (Name.fromLocal "b")
465+ "first" -> JS.Access value (JsName.fromLocal "a")
466+ "second" -> JS.Access value (JsName.fromLocal "b")
467467 _ -> generateGlobalCall home name args
468468
469469 _ ->
470470 generateGlobalCall home name args
471471
472472
473−generateJsArrayCall :: ModuleName.Canonical -> N.Name -> [JS.Expr] -> JS.Expr
473+generateJsArrayCall :: ModuleName.Canonical -> Name.Name -> [JS.Expr] -> JS.Expr
474474generateJsArrayCall home name args =
475475 case args of
476476 [entry] | name == "singleton" -> JS.Array [entry]
@@ -478,7 +478,7 @@ generateJsArrayCall home name args =
478478 _ -> generateGlobalCall home name args
479479
480480
481−generateBitwiseCall :: ModuleName.Canonical -> N.Name -> [JS.Expr] -> JS.Expr
481+generateBitwiseCall :: ModuleName.Canonical -> Name.Name -> [JS.Expr] -> JS.Expr
482482generateBitwiseCall home name args =
483483 case args of
484484 [arg] ->
@@ -500,7 +500,7 @@ generateBitwiseCall home name args =
500500 generateGlobalCall home name args
501501
502502
503−generateBasicsCall :: Mode.Mode -> ModuleName.Canonical -> N.Name -> [Opt.Expr] -> JS.Expr
503+generateBasicsCall :: Mode.Mode -> ModuleName.Canonical -> Name.Name -> [Opt.Expr] -> JS.Expr
504504generateBasicsCall mode home name args =
505505 case args of
506506 [elmArg] ->
@@ -551,7 +551,7 @@ equal left right =
551551 if isLiteral left || isLiteral right then
552552 strictEq left right
553553 else
554− JS.Call (JS.Ref (Name.fromKernel N.utils "eq")) [left, right]
554+ JS.Call (JS.Ref (JsName.fromKernel Name.utils "eq")) [left, right]
555555
556556
557557notEqual :: JS.Expr -> JS.Expr -> JS.Expr
@@ -560,7 +560,7 @@ notEqual left right =
560560 strictNEq left right
561561 else
562562 JS.Prefix JS.PrefixLNot $
563− JS.Call (JS.Ref (Name.fromKernel N.utils "eq")) [left, right]
563+ JS.Call (JS.Ref (JsName.fromKernel Name.utils "eq")) [left, right]
564564
565565
566566cmp :: JS.InfixOp -> JS.InfixOp -> Int -> JS.Expr -> JS.Expr -> JS.Expr
@@ -569,7 +569,7 @@ cmp idealOp backupOp backupInt left right =
569569 JS.Infix idealOp left right
570570 else
571571 JS.Infix backupOp
572− (JS.Call (JS.Ref (Name.fromKernel N.utils "cmp")) [left, right])
572+ (JS.Call (JS.Ref (JsName.fromKernel Name.utils "cmp")) [left, right])
573573 (JS.Int backupInt)
574574
575575
@@ -616,7 +616,7 @@ append mode left right =
616616
617617jsAppend :: JS.Expr -> JS.Expr -> JS.Expr
618618jsAppend a b =
619− JS.Call (JS.Ref (Name.fromKernel N.utils "ap")) [a, b]
619+ JS.Call (JS.Ref (JsName.fromKernel Name.utils "ap")) [a, b]
620620
621621
622622toSeqs :: Mode.Mode -> Opt.Expr -> [JS.Expr]
@@ -692,19 +692,19 @@ strictNEq left right =
692692
693693-- TODO check if JS minifiers collapse unnecessary temporary variables
694694--
695−generateTailCall :: Mode.Mode -> N.Name -> [(N.Name, Opt.Expr)] -> [JS.Stmt]
695+generateTailCall :: Mode.Mode -> Name.Name -> [(Name.Name, Opt.Expr)] -> [JS.Stmt]
696696generateTailCall mode name args =
697697 let
698698 toTempVars (argName, arg) =
699− ( Name.makeTemp argName, Just (generateJsExpr mode arg) )
699+ ( JsName.makeTemp argName, Just (generateJsExpr mode arg) )
700700
701701 toRealVars (argName, _) =
702702 JS.ExprStmt $
703− JS.Assign (JS.LRef (Name.fromLocal argName)) (JS.Ref (Name.makeTemp argName))
703+ JS.Assign (JS.LRef (JsName.fromLocal argName)) (JS.Ref (JsName.makeTemp argName))
704704 in
705705 JS.Var (map toTempVars args)
706706 : map toRealVars args
707− ++ [ JS.Continue (Just (Name.fromLocal name)) ]
707+ ++ [ JS.Continue (Just (JsName.fromLocal name)) ]
708708
709709
710710
@@ -715,16 +715,16 @@ generateDef :: Mode.Mode -> Opt.Def -> JS.Stmt
715715generateDef mode def =
716716 case def of
717717 Opt.Def name body ->
718− JS.Var [ (Name.fromLocal name, Just (generateJsExpr mode body)) ]
718+ JS.Var [ (JsName.fromLocal name, Just (generateJsExpr mode body)) ]
719719
720720 Opt.TailDef name argNames body ->
721− JS.Var [ (Name.fromLocal name, Just (codeToExpr (generateTailDef mode name argNames body))) ]
721+ JS.Var [ (JsName.fromLocal name, Just (codeToExpr (generateTailDef mode name argNames body))) ]
722722
723723
724−generateTailDef :: Mode.Mode -> N.Name -> [N.Name] -> Opt.Expr -> Code
724+generateTailDef :: Mode.Mode -> Name.Name -> [Name.Name] -> Opt.Expr -> Code
725725generateTailDef mode name argNames body =
726− generateFunction (map Name.fromLocal argNames) $ JsBlock $
727− [ JS.Labelled (Name.fromLocal name) $
726+ generateFunction (map JsName.fromLocal argNames) $ JsBlock $
727+ [ JS.Labelled (JsName.fromLocal name) $
728728 JS.While (JS.Bool True) $
729729 codeToStmt $ generate mode body
730730 ]
@@ -738,10 +738,10 @@ generatePath :: Mode.Mode -> Opt.Path -> JS.Expr
738738generatePath mode path =
739739 case path of
740740 Opt.Index index subPath ->
741− JS.Access (generatePath mode subPath) (Name.fromIndex index)
741+ JS.Access (generatePath mode subPath) (JsName.fromIndex index)
742742
743743 Opt.Root name ->
744− JS.Ref (Name.fromLocal name)
744+ JS.Ref (JsName.fromLocal name)
745745
746746 Opt.Field field subPath ->
747747 JS.Access (generatePath mode subPath) (generateField mode field)
@@ -749,7 +749,7 @@ generatePath mode path =
749749 Opt.Unbox subPath ->
750750 case mode of
751751 Mode.Dev _ _ ->
752− JS.Access (generatePath mode subPath) (Name.fromIndex Index.first)
752+ JS.Access (generatePath mode subPath) (JsName.fromIndex Index.first)
753753
754754 Mode.Prod _ _ ->
755755 generatePath mode subPath
@@ -824,30 +824,30 @@ crushIfsHelp visitedBranches unvisitedBranches final =
824824-- CASE EXPRESSIONS
825825
826826
827−generateCase :: Mode.Mode -> N.Name -> N.Name -> Opt.Decider Opt.Choice -> [(Int, Opt.Expr)] -> [JS.Stmt]
827+generateCase :: Mode.Mode -> Name.Name -> Name.Name -> Opt.Decider Opt.Choice -> [(Int, Opt.Expr)] -> [JS.Stmt]
828828generateCase mode label root decider jumps =
829829 foldr (goto mode label) (generateDecider mode label root decider) jumps
830830
831831
832−goto :: Mode.Mode -> N.Name -> (Int, Opt.Expr) -> [JS.Stmt] -> [JS.Stmt]
832+goto :: Mode.Mode -> Name.Name -> (Int, Opt.Expr) -> [JS.Stmt] -> [JS.Stmt]
833833goto mode label (index, branch) stmts =
834834 let
835835 labeledDeciderStmt =
836836 JS.Labelled
837− (Name.makeLabel label index)
837+ (JsName.makeLabel label index)
838838 (JS.While (JS.Bool True) (JS.Block stmts))
839839 in
840840 labeledDeciderStmt : codeToStmtList (generate mode branch)
841841
842842
843−generateDecider :: Mode.Mode -> N.Name -> N.Name -> Opt.Decider Opt.Choice -> [JS.Stmt]
843+generateDecider :: Mode.Mode -> Name.Name -> Name.Name -> Opt.Decider Opt.Choice -> [JS.Stmt]
844844generateDecider mode label root decisionTree =
845845 case decisionTree of
846846 Opt.Leaf (Opt.Inline branch) ->
847847 codeToStmtList (generate mode branch)
848848
849849 Opt.Leaf (Opt.Jump index) ->
850− [ JS.Break (Just (Name.makeLabel label index)) ]
850+ [ JS.Break (Just (JsName.makeLabel label index)) ]
851851
852852 Opt.Chain testChain success failure ->
853853 [ JS.IfStmt
@@ -867,7 +867,7 @@ generateDecider mode label root decisionTree =
867867 ]
868868
869869
870−generateIfTest :: Mode.Mode -> N.Name -> (DT.Path, DT.Test) -> JS.Expr
870+generateIfTest :: Mode.Mode -> Name.Name -> (DT.Path, DT.Test) -> JS.Expr
871871generateIfTest mode root (path, test) =
872872 let
873873 value = pathToJsExpr mode root path
@@ -877,16 +877,16 @@ generateIfTest mode root (path, test) =
877877 let
878878 tag =
879879 case mode of
880− Mode.Dev _ _ -> JS.Access value Name.dollar
880+ Mode.Dev _ _ -> JS.Access value JsName.dollar
881881 Mode.Prod _ _ ->
882882 case opts of
883− Can.Normal -> JS.Access value Name.dollar
883+ Can.Normal -> JS.Access value JsName.dollar
884884 Can.Enum -> value
885885 Can.Unbox -> value
886886 in
887887 strictEq tag $
888888 case mode of
889− Mode.Dev _ _ -> JS.String (N.toBuilder name)
889+ Mode.Dev _ _ -> JS.String (Name.toBuilder name)
890890 Mode.Prod _ _ -> JS.Int (ctorToInt home name index)
891891
892892 DT.IsBool True ->
@@ -901,25 +901,25 @@ generateIfTest mode root (path, test) =
901901 DT.IsChr char ->
902902 strictEq (JS.String (Utf8.toBuilder char)) $
903903 case mode of
904− Mode.Dev _ _ -> JS.Call (JS.Access value (Name.fromLocal "valueOf")) []
904+ Mode.Dev _ _ -> JS.Call (JS.Access value (JsName.fromLocal "valueOf")) []
905905 Mode.Prod _ _ -> value
906906
907907 DT.IsStr string ->
908908 strictEq value (JS.String (Utf8.toBuilder string))
909909
910910 DT.IsCons ->
911− JS.Access value (Name.fromLocal "b")
911+ JS.Access value (JsName.fromLocal "b")
912912
913913 DT.IsNil ->
914914 JS.Prefix JS.PrefixLNot $
915− JS.Access value (Name.fromLocal "b")
915+ JS.Access value (JsName.fromLocal "b")
916916
917917 DT.IsTuple ->
918918 error "COMPILER BUG - there should never be tests on a tuple"
919919
920920
921921
922−generateCaseBranch :: Mode.Mode -> N.Name -> N.Name -> (DT.Test, Opt.Decider Opt.Choice) -> JS.Case
922+generateCaseBranch :: Mode.Mode -> Name.Name -> Name.Name -> (DT.Test, Opt.Decider Opt.Choice) -> JS.Case
923923generateCaseBranch mode label root (test, subTree) =
924924 JS.Case
925925 (generateCaseValue mode test)
@@ -931,7 +931,7 @@ generateCaseValue mode test =
931931 case test of
932932 DT.IsCtor home name index _ _ ->
933933 case mode of
934− Mode.Dev _ _ -> JS.String (N.toBuilder name)
934+ Mode.Dev _ _ -> JS.String (Name.toBuilder name)
935935 Mode.Prod _ _ -> JS.Int (ctorToInt home name index)
936936
937937 DT.IsInt int ->
@@ -956,24 +956,24 @@ generateCaseValue mode test =
956956 error "COMPILER BUG - there should never be three tests on a tuple"
957957
958958
959−generateCaseTest :: Mode.Mode -> N.Name -> DT.Path -> DT.Test -> JS.Expr
959+generateCaseTest :: Mode.Mode -> Name.Name -> DT.Path -> DT.Test -> JS.Expr
960960generateCaseTest mode root path exampleTest =
961961 let
962962 value = pathToJsExpr mode root path
963963 in
964964 case exampleTest of
965965 DT.IsCtor home name _ _ opts ->
966− if name == N.bool && home == ModuleName.basics then
966+ if name == Name.bool && home == ModuleName.basics then
967967 value
968968 else
969969 case mode of
970970 Mode.Dev _ _ ->
971− JS.Access value Name.dollar
971+ JS.Access value JsName.dollar
972972
973973 Mode.Prod _ _ ->
974974 case opts of
975975 Can.Normal ->
976− JS.Access value Name.dollar
976+ JS.Access value JsName.dollar
977977
978978 Can.Enum ->
979979 value
@@ -990,7 +990,7 @@ generateCaseTest mode root path exampleTest =
990990 DT.IsChr _ ->
991991 case mode of
992992 Mode.Dev _ _ ->
993− JS.Call (JS.Access value (Name.fromLocal "valueOf")) []
993+ JS.Call (JS.Access value (JsName.fromLocal "valueOf")) []
994994
995995 Mode.Prod _ _ ->
996996 value
@@ -1012,22 +1012,22 @@ generateCaseTest mode root path exampleTest =
10121012-- PATTERN PATHS
10131013
10141014
1015−pathToJsExpr :: Mode.Mode -> N.Name -> DT.Path -> JS.Expr
1015+pathToJsExpr :: Mode.Mode -> Name.Name -> DT.Path -> JS.Expr
10161016pathToJsExpr mode root path =
10171017 case path of
10181018 DT.Index index subPath ->
1019− JS.Access (pathToJsExpr mode root subPath) (Name.fromIndex index)
1019+ JS.Access (pathToJsExpr mode root subPath) (JsName.fromIndex index)
10201020
10211021 DT.Unbox subPath ->
10221022 case mode of
10231023 Mode.Dev _ _ ->
1024− JS.Access (pathToJsExpr mode root subPath) (Name.fromIndex Index.first)
1024+ JS.Access (pathToJsExpr mode root subPath) (JsName.fromIndex Index.first)
10251025
10261026 Mode.Prod _ _ ->
10271027 pathToJsExpr mode root subPath
10281028
10291029 DT.Empty ->
1030− JS.Ref (Name.fromLocal root)
1030+ JS.Ref (JsName.fromLocal root)
10311031
10321032
10331033
@@ -1038,13 +1038,13 @@ generateMain :: Mode.Mode -> ModuleName.Canonical -> Opt.Main -> JS.Expr
10381038generateMain mode home main =
10391039 case main of
10401040 Opt.Static ->
1041− JS.Ref (Name.fromKernel N.virtualDom "init")
1042− # JS.Ref (Name.fromGlobal home "main")
1041+ JS.Ref (JsName.fromKernel Name.virtualDom "init")
1042+ # JS.Ref (JsName.fromGlobal home "main")
10431043 # JS.Int 0
10441044 # JS.Int 0
10451045
10461046 Opt.Dynamic msgType decoder ->
1047− JS.Ref (Name.fromGlobal home "main")
1047+ JS.Ref (JsName.fromGlobal home "main")
10481048 # generateJsExpr mode decoder
10491049 # toDebugMetadata mode msgType
10501050