@nlozgachev/pipelined 0.43.0 → 0.45.0

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/dist/index.js CHANGED
@@ -45,6 +45,9 @@ __export(src_exports, {
45
45
  State: () => State,
46
46
  Str: () => Str,
47
47
  Task: () => Task,
48
+ TaskMaybe: () => TaskMaybe,
49
+ TaskResult: () => TaskResult,
50
+ TaskValidation: () => TaskValidation,
48
51
  These: () => These,
49
52
  Tuple: () => Tuple,
50
53
  Uniq: () => Uniq,
@@ -416,11 +419,14 @@ var Duration;
416
419
  Duration2.minutes = (m) => wrap(m * 60 * 1e3);
417
420
  Duration2.hours = (h) => wrap(h * 60 * 60 * 1e3);
418
421
  Duration2.days = (d) => wrap(d * 24 * 60 * 60 * 1e3);
419
- Duration2.toMilliseconds = (d) => Brand.unwrap(d);
420
- Duration2.toSeconds = (d) => Brand.unwrap(d) / 1e3;
421
- Duration2.toMinutes = (d) => Brand.unwrap(d) / (60 * 1e3);
422
- Duration2.toHours = (d) => Brand.unwrap(d) / (60 * 60 * 1e3);
423
- Duration2.toDays = (d) => Brand.unwrap(d) / (24 * 60 * 60 * 1e3);
422
+ let to;
423
+ ((to2) => {
424
+ to2.milliseconds = (d) => Brand.unwrap(d);
425
+ to2.seconds = (d) => Brand.unwrap(d) / 1e3;
426
+ to2.minutes = (d) => Brand.unwrap(d) / (60 * 1e3);
427
+ to2.hours = (d) => Brand.unwrap(d) / (60 * 60 * 1e3);
428
+ to2.days = (d) => Brand.unwrap(d) / (24 * 60 * 60 * 1e3);
429
+ })(to = Duration2.to || (Duration2.to = {}));
424
430
  Duration2.add = (other) => (self) => wrap(Brand.unwrap(self) + Brand.unwrap(other));
425
431
  Duration2.subtract = (other) => (self) => wrap(Brand.unwrap(self) - Brand.unwrap(other));
426
432
  })(Duration || (Duration = {}));
@@ -482,7 +488,7 @@ function tap(f) {
482
488
  const start = performance.now();
483
489
  const triggerFinish = (duration) => {
484
490
  if (config.label !== void 0) {
485
- console.log(`[${config.label}]: ${Duration.toMilliseconds(duration)}ms`);
491
+ console.log(`[${config.label}]: ${Duration.to.milliseconds(duration)}ms`);
486
492
  } else {
487
493
  config.onFinish(duration);
488
494
  }
@@ -530,8 +536,8 @@ var Combinable;
530
536
  Combinable2.any = { empty: false, combine: (b) => (a) => a || b };
531
537
  Combinable2.array = () => ({ empty: [], combine: (b) => (a) => [...a, ...b] });
532
538
  Combinable2.maybe = (inner) => ({
533
- empty: Maybe.none(),
534
- combine: (b) => (a) => Maybe.isNone(a) ? b : Maybe.isNone(b) ? a : Maybe.some(inner.combine(b.value)(a.value))
539
+ empty: Maybe.make.none(),
540
+ combine: (b) => (a) => Maybe.is.none(a) ? b : Maybe.is.none(b) ? a : Maybe.make.some(inner.combine(b.value)(a.value))
535
541
  });
536
542
  Combinable2.fold = (c) => (data) => data.reduce((acc, x) => c.combine(x)(acc), c.empty);
537
543
  })(Combinable || (Combinable = {}));
@@ -539,11 +545,17 @@ var Combinable;
539
545
  // src/Core/Deferred.ts
540
546
  var Deferred;
541
547
  ((Deferred2) => {
542
- Deferred2.fromPromise = (p) => (
543
- // eslint-disable-next-line unicorn/no-thenable -- Deferred is intentionally thenable; it is the mechanism that makes Task awaitable
544
- { then: ((f) => p.then(f)) }
545
- );
546
- Deferred2.toPromise = (d) => new Promise((resolve) => d.then(resolve));
548
+ let from;
549
+ ((from2) => {
550
+ from2.Promise = (p) => (
551
+ // eslint-disable-next-line unicorn/no-thenable -- Deferred is intentionally thenable; it is the mechanism that makes Task awaitable
552
+ { then: ((f) => p.then(f)) }
553
+ );
554
+ })(from = Deferred2.from || (Deferred2.from = {}));
555
+ let to;
556
+ ((to2) => {
557
+ to2.Promise = (d) => new globalThis.Promise((resolve) => d.then(resolve));
558
+ })(to = Deferred2.to || (Deferred2.to = {}));
547
559
  })(Deferred || (Deferred = {}));
548
560
 
549
561
  // src/Core/Equality.ts
@@ -587,12 +599,15 @@ var Lazy;
587
599
  // src/Core/Lens.ts
588
600
  var Lens;
