firefly-compiler 0.5.35 → 0.5.37

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 (225) hide show
  1. package/.hintrc +4 -4
  2. package/.vscode/settings.json +4 -4
  3. package/bin/Release.ff +157 -154
  4. package/bin/firefly.mjs +1 -1
  5. package/compiler/Builder.ff +275 -277
  6. package/compiler/Compiler.ff +234 -233
  7. package/compiler/Dependencies.ff +186 -187
  8. package/compiler/DependencyLock.ff +17 -17
  9. package/compiler/Deriver.ff +23 -31
  10. package/compiler/Dictionaries.ff +1 -1
  11. package/compiler/Inference.ff +43 -20
  12. package/compiler/JsEmitter.ff +1437 -1282
  13. package/compiler/LspHook.ff +202 -202
  14. package/compiler/Main.ff +25 -24
  15. package/compiler/ModuleCache.ff +178 -178
  16. package/compiler/Parser.ff +36 -109
  17. package/compiler/Resolver.ff +5 -8
  18. package/compiler/Substitution.ff +1 -1
  19. package/compiler/Syntax.ff +1 -16
  20. package/compiler/Token.ff +9 -0
  21. package/compiler/Tokenizer.ff +4 -0
  22. package/compiler/Workspace.ff +88 -88
  23. package/core/.firefly/include/package.json +5 -5
  24. package/core/.firefly/package.ff +2 -2
  25. package/core/Any.ff +26 -30
  26. package/core/Array.ff +298 -265
  27. package/core/Atomic.ff +63 -64
  28. package/core/Box.ff +7 -7
  29. package/core/BrowserSystem.ff +40 -40
  30. package/core/Buffer.ff +185 -152
  31. package/core/BuildSystem.ff +156 -148
  32. package/core/Channel.ff +95 -92
  33. package/core/Char.ff +3 -2
  34. package/core/Core.ff +16 -23
  35. package/core/Crypto.ff +94 -96
  36. package/core/Equal.ff +41 -36
  37. package/core/Error.ff +15 -10
  38. package/core/FileHandle.ff +45 -37
  39. package/core/Float.ff +176 -200
  40. package/core/HttpClient.ff +142 -148
  41. package/core/Instant.ff +6 -8
  42. package/core/Int.ff +40 -24
  43. package/core/IntMap.ff +61 -39
  44. package/core/Js.ff +305 -0
  45. package/core/JsSystem.ff +135 -114
  46. package/core/JsValue.ff +303 -159
  47. package/core/Json.ff +423 -443
  48. package/core/List.ff +482 -486
  49. package/core/Lock.ff +108 -144
  50. package/core/Log.ff +25 -14
  51. package/core/NodeSystem.ff +198 -191
  52. package/core/Ordering.ff +160 -161
  53. package/core/Path.ff +377 -409
  54. package/core/Queue.ff +90 -0
  55. package/core/Random.ff +140 -134
  56. package/core/RbMap.ff +216 -216
  57. package/core/Serializable.ff +16 -13
  58. package/core/Show.ff +44 -43
  59. package/core/SourceLocation.ff +68 -68
  60. package/core/Stream.ff +1 -1
  61. package/core/String.ff +224 -202
  62. package/core/StringMap.ff +58 -36
  63. package/core/Task.ff +165 -149
  64. package/experimental/benchmarks/ListGrab.ff +23 -23
  65. package/experimental/benchmarks/ListGrab.java +55 -55
  66. package/experimental/benchmarks/Pyrotek45.ff +30 -30
  67. package/experimental/benchmarks/Pyrotek45.java +64 -64
  68. package/experimental/bidirectional/Bidi.ff +88 -88
  69. package/experimental/lines/Main.ff +40 -0
  70. package/experimental/random/Index.ff +53 -53
  71. package/experimental/random/Process.ff +120 -120
  72. package/experimental/random/RunLength.ff +65 -65
  73. package/experimental/random/Scrape.ff +51 -51
  74. package/experimental/random/Symbols.ff +73 -73
  75. package/experimental/random/Tensor.ff +52 -52
  76. package/experimental/random/Units.ff +36 -36
  77. package/experimental/s3/S3TestAuthorizationHeader.ff +39 -39
  78. package/experimental/s3/S3TestPut.ff +16 -16
  79. package/experimental/tests/TestJson.ff +26 -26
  80. package/firefly.sh +0 -0
  81. package/fireflysite/.firefly/package.ff +4 -4
  82. package/fireflysite/CommunityOverview.ff +20 -20
  83. package/fireflysite/CountingButtonDemo.ff +58 -58
  84. package/fireflysite/DocumentParser.ff +325 -331
  85. package/fireflysite/ExamplesOverview.ff +40 -40
  86. package/fireflysite/FrontPage.ff +344 -344
  87. package/fireflysite/GettingStarted.ff +45 -45
  88. package/fireflysite/Guide.ff +456 -456
  89. package/fireflysite/Main.ff +163 -152
  90. package/fireflysite/MatchingPasswordsDemo.ff +82 -82
  91. package/fireflysite/PackagesOverview.ff +49 -49
  92. package/fireflysite/PostgresqlDemo.ff +34 -34
  93. package/fireflysite/ReferenceAll.ff +18 -18
  94. package/fireflysite/ReferenceIntroduction.ff +11 -11
  95. package/fireflysite/Styles.ff +567 -567
  96. package/fireflysite/Test.ff +121 -62
  97. package/fireflysite/assets/markdown/reference/BaseTypes.md +209 -209
  98. package/fireflysite/assets/markdown/reference/EmittedJavascript.md +65 -65
  99. package/fireflysite/assets/markdown/reference/Exceptions.md +101 -101
  100. package/fireflysite/assets/markdown/reference/FunctionsAndMethods.md +364 -364
  101. package/fireflysite/assets/markdown/reference/JavascriptInterop.md +235 -172
  102. package/fireflysite/assets/markdown/reference/ModulesAndPackages.md +162 -162
  103. package/fireflysite/assets/markdown/reference/OldStructuredConcurrency.md +48 -48
  104. package/fireflysite/assets/markdown/reference/PatternMatching.md +224 -224
  105. package/fireflysite/assets/markdown/reference/StatementsAndExpressions.md +86 -86
  106. package/fireflysite/assets/markdown/reference/StructuredConcurrency.md +99 -99
  107. package/fireflysite/assets/markdown/reference/TraitsAndInstances.md +100 -100
  108. package/fireflysite/assets/markdown/reference/UserDefinedTypes.md +184 -184
  109. package/fireflysite/assets/markdown/scratch/ControlFlow.md +136 -136
  110. package/fireflysite/assets/markdown/scratch/Toc.md +40 -40
  111. package/lsp/.firefly/package.ff +1 -1
  112. package/lsp/CompletionHandler.ff +827 -827
  113. package/lsp/Handler.ff +714 -714
  114. package/lsp/HoverHandler.ff +79 -79
  115. package/lsp/LanguageServer.ff +272 -272
  116. package/lsp/SignatureHelpHandler.ff +55 -55
  117. package/lsp/SymbolHandler.ff +181 -181
  118. package/lsp/TestReferences.ff +17 -17
  119. package/lsp/TestReferencesCase.ff +7 -7
  120. package/lsp/stderr.txt +1 -1
  121. package/lsp/stdout.txt +34 -34
  122. package/lux/.firefly/package.ff +1 -1
  123. package/lux/Css.ff +648 -648
  124. package/lux/CssTest.ff +48 -48
  125. package/lux/Lux.ff +608 -617
  126. package/lux/LuxEvent.ff +79 -116
  127. package/lux/Main.ff +123 -123
  128. package/lux/Main2.ff +143 -143
  129. package/lux/TestDry.ff +28 -28
  130. package/output/js/ff/compiler/Builder.mjs +72 -71
  131. package/output/js/ff/compiler/Compiler.mjs +19 -13
  132. package/output/js/ff/compiler/Dependencies.mjs +8 -7
  133. package/output/js/ff/compiler/DependencyLock.mjs +6 -4
  134. package/output/js/ff/compiler/Deriver.mjs +26 -24
  135. package/output/js/ff/compiler/Dictionaries.mjs +14 -18
  136. package/output/js/ff/compiler/Environment.mjs +6 -4
  137. package/output/js/ff/compiler/Inference.mjs +238 -164
  138. package/output/js/ff/compiler/JsEmitter.mjs +1160 -350
  139. package/output/js/ff/compiler/JsImporter.mjs +20 -18
  140. package/output/js/ff/compiler/LspHook.mjs +12 -10
  141. package/output/js/ff/compiler/Main.mjs +61 -41
  142. package/output/js/ff/compiler/ModuleCache.mjs +10 -8
  143. package/output/js/ff/compiler/Parser.mjs +153 -669
  144. package/output/js/ff/compiler/Patterns.mjs +12 -10
  145. package/output/js/ff/compiler/Resolver.mjs +52 -78
  146. package/output/js/ff/compiler/Substitution.mjs +12 -16
  147. package/output/js/ff/compiler/Syntax.mjs +50 -341
  148. package/output/js/ff/compiler/Token.mjs +126 -4
  149. package/output/js/ff/compiler/Tokenizer.mjs +62 -52
  150. package/output/js/ff/compiler/Unification.mjs +74 -90
  151. package/output/js/ff/compiler/Wildcards.mjs +4 -2
  152. package/output/js/ff/compiler/Workspace.mjs +26 -20
  153. package/output/js/ff/core/Any.mjs +20 -20
  154. package/output/js/ff/core/Array.mjs +268 -175
  155. package/output/js/ff/core/AssetSystem.mjs +8 -6
  156. package/output/js/ff/core/Atomic.mjs +84 -52
  157. package/output/js/ff/core/Bool.mjs +6 -4
  158. package/output/js/ff/core/BrowserSystem.mjs +38 -29
  159. package/output/js/ff/core/Buffer.mjs +285 -133
  160. package/output/js/ff/core/BuildSystem.mjs +36 -56
  161. package/output/js/ff/core/Channel.mjs +250 -97
  162. package/output/js/ff/core/Char.mjs +5 -3
  163. package/output/js/ff/core/Core.mjs +28 -34
  164. package/output/js/ff/core/Crypto.mjs +30 -52
  165. package/output/js/ff/core/Duration.mjs +4 -2
  166. package/output/js/ff/core/Equal.mjs +14 -12
  167. package/output/js/ff/core/Error.mjs +17 -11
  168. package/output/js/ff/core/FileHandle.mjs +76 -38
  169. package/output/js/ff/core/Float.mjs +92 -160
  170. package/output/js/ff/core/HttpClient.mjs +208 -76
  171. package/output/js/ff/core/Instant.mjs +8 -10
  172. package/output/js/ff/core/Int.mjs +36 -26
  173. package/output/js/ff/core/IntMap.mjs +79 -33
  174. package/output/js/ff/core/Js.mjs +751 -0
  175. package/output/js/ff/core/JsSystem.mjs +54 -60
  176. package/output/js/ff/core/JsValue.mjs +294 -143
  177. package/output/js/ff/core/Json.mjs +443 -253
  178. package/output/js/ff/core/List.mjs +262 -214
  179. package/output/js/ff/core/Lock.mjs +156 -125
  180. package/output/js/ff/core/Log.mjs +20 -10
  181. package/output/js/ff/core/Map.mjs +10 -8
  182. package/output/js/ff/core/NodeSystem.mjs +189 -123
  183. package/output/js/ff/core/Nothing.mjs +4 -2
  184. package/output/js/ff/core/Option.mjs +40 -38
  185. package/output/js/ff/core/Ordering.mjs +26 -20
  186. package/output/js/ff/core/Pair.mjs +4 -2
  187. package/output/js/ff/core/Path.mjs +517 -315
  188. package/output/js/ff/core/Queue.mjs +306 -0
  189. package/output/js/ff/core/Random.mjs +141 -77
  190. package/output/js/ff/core/RbMap.mjs +36 -34
  191. package/output/js/ff/core/Serializable.mjs +44 -28
  192. package/output/js/ff/core/Set.mjs +6 -4
  193. package/output/js/ff/core/Show.mjs +8 -6
  194. package/output/js/ff/core/SourceLocation.mjs +4 -2
  195. package/output/js/ff/core/Stream.mjs +30 -50
  196. package/output/js/ff/core/String.mjs +263 -172
  197. package/output/js/ff/core/StringMap.mjs +77 -31
  198. package/output/js/ff/core/Task.mjs +91 -76
  199. package/output/js/ff/core/Try.mjs +20 -18
  200. package/output/js/ff/core/Unit.mjs +4 -2
  201. package/package.json +1 -1
  202. package/postgresql/Pg.ff +53 -59
  203. package/rpc/.firefly/package.ff +1 -1
  204. package/rpc/Rpc.ff +70 -70
  205. package/s3/.firefly/package.ff +1 -1
  206. package/s3/S3.ff +92 -94
  207. package/vscode/LICENSE.txt +21 -21
  208. package/vscode/Prepublish.ff +15 -15
  209. package/vscode/README.md +16 -16
  210. package/vscode/client/package-lock.json +544 -544
  211. package/vscode/client/package.json +22 -22
  212. package/vscode/client/src/extension.ts +104 -104
  213. package/vscode/icons/firefly-icon.svg +10 -10
  214. package/vscode/language-configuration.json +61 -61
  215. package/vscode/package-lock.json +3623 -3623
  216. package/vscode/package.json +1 -1
  217. package/vscode/snippets.json +241 -241
  218. package/vscode/syntaxes/firefly-markdown-injection.json +45 -45
  219. package/webserver/.firefly/include/package.json +5 -5
  220. package/webserver/.firefly/package.ff +2 -2
  221. package/webserver/WebServer.ff +647 -685
  222. package/websocket/.firefly/package.ff +1 -1
  223. package/websocket/WebSocket.ff +100 -131
  224. package/core/UnsafeJs.ff +0 -42
  225. package/output/js/ff/core/UnsafeJs.mjs +0 -191
