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