firefly-compiler 0.5.78 → 0.5.79

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 (82) hide show
  1. package/compiler/Builder.ff +1 -1
  2. package/compiler/JsEmitter.ff +11 -2
  3. package/compiler/Main.ff +6 -1
  4. package/core/Core.ff +4 -4
  5. package/core/Error.ff +7 -1
  6. package/core/Js.ff +13 -2
  7. package/fireflysite/Html.ff +15 -2
  8. package/output/js/ff/compiler/Builder.mjs +2 -3
  9. package/output/js/ff/compiler/Builder.mjs.map +2 -2
  10. package/output/js/ff/compiler/Compiler.mjs +8 -8
  11. package/output/js/ff/compiler/Compiler.mjs.map +1 -1
  12. package/output/js/ff/compiler/Dependencies.mjs +10 -10
  13. package/output/js/ff/compiler/Dependencies.mjs.map +1 -1
  14. package/output/js/ff/compiler/Deriver.mjs +2 -2
  15. package/output/js/ff/compiler/Deriver.mjs.map +1 -1
  16. package/output/js/ff/compiler/Dictionaries.mjs +4 -4
  17. package/output/js/ff/compiler/Dictionaries.mjs.map +1 -1
  18. package/output/js/ff/compiler/Environment.mjs +6 -6
  19. package/output/js/ff/compiler/Environment.mjs.map +1 -1
  20. package/output/js/ff/compiler/Inference.mjs +80 -80
  21. package/output/js/ff/compiler/Inference.mjs.map +1 -1
  22. package/output/js/ff/compiler/JsEmitter.mjs +60 -14
  23. package/output/js/ff/compiler/JsEmitter.mjs.map +2 -2
  24. package/output/js/ff/compiler/JsImporter.mjs +8 -8
  25. package/output/js/ff/compiler/JsImporter.mjs.map +1 -1
  26. package/output/js/ff/compiler/LspHook.mjs +4 -4
  27. package/output/js/ff/compiler/LspHook.mjs.map +1 -1
  28. package/output/js/ff/compiler/Main.mjs +42 -32
  29. package/output/js/ff/compiler/Main.mjs.map +7 -2
  30. package/output/js/ff/compiler/Parser.mjs +50 -50
  31. package/output/js/ff/compiler/Parser.mjs.map +1 -1
  32. package/output/js/ff/compiler/Patterns.mjs +6 -6
  33. package/output/js/ff/compiler/Patterns.mjs.map +1 -1
  34. package/output/js/ff/compiler/Resolver.mjs +32 -32
  35. package/output/js/ff/compiler/Resolver.mjs.map +1 -1
  36. package/output/js/ff/compiler/Syntax.mjs +74 -74
  37. package/output/js/ff/compiler/Syntax.mjs.map +1 -1
  38. package/output/js/ff/compiler/Token.mjs +4 -4
  39. package/output/js/ff/compiler/Token.mjs.map +1 -1
  40. package/output/js/ff/compiler/Tokenizer.mjs +4 -4
  41. package/output/js/ff/compiler/Tokenizer.mjs.map +1 -1
  42. package/output/js/ff/compiler/Unification.mjs +14 -14
  43. package/output/js/ff/compiler/Unification.mjs.map +1 -1
  44. package/output/js/ff/compiler/Workspace.mjs +4 -4
  45. package/output/js/ff/compiler/Workspace.mjs.map +1 -1
  46. package/output/js/ff/core/Array.mjs +10 -10
  47. package/output/js/ff/core/Array.mjs.map +1 -1
  48. package/output/js/ff/core/Buffer.mjs +4 -4
  49. package/output/js/ff/core/Buffer.mjs.map +1 -1
  50. package/output/js/ff/core/Core.mjs +4 -8
  51. package/output/js/ff/core/Core.mjs.map +4 -6
  52. package/output/js/ff/core/Error.mjs +32 -2
  53. package/output/js/ff/core/Error.mjs.map +15 -2
  54. package/output/js/ff/core/IntMap.mjs +2 -2
  55. package/output/js/ff/core/IntMap.mjs.map +1 -1
  56. package/output/js/ff/core/Js.mjs +20 -4
  57. package/output/js/ff/core/Js.mjs.map +8 -4
  58. package/output/js/ff/core/JsValue.mjs +20 -20
  59. package/output/js/ff/core/JsValue.mjs.map +1 -1
  60. package/output/js/ff/core/Json.mjs +10 -10
  61. package/output/js/ff/core/Json.mjs.map +1 -1
  62. package/output/js/ff/core/List.mjs +4 -4
  63. package/output/js/ff/core/List.mjs.map +1 -1
  64. package/output/js/ff/core/Lock.mjs +4 -4
  65. package/output/js/ff/core/Lock.mjs.map +1 -1
  66. package/output/js/ff/core/NodeSystem.mjs +2 -2
  67. package/output/js/ff/core/NodeSystem.mjs.map +1 -1
  68. package/output/js/ff/core/Option.mjs +2 -2
  69. package/output/js/ff/core/Option.mjs.map +1 -1
  70. package/output/js/ff/core/Pair.mjs +2 -2
  71. package/output/js/ff/core/Pair.mjs.map +1 -1
  72. package/output/js/ff/core/Serializable.mjs +2 -2
  73. package/output/js/ff/core/Serializable.mjs.map +1 -1
  74. package/output/js/ff/core/String.mjs +10 -10
  75. package/output/js/ff/core/String.mjs.map +1 -1
  76. package/output/js/ff/core/StringMap.mjs +2 -2
  77. package/output/js/ff/core/StringMap.mjs.map +1 -1
  78. package/output/js/ff/core/Try.mjs +2 -2
  79. package/output/js/ff/core/Try.mjs.map +1 -1
  80. package/package.json +1 -2
  81. package/vscode/package.json +1 -1
  82. package/webserver/WebServer.ff +1 -1
