firefly-compiler 0.4.20 → 0.4.21

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 (62) hide show
  1. package/compiler/Builder.ff +23 -13
  2. package/compiler/JsEmitter.ff +120 -76
  3. package/compiler/LspHook.ff +4 -2
  4. package/compiler/Main.ff +13 -7
  5. package/compiler/Resolver.ff +15 -15
  6. package/compiler/Syntax.ff +1 -0
  7. package/core/Array.ff +6 -4
  8. package/core/Int.ff +12 -12
  9. package/core/List.ff +6 -4
  10. package/experimental/benchmarks/ListGrab.ff +23 -0
  11. package/experimental/benchmarks/ListGrab.java +55 -0
  12. package/experimental/benchmarks/Pyrotek45.ff +30 -0
  13. package/experimental/benchmarks/Pyrotek45.java +64 -0
  14. package/experimental/tests/TestJson.ff +26 -0
  15. package/lsp/Handler.ff +55 -59
  16. package/lsp/SignatureHelpHandler.ff +5 -4
  17. package/lsp/TestReferences.ff +15 -0
  18. package/lsp/TestReferencesCase.ff +8 -0
  19. package/output/js/ff/compiler/Builder.mjs +50 -44
  20. package/output/js/ff/compiler/Dependencies.mjs +0 -2
  21. package/output/js/ff/compiler/Deriver.mjs +16 -140
  22. package/output/js/ff/compiler/Dictionaries.mjs +8 -222
  23. package/output/js/ff/compiler/Environment.mjs +12 -154
  24. package/output/js/ff/compiler/Inference.mjs +127 -1013
  25. package/output/js/ff/compiler/JsEmitter.mjs +434 -2344
  26. package/output/js/ff/compiler/JsImporter.mjs +0 -12
  27. package/output/js/ff/compiler/LspHook.mjs +20 -446
  28. package/output/js/ff/compiler/Main.mjs +96 -550
  29. package/output/js/ff/compiler/Parser.mjs +36 -356
  30. package/output/js/ff/compiler/Patterns.mjs +20 -200
  31. package/output/js/ff/compiler/Resolver.mjs +26 -340
  32. package/output/js/ff/compiler/Substitution.mjs +2 -160
  33. package/output/js/ff/compiler/Syntax.mjs +449 -3293
  34. package/output/js/ff/compiler/Token.mjs +9 -1095
  35. package/output/js/ff/compiler/Tokenizer.mjs +4 -2
  36. package/output/js/ff/compiler/Unification.mjs +26 -360
  37. package/output/js/ff/compiler/Wildcards.mjs +0 -86
  38. package/output/js/ff/compiler/Workspace.mjs +8 -96
  39. package/output/js/ff/core/Array.mjs +15 -8
  40. package/output/js/ff/core/AssetSystem.mjs +4 -14
  41. package/output/js/ff/core/Bool.mjs +0 -12
  42. package/output/js/ff/core/Core.mjs +0 -30
  43. package/output/js/ff/core/Int.mjs +24 -24
  44. package/output/js/ff/core/IntMap.mjs +0 -8
  45. package/output/js/ff/core/Json.mjs +0 -40
  46. package/output/js/ff/core/List.mjs +23 -32
  47. package/output/js/ff/core/Lock.mjs +0 -10
  48. package/output/js/ff/core/Map.mjs +0 -24
  49. package/output/js/ff/core/Option.mjs +10 -286
  50. package/output/js/ff/core/Ordering.mjs +16 -158
  51. package/output/js/ff/core/Pair.mjs +2 -34
  52. package/output/js/ff/core/Path.mjs +2 -28
  53. package/output/js/ff/core/Random.mjs +4 -4
  54. package/output/js/ff/core/RbMap.mjs +56 -644
  55. package/output/js/ff/core/Show.mjs +0 -16
  56. package/output/js/ff/core/Stream.mjs +14 -144
  57. package/output/js/ff/core/StringMap.mjs +0 -8
  58. package/output/js/ff/core/Try.mjs +4 -108
  59. package/output/js/ff/core/Unit.mjs +2 -16
  60. package/package.json +1 -1
  61. package/postgresql/Pg.ff +23 -23
  62. package/vscode/package.json +1 -1
@@ -143,12 +143,7 @@ return ff_compiler_Syntax.ForeignTarget(sync_, async_)
143
143
  })());
