firefly-compiler 0.4.19 → 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.
- package/compiler/Builder.ff +23 -13
- package/compiler/JsEmitter.ff +120 -76
- package/compiler/LspHook.ff +17 -3
- package/compiler/Main.ff +13 -7
- package/compiler/Parser.ff +11 -13
- package/compiler/Resolver.ff +15 -15
- package/compiler/Syntax.ff +1 -0
- package/core/Array.ff +6 -4
- package/core/Int.ff +12 -12
- package/core/Json.ff +2 -2
- package/core/List.ff +6 -4
- package/experimental/benchmarks/ListGrab.ff +23 -0
- package/experimental/benchmarks/ListGrab.java +55 -0
- package/experimental/benchmarks/Pyrotek45.ff +30 -0
- package/experimental/benchmarks/Pyrotek45.java +64 -0
- package/experimental/tests/TestJson.ff +26 -0
- package/lsp/CompletionHandler.ff +14 -14
- package/lsp/Handler.ff +56 -60
- package/lsp/SignatureHelpHandler.ff +5 -4
- package/lsp/SymbolHandler.ff +18 -4
- package/lsp/TestReferences.ff +15 -0
- package/lsp/TestReferencesCase.ff +8 -0
- package/output/js/ff/compiler/Builder.mjs +50 -44
- package/output/js/ff/compiler/Dependencies.mjs +0 -2
- package/output/js/ff/compiler/Deriver.mjs +16 -140
- package/output/js/ff/compiler/Dictionaries.mjs +8 -222
- package/output/js/ff/compiler/Environment.mjs +12 -154
- package/output/js/ff/compiler/Inference.mjs +127 -1013
- package/output/js/ff/compiler/JsEmitter.mjs +434 -2344
- package/output/js/ff/compiler/JsImporter.mjs +0 -12
- package/output/js/ff/compiler/LspHook.mjs +548 -151
- package/output/js/ff/compiler/Main.mjs +96 -550
- package/output/js/ff/compiler/Parser.mjs +58 -390
- package/output/js/ff/compiler/Patterns.mjs +20 -200
- package/output/js/ff/compiler/Resolver.mjs +26 -340
- package/output/js/ff/compiler/Substitution.mjs +2 -160
- package/output/js/ff/compiler/Syntax.mjs +449 -3293
- package/output/js/ff/compiler/Token.mjs +9 -1095
- package/output/js/ff/compiler/Tokenizer.mjs +4 -2
- package/output/js/ff/compiler/Unification.mjs +26 -360
- package/output/js/ff/compiler/Wildcards.mjs +0 -86
- package/output/js/ff/compiler/Workspace.mjs +8 -96
- package/output/js/ff/core/Array.mjs +15 -8
- package/output/js/ff/core/AssetSystem.mjs +4 -14
- package/output/js/ff/core/Bool.mjs +0 -12
- package/output/js/ff/core/Core.mjs +0 -30
- package/output/js/ff/core/Int.mjs +24 -24
- package/output/js/ff/core/IntMap.mjs +0 -8
- package/output/js/ff/core/Json.mjs +2 -42
- package/output/js/ff/core/List.mjs +23 -32
- package/output/js/ff/core/Lock.mjs +0 -10
- package/output/js/ff/core/Map.mjs +0 -24
- package/output/js/ff/core/Option.mjs +10 -286
- package/output/js/ff/core/Ordering.mjs +16 -158
- package/output/js/ff/core/Pair.mjs +2 -34
- package/output/js/ff/core/Path.mjs +2 -28
- package/output/js/ff/core/Random.mjs +4 -4
- package/output/js/ff/core/RbMap.mjs +56 -644
- package/output/js/ff/core/Show.mjs +0 -16
- package/output/js/ff/core/Stream.mjs +14 -144
- package/output/js/ff/core/StringMap.mjs +0 -8
- package/output/js/ff/core/Try.mjs +4 -108
- package/output/js/ff/core/Unit.mjs +2 -16
- package/package.json +1 -1
- package/postgresql/Pg.ff +23 -23
- package/vscode/client/src/extension.ts +30 -2
- package/vscode/package.json +17 -1
- package/core/Stack.ff +0 -250
|
@@ -108,18 +108,12 @@ return {Some: true, value_};
|
|
|
108
108
|
export function Option_else(self_, body_) {
|
|
109
109
|
{
|
|
110
110
|
const _1 = self_;
|
|
111
|
-
{
|
|
112
111
|
if(_1.None) {
|
|
113
112
|
return body_()
|
|
114
|
-
return
|
|
115
|
-
}
|
|
116
113
|
}
|
|
117
|
-
{
|
|
118
114
|
if(_1.Some) {
|
|
119
115
|
const value_ = _1.value_;
|
|
120
116
|
return value_
|
|
121
|
-
return
|
|
122
|
-
}
|
|
123
117
|
}
|
|
124
118
|
}
|
|
125
119
|
}
|
|
@@ -127,31 +121,20 @@ return
|
|
|
127
121
|
export function Option_elseIf(self_, condition_, body_) {
|
|
128
122
|
{
|
|
129
123
|
const _1 = self_;
|
|
130
|
-
{
|
|
131
124
|
if(_1.None) {
|
|
132
125
|
{
|
|
133
126
|
const _1 = condition_();
|
|
134
|
-
{
|
|
135
127
|
if(_1) {
|
|
136
128
|
return ff_core_Option.Some(body_())
|
|
137
|
-
return
|
|
138
129
|
}
|
|
139
|
-
}
|
|
140
|
-
{
|
|
141
130
|
if(!_1) {
|
|
142
131
|
return ff_core_Option.None()
|
|
143
|
-
return
|
|
144
|
-
}
|
|
145
132
|
}
|
|
146
133
|
}
|
|
147
134
|
return
|
|
148
135
|
}
|
|
149
|
-
}
|
|
150
|
-
{
|
|
151
136
|
if(_1.Some) {
|
|
152
137
|
return self_
|
|
153
|
-
return
|
|
154
|
-
}
|
|
155
138
|
}
|
|
156
139
|
}
|
|
157
140
|
}
|
|
@@ -159,17 +142,11 @@ return
|
|
|
159
142
|
export function Option_orElse(self_, body_) {
|
|
160
143
|
{
|
|
161
144
|
const _1 = self_;
|
|
162
|
-
{
|
|
163
145
|
if(_1.None) {
|
|
164
146
|
return body_()
|
|
165
|
-
return
|
|
166
|
-
}
|
|
167
147
|
}
|
|
168
|
-
{
|
|
169
148
|
if(_1.Some) {
|
|
170
149
|
return self_
|
|
171
|
-
return
|
|
172
|
-
}
|
|
173
150
|
}
|
|
174
151
|
}
|
|
175
152
|
}
|
|
@@ -177,17 +154,11 @@ return
|
|
|
177
154
|
export function Option_isEmpty(self_) {
|
|
178
155
|
{
|
|
179
156
|
const _1 = self_;
|
|
180
|
-
{
|
|
181
157
|
if(_1.None) {
|
|
182
158
|
return true
|
|
183
|
-
return
|
|
184
|
-
}
|
|
185
159
|
}
|
|
186
|
-
{
|
|
187
160
|
if(_1.Some) {
|
|
188
161
|
return false
|
|
189
|
-
return
|
|
190
|
-
}
|
|
191
162
|
}
|
|
192
163
|
}
|
|
193
164
|
}
|
|
@@ -195,18 +166,12 @@ return
|
|
|
195
166
|
export function Option_toList(self_) {
|
|
196
167
|
{
|
|
197
168
|
const _1 = self_;
|
|
198
|
-
{
|
|
199
169
|
if(_1.None) {
|
|
200
170
|
return []
|
|
201
|
-
return
|
|
202
|
-
}
|
|
203
171
|
}
|
|
204
|
-
{
|
|
205
172
|
if(_1.Some) {
|
|
206
173
|
const v_ = _1.value_;
|
|
207
174
|
return [v_]
|
|
208
|
-
return
|
|
209
|
-
}
|
|
210
175
|
}
|
|
211
176
|
}
|
|
212
177
|
}
|
|
@@ -231,19 +196,14 @@ return result_
|
|
|
231
196
|
export function Option_filter(self_, body_) {
|
|
232
197
|
{
|
|
233
198
|
const _1 = self_;
|
|
234
|
-
{
|
|
235
199
|
if(_1.Some) {
|
|
236
200
|
const v_ = _1.value_;
|
|
237
|
-
|
|
238
|
-
if(_guard1) {
|
|
201
|
+
if(body_(v_)) {
|
|
239
202
|
return ff_core_Option.Some(v_)
|
|
240
|
-
return
|
|
241
|
-
}
|
|
242
203
|
}
|
|
243
204
|
}
|
|
244
205
|
{
|
|
245
206
|
return ff_core_Option.None()
|
|
246
|
-
return
|
|
247
207
|
}
|
|
248
208
|
}
|
|
249
209
|
}
|
|
@@ -251,18 +211,12 @@ return
|
|
|
251
211
|
export function Option_map(self_, body_) {
|
|
252
212
|
{
|
|
253
213
|
const _1 = self_;
|
|
254
|
-
{
|
|
255
214
|
if(_1.None) {
|
|
256
215
|
return ff_core_Option.None()
|
|
257
|
-
return
|
|
258
216
|
}
|
|
259
|
-
}
|
|
260
|
-
{
|
|
261
217
|
if(_1.Some) {
|
|
262
218
|
const v_ = _1.value_;
|
|
263
219
|
return ff_core_Option.Some(body_(v_))
|
|
264
|
-
return
|
|
265
|
-
}
|
|
266
220
|
}
|
|
267
221
|
}
|
|
268
222
|
}
|
|
@@ -270,18 +224,12 @@ return
|
|
|
270
224
|
export function Option_flatMap(self_, body_) {
|
|
271
225
|
{
|
|
272
226
|
const _1 = self_;
|
|
273
|
-
{
|
|
274
227
|
if(_1.None) {
|
|
275
228
|
return ff_core_Option.None()
|
|
276
|
-
return
|
|
277
229
|
}
|
|
278
|
-
}
|
|
279
|
-
{
|
|
280
230
|
if(_1.Some) {
|
|
281
231
|
const v_ = _1.value_;
|
|
282
232
|
return body_(v_)
|
|
283
|
-
return
|
|
284
|
-
}
|
|
285
233
|
}
|
|
286
234
|
}
|
|
287
235
|
}
|
|
@@ -289,13 +237,10 @@ return
|
|
|
289
237
|
export function Option_each(self_, body_) {
|
|
290
238
|
{
|
|
291
239
|
const _1 = self_;
|
|
292
|
-
{
|
|
293
240
|
if(_1.None) {
|
|
294
241
|
|
|
295
242
|
return
|
|
296
243
|
}
|
|
297
|
-
}
|
|
298
|
-
{
|
|
299
244
|
if(_1.Some) {
|
|
300
245
|
const v_ = _1.value_;
|
|
301
246
|
body_(v_)
|
|
@@ -303,23 +248,16 @@ return
|
|
|
303
248
|
}
|
|
304
249
|
}
|
|
305
250
|
}
|
|
306
|
-
}
|
|
307
251
|
|
|
308
252
|
export function Option_all(self_, body_) {
|
|
309
253
|
{
|
|
310
254
|
const _1 = self_;
|
|
311
|
-
{
|
|
312
255
|
if(_1.None) {
|
|
313
256
|
return true
|
|
314
|
-
return
|
|
315
257
|
}
|
|
316
|
-
}
|
|
317
|
-
{
|
|
318
258
|
if(_1.Some) {
|
|
319
259
|
const v_ = _1.value_;
|
|
320
260
|
return body_(v_)
|
|
321
|
-
return
|
|
322
|
-
}
|
|
323
261
|
}
|
|
324
262
|
}
|
|
325
263
|
}
|
|
@@ -327,18 +265,12 @@ return
|
|
|
327
265
|
export function Option_any(self_, body_) {
|
|
328
266
|
{
|
|
329
267
|
const _1 = self_;
|
|
330
|
-
{
|
|
331
268
|
if(_1.None) {
|
|
332
269
|
return false
|
|
333
|
-
return
|
|
334
270
|
}
|
|
335
|
-
}
|
|
336
|
-
{
|
|
337
271
|
if(_1.Some) {
|
|
338
272
|
const v_ = _1.value_;
|
|
339
273
|
return body_(v_)
|
|
340
|
-
return
|
|
341
|
-
}
|
|
342
274
|
}
|
|
343
275
|
}
|
|
344
276
|
}
|
|
@@ -346,18 +278,12 @@ return
|
|
|
346
278
|
export function Option_grab(self_) {
|
|
347
279
|
{
|
|
348
280
|
const _1 = self_;
|
|
349
|
-
{
|
|
350
281
|
if(_1.None) {
|
|
351
282
|
return ff_core_Try.internalThrowGrabException_()
|
|
352
|
-
return
|
|
353
|
-
}
|
|
354
283
|
}
|
|
355
|
-
{
|
|
356
284
|
if(_1.Some) {
|
|
357
285
|
const v_ = _1.value_;
|
|
358
286
|
return v_
|
|
359
|
-
return
|
|
360
|
-
}
|
|
361
287
|
}
|
|
362
288
|
}
|
|
363
289
|
}
|
|
@@ -365,18 +291,12 @@ return
|
|
|
365
291
|
export async function Option_else$(self_, body_, $task) {
|
|
366
292
|
{
|
|
367
293
|
const _1 = self_;
|
|
368
|
-
{
|
|
369
294
|
if(_1.None) {
|
|
370
295
|
return (await body_($task))
|
|
371
|
-
return
|
|
372
|
-
}
|
|
373
296
|
}
|
|
374
|
-
{
|
|
375
297
|
if(_1.Some) {
|
|
376
298
|
const value_ = _1.value_;
|
|
377
299
|
return value_
|
|
378
|
-
return
|
|
379
|
-
}
|
|
380
300
|
}
|
|
381
301
|
}
|
|
382
302
|
}
|
|
@@ -384,31 +304,20 @@ return
|
|
|
384
304
|
export async function Option_elseIf$(self_, condition_, body_, $task) {
|
|
385
305
|
{
|
|
386
306
|
const _1 = self_;
|
|
387
|
-
{
|
|
388
307
|
if(_1.None) {
|
|
389
308
|
{
|
|
390
309
|
const _1 = (await condition_($task));
|
|
391
|
-
{
|
|
392
310
|
if(_1) {
|
|
393
311
|
return ff_core_Option.Some((await body_($task)))
|
|
394
|
-
return
|
|
395
312
|
}
|
|
396
|
-
}
|
|
397
|
-
{
|
|
398
313
|
if(!_1) {
|
|
399
314
|
return ff_core_Option.None()
|
|
400
|
-
return
|
|
401
|
-
}
|
|
402
315
|
}
|
|
403
316
|
}
|
|
404
317
|
return
|
|
405
318
|
}
|
|
406
|
-
}
|
|
407
|
-
{
|
|
408
319
|
if(_1.Some) {
|
|
409
320
|
return self_
|
|
410
|
-
return
|
|
411
|
-
}
|
|
412
321
|
}
|
|
413
322
|
}
|
|
414
323
|
}
|
|
@@ -416,17 +325,11 @@ return
|
|
|
416
325
|
export async function Option_orElse$(self_, body_, $task) {
|
|
417
326
|
{
|
|
418
327
|
const _1 = self_;
|
|
419
|
-
{
|
|
420
328
|
if(_1.None) {
|
|
421
329
|
return (await body_($task))
|
|
422
|
-
return
|
|
423
330
|
}
|
|
424
|
-
}
|
|
425
|
-
{
|
|
426
331
|
if(_1.Some) {
|
|
427
332
|
return self_
|
|
428
|
-
return
|
|
429
|
-
}
|
|
430
333
|
}
|
|
431
334
|
}
|
|
432
335
|
}
|
|
@@ -434,17 +337,11 @@ return
|
|
|
434
337
|
export async function Option_isEmpty$(self_, $task) {
|
|
435
338
|
{
|
|
436
339
|
const _1 = self_;
|
|
437
|
-
{
|
|
438
340
|
if(_1.None) {
|
|
439
341
|
return true
|
|
440
|
-
return
|
|
441
342
|
}
|
|
442
|
-
}
|
|
443
|
-
{
|
|
444
343
|
if(_1.Some) {
|
|
445
344
|
return false
|
|
446
|
-
return
|
|
447
|
-
}
|
|
448
345
|
}
|
|
449
346
|
}
|
|
450
347
|
}
|
|
@@ -452,18 +349,12 @@ return
|
|
|
452
349
|
export async function Option_toList$(self_, $task) {
|
|
453
350
|
{
|
|
454
351
|
const _1 = self_;
|
|
455
|
-
{
|
|
456
352
|
if(_1.None) {
|
|
457
353
|
return []
|
|
458
|
-
return
|
|
459
|
-
}
|
|
460
354
|
}
|
|
461
|
-
{
|
|
462
355
|
if(_1.Some) {
|
|
463
356
|
const v_ = _1.value_;
|
|
464
357
|
return [v_]
|
|
465
|
-
return
|
|
466
|
-
}
|
|
467
358
|
}
|
|
468
359
|
}
|
|
469
360
|
}
|
|
@@ -488,19 +379,14 @@ return result_
|
|
|
488
379
|
export async function Option_filter$(self_, body_, $task) {
|
|
489
380
|
{
|
|
490
381
|
const _1 = self_;
|
|
491
|
-
{
|
|
492
382
|
if(_1.Some) {
|
|
493
383
|
const v_ = _1.value_;
|
|
494
|
-
|
|
495
|
-
if(_guard1) {
|
|
384
|
+
if((await body_(v_, $task))) {
|
|
496
385
|
return ff_core_Option.Some(v_)
|
|
497
|
-
return
|
|
498
|
-
}
|
|
499
386
|
}
|
|
500
387
|
}
|
|
501
388
|
{
|
|
502
389
|
return ff_core_Option.None()
|
|
503
|
-
return
|
|
504
390
|
}
|
|
505
391
|
}
|
|
506
392
|
}
|
|
@@ -508,18 +394,12 @@ return
|
|
|
508
394
|
export async function Option_map$(self_, body_, $task) {
|
|
509
395
|
{
|
|
510
396
|
const _1 = self_;
|
|
511
|
-
{
|
|
512
397
|
if(_1.None) {
|
|
513
398
|
return ff_core_Option.None()
|
|
514
|
-
return
|
|
515
|
-
}
|
|
516
399
|
}
|
|
517
|
-
{
|
|
518
400
|
if(_1.Some) {
|
|
519
401
|
const v_ = _1.value_;
|
|
520
402
|
return ff_core_Option.Some((await body_(v_, $task)))
|
|
521
|
-
return
|
|
522
|
-
}
|
|
523
403
|
}
|
|
524
404
|
}
|
|
525
405
|
}
|
|
@@ -527,18 +407,12 @@ return
|
|
|
527
407
|
export async function Option_flatMap$(self_, body_, $task) {
|
|
528
408
|
{
|
|
529
409
|
const _1 = self_;
|
|
530
|
-
{
|
|
531
410
|
if(_1.None) {
|
|
532
411
|
return ff_core_Option.None()
|
|
533
|
-
return
|
|
534
|
-
}
|
|
535
412
|
}
|
|
536
|
-
{
|
|
537
413
|
if(_1.Some) {
|
|
538
414
|
const v_ = _1.value_;
|
|
539
415
|
return (await body_(v_, $task))
|
|
540
|
-
return
|
|
541
|
-
}
|
|
542
416
|
}
|
|
543
417
|
}
|
|
544
418
|
}
|
|
@@ -546,13 +420,10 @@ return
|
|
|
546
420
|
export async function Option_each$(self_, body_, $task) {
|
|
547
421
|
{
|
|
548
422
|
const _1 = self_;
|
|
549
|
-
{
|
|
550
423
|
if(_1.None) {
|
|
551
424
|
|
|
552
425
|
return
|
|
553
426
|
}
|
|
554
|
-
}
|
|
555
|
-
{
|
|
556
427
|
if(_1.Some) {
|
|
557
428
|
const v_ = _1.value_;
|
|
558
429
|
(await body_(v_, $task))
|
|
@@ -560,23 +431,16 @@ return
|
|
|
560
431
|
}
|
|
561
432
|
}
|
|
562
433
|
}
|
|
563
|
-
}
|
|
564
434
|
|
|
565
435
|
export async function Option_all$(self_, body_, $task) {
|
|
566
436
|
{
|
|
567
437
|
const _1 = self_;
|
|
568
|
-
{
|
|
569
438
|
if(_1.None) {
|
|
570
439
|
return true
|
|
571
|
-
return
|
|
572
|
-
}
|
|
573
440
|
}
|
|
574
|
-
{
|
|
575
441
|
if(_1.Some) {
|
|
576
442
|
const v_ = _1.value_;
|
|
577
443
|
return (await body_(v_, $task))
|
|
578
|
-
return
|
|
579
|
-
}
|
|
580
444
|
}
|
|
581
445
|
}
|
|
582
446
|
}
|
|
@@ -584,18 +448,12 @@ return
|
|
|
584
448
|
export async function Option_any$(self_, body_, $task) {
|
|
585
449
|
{
|
|
586
450
|
const _1 = self_;
|
|
587
|
-
{
|
|
588
451
|
if(_1.None) {
|
|
589
452
|
return false
|
|
590
|
-
return
|
|
591
453
|
}
|
|
592
|
-
}
|
|
593
|
-
{
|
|
594
454
|
if(_1.Some) {
|
|
595
455
|
const v_ = _1.value_;
|
|
596
456
|
return (await body_(v_, $task))
|
|
597
|
-
return
|
|
598
|
-
}
|
|
599
457
|
}
|
|
600
458
|
}
|
|
601
459
|
}
|
|
@@ -603,18 +461,12 @@ return
|
|
|
603
461
|
export async function Option_grab$(self_, $task) {
|
|
604
462
|
{
|
|
605
463
|
const _1 = self_;
|
|
606
|
-
{
|
|
607
464
|
if(_1.None) {
|
|
608
465
|
return ff_core_Try.internalThrowGrabException_()
|
|
609
|
-
return
|
|
610
466
|
}
|
|
611
|
-
}
|
|
612
|
-
{
|
|
613
467
|
if(_1.Some) {
|
|
614
468
|
const v_ = _1.value_;
|
|
615
469
|
return v_
|
|
616
|
-
return
|
|
617
|
-
}
|
|
618
470
|
}
|
|
619
471
|
}
|
|
620
472
|
}
|
|
@@ -622,18 +474,12 @@ return
|
|
|
622
474
|
export function Option_contains(self_, value_, ff_core_Equal_Equal$T) {
|
|
623
475
|
{
|
|
624
476
|
const _1 = self_;
|
|
625
|
-
{
|
|
626
477
|
if(_1.None) {
|
|
627
478
|
return false
|
|
628
|
-
return
|
|
629
479
|
}
|
|
630
|
-
}
|
|
631
|
-
{
|
|
632
480
|
if(_1.Some) {
|
|
633
481
|
const v_ = _1.value_;
|
|
634
482
|
return ff_core_Equal_Equal$T.equals_(v_, value_)
|
|
635
|
-
return
|
|
636
|
-
}
|
|
637
483
|
}
|
|
638
484
|
}
|
|
639
485
|
}
|
|
@@ -641,18 +487,12 @@ return
|
|
|
641
487
|
export async function Option_contains$(self_, value_, ff_core_Equal_Equal$T, $task) {
|
|
642
488
|
{
|
|
643
489
|
const _1 = self_;
|
|
644
|
-
{
|
|
645
490
|
if(_1.None) {
|
|
646
491
|
return false
|
|
647
|
-
return
|
|
648
|
-
}
|
|
649
492
|
}
|
|
650
|
-
{
|
|
651
493
|
if(_1.Some) {
|
|
652
494
|
const v_ = _1.value_;
|
|
653
495
|
return ff_core_Equal_Equal$T.equals_(v_, value_)
|
|
654
|
-
return
|
|
655
|
-
}
|
|
656
496
|
}
|
|
657
497
|
}
|
|
658
498
|
}
|
|
@@ -660,18 +500,12 @@ return
|
|
|
660
500
|
export function Option_flatten(self_) {
|
|
661
501
|
{
|
|
662
502
|
const _1 = self_;
|
|
663
|
-
{
|
|
664
503
|
if(_1.None) {
|
|
665
504
|
return ff_core_Option.None()
|
|
666
|
-
return
|
|
667
|
-
}
|
|
668
505
|
}
|
|
669
|
-
{
|
|
670
506
|
if(_1.Some) {
|
|
671
507
|
const v_ = _1.value_;
|
|
672
508
|
return v_
|
|
673
|
-
return
|
|
674
|
-
}
|
|
675
509
|
}
|
|
676
510
|
}
|
|
677
511
|
}
|
|
@@ -679,18 +513,12 @@ return
|
|
|
679
513
|
export async function Option_flatten$(self_, $task) {
|
|
680
514
|
{
|
|
681
515
|
const _1 = self_;
|
|
682
|
-
{
|
|
683
516
|
if(_1.None) {
|
|
684
517
|
return ff_core_Option.None()
|
|
685
|
-
return
|
|
686
|
-
}
|
|
687
518
|
}
|
|
688
|
-
{
|
|
689
519
|
if(_1.Some) {
|
|
690
520
|
const v_ = _1.value_;
|
|
691
521
|
return v_
|
|
692
|
-
return
|
|
693
|
-
}
|
|
694
522
|
}
|
|
695
523
|
}
|
|
696
524
|
}
|
|
@@ -706,118 +534,71 @@ return ff_core_Any.internalAnyTag_(((("ff:core/Option.Option" + "[") + ff_core_A
|
|
|
706
534
|
|
|
707
535
|
export function ff_core_Show_Show$ff_core_Option_Option(ff_core_Show_Show$T) { return {
|
|
708
536
|
show_(value_) {
|
|
709
|
-
{
|
|
710
537
|
const value_a = value_;
|
|
711
|
-
{
|
|
712
538
|
if(value_a.None) {
|
|
713
539
|
const z_ = value_a;
|
|
714
540
|
return "None"
|
|
715
|
-
return
|
|
716
|
-
}
|
|
717
541
|
}
|
|
718
|
-
{
|
|
719
542
|
if(value_a.Some) {
|
|
720
543
|
const z_ = value_a;
|
|
721
544
|
return ((("Some" + "(") + ff_core_Show_Show$T.show_(z_.value_)) + ")")
|
|
722
|
-
return
|
|
723
|
-
}
|
|
724
|
-
}
|
|
725
545
|
}
|
|
726
546
|
},
|
|
727
547
|
async show_$(value_, $task) {
|
|
728
|
-
{
|
|
729
548
|
const value_a = value_;
|
|
730
|
-
{
|
|
731
549
|
if(value_a.None) {
|
|
732
550
|
const z_ = value_a;
|
|
733
551
|
return "None"
|
|
734
|
-
return
|
|
735
|
-
}
|
|
736
552
|
}
|
|
737
|
-
{
|
|
738
553
|
if(value_a.Some) {
|
|
739
554
|
const z_ = value_a;
|
|
740
555
|
return ((("Some" + "(") + ff_core_Show_Show$T.show_(z_.value_)) + ")")
|
|
741
|
-
return
|
|
742
|
-
}
|
|
743
|
-
}
|
|
744
556
|
}
|
|
745
557
|
}
|
|
746
558
|
}}
|
|
747
559
|
|
|
748
560
|
export function ff_core_Equal_Equal$ff_core_Option_Option(ff_core_Equal_Equal$T) { return {
|
|
749
561
|
equals_(x_, y_) {
|
|
750
|
-
{
|
|
751
562
|
const x_a = x_;
|
|
752
563
|
const y_a = y_;
|
|
753
|
-
{
|
|
754
|
-
const _guard1 = (x_ === y_);
|
|
755
|
-
if(_guard1) {
|
|
564
|
+
if((x_ === y_)) {
|
|
756
565
|
return true
|
|
757
|
-
return
|
|
758
|
-
}
|
|
759
566
|
}
|
|
760
|
-
{
|
|
761
|
-
if(x_a.Some) {
|
|
567
|
+
if(x_a.Some && y_a.Some) {
|
|
762
568
|
const x_ = x_a;
|
|
763
|
-
if(y_a.Some) {
|
|
764
569
|
const y_ = y_a;
|
|
765
570
|
return ff_core_Equal_Equal$T.equals_(x_.value_, y_.value_)
|
|
766
|
-
return
|
|
767
|
-
}
|
|
768
|
-
}
|
|
769
571
|
}
|
|
770
572
|
{
|
|
771
573
|
return false
|
|
772
|
-
return
|
|
773
|
-
}
|
|
774
574
|
}
|
|
775
575
|
},
|
|
776
576
|
async equals_$(x_, y_, $task) {
|
|
777
|
-
{
|
|
778
577
|
const x_a = x_;
|
|
779
578
|
const y_a = y_;
|
|
780
|
-
{
|
|
781
|
-
const _guard1 = (x_ === y_);
|
|
782
|
-
if(_guard1) {
|
|
579
|
+
if((x_ === y_)) {
|
|
783
580
|
return true
|
|
784
|
-
return
|
|
785
|
-
}
|
|
786
581
|
}
|
|
787
|
-
{
|
|
788
|
-
if(x_a.Some) {
|
|
582
|
+
if(x_a.Some && y_a.Some) {
|
|
789
583
|
const x_ = x_a;
|
|
790
|
-
if(y_a.Some) {
|
|
791
584
|
const y_ = y_a;
|
|
792
585
|
return ff_core_Equal_Equal$T.equals_(x_.value_, y_.value_)
|
|
793
|
-
return
|
|
794
|
-
}
|
|
795
|
-
}
|
|
796
586
|
}
|
|
797
587
|
{
|
|
798
588
|
return false
|
|
799
|
-
return
|
|
800
|
-
}
|
|
801
589
|
}
|
|
802
590
|
}
|
|
803
591
|
}}
|
|
804
592
|
|
|
805
593
|
export function ff_core_Ordering_Order$ff_core_Option_Option(ff_core_Ordering_Order$T) { return {
|
|
806
594
|
compare_(x_, y_) {
|
|
807
|
-
{
|
|
808
595
|
const x_a = x_;
|
|
809
596
|
const y_a = y_;
|
|
810
|
-
{
|
|
811
|
-
const _guard1 = (x_ === y_);
|
|
812
|
-
if(_guard1) {
|
|
597
|
+
if((x_ === y_)) {
|
|
813
598
|
return ff_core_Ordering.OrderingSame()
|
|
814
|
-
return
|
|
815
599
|
}
|
|
816
|
-
|
|
817
|
-
{
|
|
818
|
-
if(x_a.Some) {
|
|
600
|
+
if(x_a.Some && y_a.Some) {
|
|
819
601
|
const x_ = x_a;
|
|
820
|
-
if(y_a.Some) {
|
|
821
602
|
const y_ = y_a;
|
|
822
603
|
const valueOrdering_ = ff_core_Ordering_Order$T.compare_(x_.value_, y_.value_);
|
|
823
604
|
if((valueOrdering_ !== ff_core_Ordering.OrderingSame())) {
|
|
@@ -827,46 +608,27 @@ return ff_core_Ordering.OrderingSame()
|
|
|
827
608
|
}
|
|
828
609
|
return
|
|
829
610
|
}
|
|
830
|
-
}
|
|
831
|
-
}
|
|
832
611
|
{
|
|
833
612
|
function number_(z_) {
|
|
834
|
-
{
|
|
835
613
|
const z_a = z_;
|
|
836
|
-
{
|
|
837
614
|
if(z_a.None) {
|
|
838
615
|
return 0
|
|
839
|
-
return
|
|
840
|
-
}
|
|
841
616
|
}
|
|
842
|
-
{
|
|
843
617
|
if(z_a.Some) {
|
|
844
618
|
return 1
|
|
845
|
-
return
|
|
846
|
-
}
|
|
847
|
-
}
|
|
848
619
|
}
|
|
849
620
|
}
|
|
850
621
|
return ff_core_Ordering.ff_core_Ordering_Order$ff_core_Int_Int.compare_(number_(x_), number_(y_))
|
|
851
|
-
return
|
|
852
|
-
}
|
|
853
622
|
}
|
|
854
623
|
},
|
|
855
624
|
async compare_$(x_, y_, $task) {
|
|
856
|
-
{
|
|
857
625
|
const x_a = x_;
|
|
858
626
|
const y_a = y_;
|
|
859
|
-
{
|
|
860
|
-
const _guard1 = (x_ === y_);
|
|
861
|
-
if(_guard1) {
|
|
627
|
+
if((x_ === y_)) {
|
|
862
628
|
return ff_core_Ordering.OrderingSame()
|
|
863
|
-
return
|
|
864
|
-
}
|
|
865
629
|
}
|
|
866
|
-
{
|
|
867
|
-
if(x_a.Some) {
|
|
630
|
+
if(x_a.Some && y_a.Some) {
|
|
868
631
|
const x_ = x_a;
|
|
869
|
-
if(y_a.Some) {
|
|
870
632
|
const y_ = y_a;
|
|
871
633
|
const valueOrdering_ = ff_core_Ordering_Order$T.compare_(x_.value_, y_.value_);
|
|
872
634
|
if((valueOrdering_ !== ff_core_Ordering.OrderingSame())) {
|
|
@@ -876,39 +638,25 @@ return ff_core_Ordering.OrderingSame()
|
|
|
876
638
|
}
|
|
877
639
|
return
|
|
878
640
|
}
|
|
879
|
-
}
|
|
880
|
-
}
|
|
881
641
|
{
|
|
882
642
|
function number_(z_) {
|
|
883
|
-
{
|
|
884
643
|
const z_a = z_;
|
|
885
|
-
{
|
|
886
644
|
if(z_a.None) {
|
|
887
645
|
return 0
|
|
888
|
-
return
|
|
889
646
|
}
|
|
890
|
-
}
|
|
891
|
-
{
|
|
892
647
|
if(z_a.Some) {
|
|
893
648
|
return 1
|
|
894
|
-
return
|
|
895
|
-
}
|
|
896
|
-
}
|
|
897
649
|
}
|
|
898
650
|
}
|
|
899
651
|
return ff_core_Ordering.ff_core_Ordering_Order$ff_core_Int_Int.compare_(number_(x_), number_(y_))
|
|
900
|
-
return
|
|
901
|
-
}
|
|
902
652
|
}
|
|
903
653
|
}
|
|
904
654
|
}}
|
|
905
655
|
|
|
906
656
|
export function ff_core_Serializable_Serializable$ff_core_Option_Option(ff_core_Serializable_Serializable$T) { return {
|
|
907
657
|
serializeUsing_(serialization_, value_) {
|
|
908
|
-
{
|
|
909
658
|
const serialization_a = serialization_;
|
|
910
659
|
const value_a = value_;
|
|
911
|
-
{
|
|
912
660
|
if(value_a.None) {
|
|
913
661
|
const v_ = value_a;
|
|
914
662
|
serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 19), 0);
|
|
@@ -917,8 +665,6 @@ ff_core_Buffer.Buffer_setUint8(serialization_.buffer_, serialization_.offset_, 0
|
|
|
917
665
|
serialization_.offset_ += 1
|
|
918
666
|
return
|
|
919
667
|
}
|
|
920
|
-
}
|
|
921
|
-
{
|
|
922
668
|
if(value_a.Some) {
|
|
923
669
|
const v_ = value_a;
|
|
924
670
|
serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 19), 0);
|
|
@@ -928,39 +674,28 @@ serialization_.offset_ += 1;
|
|
|
928
674
|
ff_core_Serializable_Serializable$T.serializeUsing_(serialization_, v_.value_)
|
|
929
675
|
return
|
|
930
676
|
}
|
|
931
|
-
}
|
|
932
|
-
}
|
|
933
677
|
},
|
|
934
678
|
deserializeUsing_(serialization_) {
|
|
935
679
|
const variantIndex_ = ff_core_Buffer.Buffer_grabUint8(serialization_.buffer_, serialization_.offset_);
|
|
936
680
|
serialization_.offset_ += 1;
|
|
937
681
|
{
|
|
938
682
|
const _1 = variantIndex_;
|
|
939
|
-
{
|
|
940
683
|
if(_1 === 0) {
|
|
941
684
|
serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 19), 0);
|
|
942
685
|
return ff_core_Option.None()
|
|
943
|
-
return
|
|
944
686
|
}
|
|
945
|
-
}
|
|
946
|
-
{
|
|
947
687
|
if(_1 === 1) {
|
|
948
688
|
serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 19), 0);
|
|
949
689
|
return ff_core_Option.Some(ff_core_Serializable_Serializable$T.deserializeUsing_(serialization_))
|
|
950
|
-
return
|
|
951
|
-
}
|
|
952
690
|
}
|
|
953
691
|
{
|
|
954
692
|
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)})
|
|
955
|
-
return
|
|
956
693
|
}
|
|
957
694
|
}
|
|
958
695
|
},
|
|
959
696
|
async serializeUsing_$(serialization_, value_, $task) {
|
|
960
|
-
{
|
|
961
697
|
const serialization_a = serialization_;
|
|
962
698
|
const value_a = value_;
|
|
963
|
-
{
|
|
964
699
|
if(value_a.None) {
|
|
965
700
|
const v_ = value_a;
|
|
966
701
|
serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 19), 0);
|
|
@@ -969,8 +704,6 @@ ff_core_Buffer.Buffer_setUint8(serialization_.buffer_, serialization_.offset_, 0
|
|
|
969
704
|
serialization_.offset_ += 1
|
|
970
705
|
return
|
|
971
706
|
}
|
|
972
|
-
}
|
|
973
|
-
{
|
|
974
707
|
if(value_a.Some) {
|
|
975
708
|
const v_ = value_a;
|
|
976
709
|
serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 19), 0);
|
|
@@ -980,31 +713,22 @@ serialization_.offset_ += 1;
|
|
|
980
713
|
ff_core_Serializable_Serializable$T.serializeUsing_(serialization_, v_.value_)
|
|
981
714
|
return
|
|
982
715
|
}
|
|
983
|
-
}
|
|
984
|
-
}
|
|
985
716
|
},
|
|
986
717
|
async deserializeUsing_$(serialization_, $task) {
|
|
987
718
|
const variantIndex_ = ff_core_Buffer.Buffer_grabUint8(serialization_.buffer_, serialization_.offset_);
|
|
988
719
|
serialization_.offset_ += 1;
|
|
989
720
|
{
|
|
990
721
|
const _1 = variantIndex_;
|
|
991
|
-
{
|
|
992
722
|
if(_1 === 0) {
|
|
993
723
|
serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 19), 0);
|
|
994
724
|
return ff_core_Option.None()
|
|
995
|
-
return
|
|
996
|
-
}
|
|
997
725
|
}
|
|
998
|
-
{
|
|
999
726
|
if(_1 === 1) {
|
|
1000
727
|
serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 19), 0);
|
|
1001
728
|
return ff_core_Option.Some(ff_core_Serializable_Serializable$T.deserializeUsing_(serialization_))
|
|
1002
|
-
return
|
|
1003
|
-
}
|
|
1004
729
|
}
|
|
1005
730
|
{
|
|
1006
731
|
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)})
|
|
1007
|
-
return
|
|
1008
732
|
}
|
|
1009
733
|
}
|
|
1010
734
|
}
|