@@ -114,7 +114,7 @@ return ff_compiler_Inference.Inference(ff_compiler_Unification.new_(modules_, ff
114
114
  }
115
115
 
116
116
  export function fail_(at_, message_) {
117
- throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(at_, message_), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
117
+ throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(at_, message_), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
118
118
  }
119
119
 
120
120
  export function core_(name_) {
@@ -143,7 +143,7 @@ return ff_compiler_Inference.Inference(ff_compiler_Unification.new_(modules_, ff
143
143
  }
144
144
 
145
145
  export async function fail_$(at_, message_, $task) {
146
- throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(at_, message_), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
146
+ throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(at_, message_), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
147
147
  }
148
148
 
149
149
  export async function core_$(name_, $task) {
@@ -198,9 +198,9 @@ break
198
198
  }
199
199
  {
200
200
  const allErrors_ = _1;
201
- throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileErrors(ff_core_List.List_map(allErrors_, ((_w1) => {
201
+ throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileErrors(ff_core_List.List_map(allErrors_, ((_w1) => {
202
202
  return _w1.first_
203
- }))), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileErrors, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileErrors)
203
+ }))), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileErrors, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileErrors)
204
204
  }
205
205
  } while(false);
206
206
  const result_ = (((_c) => {
@@ -228,10 +228,10 @@ const instances_ = ff_compiler_Inference.constraintsToInstances_(definition_.con
228
228
  return ff_compiler_Unification.Unification_withLocalInstances(self_.unification_, instances_, (() => {
229
229
  const traitName_ = definition_.traitName_;
230
230
  const traitDefinition_ = ff_core_Option.Option_else(ff_core_Map.Map_get(environment_.traits_, traitName_, ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String), (() => {
231
- throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(definition_.at_, ("No such trait: " + traitName_)), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
231
+ throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(definition_.at_, ("No such trait: " + traitName_)), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
232
232
  }));
233
233
  if((traitDefinition_.generics_.length !== definition_.typeArguments_.length)) {
234
- throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(definition_.at_, ((((("Wrong number of type arguments for " + traitName_) + ", expected ") + (traitDefinition_.generics_.length - 1)) + ", got ") + (definition_.typeArguments_.length - 1))), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
234
+ throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(definition_.at_, ((((("Wrong number of type arguments for " + traitName_) + ", expected ") + (traitDefinition_.generics_.length - 1)) + ", got ") + (definition_.typeArguments_.length - 1))), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
235
235
  };
236
236
  const instantiationMap_ = ff_core_List.List_toMap(ff_core_List.List_zip(traitDefinition_.generics_, definition_.typeArguments_), ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String);
237
237
  for(let for_a = traitDefinition_.methods_, for_i = 0, for_l = for_a.length; for_i < for_l; for_i++) {
@@ -240,11 +240,11 @@ const found_ = ff_core_List.List_filter(definition_.methods_, ((_w1) => {
240
240
  return (_w1.signature_.name_ === traitMethod_.name_)
241
241
  }));
242
242
  if(ff_core_List.List_isEmpty(found_)) {
243
- throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(definition_.at_, ("Missing instance method: " + traitMethod_.name_)), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
243
+ throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(definition_.at_, ("Missing instance method: " + traitMethod_.name_)), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
244
244
  };
245
245
  for(let for_a = found_, for_i = 1, for_l = for_a.length; for_i < for_l; for_i++) {
246
246
  const duplicateMethod_ = for_a[for_i];
247
- throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(duplicateMethod_.at_, ("Duplicated instance method: " + traitMethod_.name_)), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
247
+ throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(duplicateMethod_.at_, ("Duplicated instance method: " + traitMethod_.name_)), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
248
248
  }
249
249
  };
250
250
  {
@@ -257,7 +257,7 @@ const traitMethodName_ = (ff_core_String.String_reverse(ff_core_String.String_dr
257
257
  return (_w1 !== 46)
258
258
  }))) + methodName_);
259
259
  const traitMethodScheme_ = ff_core_Option.Option_else(ff_core_Map.Map_get(environment_.symbols_, traitMethodName_, ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String), (() => {
260
- throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(instanceFunction_.at_, ((("Trait " + traitName_) + " has no such method: ") + methodName_)), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
260
+ throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(instanceFunction_.at_, ((("Trait " + traitName_) + " has no such method: ") + methodName_)), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
261
261
  }));
262
262
  const parameters_ = ff_core_List.List_map(traitMethodScheme_.signature_.parameters_, ((p_) => {
263
263
  {
@@ -271,11 +271,11 @@ return ff_compiler_Syntax.Parameter(_c.at_, _c.mutable_, _c.name_, ff_compiler_U
271
271
  const returnType_ = ff_compiler_Unification.Unification_instantiate(self_.unification_, instantiationMap_, traitMethodScheme_.signature_.returnType_);
272
272
  for(let for_a = instanceFunction_.signature_.parameters_, for_i = Math.max(parameters_.length, 0), for_l = for_a.length; for_i < for_l; for_i++) {
273
273
  const instanceParameter_ = for_a[for_i];
274
- throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(instanceParameter_.at_, ("Unexpected parameter: " + instanceParameter_.name_)), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
274
+ throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(instanceParameter_.at_, ("Unexpected parameter: " + instanceParameter_.name_)), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
275
275
  };
276
276
  for(let for_a = parameters_, for_i = Math.max(instanceFunction_.signature_.parameters_.length, 0), for_l = for_a.length; for_i < for_l; for_i++) {
277
277
  const traitParameter_ = for_a[for_i];
278
- throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(instanceFunction_.at_, ("Missing parameter: " + traitParameter_.name_)), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
278
+ throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(instanceFunction_.at_, ("Missing parameter: " + traitParameter_.name_)), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
279
279
  };
280
280
  for(let for_a = parameters_, for_i = 0, for_l = for_a.length, for_a2 = instanceFunction_.signature_.parameters_, for_i2 = 0, for_l2 = for_a2.length; for_i < for_l && for_i2 < for_l2; for_i++, for_i2++) {
281
281
  const traitParameter_ = for_a[for_i];
@@ -542,10 +542,10 @@ const name_ = _1.name_;
542
542
  const variableAt_ = _1.variableAt_;
543
543
  const variableOption_ = _1.variable_;
544
544
  const instantiated_ = ff_core_Option.Option_else(ff_compiler_Inference.Inference_lookup(self_, environment_, expected_, at_, name_, [], ff_core_Option.None()), (() => {
545
- throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(at_, ("No such variant: " + name_)), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
545
+ throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(at_, ("No such variant: " + name_)), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
546
546
  }));
547
547
  if(instantiated_.scheme_.isNewtype_) {
548
- throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(at_, "This kind of pattern is not allowed for newtypes"), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
548
+ throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(at_, "This kind of pattern is not allowed for newtypes"), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
549
549
  };
550
550
  ff_compiler_Unification.Unification_unify(self_.unification_, at_, expected_, instantiated_.scheme_.signature_.returnType_);
551
551
  const parameters_ = ff_core_List.List_sortBy(instantiated_.scheme_.signature_.parameters_, ((_w1) => {
@@ -609,11 +609,11 @@ const at_ = _1.at_;
609
609
  const name_ = _1.name_;
610
610
  const patterns_ = _1.patterns_;
611
611
  const instantiated_ = ff_core_Option.Option_else(ff_compiler_Inference.Inference_lookup(self_, environment_, expected_, at_, name_, [], ff_core_Option.None()), (() => {
612
- throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(at_, ("No such variant: " + name_)), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
612
+ throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(at_, ("No such variant: " + name_)), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
613
613
  }));
614
614
  ff_compiler_Unification.Unification_unify(self_.unification_, at_, expected_, instantiated_.scheme_.signature_.returnType_);
615
615
  if(((patterns_.length !== instantiated_.scheme_.signature_.parameters_.length) && (!ff_compiler_LspHook.LspHook_isEnabled(self_.lspHook_)))) {
616
- throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(at_, (((("Wrong number of subpatterns, expected " + instantiated_.scheme_.signature_.parameters_.length) + ", got ") + patterns_.length) + ".")), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
616
+ throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(at_, (((("Wrong number of subpatterns, expected " + instantiated_.scheme_.signature_.parameters_.length) + ", got ") + patterns_.length) + ".")), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
617
617
  };
618
618
  return ff_core_List.List_foldLeft(ff_core_List.List_map(ff_core_List.List_zip(patterns_, instantiated_.scheme_.signature_.parameters_), ((_1) => {
619
619
  {
@@ -665,7 +665,7 @@ return term_
665
665
  return ff_compiler_Inference.Inference_inferEtaExpansion(self_, environment_, expected_, e_.at_, instantiated_.scheme_.signature_, term_)
666
666
  }
667
667
  })), (() => {
668
- throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(e_.at_, ("Symbol not in scope: " + e_.name_)), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
668
+ throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(e_.at_, ("Symbol not in scope: " + e_.name_)), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
669
669
  }))
670
670
  return
671
671
  }
@@ -726,7 +726,7 @@ return ff_compiler_LspHook.LspHook_isEnabled(self_.lspHook_)
726
726
  }), (() => {
727
727
  return term_
728
728
  })), (() => {
729
- throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(e_.at_, ((("No such field " + e_.field_) + " on type: ") + ff_compiler_Syntax.Type_show(t_, []))), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
729
+ throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(e_.at_, ((("No such field " + e_.field_) + " on type: ") + ff_compiler_Syntax.Type_show(t_, []))), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
730
730
  }))
731
731
  return
732
732
  }
@@ -762,7 +762,7 @@ return ff_compiler_Syntax.EField(_c.at_, instantiated_.scheme_.isNewtype_, recor
762
762
  return
763
763
  }
764
764
  {
765
- throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(e_.at_, ((("No such field " + e_.field_) + " on type: ") + ff_compiler_Syntax.Type_show(t_, []))), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
765
+ throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(e_.at_, ((("No such field " + e_.field_) + " on type: ") + ff_compiler_Syntax.Type_show(t_, []))), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
766
766
  }
767
767
  }
768
768
  return
@@ -772,7 +772,7 @@ return term_
772
772
  }
773
773
  {
774
774
  const index_ = _1.index_;
775
- throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(e_.at_, ((("No such field " + e_.field_) + " on unknown type: $") + index_)), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
775
+ throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(e_.at_, ((("No such field " + e_.field_) + " on unknown type: $") + index_)), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
776
776
  }
777
777
  }
778
778
  return
@@ -1018,7 +1018,7 @@ return ff_compiler_Syntax.ELambda(at_, lambda_)
1018
1018
  if(_1.EVariant) {
1019
1019
  const e_ = _1;
1020
1020
  const instantiated_ = ff_core_Option.Option_else(ff_compiler_Inference.Inference_lookup(self_, environment_, expected_, e_.at_, e_.name_, e_.typeArguments_, e_.arguments_), (() => {
1021
- throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(e_.at_, ("Symbol not in scope: " + e_.name_)), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
1021
+ throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(e_.at_, ("Symbol not in scope: " + e_.name_)), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
1022
1022
  }));
1023
1023
  ff_compiler_Unification.Unification_unify(self_.unification_, e_.at_, expected_, instantiated_.scheme_.signature_.returnType_);
1024
1024
  const arguments_ = ff_core_Option.Option_map(e_.arguments_, ((_w1) => {
@@ -1039,7 +1039,7 @@ return
1039
1039
  if(_1.EVariantIs) {
1040
1040
  const e_ = _1;
1041
1041
  const instantiated_ = ff_core_Option.Option_else(ff_compiler_Inference.Inference_lookup(self_, environment_, expected_, e_.at_, e_.name_, e_.typeArguments_, ff_core_Option.None()), (() => {
1042
- throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(e_.at_, ("Symbol not in scope: " + e_.name_)), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
1042
+ throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(e_.at_, ("Symbol not in scope: " + e_.name_)), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
1043
1043
  }));
1044
1044
  const parameters_ = ff_core_List.List_sortBy(instantiated_.scheme_.signature_.parameters_, ((_w1) => {
1045
1045
  return _w1.name_
@@ -1066,10 +1066,10 @@ return
1066
1066
  if(_1.ECopy) {
1067
1067
  const e_ = _1;
1068
1068
  const scheme_ = ff_core_Option.Option_else(ff_compiler_Inference.Inference_lookup(self_, environment_, expected_, e_.at_, e_.name_, [], ff_core_Option.None()), (() => {
1069
- throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(e_.at_, ("Symbol not in scope: " + e_.name_)), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
1069
+ throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(e_.at_, ("Symbol not in scope: " + e_.name_)), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
1070
1070
  })).scheme_;
1071
1071
  if(scheme_.isNewtype_) {
1072
- throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(e_.at_, "Newtypes can't be copied"), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
1072
+ throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(e_.at_, "Newtypes can't be copied"), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
1073
1073
  };
1074
1074
  const signature_ = scheme_.signature_;
1075
1075
  if(ff_compiler_LspHook.LspHook_isEnabled(self_.lspHook_)) {
@@ -1107,7 +1107,7 @@ return (_w1 === a_.name_)
1107
1107
  const at_ = _1.at_;
1108
1108
  const name_ = _1.name_;
1109
1109
  const value_ = _1.value_;
1110
- throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(at_, ("Unknown parameter: " + name_)), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
1110
+ throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(at_, ("Unknown parameter: " + name_)), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
1111
1111
  }
1112
1112
  }));
1113
1113
  const arguments_ = ff_core_List.List_map(parameterNames_, ((name_) => {
@@ -1195,7 +1195,7 @@ return ff_compiler_Inference.Inference_inferFunctionCall(self_, environment_, ex
1195
1195
  return
1196
1196
  }
1197
1197
  {
1198
- throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(variableAt_, ("No such function: " + x_)), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
1198
+ throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(variableAt_, ("No such function: " + x_)), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
1199
1199
  }
1200
1200
  }
1201
1201
  }
@@ -1241,7 +1241,7 @@ const instantiated_ = _1.value_;
1241
1241
  return ff_compiler_Inference.Inference_inferLambdaCall(self_, environment_, expected_, e2_)
1242
1242
  }
1243
1243
  {
1244
- throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(f_.at_, ((("No such field " + f_.field_) + " on type: ") + ff_compiler_Syntax.Type_show(t_, []))), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
1244
+ throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(f_.at_, ((("No such field " + f_.field_) + " on type: ") + ff_compiler_Syntax.Type_show(t_, []))), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
1245
1245
  }
1246
1246
  }
1247
1247
  return
@@ -1251,7 +1251,7 @@ return ff_compiler_Inference.Inference_inferLambdaCall(self_, environment_, expe
1251
1251
  }
1252
1252
  {
1253
1253
  const index_ = _1.index_;
1254
- throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(f_.at_, ((("No such field " + f_.field_) + " on unknown type: $") + index_)), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
1254
+ throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(f_.at_, ((("No such field " + f_.field_) + " on unknown type: $") + index_)), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
1255
1255
  }
1256
1256
  }
1257
1257
  return
@@ -1328,10 +1328,10 @@ return ff_compiler_Syntax.EAssign(_c.at_, _c.operator_, _c.variable_, value_)
1328
1328
  }
1329
1329
  }
1330
1330
  } else {
1331
- throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(e_.at_, ("Symbol is not mutable: " + e_.variable_)), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
1331
+ throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(e_.at_, ("Symbol is not mutable: " + e_.variable_)), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
1332
1332
  }
1333
1333
  })), (() => {
1334
- throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(e_.at_, ("Symbol not in scope: " + e_.variable_)), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
1334
+ throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(e_.at_, ("Symbol not in scope: " + e_.variable_)), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
1335
1335
  }))
1336
1336
  return
1337
1337
  }
@@ -1346,7 +1346,7 @@ const t_ = _1;
1346
1346
  const name_ = _1.name_;
1347
1347
  const typeArguments_ = _1.generics_;
1348
1348
  if(ff_core_String.String_startsWith(name_, "Record$", 0)) {
1349
- throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(e_.at_, ("Can't assign fields of anonymous records: " + e_.field_)), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
1349
+ throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(e_.at_, ("Can't assign fields of anonymous records: " + e_.field_)), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
1350
1350
  }
1351
1351
  }