144
144
  {
145
145
  const _1 = foreignTarget_;
146
- {
147
- if(_1.ForeignTarget) {
148
- if(_1.syncCode_.None) {
149
- if(_1.asyncCode_.None) {
150
- const _guard1 = targetIsNode_;
151
- if(_guard1) {
146
+ if(_1.ForeignTarget && _1.syncCode_.None && _1.asyncCode_.None && targetIsNode_) {
152
147
  return ff_core_Option.Option_else(ff_core_Option.Option_map(ff_core_Option.Option_orElse(targets_.node_, (() => {
153
148
  return ff_core_Option.Option_orElse(targets_.js_, (() => {
154
149
  return body_
@@ -160,16 +155,7 @@ return foreignTarget_
160
155
  }))
161
156
  return
162
157
  }
163
- }
164
- }
165
- }
166
- }
167
- {
168
- if(_1.ForeignTarget) {
169
- if(_1.syncCode_.None) {
170
- if(_1.asyncCode_.None) {
171
- const _guard1 = (!targetIsNode_);
172
- if(_guard1) {
158
+ if(_1.ForeignTarget && _1.syncCode_.None && _1.asyncCode_.None && (!targetIsNode_)) {
173
159
  return ff_core_Option.Option_else(ff_core_Option.Option_map(ff_core_Option.Option_orElse(targets_.browser_, (() => {
174
160
  return ff_core_Option.Option_orElse(targets_.js_, (() => {
175
161
  return body_
@@ -181,13 +167,8 @@ return foreignTarget_
181
167
  }))
182
168
  return
183
169
  }
184
- }
185
- }
186
- }
187
- }
188
170
  {
189
171
  return foreignTarget_
190
- return
191
172
  }
192
173
  }
193
174
  }
@@ -218,12 +199,7 @@ return ff_compiler_Syntax.ForeignTarget(sync_, async_)
218
199
  })()));
219
200
  {
220
201
  const _1 = foreignTarget_;
221
- {
222
- if(_1.ForeignTarget) {
223
- if(_1.syncCode_.None) {
224
- if(_1.asyncCode_.None) {
225
- const _guard1 = targetIsNode_;
226
- if(_guard1) {
202
+ if(_1.ForeignTarget && _1.syncCode_.None && _1.asyncCode_.None && targetIsNode_) {
227
203
  return ff_core_Option.Option_else(ff_core_Option.Option_map(ff_core_Option.Option_orElse(targets_.node_, (() => {
228
204
  return ff_core_Option.Option_orElse(targets_.js_, (() => {
229
205
  return body_
@@ -235,16 +211,7 @@ return foreignTarget_
235
211
  }))
236
212
  return
237
213
  }
238
- }
239
- }
240
- }
241
- }
242
- {
243
- if(_1.ForeignTarget) {
244
- if(_1.syncCode_.None) {
245
- if(_1.asyncCode_.None) {
246
- const _guard1 = (!targetIsNode_);
247
- if(_guard1) {
214
+ if(_1.ForeignTarget && _1.syncCode_.None && _1.asyncCode_.None && (!targetIsNode_)) {
248
215
  return ff_core_Option.Option_else(ff_core_Option.Option_map(ff_core_Option.Option_orElse(targets_.browser_, (() => {
249
216
  return ff_core_Option.Option_orElse(targets_.js_, (() => {
250
217
  return body_
@@ -256,13 +223,8 @@ return foreignTarget_
256
223
  }))
257
224
  return
258
225
  }
259
- }
260
- }
261
- }
262
- }
263
226
  {
264
227
  return foreignTarget_
265
- return
266
228
  }
267
229
  }
268
230
  }
@@ -501,7 +463,6 @@ if(ff_compiler_Token.Token_rawIs(ff_compiler_Parser.Parser_current(self_), "{"))
501
463
  const lambda_ = ff_compiler_Parser.Parser_parseLambda(self_, parameterCount_, false, false);
502
464
  do {
503
465
  const _1 = target_;
504
- {
505
466
  if(_1 === "js") {
506
467
  if(ff_core_Equal.notEquals_(targets_.jsSync_, ff_core_Option.None(), ff_core_Option.ff_core_Equal_Equal$ff_core_Option_Option(ff_core_Equal.ff_core_Equal_Equal$ff_core_String_String))) {
507
468
  throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Syntax.CompileError(at_, "Duplicate target definition"), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError)})
@@ -511,8 +472,6 @@ return ff_compiler_Parser.ParsedTargets(ff_core_Option.Some(lambda_), _c.jsSync_
511
472
  }))(targets_)
512
473
  break
513
474
  }
514
- }
515
- {
516
475
  if(_1 === "browser") {
517
476
  if(ff_core_Equal.notEquals_(targets_.browserSync_, ff_core_Option.None(), ff_core_Option.ff_core_Equal_Equal$ff_core_Option_Option(ff_core_Equal.ff_core_Equal_Equal$ff_core_String_String))) {
518
477
  throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Syntax.CompileError(at_, "Duplicate target definition"), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError)})
@@ -522,8 +481,6 @@ return ff_compiler_Parser.ParsedTargets(_c.js_, _c.jsSync_, _c.jsAsync_, ff_core
522
481
  }))(targets_)
523
482
  break
524
483
  }
525
- }
526
- {
527
484
  if(_1 === "node") {
528
485
  if(ff_core_Equal.notEquals_(targets_.nodeAsync_, ff_core_Option.None(), ff_core_Option.ff_core_Equal_Equal$ff_core_Option_Option(ff_core_Equal.ff_core_Equal_Equal$ff_core_String_String))) {
529
486
  throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Syntax.CompileError(at_, "Duplicate target definition"), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError)})
@@ -533,10 +490,8 @@ return ff_compiler_Parser.ParsedTargets(_c.js_, _c.jsSync_, _c.jsAsync_, _c.brow
533
490
  }))(targets_)
534
491
  break
535
492
  }
536
- }
537
493
  {
538
494
  throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Syntax.CompileError(at_, "Unknown target"), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError)})
539
- break
540
495
  }
541
496
  } while(false)
542
497
  } else {
@@ -544,9 +499,7 @@ const mode_ = ff_compiler_Token.Token_raw(ff_compiler_Parser.Parser_skip(self_,
544
499
  const code_ = processCode_(ff_compiler_Token.Token_raw(ff_compiler_Parser.Parser_skip(self_, ff_compiler_Token.LString())));
545
500
  do {
546
501
  const _1 = ff_core_Pair.Pair(target_, mode_);
547
- {
548
- if(_1.first_ === "js") {
549
- if(_1.second_ === "sync") {
502
+ if(_1.first_ === "js" && _1.second_ === "sync") {
550
503
  if(ff_core_Equal.notEquals_(targets_.jsSync_, ff_core_Option.None(), ff_core_Option.ff_core_Equal_Equal$ff_core_Option_Option(ff_core_Equal.ff_core_Equal_Equal$ff_core_String_String))) {
551
504
  throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Syntax.CompileError(at_, "Duplicate target definition"), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError)})
552
505
  };
@@ -555,11 +508,7 @@ return ff_compiler_Parser.ParsedTargets(_c.js_, ff_core_Option.Some(code_), _c.j
555
508
  }))(targets_)
556
509
  break
557
510
  }
558
- }
559
- }
560
- {
561
- if(_1.first_ === "js") {
562
- if(_1.second_ === "async") {
511
+ if(_1.first_ === "js" && _1.second_ === "async") {
563
512
  if(ff_core_Equal.notEquals_(targets_.jsAsync_, ff_core_Option.None(), ff_core_Option.ff_core_Equal_Equal$ff_core_Option_Option(ff_core_Equal.ff_core_Equal_Equal$ff_core_String_String))) {
564
513
  throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Syntax.CompileError(at_, "Duplicate target definition"), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError)})
565
514
  };
@@ -568,11 +517,7 @@ return ff_compiler_Parser.ParsedTargets(_c.js_, _c.jsSync_, ff_core_Option.Some(
568
517
  }))(targets_)
569
518
  break
570
519
  }
571
- }
572
- }
573
- {
574
- if(_1.first_ === "browser") {
575
- if(_1.second_ === "sync") {
520
+ if(_1.first_ === "browser" && _1.second_ === "sync") {
576
521
  if(ff_core_Equal.notEquals_(targets_.browserSync_, ff_core_Option.None(), ff_core_Option.ff_core_Equal_Equal$ff_core_Option_Option(ff_core_Equal.ff_core_Equal_Equal$ff_core_String_String))) {
577
522
  throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Syntax.CompileError(at_, "Duplicate target definition"), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError)})
578
523
  };
@@ -581,11 +526,7 @@ return ff_compiler_Parser.ParsedTargets(_c.js_, _c.jsSync_, _c.jsAsync_, _c.brow
581
526
  }))(targets_)
582
527
  break
583
528
  }
584
- }
585
- }
586
- {
587
- if(_1.first_ === "browser") {
588
- if(_1.second_ === "async") {
529
+ if(_1.first_ === "browser" && _1.second_ === "async") {
589
530
  if(ff_core_Equal.notEquals_(targets_.browserAsync_, ff_core_Option.None(), ff_core_Option.ff_core_Equal_Equal$ff_core_Option_Option(ff_core_Equal.ff_core_Equal_Equal$ff_core_String_String))) {
590
531
  throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Syntax.CompileError(at_, "Duplicate target definition"), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError)})
591
532
  };
@@ -594,11 +535,7 @@ return ff_compiler_Parser.ParsedTargets(_c.js_, _c.jsSync_, _c.jsAsync_, _c.brow
594
535
  }))(targets_)
595
536
  break
596
537
  }
597
- }
598
- }
599
- {
600
- if(_1.first_ === "node") {
601
- if(_1.second_ === "sync") {
538
+ if(_1.first_ === "node" && _1.second_ === "sync") {
602
539
  if(ff_core_Equal.notEquals_(targets_.nodeSync_, ff_core_Option.None(), ff_core_Option.ff_core_Equal_Equal$ff_core_Option_Option(ff_core_Equal.ff_core_Equal_Equal$ff_core_String_String))) {
603
540
  throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Syntax.CompileError(at_, "Duplicate target definition"), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError)})
604
541
  };
@@ -607,11 +544,7 @@ return ff_compiler_Parser.ParsedTargets(_c.js_, _c.jsSync_, _c.jsAsync_, _c.brow
607
544
  }))(targets_)
608
545
  break
609
546
  }
610
- }
611
- }
612
- {
613
- if(_1.first_ === "node") {
614
- if(_1.second_ === "async") {
547
+ if(_1.first_ === "node" && _1.second_ === "async") {
615
548
  if(ff_core_Equal.notEquals_(targets_.nodeAsync_, ff_core_Option.None(), ff_core_Option.ff_core_Equal_Equal$ff_core_Option_Option(ff_core_Equal.ff_core_Equal_Equal$ff_core_String_String))) {
616
549
  throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Syntax.CompileError(at_, "Duplicate target definition"), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError)})
617
550
  };
@@ -620,11 +553,8 @@ return ff_compiler_Parser.ParsedTargets(_c.js_, _c.jsSync_, _c.jsAsync_, _c.brow
620
553
  }))(targets_)
621
554
  break
622
555
  }
623
- }
624
- }
625
556
  {
626
557
  throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Syntax.CompileError(at_, "Unknown target or mode"), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError)})
627
- break
628
558
  }
629
559
  } while(false)
630
560
  }
@@ -940,44 +870,27 @@ const token_ = (ff_compiler_Token.Token_is(ff_compiler_Parser.Parser_current(sel
940
870
  : ff_compiler_Parser.Parser_skip(self_, ff_compiler_Token.LKeyword()));
941
871
  do {
942
872
  const _1 = ff_compiler_Token.Token_raw(token_);
943
- {
944
- if(_1 === "node") {
945
- const _guard1 = targets_.node_;
946
- if(_guard1) {
873
+ if(_1 === "node" && targets_.node_) {
947
874
  throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Syntax.CompileError(ff_compiler_Token.Token_at(token_), "Duplicate target name"), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError)})
948
- break
949
875
  }
950
- }
951
- }
952
- {
953
876
  if(_1 === "node") {
954
877
  targets_ = (((_c) => {
955
878
  return ff_compiler_Syntax.TargetNames(true, _c.browser_)
956
879
  }))(targets_)
957
880
  break
958
881
  }
959
- }
960
- {
961
- if(_1 === "browser") {
962
- const _guard1 = targets_.browser_;
963
- if(_guard1) {
882
+ if(_1 === "browser" && targets_.browser_) {
964
883
  throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Syntax.CompileError(ff_compiler_Token.Token_at(token_), "Duplicate target name"), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError)})
965
- break
966
- }
967
- }
968
884
  }