@@ -44,6 +44,8 @@ import * as ff_core_Int from "../../ff/core/Int.mjs"
44
44
 
45
45
  import * as ff_core_IntMap from "../../ff/core/IntMap.mjs"
46
46
 
47
+ import * as ff_core_Js from "../../ff/core/Js.mjs"
48
+
47
49
  import * as ff_core_JsSystem from "../../ff/core/JsSystem.mjs"
48
50
 
49
51
  import * as ff_core_JsValue from "../../ff/core/JsValue.mjs"
@@ -70,6 +72,8 @@ import * as ff_core_Pair from "../../ff/core/Pair.mjs"
70
72
 
71
73
  import * as ff_core_Path from "../../ff/core/Path.mjs"
72
74
 
75
+ import * as ff_core_Queue from "../../ff/core/Queue.mjs"
76
+
73
77
  import * as ff_core_Random from "../../ff/core/Random.mjs"
74
78
 
75
79
  import * as ff_core_Serializable from "../../ff/core/Serializable.mjs"
@@ -92,8 +96,6 @@ import * as ff_core_Try from "../../ff/core/Try.mjs"
92
96
 
93
97
  import * as ff_core_Unit from "../../ff/core/Unit.mjs"
94
98
 
95
- import * as ff_core_UnsafeJs from "../../ff/core/UnsafeJs.mjs"
96
-
97
99
  // type Color