1352
1352
  if(_1.TConstructor) {
@@ -1372,10 +1372,10 @@ return
1372
1372
  }
1373
1373
  if(_1.Some) {
1374
1374
  const instantiated_ = _1.value_;
1375
- throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(e_.at_, ((("Can't assign an immutable field " + e_.field_) + " on type: ") + ff_compiler_Syntax.Type_show(t_, []))), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
1375
+ throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(e_.at_, ((("Can't assign an immutable field " + e_.field_) + " on type: ") + ff_compiler_Syntax.Type_show(t_, []))), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
1376
1376
  }
1377
1377
  {
1378
- throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(e_.at_, ((("No such field " + e_.field_) + " on type: ") + ff_compiler_Syntax.Type_show(t_, []))), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
1378
+ throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(e_.at_, ((("No such field " + e_.field_) + " on type: ") + ff_compiler_Syntax.Type_show(t_, []))), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
1379
1379
  }
1380
1380
  }
1381
1381
  return
@@ -1385,7 +1385,7 @@ return term_
1385
1385
  }
1386
1386
  {
1387
1387
  const index_ = _1.index_;
1388
- throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(e_.at_, ((("No such field " + e_.field_) + " on unknown type: $") + index_)), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
1388
+ throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(e_.at_, ((("No such field " + e_.field_) + " on unknown type: $") + index_)), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
1389
1389
  }