969
- {
970
885
  if(_1 === "browser") {
971
886
  targets_ = (((_c) => {
972
887
  return ff_compiler_Syntax.TargetNames(_c.node_, true)
973
888
  }))(targets_)
974
889
  break
975
890
  }
976
- }
977
891
  {
978
892
  const t_ = _1;
979
893
  throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Syntax.CompileError(ff_compiler_Token.Token_at(token_), ("Unexpected target: " + t_)), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError)})
980
- break
981
894
  }
982
895
  } while(false)
983
896
  };
@@ -1443,24 +1356,17 @@ const operator_ = ff_core_String.String_dropLast(ff_compiler_Token.Token_raw(tok
1443
1356
  const value_ = ff_compiler_Parser.Parser_parseTerm(self_);
1444
1357
  {
1445
1358
  const _1 = term_;
1446
- {
1447
1359
  if(_1.EVariable) {
1448
1360
  const at_ = _1.at_;
1449
1361
  const name_ = _1.name_;
1450
1362
  return ff_compiler_Syntax.EAssign(at_, operator_, name_, value_)
1451
- return
1452
- }
1453
1363
  }
1454
- {
1455
1364
  if(_1.EField) {
1456
1365
  const e_ = _1;
1457
1366
  return ff_compiler_Syntax.EAssignField(e_.at_, operator_, e_.record_, e_.field_, value_)
1458
- return
1459
- }
1460
1367
  }
1461
1368
  {
1462
1369
  throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Syntax.CompileError(ff_compiler_Token.Token_at(token_), "Only variables and fields are assignable"), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError)})
1463
- return
1464
1370
  }
1465
1371
  }
1466
1372
  }
@@ -1542,7 +1448,7 @@ export function Parser_parseBinary(self_, level_) {
1542
1448
  if((level_ >= ff_core_List.List_size(ff_compiler_Parser.binaryOperators_))) {
1543
1449
  return ff_compiler_Parser.Parser_parseUnary(self_)
1544
1450
  } else {
1545
- const operators_ = ff_core_List.List_grab(ff_compiler_Parser.binaryOperators_, level_);
1451
+ const operators_ = (ff_compiler_Parser.binaryOperators_[level_] ?? ff_core_List.internalGrab_(ff_compiler_Parser.binaryOperators_, level_));
1546
1452
  let result_ = ff_compiler_Parser.Parser_parseBinary(self_, (level_ + 1));
1547
1453
  if(ff_compiler_Token.Token_is(ff_compiler_Parser.Parser_current(self_), ff_compiler_Token.LOperator())) {
1548
1454
  while(ff_core_List.List_any(operators_, ((value_) => {
@@ -1553,46 +1459,27 @@ const right_ = ff_compiler_Parser.Parser_parseBinary(self_, (level_ + 1));
1553
1459
  const arguments_ = [ff_compiler_Syntax.Argument(result_.at_, ff_core_Option.None(), result_), ff_compiler_Syntax.Argument(right_.at_, ff_core_Option.None(), right_)];
1554
1460
  const effect_ = ff_compiler_Parser.Parser_freshUnificationVariable(self_, ff_compiler_Token.Token_at(token_));
1555
1461
  const target_ = (((_1) => {
1556
- {
1557
1462
  if(_1 === "==") {
1558
1463
  return ff_compiler_Syntax.DynamicCall(ff_compiler_Syntax.EVariable(ff_compiler_Token.Token_at(token_), "ff:core/Equal.equals"), false)
1559
- return
1560
- }
1561
1464
  }
1562
- {
1563
1465
  if(_1 === "!=") {
1564
1466
  return ff_compiler_Syntax.DynamicCall(ff_compiler_Syntax.EVariable(ff_compiler_Token.Token_at(token_), "ff:core/Equal.notEquals"), false)
1565
- return
1566
1467
  }
1567
- }
1568
- {
1569
1468
  if(_1 === "<") {
1570
1469
  return ff_compiler_Syntax.DynamicCall(ff_compiler_Syntax.EVariable(ff_compiler_Token.Token_at(token_), "ff:core/Ordering.before"), false)
1571
- return
1572
- }
1573
1470
  }
1574
- {
1575
1471
  if(_1 === "<=") {
1576
1472
  return ff_compiler_Syntax.DynamicCall(ff_compiler_Syntax.EVariable(ff_compiler_Token.Token_at(token_), "ff:core/Ordering.notAfter"), false)
1577
- return
1578
1473
  }
1579
- }
1580
- {
1581
1474
  if(_1 === ">") {
1582
1475
  return ff_compiler_Syntax.DynamicCall(ff_compiler_Syntax.EVariable(ff_compiler_Token.Token_at(token_), "ff:core/Ordering.after"), false)
1583
- return
1584
- }
1585
1476
  }
1586
- {
1587
1477
  if(_1 === ">=") {
1588
1478
  return ff_compiler_Syntax.DynamicCall(ff_compiler_Syntax.EVariable(ff_compiler_Token.Token_at(token_), "ff:core/Ordering.notBefore"), false)
1589
- return
1590
- }
1591
1479
  }
1592
1480
  {
1593
1481
  const o_ = _1;
1594
1482
  return ff_compiler_Syntax.DynamicCall(ff_compiler_Syntax.EVariable(ff_compiler_Token.Token_at(token_), o_), false)
1595
- return
1596
1483
  }
1597
1484
  }))(ff_compiler_Token.Token_raw(token_));
1598
1485
  result_ = ff_compiler_Syntax.ECall(ff_compiler_Token.Token_at(token_), target_, effect_, [], arguments_, [])
@@ -1817,45 +1704,23 @@ return _w1.first_
1817
1704
 
1818
1705
  export function Parser_parseListPattern(self_) {
1819
1706
  function convertListPattern_(at_, items_) {
1820
- {
1821
1707
  const at_a = at_;
1822
1708
  const items_a = items_;
1823
- {
1824
1709
  if(items_a.length === 0) {
1825
1710
  return ff_compiler_Syntax.PVariant(at_, "List$Empty", [])
1826
- return
1827
1711
  }
1828
- }
1829
- {
1830
- if(items_a.length > 0) {
1712
+ if(items_a.length >= 1 && !items_a[0].second_) {
1831
1713
  const p_ = items_a[0].first_;
1832
- if(!items_a[0].second_) {
1833
1714
  const ps_ = items_a.slice(1);
1834
1715
  return ff_compiler_Syntax.PVariant(at_, "List$Link", [p_, convertListPattern_(at_, ps_)])
1835
- return
1836
- }
1837
1716
  }
1838
- }
1839
- {
1840
- if(items_a.length > 0) {
1717
+ if(items_a.length === 1 && items_a[0].second_) {
1841
1718
  const p_ = items_a[0].first_;
1842
- if(items_a[0].second_) {
1843
- if(items_a.length === 1) {
1844
1719
  return p_
1845
- return
1846
- }
1847
- }
1848
- }
1849
1720
  }
1850
- {
1851
- if(items_a.length > 0) {
1721
+ if(items_a.length >= 1 && items_a[0].second_) {
1852
1722
  const p_ = items_a[0].first_;
1853
- if(items_a[0].second_) {
1854
1723
  throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Syntax.CompileError(p_.at_, "Invalid pattern: ... is only allowed for the last element in a list"), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError)})
1855
- return
1856
- }
1857
- }
1858
- }
1859
1724
  }
1860
1725
  }
1861
1726
  const items_ = ff_core_Array.make_();
@@ -2128,7 +1993,6 @@ if(ff_compiler_Token.Token_rawIs(ff_compiler_Parser.Parser_current(self_), "{"))
2128
1993
  const lambda_ = ff_compiler_Parser.Parser_parseLambda(self_, parameterCount_, false, false);
2129
1994
  do {
2130
1995
  const _1 = target_;
2131
- {
2132
1996
  if(_1 === "js") {
2133
1997
  if(ff_core_Equal.notEquals_(targets_.jsSync_, ff_core_Option.None(), ff_core_Option.ff_core_Equal_Equal$ff_core_Option_Option(ff_core_Equal.ff_core_Equal_Equal$ff_core_String_String))) {
2134
1998
  throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Syntax.CompileError(at_, "Duplicate target definition"), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError)})
@@ -2138,8 +2002,6 @@ return ff_compiler_Parser.ParsedTargets(ff_core_Option.Some(lambda_), _c.jsSync_
2138
2002
  }))(targets_)
2139
2003
  break
2140
2004
  }
2141
- }
2142
- {
2143
2005
  if(_1 === "browser") {
2144
2006
  if(ff_core_Equal.notEquals_(targets_.browserSync_, ff_core_Option.None(), ff_core_Option.ff_core_Equal_Equal$ff_core_Option_Option(ff_core_Equal.ff_core_Equal_Equal$ff_core_String_String))) {
2145
2007
  throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Syntax.CompileError(at_, "Duplicate target definition"), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError)})
@@ -2149,8 +2011,6 @@ return ff_compiler_Parser.ParsedTargets(_c.js_, _c.jsSync_, _c.jsAsync_, ff_core
2149
2011
  }))(targets_)
2150
2012
  break
2151
2013
  }
2152
- }
2153
- {
2154
2014
  if(_1 === "node") {
2155
2015
  if(ff_core_Equal.notEquals_(targets_.nodeAsync_, ff_core_Option.None(), ff_core_Option.ff_core_Equal_Equal$ff_core_Option_Option(ff_core_Equal.ff_core_Equal_Equal$ff_core_String_String))) {
2156
2016
  throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Syntax.CompileError(at_, "Duplicate target definition"), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError)})
@@ -2160,10 +2020,8 @@ return ff_compiler_Parser.ParsedTargets(_c.js_, _c.jsSync_, _c.jsAsync_, _c.brow
2160
2020
  }))(targets_)
