firefly-compiler 0.5.63 → 0.5.65

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/compiler/Builder.ff +47 -31
  2. package/compiler/Compiler.ff +42 -47
  3. package/compiler/Dependencies.ff +9 -3
  4. package/compiler/Deriver.ff +2 -2
  5. package/compiler/Dictionaries.ff +11 -12
  6. package/compiler/Environment.ff +5 -5
  7. package/compiler/Inference.ff +1 -2
  8. package/compiler/JsEmitter.ff +34 -33
  9. package/compiler/Main.ff +32 -31
  10. package/compiler/ModuleCache.ff +17 -25
  11. package/compiler/Parser.ff +7 -11
  12. package/compiler/Resolver.ff +8 -11
  13. package/compiler/Syntax.ff +53 -17
  14. package/compiler/Unification.ff +2 -5
  15. package/core/BuildSystem.ff +1 -1
  16. package/core/Path.ff +11 -1
  17. package/core/SourceLocation.ff +4 -0
  18. package/experimental/foldertest/.firefly/package.ff +1 -0
  19. package/experimental/foldertest/Root.ff +10 -0
  20. package/experimental/foldertest/a/A.ff +3 -0
  21. package/experimental/foldertest/a/MainA.ff +3 -0
  22. package/experimental/tests/TestCancel.ff +19 -0
  23. package/fireflysite/CommunityOverview.ff +0 -2
  24. package/fireflysite/FrontPage.ff +0 -2
  25. package/fireflysite/Main.ff +1 -1
  26. package/fireflysite/PackagesOverview.ff +0 -2
  27. package/fireflysite/Router.ff +3 -3
  28. package/fireflysite/{ExamplesOverview.ff → demos/ExamplesOverview.ff} +3 -3
  29. package/fireflysite/{RouteFront.ff → routes/RouteFront.ff} +2 -3
  30. package/fireflysite/{RouteNonMarkdown.ff → routes/RouteNonMarkdown.ff} +5 -5
  31. package/fireflysite/{RouteReference.ff → routes/RouteReference.ff} +2 -3
  32. package/lsp/CompletionHandler.ff +2 -2
  33. package/lsp/Handler.ff +14 -13
  34. package/lsp/LanguageServer.ff +5 -4
  35. package/output/js/ff/compiler/Builder.mjs +118 -80
  36. package/output/js/ff/compiler/Compiler.mjs +85 -89
  37. package/output/js/ff/compiler/Dependencies.mjs +16 -10
  38. package/output/js/ff/compiler/Deriver.mjs +6 -6
  39. package/output/js/ff/compiler/Dictionaries.mjs +6 -6
  40. package/output/js/ff/compiler/Environment.mjs +10 -6
  41. package/output/js/ff/compiler/Inference.mjs +4 -4
  42. package/output/js/ff/compiler/JsEmitter.mjs +60 -38
  43. package/output/js/ff/compiler/Main.mjs +66 -56
  44. package/output/js/ff/compiler/ModuleCache.mjs +34 -38
  45. package/output/js/ff/compiler/Parser.mjs +14 -14
  46. package/output/js/ff/compiler/Resolver.mjs +12 -22
  47. package/output/js/ff/compiler/Substitution.mjs +2 -2
  48. package/output/js/ff/compiler/Syntax.mjs +395 -183
  49. package/output/js/ff/compiler/Unification.mjs +18 -32
  50. package/output/js/ff/core/BuildSystem.mjs +2 -6
  51. package/output/js/ff/core/Path.mjs +32 -0
  52. package/output/js/ff/core/SourceLocation.mjs +12 -0
  53. package/package.json +1 -1
  54. package/vscode/package.json +1 -1
  55. package/vscode/syntaxes/firefly.tmLanguage.json +299 -299
  56. package/fireflysite/ReferenceIntroduction.ff +0 -11
  57. /package/fireflysite/{CountingButtonDemo.ff → demos/CountingButtonDemo.ff} +0 -0
  58. /package/fireflysite/{MatchingPasswordsDemo.ff → demos/MatchingPasswordsDemo.ff} +0 -0
  59. /package/fireflysite/{PostgresqlDemo.ff → demos/PostgresqlDemo.ff} +0 -0
@@ -121,12 +121,11 @@ result_ = ff_core_Map.Map_add(result_, k_, v_, ff_core_Ordering.ff_core_Ordering
121
121
  return result_
122
122
  }
123
123
 