1390
1390
  }
1391
1391
  return
@@ -1411,7 +1411,7 @@ ff_compiler_Unification.Unification_unify(self_.unification_, at_, t_, ff_compil
1411
1411
  }
1412
1412
  } while(false)
1413
1413
  } else if((operator_ !== "")) {
1414
- throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(at_, (("Only +=, -=, *=, /= and = assignments are supported. Got: " + operator_) + "=")), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
1414
+ throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(at_, (("Only +=, -=, *=, /= and = assignments are supported. Got: " + operator_) + "=")), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
1415
1415
  } else {};
1416
1416
  ff_compiler_Unification.Unification_unify(self_.unification_, at_, expected_, ff_compiler_Syntax.TConstructor(at_, ff_compiler_Inference.core_("Unit"), []));
1417
1417
  return newValue_
@@ -1525,7 +1525,7 @@ return
1525
1525
  }
1526
1526
  }
1527
1527
  if(_1.DynamicCall) {
1528
- throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(e_.at_, "Tailcalls not supported on lambda functions"), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
1528
+ throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(e_.at_, "Tailcalls not supported on lambda functions"), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
1529
1529
  }
1530
1530
  {
1531
1531
  return ff_compiler_Inference.fail_(e_.at_, "Internal error: Static calls not expected in inferLambdaCall")
@@ -1545,7 +1545,7 @@ const t_ = _1.second_;
1545
1545
  const if_o = argument_.name_
1546
1546
  if(if_o.Some) {
1547
1547
  const name_ = if_o.value_;
1548
- throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(argument_.at_, ("Named argument not allowed here: " + name_)), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
1548
+ throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(argument_.at_, ("Named argument not allowed here: " + name_)), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
1549
1549
  }
1550
1550
  };