2161
2021
  break
2162
2022
  }
2163
- }
2164
2023
  {
2165
2024
  throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Syntax.CompileError(at_, "Unknown target"), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError)})
2166
- break
2167
2025
  }
2168
2026
  } while(false)
2169
2027
  } else {
@@ -2171,9 +2029,7 @@ const mode_ = ff_compiler_Token.Token_raw(ff_compiler_Parser.Parser_skip(self_,
2171
2029
  const code_ = processCode_(ff_compiler_Token.Token_raw(ff_compiler_Parser.Parser_skip(self_, ff_compiler_Token.LString())));
2172
2030
  do {
2173
2031
  const _1 = ff_core_Pair.Pair(target_, mode_);
2174
- {
2175
- if(_1.first_ === "js") {
2176
- if(_1.second_ === "sync") {
2032
+ if(_1.first_ === "js" && _1.second_ === "sync") {
2177
2033
  if(ff_core_Equal.notEquals_(targets_.jsSync_, ff_core_Option.None(), ff_core_Option.ff_core_Equal_Equal$ff_core_Option_Option(ff_core_Equal.ff_core_Equal_Equal$ff_core_String_String))) {
2178
2034
  throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Syntax.CompileError(at_, "Duplicate target definition"), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError)})
2179
2035
  };
@@ -2182,11 +2038,7 @@ return ff_compiler_Parser.ParsedTargets(_c.js_, ff_core_Option.Some(code_), _c.j
2182
2038
  }))(targets_)
2183
2039
  break
2184
2040
  }
2185
- }
2186
- }
2187
- {
2188
- if(_1.first_ === "js") {
2189
- if(_1.second_ === "async") {
2041
+ if(_1.first_ === "js" && _1.second_ === "async") {
2190
2042
  if(ff_core_Equal.notEquals_(targets_.jsAsync_, ff_core_Option.None(), ff_core_Option.ff_core_Equal_Equal$ff_core_Option_Option(ff_core_Equal.ff_core_Equal_Equal$ff_core_String_String))) {
2191
2043
  throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Syntax.CompileError(at_, "Duplicate target definition"), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError)})
2192
2044
  };
@@ -2195,11 +2047,7 @@ return ff_compiler_Parser.ParsedTargets(_c.js_, _c.jsSync_, ff_core_Option.Some(
2195
2047
  }))(targets_)
2196
2048
  break
2197
2049
  }
2198
- }
2199
- }
2200
- {
2201
- if(_1.first_ === "browser") {
2202
- if(_1.second_ === "sync") {
2050
+ if(_1.first_ === "browser" && _1.second_ === "sync") {
2203
2051
  if(ff_core_Equal.notEquals_(targets_.browserSync_, ff_core_Option.None(), ff_core_Option.ff_core_Equal_Equal$ff_core_Option_Option(ff_core_Equal.ff_core_Equal_Equal$ff_core_String_String))) {
2204
2052
  throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Syntax.CompileError(at_, "Duplicate target definition"), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError)})
2205
2053
  };
@@ -2208,11 +2056,7 @@ return ff_compiler_Parser.ParsedTargets(_c.js_, _c.jsSync_, _c.jsAsync_, _c.brow
2208
2056
  }))(targets_)
2209
2057
  break
2210
2058
  }
2211
- }
2212
- }
2213
- {
2214
- if(_1.first_ === "browser") {
2215
- if(_1.second_ === "async") {
2059
+ if(_1.first_ === "browser" && _1.second_ === "async") {
2216
2060
  if(ff_core_Equal.notEquals_(targets_.browserAsync_, ff_core_Option.None(), ff_core_Option.ff_core_Equal_Equal$ff_core_Option_Option(ff_core_Equal.ff_core_Equal_Equal$ff_core_String_String))) {
2217
2061
  throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Syntax.CompileError(at_, "Duplicate target definition"), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError)})
2218
2062
  };
@@ -2221,11 +2065,7 @@ return ff_compiler_Parser.ParsedTargets(_c.js_, _c.jsSync_, _c.jsAsync_, _c.brow
2221
2065
  }))(targets_)
2222
2066
  break
2223
2067
  }
2224
- }
2225
- }
2226
- {
2227
- if(_1.first_ === "node") {
2228
- if(_1.second_ === "sync") {
2068
+ if(_1.first_ === "node" && _1.second_ === "sync") {
2229
2069
  if(ff_core_Equal.notEquals_(targets_.nodeSync_, ff_core_Option.None(), ff_core_Option.ff_core_Equal_Equal$ff_core_Option_Option(ff_core_Equal.ff_core_Equal_Equal$ff_core_String_String))) {
2230
2070
  throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Syntax.CompileError(at_, "Duplicate target definition"), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError)})
2231
2071
  };
@@ -2234,11 +2074,7 @@ return ff_compiler_Parser.ParsedTargets(_c.js_, _c.jsSync_, _c.jsAsync_, _c.brow
2234
2074
  }))(targets_)
2235
2075
  break
2236
2076
  }
2237
- }
2238
- }
2239
- {
2240
- if(_1.first_ === "node") {
2241
- if(_1.second_ === "async") {
2077
+ if(_1.first_ === "node" && _1.second_ === "async") {
2242
2078
  if(ff_core_Equal.notEquals_(targets_.nodeAsync_, ff_core_Option.None(), ff_core_Option.ff_core_Equal_Equal$ff_core_Option_Option(ff_core_Equal.ff_core_Equal_Equal$ff_core_String_String))) {
2243
2079
  throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Syntax.CompileError(at_, "Duplicate target definition"), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError)})
2244
2080
  };
@@ -2247,11 +2083,8 @@ return ff_compiler_Parser.ParsedTargets(_c.js_, _c.jsSync_, _c.jsAsync_, _c.brow
2247
2083
  }))(targets_)
2248
2084
  break
2249
2085
  }
2250
- }
2251
- }
2252
2086
  {
2253
2087
  throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Syntax.CompileError(at_, "Unknown target or mode"), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError)})
2254
- break
2255
2088
  }
2256
2089
  } while(false)
2257
2090
  }