124
- export function modulePath_(packagePaths_, packagePair_, moduleName_) {
125
- const packagePath_ = ff_core_Option.Option_else(ff_core_Map.Map_get(packagePaths_, packagePair_, ff_compiler_Syntax.ff_core_Ordering_Order$ff_compiler_Syntax_PackagePair), (() => {
126
- return ff_core_Core.panic_(("Internal error - package path missing: " + ff_compiler_Syntax.PackagePair_groupName(packagePair_, ":")))
124
+ export function modulePath_(packagePaths_, moduleKey_) {
125
+ const packagePath_ = ff_core_Option.Option_else(ff_core_Map.Map_get(packagePaths_, moduleKey_.packagePair_, ff_compiler_Syntax.ff_core_Ordering_Order$ff_compiler_Syntax_PackagePair), (() => {
126
+ return ff_core_Core.panic_(("Internal error - package path missing: " + ff_compiler_Syntax.PackagePair_groupName(moduleKey_.packagePair_, ":")))
127
127
  }));
128
- const file_ = (moduleName_ + ".ff");
129
- return ff_core_Path.Path_slash(packagePath_, file_)
128
+ return ff_compiler_Syntax.ModuleKey_path(moduleKey_, packagePath_)
130
129
  }
131
130
 
132
131
  export async function new_$(version_, $task) {
@@ -145,12 +144,11 @@ result_ = ff_core_Map.Map_add(result_, k_, v_, ff_core_Ordering.ff_core_Ordering
145
144
  return result_
146
145
  }
147
146
 
148
- export async function modulePath_$(packagePaths_, packagePair_, moduleName_, $task) {
149
- const packagePath_ = ff_core_Option.Option_else(ff_core_Map.Map_get(packagePaths_, packagePair_, ff_compiler_Syntax.ff_core_Ordering_Order$ff_compiler_Syntax_PackagePair), (() => {
150
- return ff_core_Core.panic_(("Internal error - package path missing: " + ff_compiler_Syntax.PackagePair_groupName(packagePair_, ":")))
147
+ export async function modulePath_$(packagePaths_, moduleKey_, $task) {
148
+ const packagePath_ = ff_core_Option.Option_else(ff_core_Map.Map_get(packagePaths_, moduleKey_.packagePair_, ff_compiler_Syntax.ff_core_Ordering_Order$ff_compiler_Syntax_PackagePair), (() => {
149
+ return ff_core_Core.panic_(("Internal error - package path missing: " + ff_compiler_Syntax.PackagePair_groupName(moduleKey_.packagePair_, ":")))
151
150
  }));
152
- const file_ = (moduleName_ + ".ff");
153
- return (await ff_core_Path.Path_slash$(packagePath_, file_, $task))
151
+ return (await ff_compiler_Syntax.ModuleKey_path$(moduleKey_, packagePath_, $task))
154
152
  }
155
153
 
156
154
  export function ModuleCache_remove(self_, keys_) {
@@ -167,14 +165,13 @@ export function ModuleCache_invalidate(self_, key_) {
167
165
  ff_core_Option.Option_each(ff_core_Map.Map_get(self_.parsedModules_, key_, ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String), ((_1) => {
168
166
  {
169
167
  const module_ = _1.first_;
170
- const moduleName_ = ff_core_String.String_dropLast(module_.file_, 3);
171
168
  ff_compiler_ModuleCache.ModuleCache_remove(self_, [key_]);
172
169
  ff_core_Map.Map_each(self_.parsedModules_, ((_1, _2) => {
173
170
  {
174
171
  const k_ = _1;
175
172
  const m_ = _2.first_;
176
173
  if(ff_core_List.List_any(m_.imports_, ((i_) => {
177
- return (ff_compiler_Syntax.ff_core_Equal_Equal$ff_compiler_Syntax_PackagePair.equals_(i_.package_, module_.packagePair_) && (i_.file_ === moduleName_))
174
+ return ff_compiler_Syntax.ff_core_Equal_Equal$ff_compiler_Syntax_ModuleKey.equals_(i_.moduleKey_, module_.moduleKey_)
178
175
  }))) {
179
176
  ff_compiler_ModuleCache.ModuleCache_remove(self_, [k_])
180
177
  }
@@ -186,13 +183,13 @@ return
186
183
  }))
187
184
  }
188
185
 
189
- export function ModuleCache_filesNotImporting(self_, packagePair_, moduleName_) {
186
+ export function ModuleCache_filesNotImporting(self_, moduleKey_) {
190
187
  return ff_core_List.List_collect(ff_core_Map.Map_toList(self_.parsedModules_, ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String), ((_1) => {
191
188
  {
192
189
  const k_ = _1.first_;
193
190
  const m_ = _1.second_.first_;
194
191
  if((!ff_core_List.List_any(m_.imports_, ((i_) => {
195
- return (ff_compiler_Syntax.ff_core_Equal_Equal$ff_compiler_Syntax_PackagePair.equals_(i_.package_, packagePair_) && (i_.file_ === moduleName_))
192
+ return ff_compiler_Syntax.ff_core_Equal_Equal$ff_compiler_Syntax_ModuleKey.equals_(i_.moduleKey_, moduleKey_)
196
193
  })))) {
197
194
  return ff_core_Option.Some(k_)
198
195
  } else return ff_core_Option.None()
@@ -269,8 +266,8 @@ return _w1
269
266
  }))
270
267
  }
271
268
 
272
- export function ModuleCache_cacheParsedModule(self_, packagePaths_, packagePair_, moduleName_, body_) {
273
- const path_ = ff_compiler_ModuleCache.modulePath_(packagePaths_, packagePair_, moduleName_);
269
+ export function ModuleCache_cacheParsedModule(self_, packagePaths_, moduleKey_, body_) {
270
+ const path_ = ff_compiler_ModuleCache.modulePath_(packagePaths_, moduleKey_);
274
271
  return ff_core_Option.Option_else(ff_core_Option.Option_map(ff_core_Map.Map_get(self_.parsedModules_, ff_core_Path.Path_absolute(path_), ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String), ((_w1) => {
275
272
  return _w1.first_
276
273
  })), (() => {
@@ -280,8 +277,8 @@ return result_
280
277
  }))
281
278
  }
282
279
 
283
- export function ModuleCache_cacheResolvedModule(self_, packagePaths_, packagePair_, moduleName_, body_) {
284
- const path_ = ff_compiler_ModuleCache.modulePath_(packagePaths_, packagePair_, moduleName_);
280
+ export function ModuleCache_cacheResolvedModule(self_, packagePaths_, moduleKey_, body_) {
281
+ const path_ = ff_compiler_ModuleCache.modulePath_(packagePaths_, moduleKey_);
285
282
  return ff_core_Option.Option_else(ff_core_Option.Option_map(ff_core_Map.Map_get(self_.resolvedModules_, ff_core_Path.Path_absolute(path_), ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String), ((_w1) => {
286
283
  return _w1.first_
287
284
  })), (() => {
@@ -291,8 +288,8 @@ return result_
291
288
  }))
292
289
  }
293
290
 
294
- export function ModuleCache_cacheDerivedModule(self_, packagePaths_, packagePair_, moduleName_, body_) {
295
- const path_ = ff_compiler_ModuleCache.modulePath_(packagePaths_, packagePair_, moduleName_);
291
+ export function ModuleCache_cacheDerivedModule(self_, packagePaths_, moduleKey_, body_) {
292
+ const path_ = ff_compiler_ModuleCache.modulePath_(packagePaths_, moduleKey_);
296
293
  return ff_core_Option.Option_else(ff_core_Option.Option_map(ff_core_Map.Map_get(self_.derivedModules_, ff_core_Path.Path_absolute(path_), ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String), ((_w1) => {
297
294
  return _w1.first_
298
295
  })), (() => {
@@ -302,8 +299,8 @@ return result_
302
299
  }))
303
300
  }
304
301
 
305
- export function ModuleCache_cacheInferredModule(self_, packagePaths_, packagePair_, moduleName_, body_) {
306
- const path_ = ff_compiler_ModuleCache.modulePath_(packagePaths_, packagePair_, moduleName_);
302
+ export function ModuleCache_cacheInferredModule(self_, packagePaths_, moduleKey_, body_) {
303
+ const path_ = ff_compiler_ModuleCache.modulePath_(packagePaths_, moduleKey_);
307
304
  return ff_core_Option.Option_else(ff_core_Option.Option_map(ff_core_Map.Map_get(self_.inferredModules_, ff_core_Path.Path_absolute(path_), ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String), ((_w1) => {
308
305
  return _w1.first_
309
306
  })), (() => {
@@ -313,8 +310,8 @@ return result_
313
310
  }))
314
311
  }
315
312
 
316
- export function ModuleCache_cacheEmittedModule(self_, packagePaths_, packagePair_, moduleName_, isMainModule_, body_) {
317
- const path_ = ff_compiler_ModuleCache.modulePath_(packagePaths_, packagePair_, moduleName_);
313
+ export function ModuleCache_cacheEmittedModule(self_, packagePaths_, moduleKey_, isMainModule_, body_) {
314
+ const path_ = ff_compiler_ModuleCache.modulePath_(packagePaths_, moduleKey_);
318
315
  if((isMainModule_ || (!ff_core_Map.Map_contains(self_.emittedModules_, ff_core_Path.Path_absolute(path_), ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String)))) {
319
316
  self_.emittedModules_ = ff_core_Map.Map_add(self_.emittedModules_, ff_core_Path.Path_absolute(path_), self_.version_, ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String);
320
317
  try {
@@ -340,14 +337,13 @@ export async function ModuleCache_invalidate$(self_, key_, $task) {
340
337
  ff_core_Option.Option_each(ff_core_Map.Map_get(self_.parsedModules_, key_, ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String), ((_1) => {
341
338
  {
342
339
  const module_ = _1.first_;
343
- const moduleName_ = ff_core_String.String_dropLast(module_.file_, 3);
344
340
  ff_compiler_ModuleCache.ModuleCache_remove(self_, [key_]);
345
341
  ff_core_Map.Map_each(self_.parsedModules_, ((_1, _2) => {
346
342
  {
347
343
  const k_ = _1;
348
344
  const m_ = _2.first_;
349
345
  if(ff_core_List.List_any(m_.imports_, ((i_) => {
350
- return (ff_compiler_Syntax.ff_core_Equal_Equal$ff_compiler_Syntax_PackagePair.equals_(i_.package_, module_.packagePair_) && (i_.file_ === moduleName_))
346
+ return ff_compiler_Syntax.ff_core_Equal_Equal$ff_compiler_Syntax_ModuleKey.equals_(i_.moduleKey_, module_.moduleKey_)
351
347
  }))) {
352
348
  ff_compiler_ModuleCache.ModuleCache_remove(self_, [k_])
353
349
  }
@@ -359,13 +355,13 @@ return
359
355
  }))
360
356
  }
361
357
 
362
- export async function ModuleCache_filesNotImporting$(self_, packagePair_, moduleName_, $task) {
358
+ export async function ModuleCache_filesNotImporting$(self_, moduleKey_, $task) {
363
359
  return ff_core_List.List_collect(ff_core_Map.Map_toList(self_.parsedModules_, ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String), ((_1) => {
364
360
  {
365
361
  const k_ = _1.first_;
366
362
  const m_ = _1.second_.first_;
367
363
  if((!ff_core_List.List_any(m_.imports_, ((i_) => {
368
- return (ff_compiler_Syntax.ff_core_Equal_Equal$ff_compiler_Syntax_PackagePair.equals_(i_.package_, packagePair_) && (i_.file_ === moduleName_))
364
+ return ff_compiler_Syntax.ff_core_Equal_Equal$ff_compiler_Syntax_ModuleKey.equals_(i_.moduleKey_, moduleKey_)
369
365
  })))) {
370
366
  return ff_core_Option.Some(k_)
371
367
  } else return ff_core_Option.None()
@@ -442,8 +438,8 @@ return _w1
442
438
  }))
443
439
  }
444
440
 
445
- export async function ModuleCache_cacheParsedModule$(self_, packagePaths_, packagePair_, moduleName_, body_, $task) {
446
- const path_ = (await ff_compiler_ModuleCache.modulePath_$(packagePaths_, packagePair_, moduleName_, $task));
441
+ export async function ModuleCache_cacheParsedModule$(self_, packagePaths_, moduleKey_, body_, $task) {
442
+ const path_ = (await ff_compiler_ModuleCache.modulePath_$(packagePaths_, moduleKey_, $task));
447
443
  return (await ff_core_Option.Option_else$(ff_core_Option.Option_map(ff_core_Map.Map_get(self_.parsedModules_, (await ff_core_Path.Path_absolute$(path_, $task)), ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String), ((_w1) => {
448
444
  return _w1.first_
449
445
  })), (async ($task) => {
@@ -453,8 +449,8 @@ return result_
453
449
  }), $task))
454
450
  }
455
451
 
456
- export async function ModuleCache_cacheResolvedModule$(self_, packagePaths_, packagePair_, moduleName_, body_, $task) {
457
- const path_ = (await ff_compiler_ModuleCache.modulePath_$(packagePaths_, packagePair_, moduleName_, $task));
452
+ export async function ModuleCache_cacheResolvedModule$(self_, packagePaths_, moduleKey_, body_, $task) {
453
+ const path_ = (await ff_compiler_ModuleCache.modulePath_$(packagePaths_, moduleKey_, $task));
458
454
  return (await ff_core_Option.Option_else$(ff_core_Option.Option_map(ff_core_Map.Map_get(self_.resolvedModules_, (await ff_core_Path.Path_absolute$(path_, $task)), ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String), ((_w1) => {
459
455
  return _w1.first_
460
456
  })), (async ($task) => {
@@ -464,8 +460,8 @@ return result_
464
460
  }), $task))
465
461
  }
466
462
 
467
- export async function ModuleCache_cacheDerivedModule$(self_, packagePaths_, packagePair_, moduleName_, body_, $task) {
468
- const path_ = (await ff_compiler_ModuleCache.modulePath_$(packagePaths_, packagePair_, moduleName_, $task));
463
+ export async function ModuleCache_cacheDerivedModule$(self_, packagePaths_, moduleKey_, body_, $task) {
464
+ const path_ = (await ff_compiler_ModuleCache.modulePath_$(packagePaths_, moduleKey_, $task));
469
465
  return (await ff_core_Option.Option_else$(ff_core_Option.Option_map(ff_core_Map.Map_get(self_.derivedModules_, (await ff_core_Path.Path_absolute$(path_, $task)), ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String), ((_w1) => {
470
466
  return _w1.first_
471
467
  })), (async ($task) => {
@@ -475,8 +471,8 @@ return result_
475
471
  }), $task))
476
472
  }
477
473
 
478
- export async function ModuleCache_cacheInferredModule$(self_, packagePaths_, packagePair_, moduleName_, body_, $task) {
479
- const path_ = (await ff_compiler_ModuleCache.modulePath_$(packagePaths_, packagePair_, moduleName_, $task));
474
+ export async function ModuleCache_cacheInferredModule$(self_, packagePaths_, moduleKey_, body_, $task) {
475
+ const path_ = (await ff_compiler_ModuleCache.modulePath_$(packagePaths_, moduleKey_, $task));
480
476
  return (await ff_core_Option.Option_else$(ff_core_Option.Option_map(ff_core_Map.Map_get(self_.inferredModules_, (await ff_core_Path.Path_absolute$(path_, $task)), ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String), ((_w1) => {
481
477
  return _w1.first_
482
478
  })), (async ($task) => {
@@ -486,8 +482,8 @@ return result_
486
482
  }), $task))
487
483
  }
488
484
 
489
- export async function ModuleCache_cacheEmittedModule$(self_, packagePaths_, packagePair_, moduleName_, isMainModule_, body_, $task) {
490
- const path_ = (await ff_compiler_ModuleCache.modulePath_$(packagePaths_, packagePair_, moduleName_, $task));
485
+ export async function ModuleCache_cacheEmittedModule$(self_, packagePaths_, moduleKey_, isMainModule_, body_, $task) {
486
+ const path_ = (await ff_compiler_ModuleCache.modulePath_$(packagePaths_, moduleKey_, $task));
491
487
  if((isMainModule_ || (!ff_core_Map.Map_contains(self_.emittedModules_, (await ff_core_Path.Path_absolute$(path_, $task)), ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String)))) {
492
488
  self_.emittedModules_ = ff_core_Map.Map_add(self_.emittedModules_, (await ff_core_Path.Path_absolute$(path_, $task)), self_.version_, ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String);
493
489
  try {
@@ -105,8 +105,8 @@ import * as ff_core_Try from "../../ff/core/Try.mjs"
105
105
  import * as ff_core_Unit from "../../ff/core/Unit.mjs"
106
106
 
107
107
  // type Parser
108
- export function Parser(packagePair_, file_, tokens_, end_, targetIsNode_, lspHook_, lspEmittedArgumentHook_, offset_, nextUnificationVariableIndex_) {
109
- return {packagePair_, file_, tokens_, end_, targetIsNode_, lspHook_, lspEmittedArgumentHook_, offset_, nextUnificationVariableIndex_};
108
+ export function Parser(moduleKey_, tokens_, end_, targetIsNode_, lspHook_, lspEmittedArgumentHook_, offset_, nextUnificationVariableIndex_) {
109
+ return {moduleKey_, tokens_, end_, targetIsNode_, lspHook_, lspEmittedArgumentHook_, offset_, nextUnificationVariableIndex_};
110
110
  }
111
111
 
112
112
  // type Poly
@@ -116,12 +116,12 @@ return {generics_, constraints_};
116
116
 
117
117
  export const binaryOperators_ = [["||"], ["&&"], ["!=", "==", "!==", "==="], ["<=", ">=", "<", ">"], ["+", "-"], ["*", "/", "%"], ["^"]];
118
118
 
119
- export function new_(packagePair_, file_, tokens_, targetIsNode_, lspHook_) {
120
- return ff_compiler_Parser.Parser(packagePair_, file_, tokens_, ff_core_List.List_grabLast(tokens_), targetIsNode_, lspHook_, false, 0, 1)
119
+ export function new_(moduleKey_, tokens_, targetIsNode_, lspHook_) {
120
+ return ff_compiler_Parser.Parser(moduleKey_, tokens_, ff_core_List.List_grabLast(tokens_), targetIsNode_, lspHook_, false, 0, 1)
121
121
  }
122
122
 
123
- export async function new_$(packagePair_, file_, tokens_, targetIsNode_, lspHook_, $task) {
124
- return ff_compiler_Parser.Parser(packagePair_, file_, tokens_, ff_core_List.List_grabLast(tokens_), targetIsNode_, lspHook_, false, 0, 1)
123
+ export async function new_$(moduleKey_, tokens_, targetIsNode_, lspHook_, $task) {
124
+ return ff_compiler_Parser.Parser(moduleKey_, tokens_, ff_core_List.List_grabLast(tokens_), targetIsNode_, lspHook_, false, 0, 1)
125
125
  }
126
126
 
127
127
  export function Parser_fail(self_, at_, message_) {
@@ -245,7 +245,7 @@ ff_compiler_Parser.Parser_skipSeparator(self_, ff_compiler_Token.LSemicolon())
245
245
  };
246
246
  return p_
247
247
  })()
248
- : ff_compiler_Syntax.DPackage(location_, self_.packagePair_, ff_compiler_Syntax.Version(location_, 0, 0, 0), ff_compiler_Syntax.TargetNames(self_.targetIsNode_, (!self_.targetIsNode_))));
248
+ : ff_compiler_Syntax.DPackage(location_, self_.moduleKey_.packagePair_, ff_compiler_Syntax.Version(location_, 0, 0, 0), ff_compiler_Syntax.TargetNames(self_.targetIsNode_, (!self_.targetIsNode_))));
249
249
  if((ff_compiler_Token.Token_is(ff_compiler_Parser.Parser_current(self_), ff_compiler_Token.LKeyword()) && ff_compiler_Token.Token_rawIs(ff_compiler_Parser.Parser_current(self_), "package"))) {
250
250
  throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Syntax.CompileError(ff_compiler_Token.Token_at(ff_compiler_Parser.Parser_current(self_)), "Duplicate package definition"), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError)})
251
251
  };
@@ -288,7 +288,7 @@ instances_.array.push(ff_compiler_Parser.Parser_parseInstanceDefinition(self_))
288
288
  } else if((ff_compiler_Token.Token_is(ff_compiler_Parser.Parser_current(self_), ff_compiler_Token.LKeyword()) && ff_compiler_Token.Token_rawIs4(ff_compiler_Parser.Parser_current(self_), "data", "class", "capability", "newtype"))) {
289
289
  types_.array.push(ff_compiler_Parser.Parser_parseTypeDefinition(self_))
290
290
  } else if((ff_compiler_Token.Token_is(ff_compiler_Parser.Parser_current(self_), ff_compiler_Token.LKeyword()) && ff_compiler_Token.Token_rawIs(ff_compiler_Parser.Parser_current(self_), "import"))) {
291
- imports_.array.push(ff_compiler_Parser.Parser_parseImportDefinition(self_, self_.packagePair_))
291
+ imports_.array.push(ff_compiler_Parser.Parser_parseImportDefinition(self_, self_.moduleKey_.packagePair_))
292
292
  } else if((ff_compiler_Token.Token_is(ff_compiler_Parser.Parser_current(self_), ff_compiler_Token.LKeyword()) && ff_compiler_Token.Token_rawIs(ff_compiler_Parser.Parser_current(self_), "include"))) {
293
293
  throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Syntax.CompileError(ff_compiler_Token.Token_at(ff_compiler_Parser.Parser_current(self_)), "Includes must be at the top of the file or below 'package'"), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError)})
294
294
  } else if((ff_compiler_Token.Token_is(ff_compiler_Parser.Parser_current(self_), ff_compiler_Token.LKeyword()) && ff_compiler_Token.Token_rawIs(ff_compiler_Parser.Parser_current(self_), "dependency"))) {
@@ -302,7 +302,7 @@ if((!ff_compiler_Token.Token_is(ff_compiler_Parser.Parser_current(self_), ff_com
302
302
  ff_compiler_Parser.Parser_skipSeparator(self_, ff_compiler_Token.LSemicolon())
303
303
  }
304
304
  };
305
- return ff_compiler_Syntax.Module(self_.file_, self_.packagePair_, ff_core_Array.Array_toList(imports_, 0, 9007199254740991), ff_core_Array.Array_toList(types_, 0, 9007199254740991), ff_core_Array.Array_toList(traits_, 0, 9007199254740991), ff_core_Array.Array_toList(instances_, 0, 9007199254740991), ff_core_Array.Array_toList(extends_, 0, 9007199254740991), ff_core_Array.Array_toList(lets_, 0, 9007199254740991), ff_core_Array.Array_toList(functions_, 0, 9007199254740991))
305
+ return ff_compiler_Syntax.Module(self_.moduleKey_, ff_core_Array.Array_toList(imports_, 0, 9007199254740991), ff_core_Array.Array_toList(types_, 0, 9007199254740991), ff_core_Array.Array_toList(traits_, 0, 9007199254740991), ff_core_Array.Array_toList(instances_, 0, 9007199254740991), ff_core_Array.Array_toList(extends_, 0, 9007199254740991), ff_core_Array.Array_toList(lets_, 0, 9007199254740991), ff_core_Array.Array_toList(functions_, 0, 9007199254740991))
306
306
  }
307
307
 
308
308
  export function Parser_parseLetDefinition(self_) {
@@ -592,7 +592,7 @@ const packageName_ = ff_compiler_Parser.Parser_parseDashedName(self_);
592
592
  return ff_compiler_Syntax.PackagePair(userName_, packageName_)
593
593
  })()
594
594
  : currentPackagePair_);
595
- return ff_compiler_Syntax.DImport(ff_compiler_Token.Token_at(fileToken_), alias_, packagePair_, ff_core_Array.Array_toList(path_, 0, 9007199254740991), ff_compiler_Token.Token_raw(fileToken_))
595
+ return ff_compiler_Syntax.DImport(ff_compiler_Token.Token_at(fileToken_), alias_, ff_compiler_Syntax.ModuleKey(packagePair_, ff_core_Array.Array_toList(path_, 0, 9007199254740991), ff_compiler_Token.Token_raw(fileToken_)))
596
596
  }
597
597
 
598
598
  export function Parser_parsePackageDefinition(self_) {
@@ -1749,7 +1749,7 @@ ff_compiler_Parser.Parser_skipSeparator(self_, ff_compiler_Token.LSemicolon())
1749
1749
  };
1750
1750
  return p_
1751
1751
  })())
1752
- : ff_compiler_Syntax.DPackage(location_, self_.packagePair_, ff_compiler_Syntax.Version(location_, 0, 0, 0), ff_compiler_Syntax.TargetNames(self_.targetIsNode_, (!self_.targetIsNode_))));
1752
+ : ff_compiler_Syntax.DPackage(location_, self_.moduleKey_.packagePair_, ff_compiler_Syntax.Version(location_, 0, 0, 0), ff_compiler_Syntax.TargetNames(self_.targetIsNode_, (!self_.targetIsNode_))));
1753
1753
  if((ff_compiler_Token.Token_is(ff_compiler_Parser.Parser_current(self_), ff_compiler_Token.LKeyword()) && ff_compiler_Token.Token_rawIs(ff_compiler_Parser.Parser_current(self_), "package"))) {
1754
1754
  throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Syntax.CompileError(ff_compiler_Token.Token_at(ff_compiler_Parser.Parser_current(self_)), "Duplicate package definition"), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError)})
1755
1755
  };
@@ -1792,7 +1792,7 @@ instances_.array.push(ff_compiler_Parser.Parser_parseInstanceDefinition(self_))
1792
1792
  } else if((ff_compiler_Token.Token_is(ff_compiler_Parser.Parser_current(self_), ff_compiler_Token.LKeyword()) && ff_compiler_Token.Token_rawIs4(ff_compiler_Parser.Parser_current(self_), "data", "class", "capability", "newtype"))) {
1793
1793
  types_.array.push(ff_compiler_Parser.Parser_parseTypeDefinition(self_))
1794
1794
  } else if((ff_compiler_Token.Token_is(ff_compiler_Parser.Parser_current(self_), ff_compiler_Token.LKeyword()) && ff_compiler_Token.Token_rawIs(ff_compiler_Parser.Parser_current(self_), "import"))) {
1795
- imports_.array.push(ff_compiler_Parser.Parser_parseImportDefinition(self_, self_.packagePair_))
1795
+ imports_.array.push(ff_compiler_Parser.Parser_parseImportDefinition(self_, self_.moduleKey_.packagePair_))
1796
1796
  } else if((ff_compiler_Token.Token_is(ff_compiler_Parser.Parser_current(self_), ff_compiler_Token.LKeyword()) && ff_compiler_Token.Token_rawIs(ff_compiler_Parser.Parser_current(self_), "include"))) {
1797
1797
  throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Syntax.CompileError(ff_compiler_Token.Token_at(ff_compiler_Parser.Parser_current(self_)), "Includes must be at the top of the file or below 'package'"), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError)})
1798
1798
  } else if((ff_compiler_Token.Token_is(ff_compiler_Parser.Parser_current(self_), ff_compiler_Token.LKeyword()) && ff_compiler_Token.Token_rawIs(ff_compiler_Parser.Parser_current(self_), "dependency"))) {
@@ -1806,7 +1806,7 @@ if((!ff_compiler_Token.Token_is(ff_compiler_Parser.Parser_current(self_), ff_com
1806
1806
  ff_compiler_Parser.Parser_skipSeparator(self_, ff_compiler_Token.LSemicolon())
1807
1807
  }
1808
1808
  };
1809
- return ff_compiler_Syntax.Module(self_.file_, self_.packagePair_, ff_core_Array.Array_toList(imports_, 0, 9007199254740991), ff_core_Array.Array_toList(types_, 0, 9007199254740991), ff_core_Array.Array_toList(traits_, 0, 9007199254740991), ff_core_Array.Array_toList(instances_, 0, 9007199254740991), ff_core_Array.Array_toList(extends_, 0, 9007199254740991), ff_core_Array.Array_toList(lets_, 0, 9007199254740991), ff_core_Array.Array_toList(functions_, 0, 9007199254740991))
1809
+ return ff_compiler_Syntax.Module(self_.moduleKey_, ff_core_Array.Array_toList(imports_, 0, 9007199254740991), ff_core_Array.Array_toList(types_, 0, 9007199254740991), ff_core_Array.Array_toList(traits_, 0, 9007199254740991), ff_core_Array.Array_toList(instances_, 0, 9007199254740991), ff_core_Array.Array_toList(extends_, 0, 9007199254740991), ff_core_Array.Array_toList(lets_, 0, 9007199254740991), ff_core_Array.Array_toList(functions_, 0, 9007199254740991))
1810
1810
  }
1811
1811
 
1812
1812
  export async function Parser_parseLetDefinition$(self_, $task) {
@@ -2096,7 +2096,7 @@ const packageName_ = ff_compiler_Parser.Parser_parseDashedName(self_);
2096
2096
  return ff_compiler_Syntax.PackagePair(userName_, packageName_)
2097
2097
  })())
2098
2098
  : currentPackagePair_);
2099
- return ff_compiler_Syntax.DImport(ff_compiler_Token.Token_at(fileToken_), alias_, packagePair_, ff_core_Array.Array_toList(path_, 0, 9007199254740991), ff_compiler_Token.Token_raw(fileToken_))
2099
+ return ff_compiler_Syntax.DImport(ff_compiler_Token.Token_at(fileToken_), alias_, ff_compiler_Syntax.ModuleKey(packagePair_, ff_core_Array.Array_toList(path_, 0, 9007199254740991), ff_compiler_Token.Token_raw(fileToken_)))
2100
2100
  }
2101
2101
 
2102
2102
  export async function Parser_parsePackageDefinition$(self_, $task) {
@@ -117,7 +117,7 @@ return {at_, name_, asBound_};
117
117
 
118
118
 
119
119
 
120
- export function new_(packagePair_, moduleName_, lspHook_) {
120
+ export function new_(lspHook_) {
121
121
  return ff_compiler_Resolver.Resolver(ff_core_List.List_toMap([], ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String), ff_core_List.List_toMap([], ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String), ff_core_List.List_toMap([], ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String), ff_core_List.List_toMap([], ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String), ff_core_List.List_toMap([], ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String), ff_core_List.List_toMap([], ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String), ff_core_List.List_toSet([], ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String), ff_core_List.List_toSet([], ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String), ff_core_List.List_toMap([], ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String), ff_core_List.List_toMap([], ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String), ff_compiler_Resolver.ResolverState(2), lspHook_)
122
122
  }
123
123
 
@@ -133,7 +133,7 @@ seen_ = ff_core_Map.Map_add(seen_, n_, item_, ff_core_Ordering.ff_core_Ordering_
133
133
  return items_
134
134
  }
135
135
 
136
- export async function new_$(packagePair_, moduleName_, lspHook_, $task) {
136
+ export async function new_$(lspHook_, $task) {
137
137
  return ff_compiler_Resolver.Resolver(ff_core_List.List_toMap([], ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String), ff_core_List.List_toMap([], ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String), ff_core_List.List_toMap([], ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String), ff_core_List.List_toMap([], ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String), ff_core_List.List_toMap([], ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String), ff_core_List.List_toMap([], ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String), ff_core_List.List_toSet([], ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String), ff_core_List.List_toSet([], ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String), ff_core_List.List_toMap([], ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String), ff_core_List.List_toMap([], ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String), ff_compiler_Resolver.ResolverState(2), lspHook_)
138
138
  }
139
139
 
@@ -156,16 +156,11 @@ return result_
156
156
  }
157
157
 
158
158
  export function Resolver_resolveModule(self_, module_, otherModules_) {
159
- const moduleNamespace_ = ff_core_String.String_takeWhile(ff_core_String.String_reverse(ff_core_String.String_takeWhile(ff_core_String.String_reverse(ff_core_String.String_replace(module_.file_, "\\", "/")), ((_w1) => {
160
- return (_w1 !== 47)
161
- }))), ((_w1) => {
162
- return (_w1 !== 46)
163
- }));
164
159
  const self2_ = ff_compiler_Resolver.Resolver_processImports(self_, module_.imports_, otherModules_);
165
160
  const self3_ = ff_compiler_Resolver.Resolver_processDefinitions(self2_, module_, ff_core_Option.None());
166
161
  const errors_ = ff_core_Array.new_();
167
162
  const module2_ = (((_c) => {
168
- return ff_compiler_Syntax.Module(_c.file_, _c.packagePair_, _c.imports_, ff_compiler_Syntax.catchManyInto_(errors_, module_.types_, ((_w1) => {
163
+ return ff_compiler_Syntax.Module(_c.moduleKey_, _c.imports_, ff_compiler_Syntax.catchManyInto_(errors_, module_.types_, ((_w1) => {
169
164
  return ff_compiler_Resolver.Resolver_resolveTypeDefinition(self3_, _w1)
170
165
  })), ff_compiler_Syntax.catchManyInto_(errors_, module_.traits_, ((_w1) => {
171
166
  return ff_compiler_Resolver.Resolver_resolveTraitDefinition(self3_, _w1)
@@ -269,7 +264,7 @@ for(let for_a = imports_, for_i = 0, for_l = for_a.length; for_i < for_l; for_i+
269
264
  const import_ = for_a[for_i];
270
265
  do {
271
266
  const _1 = ff_core_List.List_find(modules_, ((_w1) => {
272
- return (ff_core_String.String_dropLast(_w1.file_, 3) === import_.file_)
267
+ return ff_compiler_Syntax.ff_core_Equal_Equal$ff_compiler_Syntax_ModuleKey.equals_(_w1.moduleKey_, import_.moduleKey_)
273
268
  }));
274
269
  if(_1.Some) {
275
270
  const module_ = _1.value_;
@@ -277,7 +272,7 @@ resolver_ = ff_compiler_Resolver.Resolver_processDefinitions(resolver_, module_,
277
272
  break
278
273
  }
279
274
  {
280
- throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Syntax.CompileError(import_.at_, ("No such module: " + import_.file_)), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError)})
275
+ throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Syntax.CompileError(import_.at_, ("No such module: " + ff_compiler_Syntax.ModuleKey_importName(import_.moduleKey_))), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError)})
281
276
  }
282
277
  } while(false)
283
278
  };
@@ -286,7 +281,7 @@ return resolver_
286
281
 
287
282
  export function Resolver_processDefinitions(self_, module_, importAlias_) {
288
283
  function entry_(name_, unqualified_) {
289
- const full_ = ((((ff_compiler_Syntax.PackagePair_groupName(module_.packagePair_, ":") + "/") + ff_core_String.String_dropLast(module_.file_, 3)) + ".") + name_);
284
+ const full_ = ff_compiler_Syntax.ModuleKey_qualifiedSymbol(module_.moduleKey_, name_);
290
285
  {
291
286
  const _1 = importAlias_;
292
287
  if(_1.None) {
@@ -304,7 +299,7 @@ return [ff_core_Pair.Pair(((alias_ + ".") + name_), full_), ff_core_Pair.Pair(fu
304
299
  }
305
300
  }
306
301
  }
307
- const isCore_ = (((module_.packagePair_.group_ === "ff") && (module_.packagePair_.name_ === "core")) && (module_.file_ === "Core.ff"));
302
+ const isCore_ = ((((module_.moduleKey_.packagePair_.group_ === "ff") && (module_.moduleKey_.packagePair_.name_ === "core")) && ff_core_List.ff_core_Equal_Equal$ff_core_List_List(ff_core_Equal.ff_core_Equal_Equal$ff_core_String_String).equals_(module_.moduleKey_.folders_, [])) && (module_.moduleKey_.name_ === "Core"));
308
303
  const lets_ = ff_core_List.List_toMap(ff_core_List.List_flatMap(module_.lets_, ((_w1) => {
309
304
  return entry_(_w1.name_, isCore_)
310
305
  })), ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String);
@@ -1157,16 +1152,11 @@ return result_
1157
1152
  }
1158
1153
 
1159
1154
  export async function Resolver_resolveModule$(self_, module_, otherModules_, $task) {
1160
- const moduleNamespace_ = ff_core_String.String_takeWhile(ff_core_String.String_reverse(ff_core_String.String_takeWhile(ff_core_String.String_reverse(ff_core_String.String_replace(module_.file_, "\\", "/")), ((_w1) => {
1161
- return (_w1 !== 47)
1162
- }))), ((_w1) => {
1163
- return (_w1 !== 46)
1164
- }));
1165
1155
  const self2_ = ff_compiler_Resolver.Resolver_processImports(self_, module_.imports_, otherModules_);
1166
1156
  const self3_ = ff_compiler_Resolver.Resolver_processDefinitions(self2_, module_, ff_core_Option.None());
1167
1157
  const errors_ = ff_core_Array.new_();
1168
1158
  const module2_ = (((_c) => {
1169
- return ff_compiler_Syntax.Module(_c.file_, _c.packagePair_, _c.imports_, ff_compiler_Syntax.catchManyInto_(errors_, module_.types_, ((_w1) => {
1159
+ return ff_compiler_Syntax.Module(_c.moduleKey_, _c.imports_, ff_compiler_Syntax.catchManyInto_(errors_, module_.types_, ((_w1) => {
1170
1160
  return ff_compiler_Resolver.Resolver_resolveTypeDefinition(self3_, _w1)
1171
1161
  })), ff_compiler_Syntax.catchManyInto_(errors_, module_.traits_, ((_w1) => {
1172
1162
  return ff_compiler_Resolver.Resolver_resolveTraitDefinition(self3_, _w1)
@@ -1270,7 +1260,7 @@ for(let for_a = imports_, for_i = 0, for_l = for_a.length; for_i < for_l; for_i+
1270
1260
  const import_ = for_a[for_i];
1271
1261
  do {
1272
1262
  const _1 = ff_core_List.List_find(modules_, ((_w1) => {
1273
- return (ff_core_String.String_dropLast(_w1.file_, 3) === import_.file_)
1263
+ return ff_compiler_Syntax.ff_core_Equal_Equal$ff_compiler_Syntax_ModuleKey.equals_(_w1.moduleKey_, import_.moduleKey_)
1274
1264
  }));
1275
1265
  if(_1.Some) {
1276
1266
  const module_ = _1.value_;
@@ -1278,7 +1268,7 @@ resolver_ = ff_compiler_Resolver.Resolver_processDefinitions(resolver_, module_,
1278
1268
  break
1279
1269
  }
1280
1270
  {
1281
- throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Syntax.CompileError(import_.at_, ("No such module: " + import_.file_)), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError)})
1271
+ throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Syntax.CompileError(import_.at_, ("No such module: " + ff_compiler_Syntax.ModuleKey_importName(import_.moduleKey_))), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError)})
1282
1272
  }
1283
1273
  } while(false)
1284
1274
  };
@@ -1287,7 +1277,7 @@ return resolver_
1287
1277
 
1288
1278
  export async function Resolver_processDefinitions$(self_, module_, importAlias_, $task) {
1289
1279
  function entry_(name_, unqualified_) {
1290
- const full_ = ((((ff_compiler_Syntax.PackagePair_groupName(module_.packagePair_, ":") + "/") + ff_core_String.String_dropLast(module_.file_, 3)) + ".") + name_);
1280
+ const full_ = ff_compiler_Syntax.ModuleKey_qualifiedSymbol(module_.moduleKey_, name_);
1291
1281
  {
1292
1282
  const _1 = importAlias_;
1293
1283
  if(_1.None) {
@@ -1305,7 +1295,7 @@ return [ff_core_Pair.Pair(((alias_ + ".") + name_), full_), ff_core_Pair.Pair(fu
1305
1295
  }
1306
1296
  }
1307
1297
  }
1308
- const isCore_ = (((module_.packagePair_.group_ === "ff") && (module_.packagePair_.name_ === "core")) && (module_.file_ === "Core.ff"));
1298
+ const isCore_ = ((((module_.moduleKey_.packagePair_.group_ === "ff") && (module_.moduleKey_.packagePair_.name_ === "core")) && ff_core_List.ff_core_Equal_Equal$ff_core_List_List(ff_core_Equal.ff_core_Equal_Equal$ff_core_String_String).equals_(module_.moduleKey_.folders_, [])) && (module_.moduleKey_.name_ === "Core"));
1309
1299
  const lets_ = ff_core_List.List_toMap(ff_core_List.List_flatMap(module_.lets_, ((_w1) => {
1310
1300
  return entry_(_w1.name_, isCore_)
1311
1301
  })), ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String);
@@ -130,7 +130,7 @@ return ff_compiler_Substitution.Substitution_substituteInstanceDefinition(self_,
130
130
  const _1 = module_;
131
131
  {
132
132
  const _c = _1;
133
- return ff_compiler_Syntax.Module(_c.file_, _c.packagePair_, _c.imports_, _c.types_, _c.traits_, instances_, extends_, lets_, functions_)
133
+ return ff_compiler_Syntax.Module(_c.moduleKey_, _c.imports_, _c.types_, _c.traits_, instances_, extends_, lets_, functions_)
134
134
  }
135
135
  }
136
136
  }
@@ -567,7 +567,7 @@ return ff_compiler_Substitution.Substitution_substituteInstanceDefinition(self_,
567
567
  const _1 = module_;
568
568
  {
569
569
  const _c = _1;
570
- return ff_compiler_Syntax.Module(_c.file_, _c.packagePair_, _c.imports_, _c.types_, _c.traits_, instances_, extends_, lets_, functions_)
570
+ return ff_compiler_Syntax.Module(_c.moduleKey_, _c.imports_, _c.types_, _c.traits_, instances_, extends_, lets_, functions_)
571
571
  }
572
572
  }
573
573
  }