1551
1551
  {
@@ -1562,7 +1562,7 @@ return
1562
1562
  const if_o = ff_core_List.List_first(e_.typeArguments_)
1563
1563
  if(if_o.Some) {
1564
1564
  const typeArgument_ = if_o.value_;
1565
- throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(typeArgument_.at_, "Type arguments not allowed here"), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
1565
+ throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(typeArgument_.at_, "Type arguments not allowed here"), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
1566
1566
  }
1567
1567
  };
1568
1568
  ff_compiler_Unification.Unification_affect(self_.unification_, term_.at_, effect_, environment_.effect_);
@@ -1637,7 +1637,7 @@ if(ff_compiler_LspHook.LspHook_isEnabled(self_.lspHook_)) {
1637
1637
  break
1638
1638
  }
1639
1639
  {
1640
- throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(e_.at_, "Operators on unknown types not currently supported"), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
1640
+ throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(e_.at_, "Operators on unknown types not currently supported"), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
1641
1641
  }
1642
1642
  } while(false);
1643
1643
  {
@@ -1838,10 +1838,10 @@ if(ff_compiler_LspHook.LspHook_isEnabled(self_.lspHook_)) {
1838
1838
  return
1839
1839
  }
1840
1840
  if(_1.Some && _2.Some) {
1841
- throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(e_.at_, "Operators on these types not currently supported"), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
1841
+ throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(e_.at_, "Operators on these types not currently supported"), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
1842
1842
  }
1843
1843
  {
1844
- throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(e_.at_, "Operators on unknown types not currently supported"), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
1844
+ throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(e_.at_, "Operators on unknown types not currently supported"), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
1845
1845
  }
1846
1846
  });
1847
1847
  chooseType_(magic_(t1_), magic_(t2_));
@@ -2027,7 +2027,7 @@ return (_w1 === "Q$")
2027
2027
  : typeArguments_);
2028
2028
  if(((scheme_.signature_.generics_.length !== newTypeArguments_.length) && (!ff_compiler_LspHook.LspHook_isEnabled(self_.lspHook_)))) {
2029
2029
  const extra_ = (newTypeArguments_.length - typeArguments_.length);
2030
- throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(at_, ((((("Wrong number of type arguments for " + symbol_) + ", expected ") + (scheme_.signature_.generics_.length - extra_)) + ", got ") + (newTypeArguments_.length - extra_))), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
2030
+ throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(at_, ((((("Wrong number of type arguments for " + symbol_) + ", expected ") + (scheme_.signature_.generics_.length - extra_)) + ", got ") + (newTypeArguments_.length - extra_))), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
2031
2031
  };
2032
2032
  return ff_core_List.List_zip(scheme_.signature_.generics_, newTypeArguments_)
2033
2033
  })()
@@ -2115,9 +2115,9 @@ break
2115
2115
  }
2116
2116
  {
2117
2117
  const allErrors_ = _1;
2118
- throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileErrors(ff_core_List.List_map(allErrors_, ((_w1) => {
2118
+ throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileErrors(ff_core_List.List_map(allErrors_, ((_w1) => {
2119
2119
  return _w1.first_
2120
- }))), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileErrors, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileErrors)
2120
+ }))), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileErrors, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileErrors)
2121
2121
  }
2122
2122
  } while(false);