@@ -2567,44 +2400,27 @@ const token_ = (ff_compiler_Token.Token_is(ff_compiler_Parser.Parser_current(sel
2567
2400
  : ff_compiler_Parser.Parser_skip(self_, ff_compiler_Token.LKeyword()));
2568
2401
  do {
2569
2402
  const _1 = ff_compiler_Token.Token_raw(token_);
2570
- {
2571
- if(_1 === "node") {
2572
- const _guard1 = targets_.node_;
2573
- if(_guard1) {
2403
+ if(_1 === "node" && targets_.node_) {
2574
2404
  throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Syntax.CompileError(ff_compiler_Token.Token_at(token_), "Duplicate target name"), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError)})
2575
- break
2576
2405
  }
2577
- }
2578
- }
2579
- {
2580
2406
  if(_1 === "node") {
2581
2407
  targets_ = (((_c) => {
2582
2408
  return ff_compiler_Syntax.TargetNames(true, _c.browser_)
2583
2409
  }))(targets_)
2584
2410
  break
2585
2411
  }
2586
- }
2587
- {
2588
- if(_1 === "browser") {
2589
- const _guard1 = targets_.browser_;
2590
- if(_guard1) {
2412
+ if(_1 === "browser" && targets_.browser_) {
2591
2413
  throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Syntax.CompileError(ff_compiler_Token.Token_at(token_), "Duplicate target name"), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError)})
2592
- break
2593
- }
2594
- }
2595
2414
  }
2596
- {
2597
2415
  if(_1 === "browser") {
2598
2416
  targets_ = (((_c) => {
2599
2417
  return ff_compiler_Syntax.TargetNames(_c.node_, true)
2600
2418
  }))(targets_)
2601
2419
  break
2602
2420
  }
2603
- }
2604
2421
  {
2605
2422
  const t_ = _1;
2606
2423
  throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Syntax.CompileError(ff_compiler_Token.Token_at(token_), ("Unexpected target: " + t_)), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError)})
2607
- break
2608
2424
  }
2609
2425
  } while(false)
2610
2426
  };
@@ -3070,24 +2886,17 @@ const operator_ = ff_core_String.String_dropLast(ff_compiler_Token.Token_raw(tok
3070
2886
  const value_ = ff_compiler_Parser.Parser_parseTerm(self_);
3071
2887
  {
3072
2888
  const _1 = term_;
3073
- {
3074
2889
  if(_1.EVariable) {
3075
2890
  const at_ = _1.at_;
3076
2891
  const name_ = _1.name_;
3077
2892
  return ff_compiler_Syntax.EAssign(at_, operator_, name_, value_)
3078
- return
3079
- }
3080
2893
  }
3081
- {
3082
2894
  if(_1.EField) {
3083
2895
  const e_ = _1;
3084
2896
  return ff_compiler_Syntax.EAssignField(e_.at_, operator_, e_.record_, e_.field_, value_)
3085
- return
3086
- }
3087
2897
  }
3088
2898
  {
3089
2899
  throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Syntax.CompileError(ff_compiler_Token.Token_at(token_), "Only variables and fields are assignable"), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError)})
3090
- return
3091
2900
  }
3092
2901
  }
3093
2902
  }