98
100
  const R$ = {R: true};
99
101
  export function R() {
@@ -134,13 +136,13 @@ return ff_core_RbMap.balance_(ins_(a_), y_, yv_, b_, ff_core_Ordering_Order$K)
134
136
  if(_1.OrderingAfter) {
135
137
  return ff_core_RbMap.balance_(a_, y_, yv_, ins_(b_), ff_core_Ordering_Order$K)
136
138
  }
137
- if(_1.OrderingSame) {
139
+ {
138
140
  return ff_core_RbMap.T(ff_core_RbMap.B(), a_, x_, xv_, b_)
139
141
  }
140
142
  }
141
143
  return
142
144
  }
143
- if(s_a.T && s_a.color_.R) {
145
+ {
144
146
  const a_ = s_a.left_;
145
147
  const y_ = s_a.key_;
146
148
  const yv_ = s_a.value_;
@@ -153,7 +155,7 @@ return ff_core_RbMap.T(ff_core_RbMap.R(), ins_(a_), y_, yv_, b_)
153
155
  if(_1.OrderingAfter) {
154
156
  return ff_core_RbMap.T(ff_core_RbMap.R(), a_, y_, yv_, ins_(b_))
155
157
  }
156
- if(_1.OrderingSame) {
158
+ {
157
159
  return ff_core_RbMap.T(ff_core_RbMap.R(), a_, x_, xv_, b_)
158
160
  }
159
161
  }
@@ -165,7 +167,7 @@ const _1 = ins_(s_);
165
167
  if(_1.E) {
166
168
  return ff_core_Core.panic_("Unexpected empty tree")
167
169
  }
168
- if(_1.T) {
170
+ {
169
171
  const a_ = _1.left_;
170
172
  const z_ = _1.key_;
171
173
  const zv_ = _1.value_;
@@ -182,7 +184,7 @@ if(tree_a.E) {
182
184
  const x_ = key_a;
183
185
  return false
184
186
  }
185
- if(tree_a.T) {
187
+ {
186
188
  const x_ = key_a;
187
189
  const a_ = tree_a.left_;
188
190
  const y_ = tree_a.key_;
@@ -195,7 +197,7 @@ return ff_core_RbMap.member_(x_, a_, ff_core_Ordering_Order$K)
195
197
  if(_1.OrderingAfter) {
196
198
  return ff_core_RbMap.member_(x_, b_, ff_core_Ordering_Order$K)
197
199
  }
198
- if(_1.OrderingSame) {
200
+ {
199
201
  return true
200
202
  }
201
203
  }
@@ -288,7 +290,7 @@ const ss_a = ss_;
288
290
  if(ss_a.E) {
289
291
  return ff_core_RbMap.E()
290
292
  }
291
- if(ss_a.T) {
293
+ {
292
294
  const a_ = ss_a.left_;
293
295
  const y_ = ss_a.key_;
294
296
  const yv_ = ss_a.value_;
@@ -301,7 +303,7 @@ return delformLeft_(a_, y_, yv_, b_)
301
303
  if(_1.OrderingAfter) {
302
304
  return delformRight_(a_, y_, yv_, b_)
303
305
  }
304
- if(_1.OrderingSame) {
306
+ {
305
307
  return ff_core_RbMap.app_(a_, b_, ff_core_Ordering_Order$K)
306
308
  }
307
309
  }
@@ -530,7 +532,7 @@ const xv_ = tree2_a.value_;
530
532
  const c_ = tree2_a.right_;
531
533
  return ff_core_RbMap.T(ff_core_RbMap.R(), ff_core_RbMap.app_(a_, b_, ff_core_Ordering_Order$K), x_, xv_, c_)
532
534
  }
533
- if(tree1_a.T && tree1_a.color_.R) {
535
+ {
534
536
  const a_ = tree1_a.left_;
535
537
  const x_ = tree1_a.key_;
536
538
  const xv_ = tree1_a.value_;
@@ -559,13 +561,13 @@ return ff_core_RbMap.balance_(ins_(a_), y_, yv_, b_, ff_core_Ordering_Order$K)
559
561
  if(_1.OrderingAfter) {
560
562
  return ff_core_RbMap.balance_(a_, y_, yv_, ins_(b_), ff_core_Ordering_Order$K)
561
563
  }
562
- if(_1.OrderingSame) {
564
+ {
563
565
  return ff_core_RbMap.T(ff_core_RbMap.B(), a_, x_, xv_, b_)
564
566
  }
565
567
  }
566
568
  return
567
569
  }
568
- if(s_a.T && s_a.color_.R) {
570
+ {
569
571
  const a_ = s_a.left_;
570
572
  const y_ = s_a.key_;
571
573
  const yv_ = s_a.value_;
@@ -578,7 +580,7 @@ return ff_core_RbMap.T(ff_core_RbMap.R(), ins_(a_), y_, yv_, b_)
578
580
  if(_1.OrderingAfter) {
579
581
  return ff_core_RbMap.T(ff_core_RbMap.R(), a_, y_, yv_, ins_(b_))
580
582
  }
581
- if(_1.OrderingSame) {
583
+ {
582
584
  return ff_core_RbMap.T(ff_core_RbMap.R(), a_, x_, xv_, b_)
583
585
  }
584
586
  }
@@ -590,7 +592,7 @@ const _1 = ins_(s_);
590
592
  if(_1.E) {
591
593
  return ff_core_Core.panic_("Unexpected empty tree")
592
594
  }
593
- if(_1.T) {
595
+ {
594
596
  const a_ = _1.left_;
595
597
  const z_ = _1.key_;
596
598
  const zv_ = _1.value_;
@@ -607,7 +609,7 @@ if(tree_a.E) {
607
609
  const x_ = key_a;
608
610
  return false
609
611
  }
610
- if(tree_a.T) {
612
+ {
611
613
  const x_ = key_a;
612
614
  const a_ = tree_a.left_;
613
615
  const y_ = tree_a.key_;
@@ -620,7 +622,7 @@ return ff_core_RbMap.member_(x_, a_, ff_core_Ordering_Order$K)
620
622
  if(_1.OrderingAfter) {
621
623
  return ff_core_RbMap.member_(x_, b_, ff_core_Ordering_Order$K)
622
624
  }
623
- if(_1.OrderingSame) {
625
+ {
624
626
  return true
625
627
  }
626
628
  }
@@ -713,7 +715,7 @@ const ss_a = ss_;
713
715
  if(ss_a.E) {
714
716
  return ff_core_RbMap.E()
715
717
  }
716
- if(ss_a.T) {
718
+ {
717
719
  const a_ = ss_a.left_;
718
720
  const y_ = ss_a.key_;
719
721
  const yv_ = ss_a.value_;
@@ -726,7 +728,7 @@ return delformLeft_(a_, y_, yv_, b_)
726
728
  if(_1.OrderingAfter) {
727
729
  return delformRight_(a_, y_, yv_, b_)
728
730
  }
729
- if(_1.OrderingSame) {
731
+ {
730
732
  return ff_core_RbMap.app_(a_, b_, ff_core_Ordering_Order$K)
731
733
  }
732
734
  }
@@ -955,7 +957,7 @@ const xv_ = tree2_a.value_;
955
957
  const c_ = tree2_a.right_;
956
958
  return ff_core_RbMap.T(ff_core_RbMap.R(), ff_core_RbMap.app_(a_, b_, ff_core_Ordering_Order$K), x_, xv_, c_)
957
959
  }
958
- if(tree1_a.T && tree1_a.color_.R) {
960
+ {
959
961
  const a_ = tree1_a.left_;
960
962
  const x_ = tree1_a.key_;
961
963
  const xv_ = tree1_a.value_;
@@ -971,7 +973,7 @@ const _1 = self_;
971
973
  if(_1.E) {
972
974
  return ff_core_Option.None()
973
975
  }
974
- if(_1.T) {
976
+ {
975
977
  const a_ = _1.left_;
976
978
  const y_ = _1.key_;
977
979
  const yv_ = _1.value_;
@@ -984,7 +986,7 @@ return ff_core_RbMap.RB_get(a_, key_, ff_core_Ordering_Order$K)
984
986
  if(_1.OrderingAfter) {
985
987
  return ff_core_RbMap.RB_get(b_, key_, ff_core_Ordering_Order$K)
986
988
  }
987
- if(_1.OrderingSame) {
989
+ {
988
990
  return ff_core_Option.Some(yv_)
989
991
  }
990
992
  }
@@ -999,7 +1001,7 @@ const _1 = self_;
999
1001
  if(_1.E) {
1000
1002
  return 0
1001
1003
  }
1002
- if(_1.T) {
1004
+ {
1003
1005
  const l_ = _1.left_;
1004
1006
  const r_ = _1.right_;
1005
1007
  return ((ff_core_RbMap.RB_size(l_, ff_core_Ordering_Order$K) + 1) + ff_core_RbMap.RB_size(r_, ff_core_Ordering_Order$K))
@@ -1058,7 +1060,7 @@ const tail_ = _1.slice(1);
1058
1060
  array_ = tail_;
1059
1061
  return ff_core_Option.Some(ff_core_Pair.Pair(k_, v_))
1060
1062
  }
1061
- if(_1.length >= 1 && _1[0].T) {
1063
+ {
1062
1064
  const l_ = _1[0].left_;
1063
1065
  const k_ = _1[0].key_;
1064
1066
  const v_ = _1[0].value_;
@@ -1090,7 +1092,7 @@ if(_1.E) {
1090
1092
 
1091
1093
  return
1092
1094
  }
1093
- if(_1.T) {
1095
+ {
1094
1096
  const l_ = _1.left_;
1095
1097
  const k_ = _1.key_;
1096
1098
  const v_ = _1.value_;
@@ -1109,7 +1111,7 @@ const _1 = self_;
1109
1111
  if(_1.E) {
1110
1112
  return true
1111
1113
  }
1112
- if(_1.T) {
1114
+ {
1113
1115
  const l_ = _1.left_;
1114
1116
  const k_ = _1.key_;
1115
1117
  const v_ = _1.value_;
@@ -1134,7 +1136,7 @@ const _1 = self_;
1134
1136
  if(_1.E) {
1135
1137
  return ff_core_RbMap.E()
1136
1138
  }
1137
- if(_1.T) {
1139
+ {
1138
1140
  const c_ = _1.color_;
1139
1141
  const l_ = _1.left_;
1140
1142
  const k_ = _1.key_;
@@ -1164,7 +1166,7 @@ const _1 = self_;
1164
1166
  if(_1.E) {
1165
1167
  return ff_core_Option.None()
1166
1168
  }
1167
- if(_1.T) {
1169
+ {
1168
1170
  const a_ = _1.left_;
1169
1171
  const y_ = _1.key_;
1170
1172
  const yv_ = _1.value_;
@@ -1177,7 +1179,7 @@ return ff_core_RbMap.RB_get(a_, key_, ff_core_Ordering_Order$K)
1177
1179
  if(_1.OrderingAfter) {
1178
1180
  return ff_core_RbMap.RB_get(b_, key_, ff_core_Ordering_Order$K)
1179
1181
  }
1180
- if(_1.OrderingSame) {
1182
+ {
1181
1183
  return ff_core_Option.Some(yv_)
1182
1184
  }
1183
1185
  }
@@ -1192,7 +1194,7 @@ const _1 = self_;
1192
1194
  if(_1.E) {
1193
1195
  return 0
1194
1196
  }
1195
- if(_1.T) {
1197
+ {
1196
1198
  const l_ = _1.left_;
1197
1199
  const r_ = _1.right_;
1198
1200
  return ((ff_core_RbMap.RB_size(l_, ff_core_Ordering_Order$K) + 1) + ff_core_RbMap.RB_size(r_, ff_core_Ordering_Order$K))
@@ -1251,7 +1253,7 @@ const tail_ = _1.slice(1);
1251
1253
  array_ = tail_;
1252
1254
  return ff_core_Option.Some(ff_core_Pair.Pair(k_, v_))
1253
1255
  }
1254
- if(_1.length >= 1 && _1[0].T) {
1256
+ {
1255
1257
  const l_ = _1[0].left_;
1256
1258
  const k_ = _1[0].key_;
1257
1259
  const v_ = _1[0].value_;
@@ -1283,7 +1285,7 @@ if(_1.E) {
1283
1285
 
1284
1286
  return
1285
1287
  }
1286
- if(_1.T) {
1288
+ {
1287
1289
  const l_ = _1.left_;
1288
1290
  const k_ = _1.key_;
1289
1291
  const v_ = _1.value_;
@@ -1302,7 +1304,7 @@ const _1 = self_;
1302
1304
  if(_1.E) {
1303
1305
  return true
1304
1306
  }
1305
- if(_1.T) {
1307
+ {
1306
1308
  const l_ = _1.left_;
1307
1309
  const k_ = _1.key_;
1308
1310
  const v_ = _1.value_;
@@ -1327,7 +1329,7 @@ const _1 = self_;
1327
1329
  if(_1.E) {
1328
1330
  return ff_core_RbMap.E()
1329
1331
  }
1330
- if(_1.T) {
1332
+ {
1331
1333
  const c_ = _1.color_;
1332
1334
  const l_ = _1.left_;
1333
1335
  const k_ = _1.key_;
@@ -42,6 +42,8 @@ import * as ff_core_Int from "../../ff/core/Int.mjs"
42
42
 
43
43
  import * as ff_core_IntMap from "../../ff/core/IntMap.mjs"
44
44
 
45
+ import * as ff_core_Js from "../../ff/core/Js.mjs"
46
+
45
47
  import * as ff_core_JsSystem from "../../ff/core/JsSystem.mjs"
46
48
 
47
49
  import * as ff_core_JsValue from "../../ff/core/JsValue.mjs"
@@ -68,6 +70,8 @@ import * as ff_core_Pair from "../../ff/core/Pair.mjs"
68
70
 
69
71
  import * as ff_core_Path from "../../ff/core/Path.mjs"
70
72
 
73
+ import * as ff_core_Queue from "../../ff/core/Queue.mjs"
74
+
71
75
  import * as ff_core_Random from "../../ff/core/Random.mjs"
72
76
 
73
77
  import * as ff_core_Serializable from "../../ff/core/Serializable.mjs"
@@ -90,8 +94,6 @@ import * as ff_core_Try from "../../ff/core/Try.mjs"
90
94
 
91
95
  import * as ff_core_Unit from "../../ff/core/Unit.mjs"
92
96
 
93
- import * as ff_core_UnsafeJs from "../../ff/core/UnsafeJs.mjs"
94
-
95
97
  // type DeserializationChecksumException
96
98
  const DeserializationChecksumException$ = {DeserializationChecksumException: true};
97
99
  export function DeserializationChecksumException() {
@@ -125,21 +127,23 @@ return result_
125
127
  }
126
128
 
127
129
  export function internalSetLatin1_(self_, byteOffset_, value_) {
128
-
129
- for(let i = 0; i < value_.length; i++) {
130
- let charCode = value_.charCodeAt(i)
131
- if(charCode >= 256) return false
132
- self_.setUint8(byteOffset_ + i, charCode)
133
- }
134
- return true
135
-
130
+ let result_ = true;
131
+ for(let for_i = 0, for_e = value_.length; for_i < for_e; for_i++) {
132
+ const i_ = for_i;
133
+ const charCode_ = value_.charCodeAt(i_);
134
+ if((charCode_ >= 256)) {
135
+ result_ = false
136
+ } else {
137
+ self_.setUint8((byteOffset_ + i_), charCode_)
138
+ };
139
+ if(!result_) break
140
+ };
141
+ return result_
136
142
  }
137
143
 
138
144
  export function internalGrabLatin1_(self_, byteOffset_, size_) {
139
-
140
- const codeUnits = new Uint8Array(self_.buffer, self_.byteOffset + byteOffset_, size_)
141
- return String.fromCharCode.apply(null, codeUnits)
142
-
145
+ const codeUnits_ = (new Uint8Array(self_.buffer, (self_.byteOffset + byteOffset_), size_));
146
+ return String.fromCharCode.apply(null, codeUnits_)
143
147
  }
144
148
 
145
149
  export async function serialize_$(value_, initialBufferSize_ = 1024, ff_core_Serializable_Serializable$T, $task) {
@@ -162,11 +166,23 @@ return result_
162
166
  }
163
167
 
164
168
  export async function internalSetLatin1_$(self_, byteOffset_, value_, $task) {
165
- throw new Error('Function internalSetLatin1 is missing on this target in async context.');
169
+ let result_ = true;
170
+ for(let for_i = 0, for_e = value_.length; for_i < for_e; for_i++) {
171
+ const i_ = for_i;
172
+ const charCode_ = value_.charCodeAt(i_);
173
+ if((charCode_ >= 256)) {
174
+ result_ = false
175
+ } else {
176
+ self_.setUint8((byteOffset_ + i_), charCode_)
177
+ };
178
+ if(!result_) break
179
+ };
180
+ return result_
166
181
  }
167
182
 
168
183
  export async function internalGrabLatin1_$(self_, byteOffset_, size_, $task) {
169
- throw new Error('Function internalGrabLatin1 is missing on this target in async context.');
184
+ const codeUnits_ = (new Uint8Array(self_.buffer, (self_.byteOffset + byteOffset_), size_));
185
+ return String.fromCharCode.apply(null, codeUnits_)
170
186
  }
171
187
 
172
188
  export function Serialization_autoResize(self_, minSpareCapacity_) {
@@ -251,7 +267,7 @@ serialization_.offset_ += (1 + 4)
251
267
  } else {
252
268
  ff_core_Core.panic_("Can't serialize arrays where size() >= 1073741824")
253
269
  };
254
- for(let for_i = 0, for_a = value_, for_l = for_a.length; for_i < for_l; for_i++) {
270
+ for(let for_a = value_, for_i = 0, for_l = for_a.length; for_i < for_l; for_i++) {
255
271
  const _w1 = for_a[for_i];
256
272
  ff_core_Serializable_Serializable$T.serializeUsing_(serialization_, _w1)
257
273
  }
@@ -294,7 +310,7 @@ serialization_.offset_ += (1 + 4)
294
310
  } else {
295
311
  ff_core_Core.panic_("Can't serialize arrays where size() >= 1073741824")
296
312
  };
297
- for(let for_i = 0, for_a = value_, for_l = for_a.length; for_i < for_l; for_i++) {
313
+ for(let for_a = value_, for_i = 0, for_l = for_a.length; for_i < for_l; for_i++) {
298
314
  const _w1 = for_a[for_i];
299
315
  ff_core_Serializable_Serializable$T.serializeUsing_(serialization_, _w1)
300
316
  }
@@ -358,11 +374,11 @@ return ff_core_List.List_toMap(ff_core_Serializable.ff_core_Serializable_Seriali
358
374
 
359
375
  export const ff_core_Serializable_Serializable$ff_core_String_String = {
360
376
  serializeUsing_(serialization_, value_) {
361
- ff_core_Serializable.Serialization_autoResize(serialization_, (1 + ff_core_String.String_size(value_)));
362
- ff_core_Buffer.Buffer_setUint8(serialization_.buffer_, serialization_.offset_, ff_core_String.String_size(value_));
363
- if(((ff_core_String.String_size(value_) < 255) && ff_core_Serializable.internalSetLatin1_(serialization_.buffer_, (serialization_.offset_ + 1), value_))) {
364
- serialization_.offset_ += (1 + ff_core_String.String_size(value_))
365
- } else if((ff_core_String.String_size(value_) < 1073741824)) {
377
+ ff_core_Serializable.Serialization_autoResize(serialization_, (1 + value_.length));
378
+ ff_core_Buffer.Buffer_setUint8(serialization_.buffer_, serialization_.offset_, value_.length);
379
+ if(((value_.length < 255) && ff_core_Serializable.internalSetLatin1_(serialization_.buffer_, (serialization_.offset_ + 1), value_))) {
380
+ serialization_.offset_ += (1 + value_.length)
381
+ } else if((value_.length < 1073741824)) {
366
382
  const stringBuffer_ = ff_core_String.String_toBuffer(value_);
367
383
  ff_core_Serializable.Serialization_autoResize(serialization_, (5 + ff_core_Buffer.Buffer_size(stringBuffer_)));
368
384
  ff_core_Buffer.Buffer_setUint8(serialization_.buffer_, serialization_.offset_, 255);
@@ -387,11 +403,11 @@ return ff_core_Buffer.Buffer_toString(stringBuffer_, "utf8")
387
403
  }
388
404
  },
389
405
  async serializeUsing_$(serialization_, value_, $task) {
390
- ff_core_Serializable.Serialization_autoResize(serialization_, (1 + ff_core_String.String_size(value_)));
391
- ff_core_Buffer.Buffer_setUint8(serialization_.buffer_, serialization_.offset_, ff_core_String.String_size(value_));
392
- if(((ff_core_String.String_size(value_) < 255) && ff_core_Serializable.internalSetLatin1_(serialization_.buffer_, (serialization_.offset_ + 1), value_))) {
393
- serialization_.offset_ += (1 + ff_core_String.String_size(value_))
394
- } else if((ff_core_String.String_size(value_) < 1073741824)) {
406
+ ff_core_Serializable.Serialization_autoResize(serialization_, (1 + value_.length));
407
+ ff_core_Buffer.Buffer_setUint8(serialization_.buffer_, serialization_.offset_, value_.length);
408
+ if(((value_.length < 255) && ff_core_Serializable.internalSetLatin1_(serialization_.buffer_, (serialization_.offset_ + 1), value_))) {
409
+ serialization_.offset_ += (1 + value_.length)
410
+ } else if((value_.length < 1073741824)) {
395
411
  const stringBuffer_ = ff_core_String.String_toBuffer(value_);
396
412
  ff_core_Serializable.Serialization_autoResize(serialization_, (5 + ff_core_Buffer.Buffer_size(stringBuffer_)));
397
413
  ff_core_Buffer.Buffer_setUint8(serialization_.buffer_, serialization_.offset_, 255);
@@ -42,6 +42,8 @@ import * as ff_core_Int from "../../ff/core/Int.mjs"
42
42
 
43
43
  import * as ff_core_IntMap from "../../ff/core/IntMap.mjs"
44
44
 
45
+ import * as ff_core_Js from "../../ff/core/Js.mjs"
46
+
45
47
  import * as ff_core_JsSystem from "../../ff/core/JsSystem.mjs"
46
48
 
47
49
  import * as ff_core_JsValue from "../../ff/core/JsValue.mjs"
@@ -68,6 +70,8 @@ import * as ff_core_Pair from "../../ff/core/Pair.mjs"
68
70
 
69
71
  import * as ff_core_Path from "../../ff/core/Path.mjs"
70
72
 
73
+ import * as ff_core_Queue from "../../ff/core/Queue.mjs"
74
+
71
75
  import * as ff_core_Random from "../../ff/core/Random.mjs"
72
76
 
73
77
  import * as ff_core_Serializable from "../../ff/core/Serializable.mjs"
@@ -90,8 +94,6 @@ import * as ff_core_Try from "../../ff/core/Try.mjs"
90
94
 
91
95
  import * as ff_core_Unit from "../../ff/core/Unit.mjs"
92
96
 
93
- import * as ff_core_UnsafeJs from "../../ff/core/UnsafeJs.mjs"
94
-
95
97
  // newtype Set
96
98
 
97
99
 
@@ -114,7 +116,7 @@ return ff_core_Map.Map_addAll(self_, that_, ff_core_Ordering_Order$T)
114
116
 
115
117
  export function Set_addList(self_, that_, ff_core_Ordering_Order$T) {
116
118
  let result_ = self_;
117
- for(let for_i = 0, for_a = that_, for_l = for_a.length; for_i < for_l; for_i++) {
119
+ for(let for_a = that_, for_i = 0, for_l = for_a.length; for_i < for_l; for_i++) {
118
120
  const k_ = for_a[for_i];
119
121
  result_ = ff_core_Map.Map_add(result_, k_, (void 0), ff_core_Ordering_Order$T)
120
122
  };
@@ -179,7 +181,7 @@ return ff_core_Map.Map_addAll(self_, that_, ff_core_Ordering_Order$T)
179
181
 
180
182
  export async function Set_addList$(self_, that_, ff_core_Ordering_Order$T, $task) {
181
183
  let result_ = self_;
182
- for(let for_i = 0, for_a = that_, for_l = for_a.length; for_i < for_l; for_i++) {
184
+ for(let for_a = that_, for_i = 0, for_l = for_a.length; for_i < for_l; for_i++) {
183
185
  const k_ = for_a[for_i];
184
186
  result_ = ff_core_Map.Map_add(result_, k_, (void 0), ff_core_Ordering_Order$T)
185
187
  };
@@ -42,6 +42,8 @@ import * as ff_core_Int from "../../ff/core/Int.mjs"
42
42
 
43
43
  import * as ff_core_IntMap from "../../ff/core/IntMap.mjs"
44
44
 
45
+ import * as ff_core_Js from "../../ff/core/Js.mjs"
46
+
45
47
  import * as ff_core_JsSystem from "../../ff/core/JsSystem.mjs"
46
48
 
47
49
  import * as ff_core_JsValue from "../../ff/core/JsValue.mjs"
@@ -68,6 +70,8 @@ import * as ff_core_Pair from "../../ff/core/Pair.mjs"
68
70
 
69
71
  import * as ff_core_Path from "../../ff/core/Path.mjs"
70
72
 
73
+ import * as ff_core_Queue from "../../ff/core/Queue.mjs"
74
+
71
75
  import * as ff_core_Random from "../../ff/core/Random.mjs"
72
76
 
73
77
  import * as ff_core_Serializable from "../../ff/core/Serializable.mjs"
@@ -90,8 +94,6 @@ import * as ff_core_Try from "../../ff/core/Try.mjs"
90
94
 
91
95
  import * as ff_core_Unit from "../../ff/core/Unit.mjs"
92
96
 
93
- import * as ff_core_UnsafeJs from "../../ff/core/UnsafeJs.mjs"
94
-
95
97
 
96
98
 
97
99
 
@@ -108,7 +110,7 @@ const value_a = value_;
108
110
  if(!value_a) {
109
111
  return "False"
110
112
  }
111
- if(value_a) {
113
+ {
112
114
  return "True"
113
115
  }
114
116
  },
@@ -117,7 +119,7 @@ const value_a = value_;
117
119
  if(!value_a) {
118
120
  return "False"
119
121
  }
120
- if(value_a) {
122
+ {
121
123
  return "True"
122
124
  }
123
125
  }
@@ -161,10 +163,10 @@ return ("" + value_)
161
163
 
162
164
  export const ff_core_Show_Show$ff_core_String_String = {
163
165
  show_(value_) {
164
- return JSON.stringify(value_);
166
+ return JSON.stringify(value_)
165
167
  },
166
168
  async show_$(value_, $task) {
167
- throw new Error('Function show is missing on this target in async context.');
169
+ return JSON.stringify(value_)
168
170
  }
169
171
  };
170
172
 
@@ -42,6 +42,8 @@ import * as ff_core_Int from "../../ff/core/Int.mjs"
42
42
 
43
43
  import * as ff_core_IntMap from "../../ff/core/IntMap.mjs"
44
44
 
45
+ import * as ff_core_Js from "../../ff/core/Js.mjs"
46
+
45
47
  import * as ff_core_JsSystem from "../../ff/core/JsSystem.mjs"
46
48
 
47
49
  import * as ff_core_JsValue from "../../ff/core/JsValue.mjs"
@@ -68,6 +70,8 @@ import * as ff_core_Pair from "../../ff/core/Pair.mjs"
68
70
 
69
71
  import * as ff_core_Path from "../../ff/core/Path.mjs"
70
72
 
73
+ import * as ff_core_Queue from "../../ff/core/Queue.mjs"
74
+
71
75
  import * as ff_core_Random from "../../ff/core/Random.mjs"
72
76
 
73
77
  import * as ff_core_Serializable from "../../ff/core/Serializable.mjs"
@@ -90,8 +94,6 @@ import * as ff_core_Try from "../../ff/core/Try.mjs"
90
94
 
91
95
  import * as ff_core_Unit from "../../ff/core/Unit.mjs"
92
96
 
93
- import * as ff_core_UnsafeJs from "../../ff/core/UnsafeJs.mjs"
94
-
95
97
  // newtype SourceLocation
96
98
 
97
99