2123
2123
  const result_ = (((_c) => {
@@ -2145,10 +2145,10 @@ const instances_ = ff_compiler_Inference.constraintsToInstances_(definition_.con
2145
2145
  return ff_compiler_Unification.Unification_withLocalInstances(self_.unification_, instances_, (() => {
2146
2146
  const traitName_ = definition_.traitName_;
2147
2147
  const traitDefinition_ = ff_core_Option.Option_else(ff_core_Map.Map_get(environment_.traits_, traitName_, ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String), (() => {
2148
- throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(definition_.at_, ("No such trait: " + traitName_)), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
2148
+ throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(definition_.at_, ("No such trait: " + traitName_)), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
2149
2149
  }));
2150
2150
  if((traitDefinition_.generics_.length !== definition_.typeArguments_.length)) {
2151
- throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(definition_.at_, ((((("Wrong number of type arguments for " + traitName_) + ", expected ") + (traitDefinition_.generics_.length - 1)) + ", got ") + (definition_.typeArguments_.length - 1))), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
2151
+ throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(definition_.at_, ((((("Wrong number of type arguments for " + traitName_) + ", expected ") + (traitDefinition_.generics_.length - 1)) + ", got ") + (definition_.typeArguments_.length - 1))), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
2152
2152
  };
2153
2153
  const instantiationMap_ = ff_core_List.List_toMap(ff_core_List.List_zip(traitDefinition_.generics_, definition_.typeArguments_), ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String);
2154
2154
  for(let for_a = traitDefinition_.methods_, for_i = 0, for_l = for_a.length; for_i < for_l; for_i++) {
@@ -2157,11 +2157,11 @@ const found_ = ff_core_List.List_filter(definition_.methods_, ((_w1) => {
2157
2157
  return (_w1.signature_.name_ === traitMethod_.name_)
2158
2158
  }));
2159
2159
  if(ff_core_List.List_isEmpty(found_)) {
2160
- throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(definition_.at_, ("Missing instance method: " + traitMethod_.name_)), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
2160
+ throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(definition_.at_, ("Missing instance method: " + traitMethod_.name_)), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
2161
2161
  };
2162
2162
  for(let for_a = found_, for_i = 1, for_l = for_a.length; for_i < for_l; for_i++) {
2163
2163
  const duplicateMethod_ = for_a[for_i];
2164
- throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(duplicateMethod_.at_, ("Duplicated instance method: " + traitMethod_.name_)), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
2164
+ throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(duplicateMethod_.at_, ("Duplicated instance method: " + traitMethod_.name_)), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
2165
2165
  }
2166
2166
  };
2167
2167
  {
@@ -2174,7 +2174,7 @@ const traitMethodName_ = (ff_core_String.String_reverse(ff_core_String.String_dr
2174
2174
  return (_w1 !== 46)
2175
2175
  }))) + methodName_);
2176
2176
  const traitMethodScheme_ = ff_core_Option.Option_else(ff_core_Map.Map_get(environment_.symbols_, traitMethodName_, ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String), (() => {
2177
- throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(instanceFunction_.at_, ((("Trait " + traitName_) + " has no such method: ") + methodName_)), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
2177
+ throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(instanceFunction_.at_, ((("Trait " + traitName_) + " has no such method: ") + methodName_)), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
2178
2178
  }));
2179
2179
  const parameters_ = ff_core_List.List_map(traitMethodScheme_.signature_.parameters_, ((p_) => {
2180
2180
  {
@@ -2188,11 +2188,11 @@ return ff_compiler_Syntax.Parameter(_c.at_, _c.mutable_, _c.name_, ff_compiler_U
2188
2188
  const returnType_ = ff_compiler_Unification.Unification_instantiate(self_.unification_, instantiationMap_, traitMethodScheme_.signature_.returnType_);
2189
2189
  for(let for_a = instanceFunction_.signature_.parameters_, for_i = Math.max(parameters_.length, 0), for_l = for_a.length; for_i < for_l; for_i++) {
2190
2190
  const instanceParameter_ = for_a[for_i];
2191
- throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(instanceParameter_.at_, ("Unexpected parameter: " + instanceParameter_.name_)), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
2191
+ throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(instanceParameter_.at_, ("Unexpected parameter: " + instanceParameter_.name_)), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
2192
2192
  };
2193
2193
  for(let for_a = parameters_, for_i = Math.max(instanceFunction_.signature_.parameters_.length, 0), for_l = for_a.length; for_i < for_l; for_i++) {
2194
2194
  const traitParameter_ = for_a[for_i];
2195
- throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(instanceFunction_.at_, ("Missing parameter: " + traitParameter_.name_)), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
2195
+ throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(instanceFunction_.at_, ("Missing parameter: " + traitParameter_.name_)), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
2196
2196
  };
2197
2197
  for(let for_a = parameters_, for_i = 0, for_l = for_a.length, for_a2 = instanceFunction_.signature_.parameters_, for_i2 = 0, for_l2 = for_a2.length; for_i < for_l && for_i2 < for_l2; for_i++, for_i2++) {
2198
2198
  const traitParameter_ = for_a[for_i];
@@ -2459,10 +2459,10 @@ const name_ = _1.name_;
2459
2459
  const variableAt_ = _1.variableAt_;
2460
2460
  const variableOption_ = _1.variable_;
2461
2461
  const instantiated_ = ff_core_Option.Option_else(ff_compiler_Inference.Inference_lookup(self_, environment_, expected_, at_, name_, [], ff_core_Option.None()), (() => {
2462
- throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(at_, ("No such variant: " + name_)), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
2462
+ throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(at_, ("No such variant: " + name_)), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
2463
2463
  }));
2464
2464
  if(instantiated_.scheme_.isNewtype_) {
2465
- throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(at_, "This kind of pattern is not allowed for newtypes"), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
2465
+ throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(at_, "This kind of pattern is not allowed for newtypes"), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
2466
2466
  };
2467
2467
  ff_compiler_Unification.Unification_unify(self_.unification_, at_, expected_, instantiated_.scheme_.signature_.returnType_);
2468
2468
  const parameters_ = ff_core_List.List_sortBy(instantiated_.scheme_.signature_.parameters_, ((_w1) => {
@@ -2526,11 +2526,11 @@ const at_ = _1.at_;
2526
2526
  const name_ = _1.name_;
2527
2527
  const patterns_ = _1.patterns_;
2528
2528
  const instantiated_ = ff_core_Option.Option_else(ff_compiler_Inference.Inference_lookup(self_, environment_, expected_, at_, name_, [], ff_core_Option.None()), (() => {
2529
- throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(at_, ("No such variant: " + name_)), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
2529
+ throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(at_, ("No such variant: " + name_)), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
2530
2530
  }));
2531
2531
  ff_compiler_Unification.Unification_unify(self_.unification_, at_, expected_, instantiated_.scheme_.signature_.returnType_);
2532
2532
  if(((patterns_.length !== instantiated_.scheme_.signature_.parameters_.length) && (!ff_compiler_LspHook.LspHook_isEnabled(self_.lspHook_)))) {
2533
- throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(at_, (((("Wrong number of subpatterns, expected " + instantiated_.scheme_.signature_.parameters_.length) + ", got ") + patterns_.length) + ".")), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
2533
+ throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(at_, (((("Wrong number of subpatterns, expected " + instantiated_.scheme_.signature_.parameters_.length) + ", got ") + patterns_.length) + ".")), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
2534
2534
  };
2535
2535
  return ff_core_List.List_foldLeft(ff_core_List.List_map(ff_core_List.List_zip(patterns_, instantiated_.scheme_.signature_.parameters_), ((_1) => {
2536
2536
  {
@@ -2582,7 +2582,7 @@ return term_
2582
2582
  return ff_compiler_Inference.Inference_inferEtaExpansion(self_, environment_, expected_, e_.at_, instantiated_.scheme_.signature_, term_)
2583
2583
  }
2584
2584
  })), (() => {
2585
- throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(e_.at_, ("Symbol not in scope: " + e_.name_)), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
2585
+ throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(e_.at_, ("Symbol not in scope: " + e_.name_)), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
2586
2586
  }))
2587
2587
  return
2588
2588
  }
@@ -2643,7 +2643,7 @@ return ff_compiler_LspHook.LspHook_isEnabled(self_.lspHook_)
2643
2643
  }), (() => {
2644
2644
  return term_
2645
2645
  })), (() => {
2646
- throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(e_.at_, ((("No such field " + e_.field_) + " on type: ") + ff_compiler_Syntax.Type_show(t_, []))), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
2646
+ throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(e_.at_, ((("No such field " + e_.field_) + " on type: ") + ff_compiler_Syntax.Type_show(t_, []))), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
2647
2647
  }))
2648
2648
  return
2649
2649
  }
@@ -2679,7 +2679,7 @@ return ff_compiler_Syntax.EField(_c.at_, instantiated_.scheme_.isNewtype_, recor
2679
2679
  return
2680
2680
  }
2681
2681
  {
2682
- throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(e_.at_, ((("No such field " + e_.field_) + " on type: ") + ff_compiler_Syntax.Type_show(t_, []))), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
2682
+ throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(e_.at_, ((("No such field " + e_.field_) + " on type: ") + ff_compiler_Syntax.Type_show(t_, []))), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
2683
2683
  }
2684
2684
  }
2685
2685
  return
@@ -2689,7 +2689,7 @@ return term_
2689
2689
  }
2690
2690
  {
2691
2691
  const index_ = _1.index_;
2692
- throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(e_.at_, ((("No such field " + e_.field_) + " on unknown type: $") + index_)), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
2692
+ throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(e_.at_, ((("No such field " + e_.field_) + " on unknown type: $") + index_)), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
2693
2693
  }
2694
2694
  }
2695
2695
  return
@@ -2935,7 +2935,7 @@ return ff_compiler_Syntax.ELambda(at_, lambda_)
2935
2935
  if(_1.EVariant) {
2936
2936
  const e_ = _1;
2937
2937
  const instantiated_ = ff_core_Option.Option_else(ff_compiler_Inference.Inference_lookup(self_, environment_, expected_, e_.at_, e_.name_, e_.typeArguments_, e_.arguments_), (() => {
2938
- throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(e_.at_, ("Symbol not in scope: " + e_.name_)), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
2938
+ throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(e_.at_, ("Symbol not in scope: " + e_.name_)), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
2939
2939
  }));
2940
2940
  ff_compiler_Unification.Unification_unify(self_.unification_, e_.at_, expected_, instantiated_.scheme_.signature_.returnType_);
2941
2941
  const arguments_ = ff_core_Option.Option_map(e_.arguments_, ((_w1) => {
@@ -2956,7 +2956,7 @@ return
2956
2956
  if(_1.EVariantIs) {
2957
2957
  const e_ = _1;
2958
2958
  const instantiated_ = ff_core_Option.Option_else(ff_compiler_Inference.Inference_lookup(self_, environment_, expected_, e_.at_, e_.name_, e_.typeArguments_, ff_core_Option.None()), (() => {
2959
- throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(e_.at_, ("Symbol not in scope: " + e_.name_)), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
2959
+ throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(e_.at_, ("Symbol not in scope: " + e_.name_)), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
2960
2960
  }));
2961
2961
  const parameters_ = ff_core_List.List_sortBy(instantiated_.scheme_.signature_.parameters_, ((_w1) => {
2962
2962
  return _w1.name_
@@ -2983,10 +2983,10 @@ return
2983
2983
  if(_1.ECopy) {
2984
2984
  const e_ = _1;
2985
2985
  const scheme_ = ff_core_Option.Option_else(ff_compiler_Inference.Inference_lookup(self_, environment_, expected_, e_.at_, e_.name_, [], ff_core_Option.None()), (() => {
2986
- throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(e_.at_, ("Symbol not in scope: " + e_.name_)), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
2986
+ throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(e_.at_, ("Symbol not in scope: " + e_.name_)), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
2987
2987
  })).scheme_;
2988
2988
  if(scheme_.isNewtype_) {
2989
- throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(e_.at_, "Newtypes can't be copied"), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
2989
+ throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(e_.at_, "Newtypes can't be copied"), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
2990
2990
  };
2991
2991
  const signature_ = scheme_.signature_;
2992
2992
  if(ff_compiler_LspHook.LspHook_isEnabled(self_.lspHook_)) {
@@ -3024,7 +3024,7 @@ return (_w1 === a_.name_)
3024
3024
  const at_ = _1.at_;
3025
3025
  const name_ = _1.name_;
3026
3026
  const value_ = _1.value_;
3027
- throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(at_, ("Unknown parameter: " + name_)), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
3027
+ throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(at_, ("Unknown parameter: " + name_)), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
3028
3028
  }
3029
3029
  }));
3030
3030
  const arguments_ = ff_core_List.List_map(parameterNames_, ((name_) => {
@@ -3112,7 +3112,7 @@ return ff_compiler_Inference.Inference_inferFunctionCall(self_, environment_, ex
3112
3112
  return
3113
3113
  }
3114
3114
  {
3115
- throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(variableAt_, ("No such function: " + x_)), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
3115
+ throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(variableAt_, ("No such function: " + x_)), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
3116
3116
  }
3117
3117
  }
3118
3118
  }
@@ -3158,7 +3158,7 @@ const instantiated_ = _1.value_;
3158
3158
  return ff_compiler_Inference.Inference_inferLambdaCall(self_, environment_, expected_, e2_)
3159
3159
  }
3160
3160
  {
3161
- throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(f_.at_, ((("No such field " + f_.field_) + " on type: ") + ff_compiler_Syntax.Type_show(t_, []))), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
3161
+ throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(f_.at_, ((("No such field " + f_.field_) + " on type: ") + ff_compiler_Syntax.Type_show(t_, []))), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
3162
3162
  }
3163
3163
  }
3164
3164
  return
@@ -3168,7 +3168,7 @@ return ff_compiler_Inference.Inference_inferLambdaCall(self_, environment_, expe
3168
3168
  }
3169
3169
  {
3170
3170
  const index_ = _1.index_;
3171
- throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(f_.at_, ((("No such field " + f_.field_) + " on unknown type: $") + index_)), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
3171
+ throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(f_.at_, ((("No such field " + f_.field_) + " on unknown type: $") + index_)), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
3172
3172
  }
3173
3173
  }
3174
3174
  return
@@ -3245,10 +3245,10 @@ return ff_compiler_Syntax.EAssign(_c.at_, _c.operator_, _c.variable_, value_)
3245
3245
  }
3246
3246
  }
3247
3247
  } else {
3248
- throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(e_.at_, ("Symbol is not mutable: " + e_.variable_)), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
3248
+ throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(e_.at_, ("Symbol is not mutable: " + e_.variable_)), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
3249
3249
  }
3250
3250
  })), (() => {
3251
- throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(e_.at_, ("Symbol not in scope: " + e_.variable_)), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
3251
+ throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(e_.at_, ("Symbol not in scope: " + e_.variable_)), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
3252
3252
  }))
3253
3253
  return
3254
3254
  }
@@ -3263,7 +3263,7 @@ const t_ = _1;
3263
3263
  const name_ = _1.name_;
3264
3264
  const typeArguments_ = _1.generics_;
3265
3265
  if(ff_core_String.String_startsWith(name_, "Record$", 0)) {
3266
- throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(e_.at_, ("Can't assign fields of anonymous records: " + e_.field_)), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
3266
+ throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(e_.at_, ("Can't assign fields of anonymous records: " + e_.field_)), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
3267
3267
  }
3268
3268
  }