@@ -3169,7 +2978,7 @@ export async function Parser_parseBinary$(self_, level_, $task) {
3169
2978
  if((level_ >= ff_core_List.List_size(ff_compiler_Parser.binaryOperators_))) {
3170
2979
  return ff_compiler_Parser.Parser_parseUnary(self_)
3171
2980
  } else {
3172
- const operators_ = ff_core_List.List_grab(ff_compiler_Parser.binaryOperators_, level_);
2981
+ const operators_ = (ff_compiler_Parser.binaryOperators_[level_] ?? ff_core_List.internalGrab_(ff_compiler_Parser.binaryOperators_, level_));
3173
2982
  let result_ = ff_compiler_Parser.Parser_parseBinary(self_, (level_ + 1));
3174
2983
  if(ff_compiler_Token.Token_is(ff_compiler_Parser.Parser_current(self_), ff_compiler_Token.LOperator())) {
3175
2984
  while(ff_core_List.List_any(operators_, ((value_) => {
@@ -3180,46 +2989,27 @@ const right_ = ff_compiler_Parser.Parser_parseBinary(self_, (level_ + 1));
3180
2989
  const arguments_ = [ff_compiler_Syntax.Argument(result_.at_, ff_core_Option.None(), result_), ff_compiler_Syntax.Argument(right_.at_, ff_core_Option.None(), right_)];
3181
2990
  const effect_ = ff_compiler_Parser.Parser_freshUnificationVariable(self_, ff_compiler_Token.Token_at(token_));
3182
2991
  const target_ = (((_1) => {
3183
- {
3184
2992
  if(_1 === "==") {
3185
2993
  return ff_compiler_Syntax.DynamicCall(ff_compiler_Syntax.EVariable(ff_compiler_Token.Token_at(token_), "ff:core/Equal.equals"), false)
3186
- return
3187
- }
3188
2994
  }
3189
- {
3190
2995
  if(_1 === "!=") {
3191
2996
  return ff_compiler_Syntax.DynamicCall(ff_compiler_Syntax.EVariable(ff_compiler_Token.Token_at(token_), "ff:core/Equal.notEquals"), false)
3192
- return
3193
2997
  }
3194
- }
3195
- {
3196
2998
  if(_1 === "<") {
3197
2999
  return ff_compiler_Syntax.DynamicCall(ff_compiler_Syntax.EVariable(ff_compiler_Token.Token_at(token_), "ff:core/Ordering.before"), false)
3198
- return
3199
- }
3200
3000
  }
3201
- {
3202
3001
  if(_1 === "<=") {
3203
3002
  return ff_compiler_Syntax.DynamicCall(ff_compiler_Syntax.EVariable(ff_compiler_Token.Token_at(token_), "ff:core/Ordering.notAfter"), false)
3204
- return
3205
3003
  }
3206
- }
3207
- {
3208
3004
  if(_1 === ">") {
3209
3005
  return ff_compiler_Syntax.DynamicCall(ff_compiler_Syntax.EVariable(ff_compiler_Token.Token_at(token_), "ff:core/Ordering.after"), false)
3210
- return
3211
- }
3212
3006
  }
3213
- {
3214
3007
  if(_1 === ">=") {
3215
3008
  return ff_compiler_Syntax.DynamicCall(ff_compiler_Syntax.EVariable(ff_compiler_Token.Token_at(token_), "ff:core/Ordering.notBefore"), false)
3216
- return
3217
- }
3218
3009
  }
3219
3010
  {
3220
3011
  const o_ = _1;
3221
3012
  return ff_compiler_Syntax.DynamicCall(ff_compiler_Syntax.EVariable(ff_compiler_Token.Token_at(token_), o_), false)
3222
- return
3223
3013
  }
3224
3014
  }))(ff_compiler_Token.Token_raw(token_));
3225
3015
  result_ = ff_compiler_Syntax.ECall(ff_compiler_Token.Token_at(token_), target_, effect_, [], arguments_, [])
@@ -3444,45 +3234,23 @@ return _w1.first_
3444
3234
 
3445
3235
  export async function Parser_parseListPattern$(self_, $task) {
3446
3236
  function convertListPattern_(at_, items_) {
3447
- {
3448
3237
  const at_a = at_;
3449
3238
  const items_a = items_;
3450
- {
3451
3239
  if(items_a.length === 0) {
3452
3240
  return ff_compiler_Syntax.PVariant(at_, "List$Empty", [])
3453
- return
3454
3241
  }
3455
- }
3456
- {
3457
- if(items_a.length > 0) {
3242
+ if(items_a.length >= 1 && !items_a[0].second_) {
3458
3243
  const p_ = items_a[0].first_;
3459
- if(!items_a[0].second_) {
3460
3244
  const ps_ = items_a.slice(1);
3461
3245
  return ff_compiler_Syntax.PVariant(at_, "List$Link", [p_, convertListPattern_(at_, ps_)])
3462
- return
3463
- }
3464
3246
  }
3465
- }
3466
- {
3467
- if(items_a.length > 0) {
3247
+ if(items_a.length === 1 && items_a[0].second_) {
3468
3248
  const p_ = items_a[0].first_;
3469
- if(items_a[0].second_) {
3470
- if(items_a.length === 1) {
3471
3249
  return p_
3472
- return
3473
- }
3474
- }
3475
- }
3476
3250
  }
3477
- {
3478
- if(items_a.length > 0) {
3251
+ if(items_a.length >= 1 && items_a[0].second_) {
3479
3252
  const p_ = items_a[0].first_;
3480
- if(items_a[0].second_) {
3481
3253
  throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Syntax.CompileError(p_.at_, "Invalid pattern: ... is only allowed for the last element in a list"), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError)})
3482
- return
3483
- }
3484
- }
3485
- }
3486
3254
  }
3487
3255
  }
3488
3256
  const items_ = ff_core_Array.make_();
@@ -3541,135 +3309,90 @@ return ff_core_Any.internalAnyTag_((("ff:compiler/Parser.ParsedTargets" + "[") +
3541
3309
 
3542
3310
  export const ff_core_Show_Show$ff_compiler_Parser_Poly = {
3543
3311
  show_(value_) {
3544
- {
3545
3312
  const value_a = value_;
3546
3313
  {
3547
3314
  const z_ = value_a;
3548
3315
  return ((((("Poly" + "(") + ff_core_Show.ff_core_Show_Show$ff_core_List_List(ff_core_Show.ff_core_Show_Show$ff_core_String_String).show_(z_.generics_)) + ", ") + ff_core_Show.ff_core_Show_Show$ff_core_List_List(ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_Constraint).show_(z_.constraints_)) + ")")
3549
- return
3550
- }
3551
3316
  }
3552
3317
  },
3553
3318
  async show_$(value_, $task) {
3554
- {
3555
3319
  const value_a = value_;
3556
3320
  {
3557
3321
  const z_ = value_a;
3558
3322
  return ((((("Poly" + "(") + ff_core_Show.ff_core_Show_Show$ff_core_List_List(ff_core_Show.ff_core_Show_Show$ff_core_String_String).show_(z_.generics_)) + ", ") + ff_core_Show.ff_core_Show_Show$ff_core_List_List(ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_Constraint).show_(z_.constraints_)) + ")")
3559
- return
3560
- }
3561
3323
  }
3562
3324
  }
3563
3325
  };
3564
3326
 
3565
3327
  export const ff_core_Show_Show$ff_compiler_Parser_ParsedTargets = {
3566
3328
  show_(value_) {
3567
- {
3568
3329
  const value_a = value_;
3569
3330
  {
3570
3331
  const z_ = value_a;
3571
3332
  return ((((((((((((((((((("ParsedTargets" + "(") + ff_core_Option.ff_core_Show_Show$ff_core_Option_Option(ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_Lambda).show_(z_.js_)) + ", ") + ff_core_Option.ff_core_Show_Show$ff_core_Option_Option(ff_core_Show.ff_core_Show_Show$ff_core_String_String).show_(z_.jsSync_)) + ", ") + ff_core_Option.ff_core_Show_Show$ff_core_Option_Option(ff_core_Show.ff_core_Show_Show$ff_core_String_String).show_(z_.jsAsync_)) + ", ") + ff_core_Option.ff_core_Show_Show$ff_core_Option_Option(ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_Lambda).show_(z_.browser_)) + ", ") + ff_core_Option.ff_core_Show_Show$ff_core_Option_Option(ff_core_Show.ff_core_Show_Show$ff_core_String_String).show_(z_.browserSync_)) + ", ") + ff_core_Option.ff_core_Show_Show$ff_core_Option_Option(ff_core_Show.ff_core_Show_Show$ff_core_String_String).show_(z_.browserAsync_)) + ", ") + ff_core_Option.ff_core_Show_Show$ff_core_Option_Option(ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_Lambda).show_(z_.node_)) + ", ") + ff_core_Option.ff_core_Show_Show$ff_core_Option_Option(ff_core_Show.ff_core_Show_Show$ff_core_String_String).show_(z_.nodeSync_)) + ", ") + ff_core_Option.ff_core_Show_Show$ff_core_Option_Option(ff_core_Show.ff_core_Show_Show$ff_core_String_String).show_(z_.nodeAsync_)) + ")")
3572
- return
3573
- }
3574
3333
  }
3575
3334
  },
3576
3335
  async show_$(value_, $task) {
3577
- {
3578
3336
  const value_a = value_;
3579
3337
  {
3580
3338
  const z_ = value_a;
3581
3339
  return ((((((((((((((((((("ParsedTargets" + "(") + ff_core_Option.ff_core_Show_Show$ff_core_Option_Option(ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_Lambda).show_(z_.js_)) + ", ") + ff_core_Option.ff_core_Show_Show$ff_core_Option_Option(ff_core_Show.ff_core_Show_Show$ff_core_String_String).show_(z_.jsSync_)) + ", ") + ff_core_Option.ff_core_Show_Show$ff_core_Option_Option(ff_core_Show.ff_core_Show_Show$ff_core_String_String).show_(z_.jsAsync_)) + ", ") + ff_core_Option.ff_core_Show_Show$ff_core_Option_Option(ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_Lambda).show_(z_.browser_)) + ", ") + ff_core_Option.ff_core_Show_Show$ff_core_Option_Option(ff_core_Show.ff_core_Show_Show$ff_core_String_String).show_(z_.browserSync_)) + ", ") + ff_core_Option.ff_core_Show_Show$ff_core_Option_Option(ff_core_Show.ff_core_Show_Show$ff_core_String_String).show_(z_.browserAsync_)) + ", ") + ff_core_Option.ff_core_Show_Show$ff_core_Option_Option(ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_Lambda).show_(z_.node_)) + ", ") + ff_core_Option.ff_core_Show_Show$ff_core_Option_Option(ff_core_Show.ff_core_Show_Show$ff_core_String_String).show_(z_.nodeSync_)) + ", ") + ff_core_Option.ff_core_Show_Show$ff_core_Option_Option(ff_core_Show.ff_core_Show_Show$ff_core_String_String).show_(z_.nodeAsync_)) + ")")
3582
- return
3583
- }
3584
3340
  }
3585
3341
  }
3586
3342
  };
3587
3343
 
3588
3344
  export const ff_core_Equal_Equal$ff_compiler_Parser_Poly = {
3589
3345
  equals_(x_, y_) {
3590
- {
3591
3346
  const x_a = x_;
3592
3347
  const y_a = y_;
3593
- {
3594
- const _guard1 = (x_ === y_);
3595
- if(_guard1) {
3348
+ if((x_ === y_)) {
3596
3349
  return true
3597
- return
3598
- }
3599
3350
  }
3600
3351
  {
3601
3352
  return (ff_core_List.ff_core_Equal_Equal$ff_core_List_List(ff_core_Equal.ff_core_Equal_Equal$ff_core_String_String).equals_(x_.generics_, y_.generics_) && ff_core_List.ff_core_Equal_Equal$ff_core_List_List(ff_compiler_Syntax.ff_core_Equal_Equal$ff_compiler_Syntax_Constraint).equals_(x_.constraints_, y_.constraints_))
3602
- return
3603
- }
3604
3353
  }
3605
3354
  },
3606
3355
  async equals_$(x_, y_, $task) {
3607
- {
3608
3356
  const x_a = x_;
3609
3357
  const y_a = y_;
3610
- {
3611
- const _guard1 = (x_ === y_);
3612
- if(_guard1) {
3358
+ if((x_ === y_)) {
3613
3359
  return true
3614
- return
3615
- }
3616
3360
  }
3617
3361
  {
3618
3362
  return (ff_core_List.ff_core_Equal_Equal$ff_core_List_List(ff_core_Equal.ff_core_Equal_Equal$ff_core_String_String).equals_(x_.generics_, y_.generics_) && ff_core_List.ff_core_Equal_Equal$ff_core_List_List(ff_compiler_Syntax.ff_core_Equal_Equal$ff_compiler_Syntax_Constraint).equals_(x_.constraints_, y_.constraints_))
3619
- return
3620
- }
3621
3363
  }
3622
3364
  }
3623
3365
  };
3624
3366
 
3625
3367
  export const ff_core_Equal_Equal$ff_compiler_Parser_ParsedTargets = {
3626
3368
  equals_(x_, y_) {
3627
- {
3628
3369
  const x_a = x_;
3629
3370
  const y_a = y_;
3630
- {
3631
- const _guard1 = (x_ === y_);
3632
- if(_guard1) {
3371
+ if((x_ === y_)) {
3633
3372
  return true
3634
- return
3635
- }
3636
3373
  }
3637
3374
  {
3638
3375
  return (ff_core_Option.ff_core_Equal_Equal$ff_core_Option_Option(ff_compiler_Syntax.ff_core_Equal_Equal$ff_compiler_Syntax_Lambda).equals_(x_.js_, y_.js_) && (ff_core_Option.ff_core_Equal_Equal$ff_core_Option_Option(ff_core_Equal.ff_core_Equal_Equal$ff_core_String_String).equals_(x_.jsSync_, y_.jsSync_) && (ff_core_Option.ff_core_Equal_Equal$ff_core_Option_Option(ff_core_Equal.ff_core_Equal_Equal$ff_core_String_String).equals_(x_.jsAsync_, y_.jsAsync_) && (ff_core_Option.ff_core_Equal_Equal$ff_core_Option_Option(ff_compiler_Syntax.ff_core_Equal_Equal$ff_compiler_Syntax_Lambda).equals_(x_.browser_, y_.browser_) && (ff_core_Option.ff_core_Equal_Equal$ff_core_Option_Option(ff_core_Equal.ff_core_Equal_Equal$ff_core_String_String).equals_(x_.browserSync_, y_.browserSync_) && (ff_core_Option.ff_core_Equal_Equal$ff_core_Option_Option(ff_core_Equal.ff_core_Equal_Equal$ff_core_String_String).equals_(x_.browserAsync_, y_.browserAsync_) && (ff_core_Option.ff_core_Equal_Equal$ff_core_Option_Option(ff_compiler_Syntax.ff_core_Equal_Equal$ff_compiler_Syntax_Lambda).equals_(x_.node_, y_.node_) && (ff_core_Option.ff_core_Equal_Equal$ff_core_Option_Option(ff_core_Equal.ff_core_Equal_Equal$ff_core_String_String).equals_(x_.nodeSync_, y_.nodeSync_) && ff_core_Option.ff_core_Equal_Equal$ff_core_Option_Option(ff_core_Equal.ff_core_Equal_Equal$ff_core_String_String).equals_(x_.nodeAsync_, y_.nodeAsync_)))))))))
3639
- return
3640
- }
3641
3376
  }
3642
3377
  },
3643
3378
  async equals_$(x_, y_, $task) {
3644
- {
3645
3379
  const x_a = x_;
3646
3380
  const y_a = y_;
3647
- {
3648
- const _guard1 = (x_ === y_);
3649
- if(_guard1) {
3381
+ if((x_ === y_)) {
3650
3382
  return true
3651
- return
3652
- }
3653
3383
  }
3654
3384
  {
3655
3385
  return (ff_core_Option.ff_core_Equal_Equal$ff_core_Option_Option(ff_compiler_Syntax.ff_core_Equal_Equal$ff_compiler_Syntax_Lambda).equals_(x_.js_, y_.js_) && (ff_core_Option.ff_core_Equal_Equal$ff_core_Option_Option(ff_core_Equal.ff_core_Equal_Equal$ff_core_String_String).equals_(x_.jsSync_, y_.jsSync_) && (ff_core_Option.ff_core_Equal_Equal$ff_core_Option_Option(ff_core_Equal.ff_core_Equal_Equal$ff_core_String_String).equals_(x_.jsAsync_, y_.jsAsync_) && (ff_core_Option.ff_core_Equal_Equal$ff_core_Option_Option(ff_compiler_Syntax.ff_core_Equal_Equal$ff_compiler_Syntax_Lambda).equals_(x_.browser_, y_.browser_) && (ff_core_Option.ff_core_Equal_Equal$ff_core_Option_Option(ff_core_Equal.ff_core_Equal_Equal$ff_core_String_String).equals_(x_.browserSync_, y_.browserSync_) && (ff_core_Option.ff_core_Equal_Equal$ff_core_Option_Option(ff_core_Equal.ff_core_Equal_Equal$ff_core_String_String).equals_(x_.browserAsync_, y_.browserAsync_) && (ff_core_Option.ff_core_Equal_Equal$ff_core_Option_Option(ff_compiler_Syntax.ff_core_Equal_Equal$ff_compiler_Syntax_Lambda).equals_(x_.node_, y_.node_) && (ff_core_Option.ff_core_Equal_Equal$ff_core_Option_Option(ff_core_Equal.ff_core_Equal_Equal$ff_core_String_String).equals_(x_.nodeSync_, y_.nodeSync_) && ff_core_Option.ff_core_Equal_Equal$ff_core_Option_Option(ff_core_Equal.ff_core_Equal_Equal$ff_core_String_String).equals_(x_.nodeAsync_, y_.nodeAsync_)))))))))
3656
- return
3657
- }
3658
3386
  }
3659
3387
  }
3660
3388
  };
3661
3389
 
3662
3390
  export const ff_core_Ordering_Order$ff_compiler_Parser_Poly = {
3663
3391
  compare_(x_, y_) {
3664
- {
3665
3392
  const x_a = x_;
3666
3393
  const y_a = y_;
3667
- {
3668
- const _guard1 = (x_ === y_);
3669
- if(_guard1) {
3394
+ if((x_ === y_)) {
3670
3395
  return ff_core_Ordering.OrderingSame()
3671
- return
3672
- }
3673
3396
  }
3674
3397
  {
3675
3398
  const genericsOrdering_ = ff_core_Ordering.ff_core_Ordering_Order$ff_core_List_List(ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String).compare_(x_.generics_, y_.generics_);
@@ -3685,18 +3408,12 @@ return ff_core_Ordering.OrderingSame()
3685
3408
  }
3686
3409
  return
3687
3410
  }
3688
- }
3689
3411
  },
3690
3412
  async compare_$(x_, y_, $task) {
3691
- {
3692
3413
  const x_a = x_;
3693
3414
  const y_a = y_;
3694
- {
3695
- const _guard1 = (x_ === y_);
3696
- if(_guard1) {
3415
+ if((x_ === y_)) {
3697
3416
  return ff_core_Ordering.OrderingSame()
3698
- return
3699
- }
3700
3417
  }
3701
3418
  {
3702
3419
  const genericsOrdering_ = ff_core_Ordering.ff_core_Ordering_Order$ff_core_List_List(ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String).compare_(x_.generics_, y_.generics_);
@@ -3713,20 +3430,14 @@ return ff_core_Ordering.OrderingSame()
3713
3430
  return
3714
3431
  }
3715
3432
  }
3716
- }
3717
3433
  };
3718
3434
 
3719
3435
  export const ff_core_Ordering_Order$ff_compiler_Parser_ParsedTargets = {
3720
3436
  compare_(x_, y_) {
3721
- {
3722
3437
  const x_a = x_;
3723
3438
  const y_a = y_;
3724
- {
3725
- const _guard1 = (x_ === y_);
3726
- if(_guard1) {
3439
+ if((x_ === y_)) {
3727
3440
  return ff_core_Ordering.OrderingSame()
3728
- return
3729
- }
3730
3441
  }
3731
3442
  {
3732
3443
  const jsOrdering_ = ff_core_Option.ff_core_Ordering_Order$ff_core_Option_Option(ff_compiler_Syntax.ff_core_Ordering_Order$ff_compiler_Syntax_Lambda).compare_(x_.js_, y_.js_);
@@ -3777,18 +3488,12 @@ return ff_core_Ordering.OrderingSame()
3777
3488
  }
3778
3489
  return
3779
3490
  }
3780
- }
3781
3491
  },
3782
3492
  async compare_$(x_, y_, $task) {
3783
- {
3784
3493
  const x_a = x_;
3785
3494
  const y_a = y_;
3786
- {
3787
- const _guard1 = (x_ === y_);
3788
- if(_guard1) {
3495
+ if((x_ === y_)) {
3789
3496
  return ff_core_Ordering.OrderingSame()
3790
- return
3791
- }
3792
3497
  }
3793
3498
  {
3794
3499
  const jsOrdering_ = ff_core_Option.ff_core_Ordering_Order$ff_core_Option_Option(ff_compiler_Syntax.ff_core_Ordering_Order$ff_compiler_Syntax_Lambda).compare_(x_.js_, y_.js_);
@@ -3840,12 +3545,10 @@ return ff_core_Ordering.OrderingSame()
3840
3545
  return
3841
3546
  }
3842
3547
  }
3843
- }
3844
3548
  };
3845
3549
 
3846
3550
  export const ff_core_Serializable_Serializable$ff_compiler_Parser_Poly = {
3847
3551
  serializeUsing_(serialization_, value_) {
3848
- {
3849
3552
  const serialization_a = serialization_;
3850
3553
  const value_a = value_;
3851
3554
  {
@@ -3858,28 +3561,22 @@ ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_List_List(ff_core
3858
3561
  ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_List_List(ff_compiler_Syntax.ff_core_Serializable_Serializable$ff_compiler_Syntax_Constraint).serializeUsing_(serialization_, v_.constraints_)
3859
3562
  return
3860
3563
  }
3861
- }
3862
3564
  },
3863
3565
  deserializeUsing_(serialization_) {
3864
3566
  const variantIndex_ = ff_core_Buffer.Buffer_grabUint8(serialization_.buffer_, serialization_.offset_);
3865
3567
  serialization_.offset_ += 1;
3866
3568
  {
3867
3569
  const _1 = variantIndex_;
3868
- {
3869
3570
  if(_1 === 0) {
3870
3571
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 23), 0);
3871
3572
  return ff_compiler_Parser.Poly(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_List_List(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String).deserializeUsing_(serialization_), ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_List_List(ff_compiler_Syntax.ff_core_Serializable_Serializable$ff_compiler_Syntax_Constraint).deserializeUsing_(serialization_))
3872
- return
3873
- }
3874
3573
  }
3875
3574
  {
3876
3575
  throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_core_Serializable.DeserializationChecksumException(), ff_core_Serializable.ff_core_Any_HasAnyTag$ff_core_Serializable_DeserializationChecksumException)})
3877
- return
3878
3576
  }
3879
3577
  }
3880
3578
  },
3881
3579
  async serializeUsing_$(serialization_, value_, $task) {
3882
- {
3883
3580
  const serialization_a = serialization_;
3884
3581
  const value_a = value_;
3885
3582
  {
@@ -3892,23 +3589,18 @@ ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_List_List(ff_core
3892
3589
  ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_List_List(ff_compiler_Syntax.ff_core_Serializable_Serializable$ff_compiler_Syntax_Constraint).serializeUsing_(serialization_, v_.constraints_)
3893
3590
  return
3894
3591
  }
3895
- }
3896
3592
  },
3897
3593
  async deserializeUsing_$(serialization_, $task) {
3898
3594
  const variantIndex_ = ff_core_Buffer.Buffer_grabUint8(serialization_.buffer_, serialization_.offset_);
3899
3595
  serialization_.offset_ += 1;
3900
3596
  {
3901
3597
  const _1 = variantIndex_;
3902
- {
3903
3598
  if(_1 === 0) {
3904
3599
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 23), 0);
3905
3600
  return ff_compiler_Parser.Poly(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_List_List(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String).deserializeUsing_(serialization_), ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_List_List(ff_compiler_Syntax.ff_core_Serializable_Serializable$ff_compiler_Syntax_Constraint).deserializeUsing_(serialization_))
3906
- return
3907
- }
3908
3601
  }
3909
3602
  {
3910
3603
  throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_core_Serializable.DeserializationChecksumException(), ff_core_Serializable.ff_core_Any_HasAnyTag$ff_core_Serializable_DeserializationChecksumException)})
3911
- return
3912
3604
  }
3913
3605
  }
3914
3606
  }
@@ -3916,7 +3608,6 @@ return
3916
3608
 
3917
3609
  export const ff_core_Serializable_Serializable$ff_compiler_Parser_ParsedTargets = {
3918
3610
  serializeUsing_(serialization_, value_) {
3919
- {
3920
3611
  const serialization_a = serialization_;
3921
3612
  const value_a = value_;
3922
3613
  {
@@ -3936,28 +3627,22 @@ ff_core_Option.ff_core_Serializable_Serializable$ff_core_Option_Option(ff_core_S
3936
3627
  ff_core_Option.ff_core_Serializable_Serializable$ff_core_Option_Option(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String).serializeUsing_(serialization_, v_.nodeAsync_)
3937
3628
  return
3938
3629
  }
3939
- }
3940
3630
  },
3941
3631
  deserializeUsing_(serialization_) {
3942
3632
  const variantIndex_ = ff_core_Buffer.Buffer_grabUint8(serialization_.buffer_, serialization_.offset_);
3943
3633
  serialization_.offset_ += 1;
3944
3634
  {
3945
3635
  const _1 = variantIndex_;
3946
- {
3947
3636
  if(_1 === 0) {
3948
3637
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 32), 0);
3949
3638
  return ff_compiler_Parser.ParsedTargets(ff_core_Option.ff_core_Serializable_Serializable$ff_core_Option_Option(ff_compiler_Syntax.ff_core_Serializable_Serializable$ff_compiler_Syntax_Lambda).deserializeUsing_(serialization_), ff_core_Option.ff_core_Serializable_Serializable$ff_core_Option_Option(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String).deserializeUsing_(serialization_), ff_core_Option.ff_core_Serializable_Serializable$ff_core_Option_Option(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String).deserializeUsing_(serialization_), ff_core_Option.ff_core_Serializable_Serializable$ff_core_Option_Option(ff_compiler_Syntax.ff_core_Serializable_Serializable$ff_compiler_Syntax_Lambda).deserializeUsing_(serialization_), ff_core_Option.ff_core_Serializable_Serializable$ff_core_Option_Option(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String).deserializeUsing_(serialization_), ff_core_Option.ff_core_Serializable_Serializable$ff_core_Option_Option(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String).deserializeUsing_(serialization_), ff_core_Option.ff_core_Serializable_Serializable$ff_core_Option_Option(ff_compiler_Syntax.ff_core_Serializable_Serializable$ff_compiler_Syntax_Lambda).deserializeUsing_(serialization_), ff_core_Option.ff_core_Serializable_Serializable$ff_core_Option_Option(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String).deserializeUsing_(serialization_), ff_core_Option.ff_core_Serializable_Serializable$ff_core_Option_Option(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String).deserializeUsing_(serialization_))
3950
- return
3951
- }
3952
3639
  }
3953
3640
  {
3954
3641
  throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_core_Serializable.DeserializationChecksumException(), ff_core_Serializable.ff_core_Any_HasAnyTag$ff_core_Serializable_DeserializationChecksumException)})
3955
- return
3956
3642
  }
3957
3643
  }
3958
3644
  },
3959
3645
  async serializeUsing_$(serialization_, value_, $task) {
3960
- {
3961
3646
  const serialization_a = serialization_;
3962
3647
  const value_a = value_;
3963
3648
  {
@@ -3977,23 +3662,18 @@ ff_core_Option.ff_core_Serializable_Serializable$ff_core_Option_Option(ff_core_S
3977
3662
  ff_core_Option.ff_core_Serializable_Serializable$ff_core_Option_Option(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String).serializeUsing_(serialization_, v_.nodeAsync_)
3978
3663
  return
3979
3664
  }
3980
- }
3981
3665
  },
3982
3666
  async deserializeUsing_$(serialization_, $task) {
3983
3667
  const variantIndex_ = ff_core_Buffer.Buffer_grabUint8(serialization_.buffer_, serialization_.offset_);
3984
3668
  serialization_.offset_ += 1;
3985
3669
  {
3986
3670
  const _1 = variantIndex_;
3987
- {
3988
3671
  if(_1 === 0) {
3989
3672
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 32), 0);
3990
3673
  return ff_compiler_Parser.ParsedTargets(ff_core_Option.ff_core_Serializable_Serializable$ff_core_Option_Option(ff_compiler_Syntax.ff_core_Serializable_Serializable$ff_compiler_Syntax_Lambda).deserializeUsing_(serialization_), ff_core_Option.ff_core_Serializable_Serializable$ff_core_Option_Option(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String).deserializeUsing_(serialization_), ff_core_Option.ff_core_Serializable_Serializable$ff_core_Option_Option(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String).deserializeUsing_(serialization_), ff_core_Option.ff_core_Serializable_Serializable$ff_core_Option_Option(ff_compiler_Syntax.ff_core_Serializable_Serializable$ff_compiler_Syntax_Lambda).deserializeUsing_(serialization_), ff_core_Option.ff_core_Serializable_Serializable$ff_core_Option_Option(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String).deserializeUsing_(serialization_), ff_core_Option.ff_core_Serializable_Serializable$ff_core_Option_Option(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String).deserializeUsing_(serialization_), ff_core_Option.ff_core_Serializable_Serializable$ff_core_Option_Option(ff_compiler_Syntax.ff_core_Serializable_Serializable$ff_compiler_Syntax_Lambda).deserializeUsing_(serialization_), ff_core_Option.ff_core_Serializable_Serializable$ff_core_Option_Option(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String).deserializeUsing_(serialization_), ff_core_Option.ff_core_Serializable_Serializable$ff_core_Option_Option(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String).deserializeUsing_(serialization_))
3991
- return
3992
- }
3993
3674
  }
3994
3675
  {
3995
3676
  throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_core_Serializable.DeserializationChecksumException(), ff_core_Serializable.ff_core_Any_HasAnyTag$ff_core_Serializable_DeserializationChecksumException)})
3996
- return
3997
3677
  }
3998
3678
  }
3999
3679
  }