589
601
  ((Lens3) => {
590
- Lens3.make = (get2, set2) => ({ get: get2, set: set2 });
591
- Lens3.prop = () => (key) => (0, Lens3.make)((s) => s[key], (a) => (s) => ({ ...s, [key]: a }));
602
+ let from;
603
+ ((from2) => {
604
+ from2.accessors = (get2, set2) => ({ get: get2, set: set2 });
605
+ from2.property = () => (key) => (0, from2.accessors)((s) => s[key], (a) => (s) => ({ ...s, [key]: a }));
606
+ })(from = Lens3.from || (Lens3.from = {}));
592
607
  Lens3.get = (lens) => (s) => lens.get(s);
593
608
  Lens3.set = (lens) => (a) => (s) => lens.set(a)(s);
594
609
  Lens3.modify = (lens) => (f) => (s) => lens.set(f(lens.get(s)))(s);
595
- Lens3.andThen = (inner) => (outer) => (0, Lens3.make)((s) => inner.get(outer.get(s)), (b) => (s) => outer.set(inner.set(b)(outer.get(s)))(s));
610
+ Lens3.andThen = (inner) => (outer) => from.accessors((s) => inner.get(outer.get(s)), (b) => (s) => outer.set(inner.set(b)(outer.get(s)))(s));
596
611
  Lens3.andThenOptional = (inner) => (outer) => ({
597
612
  get: (s) => inner.get(outer.get(s)),
598
613
  set: (b) => (s) => outer.set(inner.set(b)(outer.get(s)))(s)
@@ -606,8 +621,11 @@ var Lens;
606
621
  // src/Core/Logged.ts
607
622
  var Logged;
608
623
  ((Logged2) => {
609
- Logged2.make = (value) => ({ value, log: [] });
610
- Logged2.tell = (entry) => ({ value: void 0, log: [entry] });
624
+ let from;
625
+ ((from2) => {
626
+ from2.value = (val) => ({ value: val, log: [] });
627
+ from2.entry = (logEntry) => ({ value: void 0, log: [logEntry] });
628
+ })(from = Logged2.from || (Logged2.from = {}));
611
629
  Logged2.map = (f) => (data) => ({
612
630
  value: f(data.value),
613
631
  log: data.log
@@ -634,47 +652,59 @@ var Logged;
634
652
  // src/Core/Maybe.ts
635
653
  var _none = { kind: "None" };
636
654
  var Maybe;
637
- ((Maybe2) => {
638
- Maybe2.some = (value) => ({ kind: "Some", value });
639
- Maybe2.isSome = (data) => data.kind === "Some";
640
- Maybe2.none = () => _none;
641
- Maybe2.isNone = (data) => data.kind === "None";
642
- Maybe2.fromNullable = (value) => value === null || value === void 0 ? (0, Maybe2.none)() : (0, Maybe2.some)(value);
643
- Maybe2.toNullable = (data) => (0, Maybe2.isSome)(data) ? data.value : null;
644
- Maybe2.toUndefined = (data) => (0, Maybe2.isSome)(data) ? data.value : void 0;
645
- Maybe2.fromPredicate = (pred) => (a) => pred(a) ? (0, Maybe2.some)(a) : (0, Maybe2.none)();
646
- Maybe2.toResult = (onNone) => (data) => (0, Maybe2.isSome)(data) ? Result.ok(data.value) : Result.err(onNone());
647
- Maybe2.fromResult = (data) => Result.isOk(data) ? (0, Maybe2.some)(data.value) : (0, Maybe2.none)();
648
- Maybe2.map = (f) => (data) => (0, Maybe2.isSome)(data) ? (0, Maybe2.some)(f(data.value)) : data;
649
- Maybe2.chain = (f) => (data) => (0, Maybe2.isSome)(data) ? f(data.value) : data;
650
- Maybe2.fold = (onNone, onSome) => (data) => (0, Maybe2.isSome)(data) ? onSome(data.value) : onNone();
651
- Maybe2.match = (cases) => (data) => (0, Maybe2.isSome)(data) ? cases.some(data.value) : cases.none();
652
- Maybe2.getOrElse = (defaultValue) => (data) => (0, Maybe2.isSome)(data) ? data.value : defaultValue();
653
- Maybe2.tap = (f) => (data) => {
654
- if ((0, Maybe2.isSome)(data)) {
655
+ ((Maybe3) => {
656
+ let make;
657
+ ((make2) => {
658
+ make2.some = (value) => ({ kind: "Some", value });
659
+ make2.none = () => _none;
660
+ })(make = Maybe3.make || (Maybe3.make = {}));
661
+ let is;
662
+ ((is2) => {
663
+ is2.some = (data) => data.kind === "Some";
664
+ is2.none = (data) => data.kind === "None";
665
+ })(is = Maybe3.is || (Maybe3.is = {}));
666
+ let to;
667
+ ((to2) => {
668
+ to2.nullable = (data) => is.some(data) ? data.value : null;
669
+ to2.undefined = (data) => is.some(data) ? data.value : globalThis.undefined;
670
+ to2.Result = (onNone) => (data) => is.some(data) ? Result.make.ok(data.value) : Result.make.err(onNone());
671
+ })(to = Maybe3.to || (Maybe3.to = {}));
672
+ let from;
673
+ ((from2) => {
674
+ from2.nullable = (value) => value === null || value === void 0 ? make.none() : make.some(value);
675
+ from2.Predicate = (pred) => (a) => pred(a) ? make.some(a) : make.none();
676
+ from2.Result = (data) => Result.is.ok(data) ? make.some(data.value) : make.none();
677
+ })(from = Maybe3.from || (Maybe3.from = {}));
678
+ Maybe3.map = (f) => (data) => is.some(data) ? make.some(f(data.value)) : data;
679
+ Maybe3.chain = (f) => (data) => is.some(data) ? f(data.value) : data;
680
+ Maybe3.fold = (onNone, onSome) => (data) => is.some(data) ? onSome(data.value) : onNone();
681
+ Maybe3.match = (cases) => (data) => is.some(data) ? cases.some(data.value) : cases.none();
682
+ Maybe3.getOrElse = (defaultValue) => (data) => is.some(data) ? data.value : defaultValue();
683
+ Maybe3.tap = (f) => (data) => {
684
+ if (is.some(data)) {
655
685
  f(data.value);
656
686
  }
657
687
  return data;
658
688
  };
659
- Maybe2.filter = (predicate) => (data) => (0, Maybe2.isSome)(data) ? predicate(data.value) ? data : (0, Maybe2.none)() : data;
660
- Maybe2.recover = (fallback) => (data) => (0, Maybe2.isSome)(data) ? data : fallback();
661
- Maybe2.ap = (arg) => (data) => (0, Maybe2.isSome)(data) && (0, Maybe2.isSome)(arg) ? (0, Maybe2.some)(data.value(arg.value)) : (0, Maybe2.none)();
662
- Maybe2.bindTo = (key) => (data) => (0, Maybe2.map)((a) => ({ [key]: a }))(data);
663
- Maybe2.bind = (key, f) => (data) => (0, Maybe2.chain)(
664
- (a) => (0, Maybe2.map)((b) => ({ ...a, [key]: b }))(f(a))
689
+ Maybe3.filter = (predicate) => (data) => is.some(data) ? predicate(data.value) ? data : make.none() : data;
690
+ Maybe3.recover = (fallback) => (data) => is.some(data) ? data : fallback();
691
+ Maybe3.ap = (arg) => (data) => is.some(data) && is.some(arg) ? make.some(data.value(arg.value)) : make.none();
692
+ Maybe3.bindTo = (key) => (data) => (0, Maybe3.map)((a) => ({ [key]: a }))(data);
693
+ Maybe3.bind = (key, f) => (data) => (0, Maybe3.chain)(
694
+ (a) => (0, Maybe3.map)((b) => ({ ...a, [key]: b }))(f(a))
665
695
  )(data);
666
- Maybe2.struct = (fields) => {
696
+ Maybe3.struct = (fields) => {
667
697
  const result = {};
668
698
  for (const key in fields) {
669
699
  if (Object.hasOwn(fields, key)) {
670
700
  const res = fields[key];
671
- if ((0, Maybe2.isNone)(res)) {
701
+ if (is.none(res)) {
672
702
  return res;
673
703
  }
674
704
  result[key] = res.value;
675
705
  }
676
706
  }
677
- return (0, Maybe2.some)(result);
707
+ return make.some(result);
678
708
  };
679
709
  })(Maybe || (Maybe = {}));
680
710
 
@@ -687,7 +717,7 @@ var _idle = { kind: "Idle" };
687
717
  var _pending = { kind: "Pending" };
688
718
  var ok = (value) => ({ kind: "OpOk", value });
689
719
  var err = (error) => ({ kind: "OpErr", error });
690
- var getMs = (duration) => Duration.toMilliseconds(duration);
720
+ var getMs = (duration) => Duration.to.milliseconds(duration);
691
721
  var cancellableWait = (duration, signal) => {
692
722
  const rawMs = getMs(duration);
693
723
  if (rawMs <= 0) {
@@ -710,7 +740,7 @@ var runWithRetry = (op, input, signal, options, onRetrying) => {
710
740
  return typeof backoff === "function" ? backoff(n) : backoff;
711
741
  };
712
742
  const attempt = async (left) => {
713
- const result = await Deferred.toPromise(op._factory(input, signal));
743
+ const result = await Deferred.to.Promise(op._factory(input, signal));
714
744
  if (result === null || signal.aborted) {
715
745
  return null;
716
746
  }
@@ -745,12 +775,12 @@ var runWithRetry = (op, input, signal, options, onRetrying) => {
745
775
  var execute = (op, input, controller, retryOptions, timeoutOptions, onRetrying) => {
746
776
  const { signal } = controller;
747
777
  const toOutcome = (r) => r === null ? _abortedNil : r.kind === "Ok" ? ok(r.value) : err(r.error);
748
- const runPromise = retryOptions !== void 0 && onRetrying !== void 0 ? runWithRetry(op, input, signal, retryOptions, onRetrying).then(toOutcome) : Deferred.toPromise(op._factory(input, signal)).then(toOutcome);
778
+ const runPromise = retryOptions !== void 0 && onRetrying !== void 0 ? runWithRetry(op, input, signal, retryOptions, onRetrying).then(toOutcome) : Deferred.to.Promise(op._factory(input, signal)).then(toOutcome);
749
779
  if (timeoutOptions === void 0) {
750
- return Deferred.fromPromise(runPromise);
780
+ return Deferred.from.Promise(runPromise);
751
781
  }
752
782
  let timerId;
753
- return Deferred.fromPromise(Promise.race([
783
+ return Deferred.from.Promise(Promise.race([
754
784
  runPromise.then((outcome) => {
755
785
  clearTimeout(timerId);
756
786
  return outcome;
@@ -774,7 +804,7 @@ var makeRestartable = (op, minInterval, retryOptions, timeoutOptions) => {
774
804
  currentState = state;
775
805
  subscribers.forEach((cb) => cb(state));
776
806
  };
777
- const run = (input) => Deferred.fromPromise(
807
+ const run = (input) => Deferred.from.Promise(
778
808
  new Promise((resolve) => {
779
809
  waitController?.abort();
780
810
  waitController = void 0;
@@ -866,9 +896,9 @@ var makeExclusive = (op, cooldown, retryOptions, timeoutOptions) => {
866
896
  };
867
897
  const run = (input) => {
868
898
  if (currentController !== void 0 || cooldownTimer !== void 0) {
869
- return Deferred.fromPromise(Promise.resolve(_droppedNil));
899
+ return Deferred.from.Promise(Promise.resolve(_droppedNil));
870
900
  }
871
- return Deferred.fromPromise(
901
+ return Deferred.from.Promise(
872
902
  new Promise((resolve) => {
873
903
  currentResolve = resolve;
874
904
  currentController = new AbortController();
@@ -988,14 +1018,14 @@ var makeQueue = (op, maxSize, overflow, concurrency, dedupe, retryOptions, timeo
988
1018
  }
989
1019
  }
990
1020
  if (inFlight < maxConcurrency) {
991
- return Deferred.fromPromise(
1021
+ return Deferred.from.Promise(
992
1022
  new Promise((resolve) => {
993
1023
  startOne(input, resolve, myGeneration);
994
1024
  })
995
1025
  );
996
1026
  }
997
1027
  if (maxSize === void 0 || queue.length < maxSize) {
998
- return Deferred.fromPromise(
1028
+ return Deferred.from.Promise(
999
1029
  new Promise((resolve) => {
1000
1030
  queue.push({ input, resolve });
1001
1031
  emit({ kind: "Queued", position: queue.length - 1 });
@@ -1003,7 +1033,7 @@ var makeQueue = (op, maxSize, overflow, concurrency, dedupe, retryOptions, timeo
1003
1033
  );
1004
1034
  }
1005
1035
  if (overflow === "replace-last") {
1006
- return Deferred.fromPromise(
1036
+ return Deferred.from.Promise(
1007
1037
  new Promise((resolve) => {
1008
1038
  const tail = queue.pop();
1009
1039
  tail.resolve(_evictedNil);
@@ -1012,7 +1042,7 @@ var makeQueue = (op, maxSize, overflow, concurrency, dedupe, retryOptions, timeo
1012
1042
  })
1013
1043
  );
1014
1044
  }
1015
- return Deferred.fromPromise(Promise.resolve(_droppedNil));
1045
+ return Deferred.from.Promise(Promise.resolve(_droppedNil));
1016
1046
  };
1017
1047
  const abort = () => {
1018
1048
  generation++;
@@ -1084,7 +1114,7 @@ var makeBuffered = (op, size, retryOptions, timeoutOptions) => {
1084
1114
  }
1085
1115
  });
1086
1116
  };
1087
- const run = (input) => Deferred.fromPromise(
1117
+ const run = (input) => Deferred.from.Promise(
1088
1118
  new Promise((resolve) => {
1089
1119
  if (currentController === void 0) {
1090
1120
  startRun(input, resolve);
@@ -1210,7 +1240,7 @@ var makeDebounced = (op, duration, leading, maxWait, retryOptions, timeoutOption
1210
1240
  timerId = setTimeout(fireTrailing, delay);
1211
1241
  };
1212
1242
  const inDebounceWindow = () => timerId !== void 0 || leadingController !== void 0 || currentController !== void 0;
1213
- const run = (input) => Deferred.fromPromise(
1243
+ const run = (input) => Deferred.from.Promise(
1214
1244
  new Promise((resolve) => {
1215
1245
  if (!inDebounceWindow()) {
1216
1246
  firstCallAt = Date.now();
@@ -1325,9 +1355,9 @@ var makeThrottled = (op, duration, trailing, retryOptions, timeoutOptions) => {
1325
1355
  const run = (input) => {
1326
1356
  if (cooldownTimer !== void 0) {
1327
1357
  if (!trailing) {
1328
- return Deferred.fromPromise(Promise.resolve(_droppedNil));
1358
+ return Deferred.from.Promise(Promise.resolve(_droppedNil));
1329
1359
  }
1330
- return Deferred.fromPromise(
1360
+ return Deferred.from.Promise(
1331
1361
  new Promise((resolve) => {
1332
1362
  const prev = pendingResolve;
1333
1363
  pendingInput = input;
@@ -1336,7 +1366,7 @@ var makeThrottled = (op, duration, trailing, retryOptions, timeoutOptions) => {
1336
1366
  })
1337
1367
  );
1338
1368
  }
1339
- return Deferred.fromPromise(
1369
+ return Deferred.from.Promise(
1340
1370
  new Promise((resolve) => {
1341
1371
  fireOp(input, resolve);
1342
1372
  startCooldown();
@@ -1427,16 +1457,16 @@ var makeConcurrent = (op, n, overflow, retryOptions, timeoutOptions) => {
1427
1457
  const run = (input) => {
1428
1458
  const myGeneration = generation;
1429
1459
  if (inflight < n) {
1430
- return Deferred.fromPromise(
1460
+ return Deferred.from.Promise(
1431
1461
  new Promise((resolve) => {
1432
1462
  startOne(input, resolve, myGeneration);
1433
1463
  })
1434
1464
  );
1435
1465
  }
1436
1466
  if (overflow === "drop") {
1437
- return Deferred.fromPromise(Promise.resolve(_droppedNil));
1467
+ return Deferred.from.Promise(Promise.resolve(_droppedNil));
1438
1468
  }
1439
- return Deferred.fromPromise(
1469
+ return Deferred.from.Promise(
1440
1470
  new Promise((resolve) => {
1441
1471
  overflowQueue.push({ input, resolve });
1442
1472
  emit({ kind: "Queued", position: overflowQueue.length - 1 });
@@ -1489,7 +1519,7 @@ var makeKeyed = (op, keyFn, perKey, timeoutOptions) => {
1489
1519
  const k = keyFn(input);
1490
1520
  if (slots.has(k)) {
1491
1521
  if (perKey === "exclusive") {
1492
- return Deferred.fromPromise(Promise.resolve(_droppedNil));
1522
+ return Deferred.from.Promise(Promise.resolve(_droppedNil));
1493
1523
  }
1494
1524
  const existing = slots.get(k);
1495
1525
  existing.controller.abort();
@@ -1497,7 +1527,7 @@ var makeKeyed = (op, keyFn, perKey, timeoutOptions) => {
1497
1527
  slots.delete(k);
1498
1528
  prev(_replacedNil);
1499
1529
  }
1500
- return Deferred.fromPromise(
1530
+ return Deferred.from.Promise(
1501
1531
  new Promise((resolve) => {
1502
1532
  const controller = new AbortController();
1503
1533
  slots.set(k, { controller, resolve });
@@ -1577,9 +1607,9 @@ var makeOnce = (op, retryOptions, timeoutOptions) => {
1577
1607
  };
1578
1608
  const run = (input) => {
1579
1609
  if (currentState.kind !== "Idle") {
1580
- return Deferred.fromPromise(Promise.resolve(_droppedNil));
1610
+ return Deferred.from.Promise(Promise.resolve(_droppedNil));
1581
1611
  }
1582
- return Deferred.fromPromise(
1612
+ return Deferred.from.Promise(
1583
1613
  new Promise((resolve) => {
1584
1614
  currentResolve = resolve;
1585
1615
  currentController = new AbortController();
@@ -1640,10 +1670,8 @@ var Op;
1640
1670
  ((Op2) => {
1641
1671
  Op2.nil = (reason) => ({ kind: "OpNil", reason });
1642
1672
  Op2.create = (factory, onError) => ({
1643
- _factory: (input, signal) => Deferred.fromPromise(
1644
- factory(signal)(input).then((value) => Result.ok(value)).catch(
1645
- (error) => signal.aborted ? null : Result.err(onError(error))
1646
- )
1673
+ _factory: (input, signal) => Deferred.from.Promise(
1674
+ factory(signal)(input).then((value) => Result.make.ok(value)).catch((error) => signal.aborted ? null : Result.make.err(onError(error)))
1647
1675
  )
1648
1676
  });
1649
1677
  Op2.lift = (f) => (0, Op2.create)((signal) => (input) => f(input, signal), (e) => e);
@@ -1685,18 +1713,21 @@ var Op;
1685
1713
  return outcome;
1686
1714
  };
1687
1715
  Op2.recover = (f) => (outcome) => outcome.kind === "OpErr" ? f(outcome.error) : outcome;
1688
- Op2.toResult = (onNil) => (outcome) => {
1689
- if (outcome.kind === "OpOk") {
1690
- return Result.ok(outcome.value);
1691
- }
1692
- if (outcome.kind === "OpErr") {
1693
- return Result.err(outcome.error);
1694
- }
1695
- return Result.err(onNil());
1696
- };
1697
- Op2.toMaybe = (outcome) => outcome.kind === "OpOk" ? Maybe.some(outcome.value) : Maybe.none();
1698
- Op2.all = (invocations) => Deferred.fromPromise(Promise.all(invocations.map(Deferred.toPromise)));
1699
- Op2.race = (invocations) => Deferred.fromPromise(Promise.race(invocations.map(Deferred.toPromise)));
1716
+ let to;
1717
+ ((to2) => {
1718
+ to2.Result = (onNil) => (outcome) => {
1719
+ if (outcome.kind === "OpOk") {
1720
+ return Result.make.ok(outcome.value);
1721
+ }
1722
+ if (outcome.kind === "OpErr") {
1723
+ return Result.make.err(outcome.error);
1724
+ }
1725
+ return Result.make.err(onNil());
1726
+ };
1727
+ to2.Maybe = (outcome) => outcome.kind === "OpOk" ? Maybe.make.some(outcome.value) : Maybe.make.none();
1728
+ })(to = Op2.to || (Op2.to = {}));
1729
+ Op2.all = (invocations) => Deferred.from.Promise(Promise.all(invocations.map(Deferred.to.Promise)));
1730
+ Op2.race = (invocations) => Deferred.from.Promise(Promise.race(invocations.map(Deferred.to.Promise)));
1700
1731
  Op2.wire = (source, f) => source.subscribe((state) => {
1701
1732
  if ((0, Op2.isOk)(state)) {
1702
1733
  f(state.value);
@@ -1761,12 +1792,18 @@ var Op;
1761
1792
  // src/Core/Optional.ts
1762
1793
  var Optional;
1763
1794
  ((Optional2) => {
1764
- Optional2.make = (get2, set2) => ({ get: get2, set: set2 });
1765
- Optional2.prop = () => (key) => (0, Optional2.make)((s) => {
1766
- const val = s[key];
1767
- return val !== null && val !== void 0 ? Maybe.some(val) : Maybe.none();
1768
- }, (a) => (s) => ({ ...s, [key]: a }));
1769
- Optional2.index = (i) => (0, Optional2.make)((arr) => i >= 0 && i < arr.length ? Maybe.some(arr[i]) : Maybe.none(), (a) => (arr) => {
1795
+ let from;
1796
+ ((from2) => {
1797
+ from2.accessors = (get2, set2) => ({
1798
+ get: get2,
1799
+ set: set2
1800
+ });
1801
+ from2.property = () => (key) => (0, from2.accessors)((s) => {
1802
+ const val = s[key];
1803
+ return val !== null && val !== void 0 ? Maybe.make.some(val) : Maybe.make.none();
1804
+ }, (a) => (s) => ({ ...s, [key]: a }));
1805
+ })(from = Optional2.from || (Optional2.from = {}));
1806
+ Optional2.index = (i) => from.accessors((arr) => i >= 0 && i < arr.length ? Maybe.make.some(arr[i]) : Maybe.make.none(), (a) => (arr) => {
1770
1807
  if (i < 0 || i >= arr.length) {
1771
1808
  return arr;
1772
1809
  }
@@ -1792,16 +1829,16 @@ var Optional;
1792
1829
  const val = opt.get(s);
1793
1830
  return val.kind === "Some" ? cases.some(val.value) : cases.none();
1794
1831
  };
1795
- Optional2.andThen = (inner) => (outer) => (0, Optional2.make)((s) => {
1832
+ Optional2.andThen = (inner) => (outer) => from.accessors((s) => {
1796
1833
  const mid = outer.get(s);
1797
- return mid.kind === "None" ? Maybe.none() : inner.get(mid.value);
1834
+ return mid.kind === "None" ? Maybe.make.none() : inner.get(mid.value);
1798
1835
  }, (b) => (s) => {
1799
1836
  const mid = outer.get(s);
1800
1837
  return mid.kind === "None" ? s : outer.set(inner.set(b)(mid.value))(s);
1801
1838
  });
1802
- Optional2.andThenLens = (inner) => (outer) => (0, Optional2.make)((s) => {
1839
+ Optional2.andThenLens = (inner) => (outer) => from.accessors((s) => {
1803
1840
  const mid = outer.get(s);
1804
- return mid.kind === "None" ? Maybe.none() : Maybe.some(inner.get(mid.value));
1841
+ return mid.kind === "None" ? Maybe.make.none() : Maybe.make.some(inner.get(mid.value));
1805
1842
  }, (b) => (s) => {
1806
1843
  const mid = outer.get(s);
1807
1844
  return mid.kind === "None" ? s : outer.set(inner.set(b)(mid.value))(s);
@@ -1831,7 +1868,10 @@ var Predicate;
1831
1868
  Predicate2.using = (f) => (p) => (b) => p(f(b));
1832
1869
  Predicate2.all = (predicates) => (a) => predicates.every((p) => p(a));
1833
1870
  Predicate2.any = (predicates) => (a) => predicates.some((p) => p(a));
1834
- Predicate2.fromRefinement = (r) => r;
1871
+ let from;
1872
+ ((from2) => {
1873
+ from2.Refinement = (r) => r;
1874
+ })(from = Predicate2.from || (Predicate2.from = {}));
1835
1875
  })(Predicate || (Predicate = {}));
1836
1876
 
1837
1877
  // src/Core/Reader.ts
@@ -1859,12 +1899,18 @@ var Reader;
1859
1899
  // src/Core/Refinement.ts
1860
1900
  var Refinement;
1861
1901
  ((Refinement2) => {
1862
- Refinement2.make = (f) => f;
1902
+ let from;
1903
+ ((from2) => {
1904
+ from2.predicate = (f) => f;
1905
+ })(from = Refinement2.from || (Refinement2.from = {}));
1863
1906
  Refinement2.compose = (bc) => (ab) => (a) => ab(a) && bc(a);
1864
1907
  Refinement2.and = (second) => (first) => (a) => first(a) && second(a);
1865
1908
  Refinement2.or = (second) => (first) => (a) => first(a) || second(a);
1866
- Refinement2.toFilter = (r) => (a) => r(a) ? Maybe.some(a) : Maybe.none();
1867
- Refinement2.toResult = (r, onFail) => (a) => r(a) ? Result.ok(a) : Result.err(onFail(a));
1909
+ let to;
1910
+ ((to2) => {
1911
+ to2.Maybe = (r) => (a) => r(a) ? Maybe.make.some(a) : Maybe.make.none();
1912
+ to2.Result = (r, onFail) => (a) => r(a) ? Result.make.ok(a) : Result.make.err(onFail(a));
1913
+ })(to = Refinement2.to || (Refinement2.to = {}));
1868
1914
  })(Refinement || (Refinement = {}));
1869
1915
 
1870
1916
  // src/Core/RemoteData.ts
@@ -1872,31 +1918,37 @@ var _notAsked = { kind: "NotAsked" };
1872
1918
  var _loading = { kind: "Loading" };
1873
1919
  var RemoteData;
1874
1920
  ((RemoteData2) => {
1875
- RemoteData2.notAsked = () => _notAsked;
1876
- RemoteData2.loading = () => _loading;
1877
- RemoteData2.failure = (error) => ({ kind: "Failure", error });
1878
- RemoteData2.success = (value) => ({ kind: "Success", value });
1879
- RemoteData2.isNotAsked = (data) => data.kind === "NotAsked";
1880
- RemoteData2.isLoading = (data) => data.kind === "Loading";
1881
- RemoteData2.isFailure = (data) => data.kind === "Failure";
1882
- RemoteData2.isSuccess = (data) => data.kind === "Success";
1883
- RemoteData2.map = (f) => (data) => (0, RemoteData2.isSuccess)(data) ? (0, RemoteData2.success)(f(data.value)) : data;
1884
- RemoteData2.mapError = (f) => (data) => (0, RemoteData2.isFailure)(data) ? (0, RemoteData2.failure)(f(data.error)) : data;
1885
- RemoteData2.chain = (f) => (data) => (0, RemoteData2.isSuccess)(data) ? f(data.value) : data;
1921
+ let make;
1922
+ ((make2) => {
1923
+ make2.notAsked = () => _notAsked;
1924
+ make2.loading = () => _loading;
1925
+ make2.failure = (error) => ({ kind: "Failure", error });
1926
+ make2.success = (value) => ({ kind: "Success", value });
1927
+ })(make = RemoteData2.make || (RemoteData2.make = {}));
1928
+ let is;
1929
+ ((is2) => {
1930
+ is2.notAsked = (data) => data.kind === "NotAsked";
1931
+ is2.loading = (data) => data.kind === "Loading";
1932
+ is2.failure = (data) => data.kind === "Failure";
1933
+ is2.success = (data) => data.kind === "Success";
1934
+ })(is = RemoteData2.is || (RemoteData2.is = {}));
1935
+ RemoteData2.map = (f) => (data) => is.success(data) ? make.success(f(data.value)) : data;
1936
+ RemoteData2.mapError = (f) => (data) => is.failure(data) ? make.failure(f(data.error)) : data;
1937
+ RemoteData2.chain = (f) => (data) => is.success(data) ? f(data.value) : data;
1886
1938
  RemoteData2.ap = (arg) => (data) => {
1887
- if ((0, RemoteData2.isSuccess)(data) && (0, RemoteData2.isSuccess)(arg)) {
1888
- return (0, RemoteData2.success)(data.value(arg.value));
1939
+ if (is.success(data) && is.success(arg)) {
1940
+ return make.success(data.value(arg.value));
1889
1941
  }
1890
- if ((0, RemoteData2.isFailure)(data)) {
1942
+ if (is.failure(data)) {
1891
1943
  return data;
1892
1944
  }
1893
- if ((0, RemoteData2.isFailure)(arg)) {
1945
+ if (is.failure(arg)) {
1894
1946
  return arg;
1895
1947
  }
1896
- if ((0, RemoteData2.isLoading)(data) || (0, RemoteData2.isLoading)(arg)) {
1897
- return (0, RemoteData2.loading)();
1948
+ if (is.loading(data) || is.loading(arg)) {
1949
+ return make.loading();
1898
1950
  }
1899
- return (0, RemoteData2.notAsked)();
1951
+ return make.notAsked();
1900
1952
  };
1901
1953
  RemoteData2.fold = (onFailure, onNotAsked, onLoading, onSuccess) => (data) => {
1902
1954
  switch (data.kind) {
@@ -1930,69 +1982,78 @@ var RemoteData;
1930
1982
  }
1931
1983
  }
1932
1984
  };
1933
- RemoteData2.getOrElse = (defaultValue) => (data) => (0, RemoteData2.isSuccess)(data) ? data.value : defaultValue();
1985
+ RemoteData2.getOrElse = (defaultValue) => (data) => is.success(data) ? data.value : defaultValue();
1934
1986
  RemoteData2.tap = (f) => (data) => {
1935
- if ((0, RemoteData2.isSuccess)(data)) {
1987
+ if (is.success(data)) {
1936
1988
  f(data.value);
1937
1989
  }
1938
1990
  return data;
1939
1991
  };
1940
1992
  RemoteData2.tapError = (f) => (data) => {
1941
- if ((0, RemoteData2.isFailure)(data)) {
1993
+ if (is.failure(data)) {
1942
1994
  f(data.error);
1943
1995
  }
1944
1996
  return data;
1945
1997
  };
1946
- RemoteData2.recover = (fallback) => (data) => (0, RemoteData2.isFailure)(data) ? fallback(data.error) : data;
1947
- RemoteData2.toMaybe = (data) => (0, RemoteData2.isSuccess)(data) ? Maybe.some(data.value) : Maybe.none();
1948
- RemoteData2.toResult = (onNotReady) => (data) => (0, RemoteData2.isSuccess)(data) ? Result.ok(data.value) : Result.err((0, RemoteData2.isFailure)(data) ? data.error : onNotReady());
1949
- RemoteData2.fromResult = (data) => Result.isOk(data) ? (0, RemoteData2.success)(data.value) : (0, RemoteData2.failure)(data.error);
1950
- RemoteData2.fromMaybe = (onNone) => (data) => Maybe.isSome(data) ? (0, RemoteData2.success)(data.value) : (0, RemoteData2.failure)(onNone());
1951
- RemoteData2.filter = (pred, onFalse) => (data) => (0, RemoteData2.isSuccess)(data) ? pred(data.value) ? data : (0, RemoteData2.failure)(onFalse(data.value)) : data;
1998
+ RemoteData2.recover = (fallback) => (data) => is.failure(data) ? fallback(data.error) : data;
1999
+ let to;
2000
+ ((to2) => {
2001
+ to2.Maybe = (data) => is.success(data) ? Maybe.make.some(data.value) : Maybe.make.none();
2002
+ to2.Result = (onNotReady) => (data) => is.success(data) ? Result.make.ok(data.value) : Result.make.err(is.failure(data) ? data.error : onNotReady());
2003
+ })(to = RemoteData2.to || (RemoteData2.to = {}));
2004
+ let from;
2005
+ ((from2) => {
2006
+ from2.Result = (data) => Result.is.ok(data) ? make.success(data.value) : make.failure(data.error);
2007
+ from2.Maybe = (onNone) => (data) => Maybe.is.some(data) ? make.success(data.value) : make.failure(onNone());
2008
+ })(from = RemoteData2.from || (RemoteData2.from = {}));
2009
+ RemoteData2.filter = (pred, onFalse) => (data) => is.success(data) ? pred(data.value) ? data : make.failure(onFalse(data.value)) : data;
1952
2010
  })(RemoteData || (RemoteData = {}));
1953
2011
 
1954
2012
  // src/Core/Resource.ts
1955
2013
  var Resource;
1956
2014
  ((Resource2) => {
1957
- Resource2.make = (acquire, release) => ({
1958
- acquire,
1959
- release
1960
- });
1961
- Resource2.fromTask = (acquire, release) => ({
1962
- acquire: Task.map((a) => Result.ok(a))(acquire),
1963
- release
1964
- });
1965
- Resource2.use = (f) => (resource) => Task.from(
1966
- (signal) => Deferred.toPromise(resource.acquire(signal)).then(async (acquired) => {
1967
- if (Result.isErr(acquired)) {
2015
+ let from;
2016
+ ((from2) => {
2017
+ from2.handlers = (acquire, release) => ({
2018
+ acquire,
2019
+ release
2020
+ });
2021
+ from2.Task = (acquire, release) => ({
2022
+ acquire: Task.map((a) => Result.make.ok(a))(acquire),
2023
+ release
2024
+ });
2025
+ })(from = Resource2.from || (Resource2.from = {}));
2026
+ Resource2.use = (f) => (resource) => Task.from.Promise(
2027
+ (signal) => Deferred.to.Promise(resource.acquire(signal)).then(async (acquired) => {
2028
+ if (Result.is.err(acquired)) {
1968
2029
  return acquired;
1969
2030
  }
1970
2031
  const a = acquired.value;
1971
2032
  try {
1972
- const usageResult = await Deferred.toPromise(f(a)(signal));
2033
+ const usageResult = await Deferred.to.Promise(f(a)(signal));
1973
2034
  return usageResult;
1974
2035
  } finally {
1975
- await Deferred.toPromise(resource.release(a)(signal));
2036
+ await Deferred.to.Promise(resource.release(a)(signal));
1976
2037
  }
1977
2038
  })
1978
2039
  );
1979
2040
  Resource2.combine = (resourceA, resourceB) => ({
1980
- acquire: Task.from(
1981
- (signal) => Deferred.toPromise(resourceA.acquire(signal)).then(async (acquiredA) => {
1982
- if (Result.isErr(acquiredA)) {
2041
+ acquire: Task.from.Promise(
2042
+ (signal) => Deferred.to.Promise(resourceA.acquire(signal)).then(async (acquiredA) => {
2043
+ if (Result.is.err(acquiredA)) {
1983
2044
  return acquiredA;
1984
2045
  }
1985
2046
  const a = acquiredA.value;
1986
- const acquiredB = await Deferred.toPromise(resourceB.acquire(signal));
1987
- if (Result.isErr(acquiredB)) {
1988
- await Deferred.toPromise(resourceA.release(a)(signal));
2047
+ const acquiredB = await Deferred.to.Promise(resourceB.acquire(signal));
2048
+ if (Result.is.err(acquiredB)) {
2049
+ await Deferred.to.Promise(resourceA.release(a)(signal));
1989
2050
  return acquiredB;
1990
2051
  }
1991
- return Result.ok([a, acquiredB.value]);
2052
+ return Result.make.ok([a, acquiredB.value]);
1992
2053
  })
1993
2054
  ),
1994
- release: ([a, b]) => Task.from(
1995
- (signal) => Deferred.toPromise(resourceB.release(b)(signal)).then(() => Deferred.toPromise(resourceA.release(a)(signal)))
2055
+ release: ([a, b]) => Task.from.Promise(
2056
+ (signal) => Deferred.to.Promise(resourceB.release(b)(signal)).then(() => Deferred.to.Promise(resourceA.release(a)(signal)))
1996
2057
  )
1997
2058
  });
1998
2059
  })(Resource || (Resource = {}));
@@ -2000,49 +2061,61 @@ var Resource;
2000
2061
  // src/Core/Result.ts
2001
2062
  var Result;
2002
2063
  ((Result4) => {
2003
- Result4.ok = (value) => ({ kind: "Ok", value });
2004
- Result4.err = (e) => ({ kind: "Err", error: e });
2005
- Result4.isOk = (data) => data.kind === "Ok";
2006
- Result4.isErr = (data) => data.kind === "Err";
2064
+ let make;
2065
+ ((make2) => {
2066
+ make2.ok = (value) => ({ kind: "Ok", value });
2067
+ make2.err = (e) => ({ kind: "Err", error: e });
2068
+ })(make = Result4.make || (Result4.make = {}));
2069
+ let is;
2070
+ ((is2) => {
2071
+ is2.ok = (data) => data.kind === "Ok";
2072
+ is2.err = (data) => data.kind === "Err";
2073
+ })(is = Result4.is || (Result4.is = {}));
2007
2074
  Result4.tryCatch = (f, onError) => {
2008
2075
  try {
2009
- return (0, Result4.ok)(f());
2076
+ return make.ok(f());
2010
2077
  } catch (error) {
2011
- return (0, Result4.err)(onError(error));
2078
+ return make.err(onError(error));
2012
2079
  }
2013
2080
  };
2014
- Result4.map = (f) => (data) => (0, Result4.isOk)(data) ? (0, Result4.ok)(f(data.value)) : data;
2015
- Result4.mapError = (f) => (data) => (0, Result4.isErr)(data) ? (0, Result4.err)(f(data.error)) : data;
2016
- Result4.chain = (f) => (data) => (0, Result4.isOk)(data) ? f(data.value) : data;
2017
- Result4.fold = (onErr, onOk) => (data) => (0, Result4.isOk)(data) ? onOk(data.value) : onErr(data.error);
2018
- Result4.match = (cases) => (data) => (0, Result4.isOk)(data) ? cases.ok(data.value) : cases.err(data.error);
2019
- Result4.getOrElse = (defaultValue) => (data) => (0, Result4.isOk)(data) ? data.value : defaultValue();
2081
+ Result4.map = (f) => (data) => is.ok(data) ? make.ok(f(data.value)) : data;
2082
+ Result4.mapError = (f) => (data) => is.err(data) ? make.err(f(data.error)) : data;
2083
+ Result4.chain = (f) => (data) => is.ok(data) ? f(data.value) : data;
2084
+ Result4.fold = (onErr, onOk) => (data) => is.ok(data) ? onOk(data.value) : onErr(data.error);
2085
+ Result4.match = (cases) => (data) => is.ok(data) ? cases.ok(data.value) : cases.err(data.error);
2086
+ Result4.getOrElse = (defaultValue) => (data) => is.ok(data) ? data.value : defaultValue();
2020
2087
  Result4.tap = (f) => (data) => {
2021
- if ((0, Result4.isOk)(data)) {
2088
+ if (is.ok(data)) {
2022
2089
  f(data.value);
2023
2090
  }
2024
2091
  return data;
2025
2092
  };
2026
2093
  Result4.tapError = (f) => (data) => {
2027
- if ((0, Result4.isErr)(data)) {
2094
+ if (is.err(data)) {
2028
2095
  f(data.error);
2029
2096
  }
2030
2097
  return data;
2031
2098
  };
2032
- Result4.fromPredicate = (pred, onFalse) => (a) => pred(a) ? (0, Result4.ok)(a) : (0, Result4.err)(onFalse(a));
2033
- Result4.fromNullable = (onNull) => (value) => value === null || value === void 0 ? (0, Result4.err)(onNull()) : (0, Result4.ok)(value);
2034
- Result4.fromMaybe = (onNone) => (maybe) => Maybe.isNone(maybe) ? (0, Result4.err)(onNone()) : (0, Result4.ok)(maybe.value);
2035
- Result4.fromThrowable = (f, onError) => (...args) => {
2036
- try {
2037
- return (0, Result4.ok)(f(...args));
2038
- } catch (error) {
2039
- return (0, Result4.err)(onError(error));
2040
- }
2041
- };
2042
- Result4.recover = (fallback) => (data) => (0, Result4.isOk)(data) ? data : fallback(data.error);
2043
- Result4.recoverUnless = (isBlocked, fallback) => (data) => (0, Result4.isErr)(data) && !isBlocked(data.error) ? fallback() : data;
2044
- Result4.toMaybe = (data) => (0, Result4.isOk)(data) ? Maybe.some(data.value) : Maybe.none();
2045
- Result4.ap = (arg) => (data) => (0, Result4.isOk)(data) && (0, Result4.isOk)(arg) ? (0, Result4.ok)(data.value(arg.value)) : (0, Result4.isErr)(data) ? data : arg;
2099
+ let from;
2100
+ ((from2) => {
2101
+ from2.Predicate = (pred, onFalse) => (a) => pred(a) ? make.ok(a) : make.err(onFalse(a));
2102
+ from2.nullable = (onNull) => (value) => value === null || value === void 0 ? make.err(onNull()) : make.ok(value);
2103
+ from2.Maybe = (onNone) => (maybe) => Maybe.is.none(maybe) ? make.err(onNone()) : make.ok(maybe.value);
2104
+ from2.throwable = (f, onError) => (...args) => {
2105
+ try {
2106
+ return make.ok(f(...args));
2107
+ } catch (error) {
2108
+ return make.err(onError(error));
2109
+ }
2110
+ };
2111
+ })(from = Result4.from || (Result4.from = {}));
2112
+ Result4.recover = (fallback) => (data) => is.ok(data) ? data : fallback(data.error);
2113
+ Result4.recoverUnless = (isBlocked, fallback) => (data) => is.err(data) && !isBlocked(data.error) ? fallback() : data;
2114
+ let to;
2115
+ ((to2) => {
2116
+ to2.Maybe = (data) => is.ok(data) ? Maybe.make.some(data.value) : Maybe.make.none();
2117
+ })(to = Result4.to || (Result4.to = {}));
2118
+ Result4.ap = (arg) => (data) => is.ok(data) && is.ok(arg) ? make.ok(data.value(arg.value)) : is.err(data) ? data : arg;
2046
2119
  Result4.bindTo = (key) => (data) => (0, Result4.map)((a) => ({ [key]: a }))(data);
2047
2120
  Result4.bind = (key, f) => (data) => (0, Result4.chain)(
2048
2121
  (a) => (0, Result4.map)((b) => ({ ...a, [key]: b }))(f(a))
@@ -2052,13 +2125,13 @@ var Result;
2052
2125
  for (const key in fields) {
2053
2126
  if (Object.hasOwn(fields, key)) {
2054
2127
  const res = fields[key];
2055
- if ((0, Result4.isErr)(res)) {
2128
+ if (is.err(res)) {
2056
2129
  return res;
2057
2130
  }
2058
2131
  result[key] = res.value;
2059
2132
  }
2060
2133
  }
2061
- return (0, Result4.ok)(result);
2134
+ return make.ok(result);
2062
2135
  };
2063
2136
  })(Result || (Result = {}));
2064
2137
 
@@ -2100,17 +2173,24 @@ var State;
2100
2173
  // src/Core/TaskMaybe.ts
2101
2174
  var TaskMaybe;
2102
2175
  ((TaskMaybe2) => {
2103
- TaskMaybe2.some = (value) => Task.resolve(Maybe.some(value));
2104
- TaskMaybe2.none = () => Task.resolve(Maybe.none());
2105
- TaskMaybe2.fromMaybe = (option) => Task.resolve(option);
2106
- TaskMaybe2.fromNullable = (value) => Task.resolve(Maybe.fromNullable(value));
2107
- TaskMaybe2.fromResult = (result) => Task.resolve(Result.toMaybe(result));
2108
- TaskMaybe2.fromTask = (task) => Task.map(Maybe.some)(task);
2109
- TaskMaybe2.tryCatch = (f) => Task.from((signal) => Promise.resolve(f(signal)).then(Maybe.some).catch(() => Maybe.none()));
2176
+ TaskMaybe2.some = (value) => Task.resolve(Maybe.make.some(value));
2177
+ TaskMaybe2.none = () => Task.resolve(Maybe.make.none());
2178
+ let from;
2179
+ ((from2) => {
2180
+ from2.Maybe = (option) => Task.resolve(option);
2181
+ from2.nullable = (value) => Task.resolve(Maybe.from.nullable(value));
2182
+ from2.Result = (result) => Task.resolve(Result.to.Maybe(result));
2183
+ from2.Task = (task) => Task.map(Maybe.make.some)(task);
2184
+ })(from = TaskMaybe2.from || (TaskMaybe2.from = {}));
2185
+ TaskMaybe2.tryCatch = (f) => Task.from.Promise(
2186
+ (signal) => Promise.resolve(f(signal)).then(Maybe.make.some).catch(() => Maybe.make.none())
2187
+ );
2110
2188
  TaskMaybe2.map = (f) => (data) => Task.map(Maybe.map(f))(data);
2111
- TaskMaybe2.chain = (f) => (data) => Task.chain((option) => Maybe.isSome(option) ? f(option.value) : Task.resolve(Maybe.none()))(data);
2112
- TaskMaybe2.ap = (arg) => (data) => Task.from(
2113
- (signal) => Promise.all([Deferred.toPromise(data(signal)), Deferred.toPromise(arg(signal))]).then(
2189
+ TaskMaybe2.chain = (f) => (data) => Task.chain(
2190
+ (option) => Maybe.is.some(option) ? f(option.value) : Task.resolve(Maybe.make.none())
2191
+ )(data);
2192
+ TaskMaybe2.ap = (arg) => (data) => Task.from.Promise(
2193
+ (signal) => Promise.all([Deferred.to.Promise(data(signal)), Deferred.to.Promise(arg(signal))]).then(
2114
2194
  ([of_, oa]) => Maybe.ap(oa)(of_)
2115
2195
  )
2116
2196
  );
@@ -2119,25 +2199,30 @@ var TaskMaybe;
2119
2199
  TaskMaybe2.getOrElse = (defaultValue) => (data) => Task.map(Maybe.getOrElse(defaultValue))(data);
2120
2200
  TaskMaybe2.tap = (f) => (data) => Task.map(Maybe.tap(f))(data);
2121
2201
  TaskMaybe2.filter = (predicate) => (data) => Task.map(Maybe.filter(predicate))(data);
2122
- TaskMaybe2.toResult = (onNone) => (data) => Task.map(Maybe.toResult(onNone))(data);
2202
+ let to;
2203
+ ((to2) => {
2204
+ to2.Result = (onNone) => (data) => Task.map(Maybe.to.Result(onNone))(data);
2205
+ })(to = TaskMaybe2.to || (TaskMaybe2.to = {}));
2123
2206
  TaskMaybe2.bindTo = (key) => (data) => (0, TaskMaybe2.map)((a) => ({ [key]: a }))(data);
2124
2207
  TaskMaybe2.bind = (key, f) => (data) => (0, TaskMaybe2.chain)(
2125
2208
  (a) => (0, TaskMaybe2.map)((b) => ({ ...a, [key]: b }))(f(a))
2126
2209
  )(data);
2127
- TaskMaybe2.recover = (fallback) => (data) => Task.chain((maybe) => Maybe.isNone(maybe) ? fallback() : Task.resolve(maybe))(data);
2128
- TaskMaybe2.struct = (fields) => Task.from((signal) => {
2210
+ TaskMaybe2.recover = (fallback) => (data) => Task.chain((maybe) => Maybe.is.none(maybe) ? fallback() : Task.resolve(maybe))(
2211
+ data
2212
+ );
2213
+ TaskMaybe2.struct = (fields) => Task.from.Promise((signal) => {
2129
2214
  const keys = Object.keys(fields);
2130
- const promises = keys.map((key) => Deferred.toPromise(fields[key](signal)));
2215
+ const promises = keys.map((key) => Deferred.to.Promise(fields[key](signal)));
2131
2216
  return Promise.all(promises).then((results) => {
2132
2217
  const record = {};
2133
2218
  for (let i = 0; i < keys.length; i++) {
2134
2219
  const res = results[i];
2135
- if (Maybe.isNone(res)) {
2220
+ if (Maybe.is.none(res)) {
2136
2221
  return res;
2137
2222
  }
2138
2223
  record[keys[i]] = res.value;
2139
2224
  }
2140
- return Maybe.some(record);
2225
+ return Maybe.make.some(record);
2141
2226
  });
2142
2227
  });
2143
2228
  })(TaskMaybe || (TaskMaybe = {}));
@@ -2145,28 +2230,35 @@ var TaskMaybe;
2145
2230
  // src/Core/TaskResult.ts
2146
2231
  var TaskResult;
2147
2232
  ((TaskResult2) => {
2148
- TaskResult2.ok = (value) => Task.resolve(Result.ok(value));
2149
- TaskResult2.err = (error) => Task.resolve(Result.err(error));
2150
- TaskResult2.fromNullable = (onNull) => (value) => Task.resolve(value === null || value === void 0 ? Result.err(onNull()) : Result.ok(value));
2151
- TaskResult2.fromMaybe = (onNone) => (maybe) => Task.resolve(Maybe.isNone(maybe) ? Result.err(onNone()) : Result.ok(maybe.value));
2152
- TaskResult2.fromResult = (result) => Task.resolve(result);
2153
- TaskResult2.fromThrowable = (f, onError) => (...args) => Task.from(() => f(...args).then(Result.ok).catch((error) => Result.err(onError(error))));
2154
- TaskResult2.tryCatch = (f, onError) => Task.from((signal) => Promise.resolve(f(signal)).then(Result.ok).catch((error) => Result.err(onError(error))));
2233
+ TaskResult2.ok = (value) => Task.resolve(Result.make.ok(value));
2234
+ TaskResult2.err = (error) => Task.resolve(Result.make.err(error));
2235
+ let from;
2236
+ ((from2) => {
2237
+ from2.nullable = (onNull) => (value) => Task.resolve(value === null || value === void 0 ? Result.make.err(onNull()) : Result.make.ok(value));
2238
+ from2.Maybe = (onNone) => (maybe) => Task.resolve(Maybe.is.none(maybe) ? Result.make.err(onNone()) : Result.make.ok(maybe.value));
2239
+ from2.Result = (result) => Task.resolve(result);
2240
+ from2.throwable = (f, onError) => (...args) => Task.from.Promise(
2241
+ () => f(...args).then(Result.make.ok).catch((error) => Result.make.err(onError(error)))
2242
+ );
2243
+ })(from = TaskResult2.from || (TaskResult2.from = {}));
2244
+ TaskResult2.tryCatch = (f, onError) => Task.from.Promise(
2245
+ (signal) => Promise.resolve(f(signal)).then(Result.make.ok).catch((error) => Result.make.err(onError(error)))
2246
+ );
2155
2247
  TaskResult2.map = (f) => (data) => Task.map(Result.map(f))(data);
2156
2248
  TaskResult2.mapError = (f) => (data) => Task.map(Result.mapError(f))(data);
2157
- TaskResult2.chain = (f) => (data) => Task.chain((result) => Result.isOk(result) ? f(result.value) : Task.resolve(Result.err(result.error)))(
2158
- data
2159
- );
2249
+ TaskResult2.chain = (f) => (data) => Task.chain(
2250
+ (result) => Result.is.ok(result) ? f(result.value) : Task.resolve(Result.make.err(result.error))
2251
+ )(data);
2160
2252
  TaskResult2.fold = (onErr, onOk) => (data) => Task.map(Result.fold(onErr, onOk))(data);
2161
2253
  TaskResult2.match = (cases) => (data) => Task.map(Result.match(cases))(data);
2162
2254
  TaskResult2.recover = (fallback) => (data) => Task.chain(
2163
- (result) => Result.isErr(result) ? fallback(result.error) : Task.resolve(result)
2255
+ (result) => Result.is.err(result) ? fallback(result.error) : Task.resolve(result)
2164
2256
  )(data);
2165
2257
  TaskResult2.getOrElse = (defaultValue) => (data) => Task.map(Result.getOrElse(defaultValue))(data);
2166
2258
  TaskResult2.tap = (f) => (data) => Task.map(Result.tap(f))(data);
2167
2259
  TaskResult2.tapError = (f) => (data) => Task.map(Result.tapError(f))(data);
2168
- TaskResult2.ap = (arg) => (data) => Task.from(
2169
- (signal) => Promise.all([Deferred.toPromise(data(signal)), Deferred.toPromise(arg(signal))]).then(
2260
+ TaskResult2.ap = (arg) => (data) => Task.from.Promise(
2261
+ (signal) => Promise.all([Deferred.to.Promise(data(signal)), Deferred.to.Promise(arg(signal))]).then(
2170
2262
  ([of_, oa]) => Result.ap(oa)(of_)
2171
2263
  )
2172
2264
  );
@@ -2175,19 +2267,19 @@ var TaskResult;
2175
2267
  TaskResult2.bind = (key, f) => (data) => (0, TaskResult2.chain)(
2176
2268
  (a) => (0, TaskResult2.map)((b) => ({ ...a, [key]: b }))(f(a))
2177
2269
  )(data);
2178
- TaskResult2.struct = (fields) => Task.from((signal) => {
2270
+ TaskResult2.struct = (fields) => Task.from.Promise((signal) => {
2179
2271
  const keys = Object.keys(fields);
2180
- const promises = keys.map((key) => Deferred.toPromise(fields[key](signal)));
2272
+ const promises = keys.map((key) => Deferred.to.Promise(fields[key](signal)));
2181
2273
  return Promise.all(promises).then((results) => {
2182
2274
  const record = {};
2183
2275
  for (let i = 0; i < keys.length; i++) {
2184
2276
  const res = results[i];
2185
- if (Result.isErr(res)) {
2277
+ if (Result.is.err(res)) {
2186
2278
  return res;
2187
2279
  }
2188
2280
  record[keys[i]] = res.value;
2189
2281
  }
2190
- return Result.ok(record);
2282
+ return Result.make.ok(record);
2191
2283
  });
2192
2284
  });
2193
2285
  })(TaskResult || (TaskResult = {}));
@@ -2198,19 +2290,28 @@ var isNonEmptyArr = (list) => list.length > 0;
2198
2290
  // src/Core/TaskValidation.ts
2199
2291
  var TaskValidation;
2200
2292
  ((TaskValidation2) => {
2201
- TaskValidation2.passed = (value) => Task.resolve(Validation.passed(value));
2202
- TaskValidation2.failed = (error) => Task.resolve(Validation.failed(error));
2203
- TaskValidation2.failedAll = (errors) => Task.resolve(Validation.failedAll(errors));
2204
- TaskValidation2.fromValidation = (validation) => Task.resolve(validation);
2205
- TaskValidation2.fromNullable = (onNull) => (value) => Task.resolve(value === null || value === void 0 ? Validation.failed(onNull()) : Validation.passed(value));
2206
- TaskValidation2.fromMaybe = (onNone) => (maybe) => Task.resolve(Maybe.isNone(maybe) ? Validation.failed(onNone()) : Validation.passed(maybe.value));
2207
- TaskValidation2.fromResult = (result) => Task.resolve(Validation.fromResult(result));
2208
- TaskValidation2.tryCatch = (f, onError) => Task.from(
2209
- (signal) => Promise.resolve(f(signal)).then(Validation.passed).catch((error) => Validation.failed(onError(error)))
2293
+ TaskValidation2.passed = (value) => Task.resolve(Validation.make.passed(value));
2294
+ TaskValidation2.failed = (error) => Task.resolve(Validation.make.failed(error));
2295
+ TaskValidation2.failedAll = (errors) => Task.resolve(Validation.make.failedAll(errors));
2296
+ let from;
2297
+ ((from2) => {
2298
+ from2.Validation = (validation) => Task.resolve(validation);
2299
+ from2.nullable = (onNull) => (value) => Task.resolve(
2300
+ value === null || value === void 0 ? Validation.make.failed(onNull()) : Validation.make.passed(value)
2301
+ );
2302
+ from2.Maybe = (onNone) => (maybe) => Task.resolve(
2303
+ Maybe.is.none(maybe) ? Validation.make.failed(onNone()) : Validation.make.passed(maybe.value)
2304
+ );
2305
+ from2.Result = (result) => Task.resolve(Validation.from.Result(result));
2306
+ })(from = TaskValidation2.from || (TaskValidation2.from = {}));
2307
+ TaskValidation2.tryCatch = (f, onError) => Task.from.Promise(
2308
+ (signal) => Promise.resolve(f(signal)).then(Validation.make.passed).catch(
2309
+ (error) => Validation.make.failed(onError(error))
2310
+ )
2210
2311
  );
2211
2312
  TaskValidation2.map = (f) => (data) => Task.map(Validation.map(f))(data);
2212
- TaskValidation2.ap = (arg) => (data) => Task.from(
2213
- (signal) => Promise.all([Deferred.toPromise(data(signal)), Deferred.toPromise(arg(signal))]).then(
2313
+ TaskValidation2.ap = (arg) => (data) => Task.from.Promise(
2314
+ (signal) => Promise.all([Deferred.to.Promise(data(signal)), Deferred.to.Promise(arg(signal))]).then(
2214
2315
  ([vf, va]) => Validation.ap(va)(vf)
2215
2316
  )
2216
2317
  );
@@ -2219,61 +2320,64 @@ var TaskValidation;
2219
2320
  TaskValidation2.getOrElse = (defaultValue) => (data) => Task.map(Validation.getOrElse(defaultValue))(data);
2220
2321
  TaskValidation2.tap = (f) => (data) => Task.map(Validation.tap(f))(data);
2221
2322
  TaskValidation2.recover = (fallback) => (data) => Task.chain(
2222
- (validation) => Validation.isPassed(validation) ? Task.resolve(validation) : fallback(validation.errors)
2323
+ (validation) => Validation.is.passed(validation) ? Task.resolve(validation) : fallback(validation.errors)
2223
2324
  )(data);
2224
- TaskValidation2.product = (first, second) => Task.from(
2225
- (signal) => Promise.all([Deferred.toPromise(first(signal)), Deferred.toPromise(second(signal))]).then(
2325
+ TaskValidation2.product = (first, second) => Task.from.Promise(
2326
+ (signal) => Promise.all([Deferred.to.Promise(first(signal)), Deferred.to.Promise(second(signal))]).then(
2226
2327
  ([va, vb]) => Validation.product(va, vb)
2227
2328
  )
2228
2329
  );
2229
- TaskValidation2.productAll = (data) => Task.from(
2230
- (signal) => Promise.all(data.map((t) => Deferred.toPromise(t(signal)))).then((results) => {
2330
+ TaskValidation2.productAll = (data) => Task.from.Promise(
2331
+ (signal) => Promise.all(data.map((t) => Deferred.to.Promise(t(signal)))).then((results) => {
2231
2332
  const [first, ...rest] = results;
2232
2333
  return Validation.productAll([first, ...rest]);
2233
2334
  })
2234
2335
  );
2235
2336
  TaskValidation2.mapError = (f) => (data) => Task.map(Validation.mapError(f))(data);
2236
2337
  TaskValidation2.tapError = (f) => (data) => Task.map(Validation.tapError(f))(data);
2237
- TaskValidation2.struct = (fields) => Task.from((signal) => {
2338
+ TaskValidation2.struct = (fields) => Task.from.Promise((signal) => {
2238
2339
  const keys = Object.keys(fields);
2239
- const promises = keys.map((key) => Deferred.toPromise(fields[key](signal)));
2340
+ const promises = keys.map((key) => Deferred.to.Promise(fields[key](signal)));
2240
2341
  return Promise.all(promises).then((results) => {
2241
2342
  const record = {};
2242
2343
  const errors = [];
2243
2344
  for (let i = 0; i < keys.length; i++) {
2244
2345
  const res = results[i];
2245
- if (Validation.isPassed(res)) {
2346
+ if (Validation.is.passed(res)) {
2246
2347
  record[keys[i]] = res.value;
2247
2348
  } else {
2248
2349
  errors.push(...res.errors);
2249
2350
  }
2250
2351
  }
2251
- return isNonEmptyArr(errors) ? Validation.failedAll(errors) : Validation.passed(record);
2352
+ return isNonEmptyArr(errors) ? Validation.make.failedAll(errors) : Validation.make.passed(record);
2252
2353
  });
2253
2354
  });
2254
2355
  })(TaskValidation || (TaskValidation = {}));
2255
2356
 
2256
2357
  // src/Core/Task.ts
2257
- var toPromise = (task, signal) => Deferred.toPromise(task(signal));
2258
- var getMs2 = (duration) => Duration.toMilliseconds(duration);
2358
+ var toPromise = (task, signal) => Deferred.to.Promise(task(signal));
2359
+ var getMs2 = (duration) => Duration.to.milliseconds(duration);
2259
2360
  var Task;
2260
2361
  ((Task2) => {
2261
- Task2.resolve = (value) => () => Deferred.fromPromise(Promise.resolve(value));
2262
- Task2.from = (f) => (signal) => Deferred.fromPromise(f(signal));
2263
- Task2.fromSync = (f) => () => Deferred.fromPromise(Promise.resolve(f()));
2264
- Task2.map = (f) => (data) => (0, Task2.from)((signal) => toPromise(data, signal).then(f));
2265
- Task2.chain = (f) => (data) => (0, Task2.from)((signal) => toPromise(data, signal).then((a) => toPromise(f(a), signal)));
2266
- Task2.ap = (arg) => (data) => (0, Task2.from)((signal) => Promise.all([toPromise(data, signal), toPromise(arg, signal)]).then(([f, a]) => f(a)));
2267
- Task2.tap = (f) => (data) => (0, Task2.from)(
2362
+ Task2.resolve = (value) => () => Deferred.from.Promise(globalThis.Promise.resolve(value));
2363
+ let from;
2364
+ ((from2) => {
2365
+ from2.Promise = (f) => (signal) => Deferred.from.Promise(f(signal));
2366
+ from2.sync = (f) => () => Deferred.from.Promise(globalThis.Promise.resolve(f()));
2367
+ })(from = Task2.from || (Task2.from = {}));
2368
+ Task2.map = (f) => (data) => from.Promise((signal) => toPromise(data, signal).then(f));
2369
+ Task2.chain = (f) => (data) => from.Promise((signal) => toPromise(data, signal).then((a) => toPromise(f(a), signal)));
2370
+ Task2.ap = (arg) => (data) => from.Promise((signal) => Promise.all([toPromise(data, signal), toPromise(arg, signal)]).then(([f, a]) => f(a)));
2371
+ Task2.tap = (f) => (data) => from.Promise(
2268
2372
  (signal) => toPromise(data, signal).then((a) => {
2269
2373
  f(a);
2270
2374
  return a;
2271
2375
  })
2272
2376
  );
2273
- Task2.all = (tasks) => (0, Task2.from)(
2377
+ Task2.all = (tasks) => from.Promise(
2274
2378
  (signal) => Promise.all(tasks.map((t) => toPromise(t, signal)))
2275
2379
  );
2276
- Task2.delay = (duration) => (data) => (0, Task2.from)(
2380
+ Task2.delay = (duration) => (data) => from.Promise(
2277
2381
  (signal) => new Promise((res) => {
2278
2382
  let timerId;
2279
2383
  const onAbort = () => {
@@ -2292,7 +2396,7 @@ var Task;
2292
2396
  }, getMs2(duration));
2293
2397
  })
2294
2398
  );
2295
- Task2.repeat = (options) => (task) => (0, Task2.from)((signal) => {
2399
+ Task2.repeat = (options) => (task) => from.Promise((signal) => {
2296
2400
  const { times, delay: delayDuration } = options;
2297
2401
  if (times <= 0) {
2298
2402
  return Promise.resolve([]);
@@ -2326,7 +2430,7 @@ var Task;
2326
2430
  };
2327
2431
  return run2(times);
2328
2432
  });
2329
- Task2.repeatUntil = (options) => (task) => (0, Task2.from)((signal) => {
2433
+ Task2.repeatUntil = (options) => (task) => from.Promise((signal) => {
2330
2434
  const { when: predicate, delay: delayDuration, maxAttempts } = options;
2331
2435
  const wait = () => new Promise((r) => {
2332
2436
  let timerId;
@@ -2363,10 +2467,10 @@ var Task;
2363
2467
  });
2364
2468
  Task2.race = (tasks) => {
2365
2469
  if (tasks.length === 0) {
2366
- return () => Deferred.fromPromise(new Promise(() => {
2470
+ return () => Deferred.from.Promise(new Promise(() => {
2367
2471
  }));
2368
2472
  }
2369
- return (0, Task2.from)((outerSignal) => {
2473
+ return from.Promise((outerSignal) => {
2370
2474
  const controllers = tasks.map(() => new AbortController());
2371
2475
  const onOuterAbort = () => {
2372
2476
  for (const ctrl of controllers) {
@@ -2395,8 +2499,8 @@ var Task;
2395
2499
  return Promise.race(promises);
2396
2500
  });
2397
2501
  };
2398
- Task2.sequence = (tasks) => (0, Task2.from)((signal) => Promise.all(tasks.map((t) => toPromise(t, signal))));
2399
- Task2.sequential = (tasks) => (0, Task2.from)(async (signal) => {
2502
+ Task2.sequence = (tasks) => from.Promise((signal) => Promise.all(tasks.map((t) => toPromise(t, signal))));
2503
+ Task2.sequential = (tasks) => from.Promise(async (signal) => {
2400
2504
  const results = [];
2401
2505
  for (const task of tasks) {
2402
2506
  if (signal?.aborted) {
@@ -2406,7 +2510,7 @@ var Task;
2406
2510
  }
2407
2511
  return results;
2408
2512
  });
2409
- Task2.timeout = (duration, onTimeout) => (task) => (0, Task2.from)((outerSignal) => {
2513
+ Task2.timeout = (duration, onTimeout) => (task) => from.Promise((outerSignal) => {
2410
2514
  const controller = new AbortController();
2411
2515
  let timerId;
2412
2516
  let cleanUp = () => {
@@ -2429,13 +2533,13 @@ var Task;
2429
2533
  return Promise.race([
2430
2534
  toPromise(task, controller.signal).then((a) => {
2431
2535
  cleanUp();
2432
- return Result.ok(a);
2536
+ return Result.make.ok(a);
2433
2537
  }),
2434
2538
  new Promise((res) => {
2435
2539
  timerId = setTimeout(() => {
2436
2540
  controller.abort();
2437
2541
  cleanUp();
2438
- res(Result.err(onTimeout()));
2542
+ res(Result.make.err(onTimeout()));
2439
2543
  }, getMs2(duration));
2440
2544
  })
2441
2545
  ]);
@@ -2454,7 +2558,7 @@ var Task;
2454
2558
  outerSignal.addEventListener("abort", () => controller.abort(outerSignal.reason), { once: true });
2455
2559
  }
2456
2560
  }
2457
- return Deferred.fromPromise(factory(controller.signal));
2561
+ return Deferred.from.Promise(factory(controller.signal));
2458
2562
  };
2459
2563
  return { task, abort };
2460
2564
  };
@@ -2471,67 +2575,73 @@ var Task;
2471
2575
  // src/Core/These.ts
2472
2576
  var These;
2473
2577
  ((These2) => {
2474
- These2.first = (value) => ({ kind: "First", first: value });
2475
- These2.second = (value) => ({ kind: "Second", second: value });
2476
- These2.both = (f, s) => ({ kind: "Both", first: f, second: s });
2477
- These2.isFirst = (data) => data.kind === "First";
2478
- These2.isSecond = (data) => data.kind === "Second";
2479
- These2.isBoth = (data) => data.kind === "Both";
2578
+ let make;
2579
+ ((make2) => {
2580
+ make2.first = (value) => ({ kind: "First", first: value });
2581
+ make2.second = (value) => ({ kind: "Second", second: value });
2582
+ make2.both = (f, s) => ({ kind: "Both", first: f, second: s });
2583
+ })(make = These2.make || (These2.make = {}));
2584
+ let is;
2585
+ ((is2) => {
2586
+ is2.first = (data) => data.kind === "First";
2587
+ is2.second = (data) => data.kind === "Second";
2588
+ is2.both = (data) => data.kind === "Both";
2589
+ })(is = These2.is || (These2.is = {}));
2480
2590
  These2.hasFirst = (data) => data.kind === "First" || data.kind === "Both";
2481
2591
  These2.hasSecond = (data) => data.kind === "Second" || data.kind === "Both";
2482
2592
  These2.mapFirst = (f) => (data) => {
2483
- if ((0, These2.isSecond)(data)) {
2593
+ if (is.second(data)) {
2484
2594
  return data;
2485
2595
  }
2486
- if ((0, These2.isFirst)(data)) {
2487
- return (0, These2.first)(f(data.first));
2596
+ if (is.first(data)) {
2597
+ return make.first(f(data.first));
2488
2598
  }
2489
- return (0, These2.both)(f(data.first), data.second);
2599
+ return make.both(f(data.first), data.second);
2490
2600
  };
2491
2601
  These2.mapSecond = (f) => (data) => {
2492
- if ((0, These2.isFirst)(data)) {
2602
+ if (is.first(data)) {
2493
2603
  return data;
2494
2604
  }
2495
- if ((0, These2.isSecond)(data)) {
2496
- return (0, These2.second)(f(data.second));
2605
+ if (is.second(data)) {
2606
+ return make.second(f(data.second));
2497
2607
  }
2498
- return (0, These2.both)(data.first, f(data.second));
2608
+ return make.both(data.first, f(data.second));
2499
2609
  };
2500
2610
  These2.mapBoth = (onFirst, onSecond) => (data) => {
2501
- if ((0, These2.isSecond)(data)) {
2502
- return (0, These2.second)(onSecond(data.second));
2611
+ if (is.second(data)) {
2612
+ return make.second(onSecond(data.second));
2503
2613
  }
2504
- if ((0, These2.isFirst)(data)) {
2505
- return (0, These2.first)(onFirst(data.first));
2614
+ if (is.first(data)) {
2615
+ return make.first(onFirst(data.first));
2506
2616
  }
2507
- return (0, These2.both)(onFirst(data.first), onSecond(data.second));
2617
+ return make.both(onFirst(data.first), onSecond(data.second));
2508
2618
  };
2509
2619
  These2.chainFirst = (f) => (data) => {
2510
- if ((0, These2.isSecond)(data)) {
2620
+ if (is.second(data)) {
2511
2621
  return data;
2512
2622
  }
2513
2623
  return f(data.first);
2514
2624
  };
2515
2625
  These2.chainSecond = (f) => (data) => {
2516
- if ((0, These2.isFirst)(data)) {
2626
+ if (is.first(data)) {
2517
2627
  return data;
2518
2628
  }
2519
2629
  return f(data.second);
2520
2630
  };
2521
2631
  These2.fold = (onFirst, onSecond, onBoth) => (data) => {
2522
- if ((0, These2.isSecond)(data)) {
2632
+ if (is.second(data)) {
2523
2633
  return onSecond(data.second);
2524
2634
  }
2525
- if ((0, These2.isFirst)(data)) {
2635
+ if (is.first(data)) {
2526
2636
  return onFirst(data.first);
2527
2637
  }
2528
2638
  return onBoth(data.first, data.second);
2529
2639
  };
2530
2640
  These2.match = (cases) => (data) => {
2531
- if ((0, These2.isSecond)(data)) {
2641
+ if (is.second(data)) {
2532
2642
  return cases.second(data.second);
2533
2643
  }
2534
- if ((0, These2.isFirst)(data)) {
2644
+ if (is.first(data)) {
2535
2645
  return cases.first(data.first);
2536
2646
  }
2537
2647
  return cases.both(data.first, data.second);
@@ -2545,20 +2655,24 @@ var These;
2545
2655
  return data;
2546
2656
  };
2547
2657
  These2.swap = (data) => {
2548
- if ((0, These2.isSecond)(data)) {
2549
- return (0, These2.first)(data.second);
2658
+ if (is.second(data)) {
2659
+ return make.first(data.second);
2550
2660
  }
2551
- if ((0, These2.isFirst)(data)) {
2552
- return (0, These2.second)(data.first);
2661
+ if (is.first(data)) {
2662
+ return make.second(data.first);
2553
2663
  }
2554
- return (0, These2.both)(data.second, data.first);
2664
+ return make.both(data.second, data.first);
2555
2665
  };
2556
2666
  })(These || (These = {}));
2557
2667
 
2558
2668
  // src/Core/Tuple.ts
2559
2669
  var Tuple;
2560
2670
  ((Tuple2) => {
2561
- Tuple2.make = (first2, second2) => [first2, second2];
2671
+ let from;
2672
+ ((from2) => {
2673
+ from2.pair = (first2, second2) => [first2, second2];
2674
+ from2.array = (arr) => arr;
2675
+ })(from = Tuple2.from || (Tuple2.from = {}));
2562
2676
  Tuple2.first = (tuple) => tuple[0];
2563
2677
  Tuple2.second = (tuple) => tuple[1];
2564
2678
  Tuple2.mapFirst = (f) => (tuple) => [f(tuple[0]), tuple[1]];
@@ -2569,7 +2683,10 @@ var Tuple;
2569
2683
  ];
2570
2684
  Tuple2.fold = (f) => (tuple) => f(tuple[0], tuple[1]);
2571
2685
  Tuple2.swap = (tuple) => [tuple[1], tuple[0]];
2572
- Tuple2.toArray = (tuple) => [...tuple];
2686
+ let to;
2687
+ ((to2) => {
2688
+ to2.Array = (tuple) => [...tuple];
2689
+ })(to = Tuple2.to || (Tuple2.to = {}));
2573
2690
  Tuple2.tap = (f) => (tuple) => {
2574
2691
  f(tuple[0], tuple[1]);
2575
2692
  return tuple;
@@ -2579,59 +2696,71 @@ var Tuple;
2579
2696
  // src/Core/Validation.ts
2580
2697
  var Validation;
2581
2698
  ((Validation2) => {
2582
- Validation2.passed = (value) => ({ kind: "Passed", value });
2583
- Validation2.failed = (error) => ({ kind: "Failed", errors: [error] });
2584
- Validation2.failedAll = (errors) => ({ kind: "Failed", errors });
2585
- Validation2.isPassed = (data) => data.kind === "Passed";
2586
- Validation2.isFailed = (data) => data.kind === "Failed";
2587
- Validation2.fromPredicate = (pred, onFalse) => (a) => pred(a) ? (0, Validation2.passed)(a) : (0, Validation2.failed)(onFalse(a));
2588
- Validation2.fromNullable = (onNull) => (value) => value === null || value === void 0 ? (0, Validation2.failed)(onNull()) : (0, Validation2.passed)(value);
2589
- Validation2.fromMaybe = (onNone) => (maybe) => Maybe.isNone(maybe) ? (0, Validation2.failed)(onNone()) : (0, Validation2.passed)(maybe.value);
2590
- Validation2.map = (f) => (data) => (0, Validation2.isPassed)(data) ? (0, Validation2.passed)(f(data.value)) : data;
2591
- Validation2.mapError = (f) => (data) => (0, Validation2.isFailed)(data) ? (0, Validation2.failedAll)(data.errors.map(f)) : data;
2699
+ let make;
2700
+ ((make2) => {
2701
+ make2.passed = (value) => ({ kind: "Passed", value });
2702
+ make2.failed = (error) => ({ kind: "Failed", errors: [error] });
2703
+ make2.failedAll = (errors) => ({ kind: "Failed", errors });
2704
+ })(make = Validation2.make || (Validation2.make = {}));
2705
+ let is;
2706
+ ((is2) => {
2707
+ is2.passed = (data) => data.kind === "Passed";
2708
+ is2.failed = (data) => data.kind === "Failed";
2709
+ })(is = Validation2.is || (Validation2.is = {}));
2710
+ let from;
2711
+ ((from2) => {
2712
+ from2.Predicate = (pred, onFalse) => (a) => pred(a) ? make.passed(a) : make.failed(onFalse(a));
2713
+ from2.nullable = (onNull) => (value) => value === null || value === void 0 ? make.failed(onNull()) : make.passed(value);
2714
+ from2.Maybe = (onNone) => (maybe) => Maybe.is.none(maybe) ? make.failed(onNone()) : make.passed(maybe.value);
2715
+ from2.Result = (data) => data.kind === "Ok" ? make.passed(data.value) : make.failed(data.error);
2716
+ })(from = Validation2.from || (Validation2.from = {}));
2717
+ Validation2.map = (f) => (data) => is.passed(data) ? make.passed(f(data.value)) : data;
2718
+ Validation2.mapError = (f) => (data) => is.failed(data) ? make.failedAll(data.errors.map(f)) : data;
2592
2719
  Validation2.ap = (arg) => (data) => {
2593
- if ((0, Validation2.isPassed)(data)) {
2594
- return (0, Validation2.isPassed)(arg) ? (0, Validation2.passed)(data.value(arg.value)) : (0, Validation2.failedAll)(arg.errors);
2720
+ if (is.passed(data)) {
2721
+ return is.passed(arg) ? make.passed(data.value(arg.value)) : make.failedAll(arg.errors);
2595
2722
  }
2596
- return (0, Validation2.isPassed)(arg) ? (0, Validation2.failedAll)(data.errors) : (0, Validation2.failedAll)([...data.errors, ...arg.errors]);
2723
+ return is.passed(arg) ? make.failedAll(data.errors) : make.failedAll([...data.errors, ...arg.errors]);
2597
2724
  };
2598
- Validation2.fold = (onFailed, onPassed) => (data) => (0, Validation2.isPassed)(data) ? onPassed(data.value) : onFailed(data.errors);
2599
- Validation2.match = (cases) => (data) => (0, Validation2.isPassed)(data) ? cases.passed(data.value) : cases.failed(data.errors);
2600
- Validation2.getOrElse = (defaultValue) => (data) => (0, Validation2.isPassed)(data) ? data.value : defaultValue();
2725
+ Validation2.fold = (onFailed, onPassed) => (data) => is.passed(data) ? onPassed(data.value) : onFailed(data.errors);
2726
+ Validation2.match = (cases) => (data) => is.passed(data) ? cases.passed(data.value) : cases.failed(data.errors);
2727
+ Validation2.getOrElse = (defaultValue) => (data) => is.passed(data) ? data.value : defaultValue();
2601
2728
  Validation2.tap = (f) => (data) => {
2602
- if ((0, Validation2.isPassed)(data)) {
2729
+ if (is.passed(data)) {
2603
2730
  f(data.value);
2604
2731
  }
2605
2732
  return data;
2606
2733
  };
2607
2734
  Validation2.tapError = (f) => (data) => {
2608
- if ((0, Validation2.isFailed)(data)) {
2735
+ if (is.failed(data)) {
2609
2736
  f(data.errors);
2610
2737
  }
2611
2738
  return data;
2612
2739
  };
2613
- Validation2.recover = (fallback) => (data) => (0, Validation2.isPassed)(data) ? data : fallback(data.errors);
2614
- Validation2.recoverUnless = (isBlocked, fallback) => (data) => (0, Validation2.isFailed)(data) && !data.errors.some(isBlocked) ? fallback() : data;
2615
- Validation2.toResult = (data) => (0, Validation2.isPassed)(data) ? Result.ok(data.value) : Result.err(data.errors);
2616
- Validation2.toMaybe = (data) => (0, Validation2.isPassed)(data) ? Maybe.some(data.value) : Maybe.none();
2617
- Validation2.fromResult = (data) => data.kind === "Ok" ? (0, Validation2.passed)(data.value) : (0, Validation2.failed)(data.error);
2740
+ Validation2.recover = (fallback) => (data) => is.passed(data) ? data : fallback(data.errors);
2741
+ Validation2.recoverUnless = (isBlocked, fallback) => (data) => is.failed(data) && !data.errors.some(isBlocked) ? fallback() : data;
2742
+ let to;
2743
+ ((to2) => {
2744
+ to2.Result = (data) => is.passed(data) ? Result.make.ok(data.value) : Result.make.err(data.errors);
2745
+ to2.Maybe = (data) => is.passed(data) ? Maybe.make.some(data.value) : Maybe.make.none();
2746
+ })(to = Validation2.to || (Validation2.to = {}));
2618
2747
  Validation2.product = (first, second) => {
2619
- if ((0, Validation2.isPassed)(first)) {
2620
- return (0, Validation2.isPassed)(second) ? (0, Validation2.passed)([first.value, second.value]) : (0, Validation2.failedAll)(second.errors);
2748
+ if (is.passed(first)) {
2749
+ return is.passed(second) ? make.passed([first.value, second.value]) : make.failedAll(second.errors);
2621
2750
  }
2622
- return (0, Validation2.isPassed)(second) ? (0, Validation2.failedAll)(first.errors) : (0, Validation2.failedAll)([...first.errors, ...second.errors]);
2751
+ return is.passed(second) ? make.failedAll(first.errors) : make.failedAll([...first.errors, ...second.errors]);
2623
2752
  };
2624
2753
  Validation2.productAll = (data) => {
2625
2754
  const values = [];
2626
2755
  const errors = [];
2627
2756
  for (const v of data) {
2628
- if ((0, Validation2.isPassed)(v)) {
2757
+ if (is.passed(v)) {
2629
2758
  values.push(v.value);
2630
2759
  } else {
2631
2760
  errors.push(...v.errors);
2632
2761
  }
2633
2762
  }
2634
- return isNonEmptyArr(errors) ? (0, Validation2.failedAll)(errors) : (0, Validation2.passed)(values);
2763
+ return isNonEmptyArr(errors) ? make.failedAll(errors) : make.passed(values);
2635
2764
  };
2636
2765
  Validation2.struct = (fields) => {
2637
2766
  const record = {};
@@ -2639,14 +2768,14 @@ var Validation;
2639
2768
  for (const key in fields) {
2640
2769
  if (Object.hasOwn(fields, key)) {
2641
2770
  const val = fields[key];
2642
- if ((0, Validation2.isPassed)(val)) {
2771
+ if (is.passed(val)) {
2643
2772
  record[key] = val.value;
2644
2773
  } else {
2645
2774
  errors.push(...val.errors);
2646
2775
  }
2647
2776
  }
2648
2777
  }
2649
- return isNonEmptyArr(errors) ? (0, Validation2.failedAll)(errors) : (0, Validation2.passed)(record);
2778
+ return isNonEmptyArr(errors) ? make.failedAll(errors) : make.passed(record);
2650
2779
  };
2651
2780
  })(Validation || (Validation = {}));
2652
2781
 
@@ -2659,11 +2788,11 @@ var ArrMaybe;
2659
2788
  for (let i = 0; i < n; i++) {
2660
2789
  const mapped = f(data[i]);
2661
2790
  if (mapped.kind === "None") {
2662
- return Maybe.none();
2791
+ return Maybe.make.none();
2663
2792
  }
2664
2793
  result[i] = mapped.value;
2665
2794
  }
2666
- return Maybe.some(result);
2795
+ return Maybe.make.some(result);
2667
2796
  };
2668
2797
  ArrMaybe2.sequence = (data) => (0, ArrMaybe2.traverse)((a) => a)(data);
2669
2798
  })(ArrMaybe || (ArrMaybe = {}));
@@ -2679,61 +2808,69 @@ var ArrResult;
2679
2808
  }
2680
2809
  result[i] = mapped.value;
2681
2810
  }
2682
- return Result.ok(result);
2811
+ return Result.make.ok(result);
2683
2812
  };
2684
2813
  ArrResult2.sequence = (data) => (0, ArrResult2.traverse)((a) => a)(data);
2685
2814
  })(ArrResult || (ArrResult = {}));
2686
2815
  var ArrTaskResult;
2687
2816
  ((ArrTaskResult2) => {
2688
- ArrTaskResult2.traverse = (f) => (data) => Task.from(async () => {
2817
+ ArrTaskResult2.traverse = (f) => (data) => Task.from.Promise(async () => {
2689
2818
  const result = [];
2690
2819
  for (const a of data) {
2691
- const r = await Deferred.toPromise(f(a)());
2692
- if (Result.isErr(r)) {
2820
+ const r = await Deferred.to.Promise(f(a)());
2821
+ if (Result.is.err(r)) {
2693
2822
  return r;
2694
2823
  }
2695
2824
  result.push(r.value);
2696
2825
  }
2697
- return Result.ok(result);
2826
+ return Result.make.ok(result);
2698
2827
  });
2699
2828
  ArrTaskResult2.sequence = (data) => (0, ArrTaskResult2.traverse)((a) => a)(data);
2700
2829
  })(ArrTaskResult || (ArrTaskResult = {}));
2701
2830
  var ArrTask;
2702
2831
  ((ArrTask2) => {
2703
- ArrTask2.traverse = (f) => (data) => Task.from(() => Promise.all(data.map((a) => Deferred.toPromise(f(a)()))));
2832
+ ArrTask2.traverse = (f) => (data) => Task.from.Promise(() => Promise.all(data.map((a) => Deferred.to.Promise(f(a)()))));
2704
2833
  ArrTask2.sequence = (data) => (0, ArrTask2.traverse)((a) => a)(data);
2705
2834
  ArrTask2.Result = ArrTaskResult;
2706
2835
  })(ArrTask || (ArrTask = {}));
2707
2836
  var ArrNonEmpty;
2708
2837
  ((ArrNonEmpty2) => {
2709
2838
  ArrNonEmpty2.singleton = (value) => [value];
2710
- ArrNonEmpty2.fromArray = (data) => isNonEmptyArr(data) ? Maybe.some(data) : Maybe.none();
2839
+ let from;
2840
+ ((from2) => {
2841
+ from2.Array = (data) => isNonEmptyArr(data) ? Maybe.make.some(data) : Maybe.make.none();
2842
+ })(from = ArrNonEmpty2.from || (ArrNonEmpty2.from = {}));
2711
2843
  ArrNonEmpty2.head = (data) => data[0];
2712
2844
  ArrNonEmpty2.last = (data) => data[data.length - 1];
2713
2845
  ArrNonEmpty2.tail = (data) => data.slice(1);
2714
2846
  ArrNonEmpty2.reduce = (f) => (data) => data.reduce(f);
2847
+ ArrNonEmpty2.map = (f) => (data) => Arr.map(f)(data);
2848
+ ArrNonEmpty2.mapWithIndex = (f) => (data) => Arr.mapWithIndex(f)(data);
2849
+ ArrNonEmpty2.intersperse = (sep) => (data) => Arr.intersperse(sep)(data);
2850
+ ArrNonEmpty2.concat = (other) => (data) => Arr.concat(other)(data);
2851
+ ArrNonEmpty2.reverse = (data) => Arr.reverse(data);
2715
2852
  })(ArrNonEmpty || (ArrNonEmpty = {}));
2716
2853
  var Arr;
2717
2854
  ((Arr2) => {
2718
- Arr2.head = (data) => data.length > 0 ? Maybe.some(data[0]) : Maybe.none();
2719
- Arr2.last = (data) => data.length > 0 ? Maybe.some(data[data.length - 1]) : Maybe.none();
2720
- Arr2.tail = (data) => data.length > 0 ? Maybe.some(data.slice(1)) : Maybe.none();
2721
- Arr2.init = (data) => data.length > 0 ? Maybe.some(data.slice(0, -1)) : Maybe.none();
2855
+ Arr2.head = (data) => data.length > 0 ? Maybe.make.some(data[0]) : Maybe.make.none();
2856
+ Arr2.last = (data) => data.length > 0 ? Maybe.make.some(data[data.length - 1]) : Maybe.make.none();
2857
+ Arr2.tail = (data) => data.length > 0 ? Maybe.make.some(data.slice(1)) : Maybe.make.none();
2858
+ Arr2.init = (data) => data.length > 0 ? Maybe.make.some(data.slice(0, -1)) : Maybe.make.none();
2722
2859
  Arr2.findFirst = (predicate) => (data) => {
2723
2860
  const idx = data.findIndex(predicate);
2724
- return idx !== -1 ? Maybe.some(data[idx]) : Maybe.none();
2861
+ return idx !== -1 ? Maybe.make.some(data[idx]) : Maybe.make.none();
2725
2862
  };
2726
2863
  Arr2.findLast = (predicate) => (data) => {
2727
2864
  for (let i = data.length - 1; i >= 0; i--) {
2728
2865
  if (predicate(data[i])) {
2729
- return Maybe.some(data[i]);
2866
+ return Maybe.make.some(data[i]);
2730
2867
  }
2731
2868
  }
2732
- return Maybe.none();
2869
+ return Maybe.make.none();
2733
2870
  };
2734
2871
  Arr2.findIndex = (predicate) => (data) => {
2735
2872
  const idx = data.findIndex(predicate);
2736
- return idx !== -1 ? Maybe.some(idx) : Maybe.none();
2873
+ return idx !== -1 ? Maybe.make.some(idx) : Maybe.make.none();
2737
2874
  };
2738
2875
  Arr2.map = (f) => (data) => {
2739
2876
  const n = data.length;
@@ -2930,7 +3067,11 @@ var Arr;
2930
3067
  Arr2.Maybe = ArrMaybe;
2931
3068
  Arr2.Result = ArrResult;
2932
3069
  Arr2.Task = ArrTask;
2933
- Arr2.isNonEmpty = (data) => isNonEmptyArr(data);
3070
+ let is;
3071
+ ((is2) => {
3072
+ is2.empty = (data) => data.length === 0;
3073
+ is2.nonEmpty = (data) => isNonEmptyArr(data);
3074
+ })(is = Arr2.is || (Arr2.is = {}));
2934
3075
  Arr2.prepend = (value) => (data) => [value, ...data];
2935
3076
  Arr2.append = (value) => (data) => [...data, value];
2936
3077
  Arr2.size = (data) => data.length;
@@ -3012,12 +3153,34 @@ var Arr;
3012
3153
  })(Arr || (Arr = {}));
3013
3154
 
3014
3155
  // src/Data/Dict.ts
3156
+ var DictNonEmpty;
3157
+ ((DictNonEmpty2) => {
3158
+ DictNonEmpty2.singleton = (key, value) => new globalThis.Map([[key, value]]);
3159
+ let from;
3160
+ ((from2) => {
3161
+ from2.Map = (m) => m.size > 0 ? Maybe.make.some(m) : Maybe.make.none();
3162
+ })(from = DictNonEmpty2.from || (DictNonEmpty2.from = {}));
3163
+ DictNonEmpty2.keys = (m) => Dict.keys(m);
3164
+ DictNonEmpty2.values = (m) => Dict.values(m);
3165
+ DictNonEmpty2.entries = (m) => Dict.entries(m);
3166
+ DictNonEmpty2.reduce = (f) => (m) => (0, DictNonEmpty2.values)(m).reduce(f);
3167
+ DictNonEmpty2.map = (f) => (m) => Dict.map(f)(m);
3168
+ DictNonEmpty2.mapWithKey = (f) => (m) => Dict.mapWithKey(f)(m);
3169
+ })(DictNonEmpty || (DictNonEmpty = {}));
3015
3170
  var Dict;
3016
3171
  ((Dict2) => {
3172
+ let is;
3173
+ ((is2) => {
3174
+ is2.empty = (m) => m.size === 0;
3175
+ is2.nonEmpty = (m) => m.size > 0;
3176
+ })(is = Dict2.is || (Dict2.is = {}));
3017
3177
  Dict2.empty = () => new globalThis.Map();
3018
3178
  Dict2.singleton = (key, value) => new globalThis.Map([[key, value]]);
3019
- Dict2.fromEntries = (entries2) => new globalThis.Map(entries2);
3020
- Dict2.fromRecord = (rec) => new globalThis.Map(Object.entries(rec));
3179
+ let from;
3180
+ ((from2) => {
3181
+ from2.entries = (entries3) => new globalThis.Map(entries3);
3182
+ from2.Record = (rec) => new globalThis.Map(Object.entries(rec));
3183
+ })(from = Dict2.from || (Dict2.from = {}));
3021
3184
  Dict2.groupBy = (keyFn) => (items) => {
3022
3185
  const result = new globalThis.Map();
3023
3186
  for (const item of items) {
@@ -3032,9 +3195,8 @@ var Dict;
3032
3195
  return result;
3033
3196
  };
3034
3197
  Dict2.has = (key) => (m) => m.has(key);
3035
- Dict2.lookup = (key) => (m) => m.has(key) ? Maybe.some(m.get(key)) : Maybe.none();
3198
+ Dict2.lookup = (key) => (m) => m.has(key) ? Maybe.make.some(m.get(key)) : Maybe.make.none();
3036
3199
  Dict2.size = (m) => m.size;
3037
- Dict2.isEmpty = (m) => m.size === 0;
3038
3200
  Dict2.keys = (m) => [...m.keys()];
3039
3201
  Dict2.values = (m) => [...m.values()];
3040
3202
  Dict2.entries = (m) => [...m.entries()];
@@ -3146,7 +3308,11 @@ var Dict;
3146
3308
  }
3147
3309
  return acc;
3148
3310
  };
3149
- Dict2.toRecord = (m) => Object.fromEntries(m);
3311
+ let to;
3312
+ ((to2) => {
3313
+ to2.Record = (m) => Object.fromEntries(m);
3314
+ })(to = Dict2.to || (Dict2.to = {}));
3315
+ Dict2.NonEmpty = DictNonEmpty;
3150
3316
  })(Dict || (Dict = {}));
3151
3317
 
3152
3318
  // src/Data/Num.ts
@@ -3168,21 +3334,21 @@ var Num;
3168
3334
  Num2.inRange = (start, end) => (n) => n >= start && n < end;
3169
3335
  Num2.parse = (s) => {
3170
3336
  if (s.trim() === "") {
3171
- return Maybe.none();
3337
+ return Maybe.make.none();
3172
3338
  }
3173
3339
  const n = Number(s);
3174
- return isNaN(n) ? Maybe.none() : Maybe.some(n);
3340
+ return isNaN(n) ? Maybe.make.none() : Maybe.make.some(n);
3175
3341
  };
3176
3342
  Num2.add = (b) => (a) => a + b;
3177
3343
  Num2.subtract = (b) => (a) => a - b;
3178
3344
  Num2.multiply = (b) => (a) => a * b;
3179
- Num2.divide = (b) => (a) => b === 0 ? Maybe.none() : Maybe.some(a / b);
3345
+ Num2.divide = (b) => (a) => b === 0 ? Maybe.make.none() : Maybe.make.some(a / b);
3180
3346
  Num2.abs = (n) => Math.abs(n);
3181
3347
  Num2.negate = (n) => -n;
3182
3348
  Num2.round = (n) => Math.round(n);
3183
3349
  Num2.floor = (n) => Math.floor(n);
3184
3350
  Num2.ceil = (n) => Math.ceil(n);
3185
- Num2.remainder = (divisor) => (n) => divisor === 0 ? Maybe.none() : Maybe.some(n % divisor);
3351
+ Num2.remainder = (divisor) => (n) => divisor === 0 ? Maybe.make.none() : Maybe.make.some(n % divisor);
3186
3352
  Num2.sum = (ns) => {
3187
3353
  let result = 0;
3188
3354
  for (let i = 0; i < ns.length; i++) {
@@ -3190,10 +3356,10 @@ var Num;
3190
3356
  }
3191
3357
  return result;
3192
3358
  };
3193
- Num2.mean = (ns) => ns.length === 0 ? Maybe.none() : Maybe.some((0, Num2.sum)(ns) / ns.length);
3359
+ Num2.mean = (ns) => ns.length === 0 ? Maybe.make.none() : Maybe.make.some((0, Num2.sum)(ns) / ns.length);
3194
3360
  Num2.min = (ns) => {
3195
3361
  if (ns.length === 0) {
3196
- return Maybe.none();
3362
+ return Maybe.make.none();
3197
3363
  }
3198
3364
  let [result] = ns;
3199
3365
  for (let i = 1; i < ns.length; i++) {
@@ -3201,11 +3367,11 @@ var Num;
3201
3367
  result = ns[i];
3202
3368
  }
3203
3369
  }
3204
- return Maybe.some(result);
3370
+ return Maybe.make.some(result);
3205
3371
  };
3206
3372
  Num2.max = (ns) => {
3207
3373
  if (ns.length === 0) {
3208
- return Maybe.none();
3374
+ return Maybe.make.none();
3209
3375
  }
3210
3376
  let [result] = ns;
3211
3377
  for (let i = 1; i < ns.length; i++) {
@@ -3213,7 +3379,7 @@ var Num;
3213
3379
  result = ns[i];
3214
3380
  }
3215
3381
  }
3216
- return Maybe.some(result);
3382
+ return Maybe.make.some(result);
3217
3383
  };
3218
3384
  })(Num || (Num = {}));
3219
3385
 
@@ -3256,32 +3422,43 @@ var RecResult;
3256
3422
  var RecNonEmpty;
3257
3423
  ((RecNonEmpty2) => {
3258
3424
  RecNonEmpty2.singleton = (key, value) => ({ [key]: value });
3259
- RecNonEmpty2.fromRecord = (data) => _isNonEmpty(data) ? Maybe.some(data) : Maybe.none();
3260
- RecNonEmpty2.keys = (data) => Object.keys(data);
3261
- RecNonEmpty2.values = (data) => Object.values(data);
3262
- RecNonEmpty2.entries = (data) => Object.entries(data);
3263
- RecNonEmpty2.reduce = (f) => (data) => {
3264
- const recordVals = Object.values(data);
3265
- return recordVals.reduce(f);
3266
- };
3425
+ let from;
3426
+ ((from2) => {
3427
+ from2.Record = (data) => _isNonEmpty(data) ? Maybe.make.some(data) : Maybe.make.none();
3428
+ })(from = RecNonEmpty2.from || (RecNonEmpty2.from = {}));
3429
+ RecNonEmpty2.keys = (data) => Rec.keys(data);
3430
+ RecNonEmpty2.values = (data) => Rec.values(data);
3431
+ RecNonEmpty2.entries = (data) => Rec.entries(data);
3432
+ RecNonEmpty2.reduce = (f) => (data) => (0, RecNonEmpty2.values)(data).reduce(f);
3433
+ RecNonEmpty2.map = (f) => (data) => Rec.map(f)(data);
3434
+ RecNonEmpty2.mapWithKey = (f) => (data) => Rec.mapWithKey(f)(data);
3267
3435
  })(RecNonEmpty || (RecNonEmpty = {}));
3268
3436
  var Rec;
3269
3437
  ((Rec2) => {
3270
- Rec2.isNonEmpty = _isNonEmpty;
3271
- Rec2.map = (f) => ((data) => {
3438
+ let is;
3439
+ ((is2) => {
3440
+ is2.empty = (data) => Object.keys(data).length === 0;
3441
+ is2.nonEmpty = _isNonEmpty;
3442
+ })(is = Rec2.is || (Rec2.is = {}));
3443
+ Rec2.map = (f) => (data) => {
3272
3444
  const recordKeys = Object.keys(data);
3273
3445
  const recordValues = Object.values(data);
3274
3446
  const result = Object.create(Object.getPrototypeOf(data));
3275
3447
  for (let i = 0; i < recordKeys.length; i++) {
3276
- Object.defineProperty(result, recordKeys[i], {
3277
- value: f(recordValues[i]),
3278
- writable: true,
3279
- enumerable: true,
3280
- configurable: true
3281
- });
3448
+ const key = recordKeys[i];
3449
+ if (key === "__proto__") {
3450
+ Object.defineProperty(result, "__proto__", {
3451
+ value: f(recordValues[i]),
3452
+ writable: true,
3453
+ enumerable: true,
3454
+ configurable: true
3455
+ });
3456
+ } else {
3457
+ result[key] = f(recordValues[i]);
3458
+ }
3282
3459
  }
3283
3460
  return result;
3284
- });
3461
+ };
3285
3462
  Rec2.filterMap = (f) => (data) => {
3286
3463
  const recordKeys = Object.keys(data);
3287
3464
  const recordValues = Object.values(data);
@@ -3299,20 +3476,25 @@ var Rec;
3299
3476
  }
3300
3477
  return result;
3301
3478
  };
3302
- Rec2.mapWithKey = (f) => ((data) => {
3479
+ Rec2.mapWithKey = (f) => (data) => {
3303
3480
  const recordKeys = Object.keys(data);
3304
3481
  const recordValues = Object.values(data);
3305
3482
  const result = Object.create(Object.getPrototypeOf(data));
3306
3483
  for (let i = 0; i < recordKeys.length; i++) {
3307
- Object.defineProperty(result, recordKeys[i], {
3308
- value: f(recordKeys[i], recordValues[i]),
3309
- writable: true,
3310
- enumerable: true,
3311
- configurable: true
3312
- });
3484
+ const key = recordKeys[i];
3485
+ if (key === "__proto__") {
3486
+ Object.defineProperty(result, "__proto__", {
3487
+ value: f(key, recordValues[i]),
3488
+ writable: true,
3489
+ enumerable: true,
3490
+ configurable: true
3491
+ });
3492
+ } else {
3493
+ result[key] = f(key, recordValues[i]);
3494
+ }
3313
3495
  }
3314
3496
  return result;
3315
- });
3497
+ };
3316
3498
  Rec2.filter = (predicate) => (data) => {
3317
3499
  const recordKeys = Object.keys(data);
3318
3500
  const recordValues = Object.values(data);
@@ -3342,7 +3524,10 @@ var Rec;
3342
3524
  Rec2.keys = (data) => Object.keys(data);
3343
3525
  Rec2.values = (data) => Object.values(data);
3344
3526
  Rec2.entries = (data) => Object.entries(data);
3345
- Rec2.fromEntries = (data) => Object.fromEntries(data);
3527
+ let from;
3528
+ ((from2) => {
3529
+ from2.entries = (data) => Object.fromEntries(data);
3530
+ })(from = Rec2.from || (Rec2.from = {}));
3346
3531
  Rec2.groupBy = (keyFn) => (items) => {
3347
3532
  const result = {};
3348
3533
  for (const item of items) {
@@ -3383,7 +3568,6 @@ var Rec;
3383
3568
  ...data,
3384
3569
  ...other
3385
3570
  });
3386
- Rec2.isEmpty = (data) => Object.keys(data).length === 0;
3387
3571
  Rec2.size = (data) => Object.keys(data).length;
3388
3572
  Rec2.mapKeys = (f) => (data) => {
3389
3573
  const result = {};
@@ -3407,8 +3591,20 @@ var Rec;
3407
3591
  })(Rec || (Rec = {}));
3408
3592
 
3409
3593
  // src/Data/Str.ts
3594
+ var StrNonEmpty;
3595
+ ((StrNonEmpty2) => {
3596
+ let from;
3597
+ ((from2) => {
3598
+ from2.String = (s) => s.length > 0 ? Maybe.make.some(s) : Maybe.make.none();
3599
+ })(from = StrNonEmpty2.from || (StrNonEmpty2.from = {}));
3600
+ })(StrNonEmpty || (StrNonEmpty = {}));
3410
3601
  var Str;
3411
3602
  ((Str2) => {
3603
+ let is;
3604
+ ((is2) => {
3605
+ is2.empty = (s) => s.length === 0;
3606
+ is2.nonEmpty = (s) => s.length > 0;
3607
+ })(is = Str2.is || (Str2.is = {}));
3412
3608
  Str2.split = (separator) => (s) => s.split(separator);
3413
3609
  Str2.trim = (s) => s.trim();
3414
3610
  Str2.includes = (substring) => (s) => s.includes(substring);
@@ -3421,7 +3617,6 @@ var Str;
3421
3617
  Str2.capitalize = (s) => s.length === 0 ? "" : s.charAt(0).toUpperCase() + s.slice(1);
3422
3618
  Str2.lines = (s) => s.split(/\r?\n|\r/);
3423
3619
  Str2.words = (s) => s.trim().split(/\s+/).filter(Boolean);
3424
- Str2.isEmpty = (s) => s.length === 0;
3425
3620
  Str2.isBlank = (s) => s.trim().length === 0;
3426
3621
  Str2.length = (s) => s.length;
3427
3622
  Str2.slice = (start, end) => (s) => s.slice(start, end);
@@ -3440,7 +3635,7 @@ var Str;
3440
3635
  */
3441
3636
  int: (s) => {
3442
3637
  const n = parseInt(s, 10);
3443
- return isNaN(n) ? Maybe.none() : Maybe.some(n);
3638
+ return isNaN(n) ? Maybe.make.none() : Maybe.make.some(n);
3444
3639
  },
3445
3640
  /**
3446
3641
  * Parses a string as a floating-point number. Returns `None` if the result is `NaN`.
@@ -3454,27 +3649,49 @@ var Str;
3454
3649
  */
3455
3650
  float: (s) => {
3456
3651
  const n = parseFloat(s);
3457
- return isNaN(n) ? Maybe.none() : Maybe.some(n);
3652
+ return isNaN(n) ? Maybe.make.none() : Maybe.make.some(n);
3458
3653
  }
3459
3654
  };
3460
3655
  Str2.parseJson = (s) => {
3461
3656
  try {
3462
- return Result.ok(JSON.parse(s));
3657
+ return Result.make.ok(JSON.parse(s));
3463
3658
  } catch (error) {
3464
- return Result.err(error);
3659
+ return Result.make.err(error);
3465
3660
  }
3466
3661
  };
3662
+ Str2.NonEmpty = StrNonEmpty;
3467
3663
  })(Str || (Str = {}));
3468
3664
 
3469
3665
  // src/Data/Uniq.ts
3666
+ var UniqNonEmpty;
3667
+ ((UniqNonEmpty2) => {
3668
+ UniqNonEmpty2.singleton = (item) => new globalThis.Set([item]);
3669
+ let from;
3670
+ ((from2) => {
3671
+ from2.Set = (s) => s.size > 0 ? Maybe.make.some(s) : Maybe.make.none();
3672
+ })(from = UniqNonEmpty2.from || (UniqNonEmpty2.from = {}));
3673
+ UniqNonEmpty2.reduce = (f) => (s) => to.Array(s).reduce(f);
3674
+ UniqNonEmpty2.map = (f) => (s) => Uniq.map(f)(s);
3675
+ let to;
3676
+ ((to2) => {
3677
+ to2.Array = (s) => Uniq.to.Array(s);
3678
+ })(to = UniqNonEmpty2.to || (UniqNonEmpty2.to = {}));
3679
+ })(UniqNonEmpty || (UniqNonEmpty = {}));
3470
3680
  var Uniq;
3471
3681
  ((Uniq2) => {
3682
+ let is;
3683
+ ((is2) => {
3684
+ is2.empty = (s) => s.size === 0;
3685
+ is2.nonEmpty = (s) => s.size > 0;
3686
+ })(is = Uniq2.is || (Uniq2.is = {}));
3472
3687
  Uniq2.empty = () => new globalThis.Set();
3473
3688
  Uniq2.singleton = (item) => new globalThis.Set([item]);
3474
- Uniq2.fromArray = (arr) => new globalThis.Set(arr);
3689
+ let from;
3690
+ ((from2) => {
3691
+ from2.Array = (arr) => new globalThis.Set(arr);
3692
+ })(from = Uniq2.from || (Uniq2.from = {}));
3475
3693
  Uniq2.has = (item) => (s) => s.has(item);
3476
3694
  Uniq2.size = (s) => s.size;
3477
- Uniq2.isEmpty = (s) => s.size === 0;
3478
3695
  Uniq2.isSubsetOf = (other) => (s) => {
3479
3696
  const set = s;
3480
3697
  if (typeof set.isSubsetOf === "function") {
@@ -3563,7 +3780,11 @@ var Uniq;
3563
3780
  }
3564
3781
  return acc;
3565
3782
  };
3566
- Uniq2.toArray = (s) => [...s];
3783
+ let to;
3784
+ ((to2) => {
3785
+ to2.Array = (s) => [...s];
3786
+ })(to = Uniq2.to || (Uniq2.to = {}));
3787
+ Uniq2.NonEmpty = UniqNonEmpty;
3567
3788
  })(Uniq || (Uniq = {}));
3568
3789
  // Annotate the CommonJS export names for ESM import in node:
3569
3790
  0 && (module.exports = {
@@ -3592,6 +3813,9 @@ var Uniq;
3592
3813
  State,
3593
3814
  Str,
3594
3815
  Task,
3816
+ TaskMaybe,
3817
+ TaskResult,
3818
+ TaskValidation,
3595
3819
  These,
3596
3820
  Tuple,
3597
3821
  Uniq,