3269
3269
  if(_1.TConstructor) {
@@ -3289,10 +3289,10 @@ return
3289
3289
  }
3290
3290
  if(_1.Some) {
3291
3291
  const instantiated_ = _1.value_;
3292
- throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(e_.at_, ((("Can't assign an immutable field " + e_.field_) + " on type: ") + ff_compiler_Syntax.Type_show(t_, []))), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
3292
+ throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(e_.at_, ((("Can't assign an immutable field " + e_.field_) + " on type: ") + ff_compiler_Syntax.Type_show(t_, []))), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
3293
3293
  }
3294
3294
  {
3295
- throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(e_.at_, ((("No such field " + e_.field_) + " on type: ") + ff_compiler_Syntax.Type_show(t_, []))), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
3295
+ throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(e_.at_, ((("No such field " + e_.field_) + " on type: ") + ff_compiler_Syntax.Type_show(t_, []))), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
3296
3296
  }
3297
3297
  }
3298
3298
  return
@@ -3302,7 +3302,7 @@ return term_
3302
3302
  }
3303
3303
  {
3304
3304
  const index_ = _1.index_;
3305
- throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(e_.at_, ((("No such field " + e_.field_) + " on unknown type: $") + index_)), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
3305
+ throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(e_.at_, ((("No such field " + e_.field_) + " on unknown type: $") + index_)), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
3306
3306
  }
3307
3307
  }
3308
3308
  return
@@ -3328,7 +3328,7 @@ ff_compiler_Unification.Unification_unify(self_.unification_, at_, t_, ff_compil
3328
3328
  }
3329
3329
  } while(false)
3330
3330
  } else if((operator_ !== "")) {
3331
- throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(at_, (("Only +=, -=, *=, /= and = assignments are supported. Got: " + operator_) + "=")), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
3331
+ throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(at_, (("Only +=, -=, *=, /= and = assignments are supported. Got: " + operator_) + "=")), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
3332
3332
  } else {};
3333
3333
  ff_compiler_Unification.Unification_unify(self_.unification_, at_, expected_, ff_compiler_Syntax.TConstructor(at_, ff_compiler_Inference.core_("Unit"), []));
3334
3334
  return newValue_
@@ -3442,7 +3442,7 @@ return
3442
3442
  }
3443
3443
  }
3444
3444
  if(_1.DynamicCall) {
3445
- throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(e_.at_, "Tailcalls not supported on lambda functions"), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
3445
+ throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(e_.at_, "Tailcalls not supported on lambda functions"), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
3446
3446
  }
3447
3447
  {
3448
3448
  return ff_compiler_Inference.fail_(e_.at_, "Internal error: Static calls not expected in inferLambdaCall")
@@ -3462,7 +3462,7 @@ const t_ = _1.second_;
3462
3462
  const if_o = argument_.name_
3463
3463
  if(if_o.Some) {
3464
3464
  const name_ = if_o.value_;
3465
- throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(argument_.at_, ("Named argument not allowed here: " + name_)), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
3465
+ throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(argument_.at_, ("Named argument not allowed here: " + name_)), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
3466
3466
  }
3467
3467
  };
3468
3468
  {
@@ -3479,7 +3479,7 @@ return
3479
3479
  const if_o = ff_core_List.List_first(e_.typeArguments_)
3480
3480
  if(if_o.Some) {
3481
3481
  const typeArgument_ = if_o.value_;
3482
- throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(typeArgument_.at_, "Type arguments not allowed here"), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
3482
+ throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(typeArgument_.at_, "Type arguments not allowed here"), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
3483
3483
  }
3484
3484
  };
3485
3485
  ff_compiler_Unification.Unification_affect(self_.unification_, term_.at_, effect_, environment_.effect_);
@@ -3554,7 +3554,7 @@ if(ff_compiler_LspHook.LspHook_isEnabled(self_.lspHook_)) {
3554
3554
  break
3555
3555
  }
3556
3556
  {
3557
- throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(e_.at_, "Operators on unknown types not currently supported"), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
3557
+ throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(e_.at_, "Operators on unknown types not currently supported"), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
3558
3558
  }
3559
3559
  } while(false);
3560
3560
  {
@@ -3755,10 +3755,10 @@ if(ff_compiler_LspHook.LspHook_isEnabled(self_.lspHook_)) {
3755
3755
  return
3756
3756
  }
3757
3757
  if(_1.Some && _2.Some) {
3758
- throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(e_.at_, "Operators on these types not currently supported"), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
3758
+ throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(e_.at_, "Operators on these types not currently supported"), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
3759
3759
  }
3760
3760
  {
3761
- throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(e_.at_, "Operators on unknown types not currently supported"), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
3761
+ throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(e_.at_, "Operators on unknown types not currently supported"), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
3762
3762
  }
3763
3763
  });
3764
3764
  chooseType_(magic_(t1_), magic_(t2_));
@@ -3944,7 +3944,7 @@ return (_w1 === "Q$")
3944
3944
  : typeArguments_);
3945
3945
  if(((scheme_.signature_.generics_.length !== newTypeArguments_.length) && (!ff_compiler_LspHook.LspHook_isEnabled(self_.lspHook_)))) {
3946
3946
  const extra_ = (newTypeArguments_.length - typeArguments_.length);
3947
- throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(at_, ((((("Wrong number of type arguments for " + symbol_) + ", expected ") + (scheme_.signature_.generics_.length - extra_)) + ", got ") + (newTypeArguments_.length - extra_))), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
3947
+ throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(at_, ((((("Wrong number of type arguments for " + symbol_) + ", expected ") + (scheme_.signature_.generics_.length - extra_)) + ", got ") + (newTypeArguments_.length - extra_))), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
3948
3948
  };
3949
3949
  return ff_core_List.List_zip(scheme_.signature_.generics_, newTypeArguments_)
3950
3950
  })()