@explorable-viz/fluid 0.7.106 → 0.8.1

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.
@@ -122,6 +122,23 @@ var arrayMap = function(f) {
122
122
  // output-es/Data.Functor/index.js
123
123
  var functorArray = { map: arrayMap };
124
124
 
125
+ // output-es/Control.Apply/foreign.js
126
+ var arrayApply = function(fs) {
127
+ return function(xs) {
128
+ var l = fs.length;
129
+ var k = xs.length;
130
+ var result = new Array(l * k);
131
+ var n = 0;
132
+ for (var i = 0; i < l; i++) {
133
+ var f = fs[i];
134
+ for (var j = 0; j < k; j++) {
135
+ result[n++] = f(xs[j]);
136
+ }
137
+ }
138
+ return result;
139
+ };
140
+ };
141
+
125
142
  // output-es/Control.Apply/index.js
126
143
  var identity = (x) => x;
127
144
 
@@ -289,15 +306,7 @@ var applyMaybe = {
289
306
  },
290
307
  Functor0: () => functorMaybe
291
308
  };
292
- var altMaybe = {
293
- alt: (v) => (v1) => {
294
- if (v.tag === "Nothing") {
295
- return v1;
296
- }
297
- return v;
298
- },
299
- Functor0: () => functorMaybe
300
- };
309
+ var applicativeMaybe = { pure: Just, Apply0: () => applyMaybe };
301
310
 
302
311
  // output-es/Data.Either/index.js
303
312
  var $Either = (tag, _1) => ({ tag, _1 });
@@ -603,6 +612,12 @@ var lookup = (dictFoldable) => {
603
612
  return Nothing;
604
613
  });
605
614
  };
615
+ var find = (dictFoldable) => (p) => dictFoldable.foldl((v) => (v1) => {
616
+ if (v.tag === "Nothing" && p(v1)) {
617
+ return $Maybe("Just", v1);
618
+ }
619
+ return v;
620
+ })(Nothing);
606
621
 
607
622
  // output-es/Data.Eq/foreign.js
608
623
  var refEq = function(r1) {
@@ -1010,6 +1025,7 @@ var groupBy = (op) => (xs) => {
1010
1025
  })();
1011
1026
  return result;
1012
1027
  };
1028
+ var foldM = (dictMonad) => (f) => (b) => unconsImpl((v) => dictMonad.Applicative0().pure(b))((a) => (as) => dictMonad.Bind1().bind(f(b)(a))((b$p) => foldM(dictMonad)(f)(b$p)(as)));
1013
1029
  var findIndex = /* @__PURE__ */ findIndexImpl(Just)(Nothing);
1014
1030
  var notElem = (dictEq) => (a) => (arr) => {
1015
1031
  const $0 = findIndex((v) => dictEq.eq(v)(a))(arr);
@@ -1256,7 +1272,7 @@ var foldableNonEmptyList = {
1256
1272
  foldr: (f) => (b) => (v) => f(v._1)(foldableList.foldr(f)(b)(v._2))
1257
1273
  };
1258
1274
  var showList = (dictShow) => {
1259
- const show4 = dictShow.show;
1275
+ const show5 = dictShow.show;
1260
1276
  return {
1261
1277
  show: (v) => {
1262
1278
  if (v.tag === "Nil") {
@@ -1280,7 +1296,7 @@ var showList = (dictShow) => {
1280
1296
  }
1281
1297
  return go$r;
1282
1298
  };
1283
- return "(" + go({ init: true, acc: "" })(listMap(show4)(v)).acc + " : Nil)";
1299
+ return "(" + go({ init: true, acc: "" })(listMap(show5)(v)).acc + " : Nil)";
1284
1300
  }
1285
1301
  };
1286
1302
  };
@@ -3098,6 +3114,16 @@ var groupBy2 = (v) => (v1) => {
3098
3114
  }
3099
3115
  fail();
3100
3116
  };
3117
+ var foldM2 = (dictMonad) => (v) => (v1) => (v2) => {
3118
+ if (v2.tag === "Nil") {
3119
+ return dictMonad.Applicative0().pure(v1);
3120
+ }
3121
+ if (v2.tag === "Cons") {
3122
+ const $0 = v2._2;
3123
+ return dictMonad.Bind1().bind(v(v1)(v2._1))((b$p) => foldM2(dictMonad)(v)(b$p)($0));
3124
+ }
3125
+ fail();
3126
+ };
3101
3127
  var drop3 = (drop$a0$copy) => (drop$a1$copy) => {
3102
3128
  let drop$a0 = drop$a0$copy, drop$a1 = drop$a1$copy, drop$c = true, drop$r;
3103
3129
  while (drop$c) {
@@ -3331,7 +3357,10 @@ var replicate2 = (dictUnfoldable) => (n) => (v) => dictUnfoldable.unfoldr((i) =>
3331
3357
  var $KickUp = (_1, _2, _3, _4) => ({ tag: "KickUp", _1, _2, _3, _4 });
3332
3358
  var $$$Map = (tag, _1, _2, _3, _4, _5, _6, _7) => ({ tag, _1, _2, _3, _4, _5, _6, _7 });
3333
3359
  var $TreeContext = (tag, _1, _2, _3, _4, _5, _6) => ({ tag, _1, _2, _3, _4, _5, _6 });
3360
+ var identity9 = (x) => x;
3334
3361
  var Leaf2 = /* @__PURE__ */ $$$Map("Leaf");
3362
+ var Two = (value0) => (value1) => (value2) => (value3) => $$$Map("Two", value0, value1, value2, value3);
3363
+ var Three = (value0) => (value1) => (value2) => (value3) => (value4) => (value5) => (value6) => $$$Map("Three", value0, value1, value2, value3, value4, value5, value6);
3335
3364
  var size = (v) => {
3336
3365
  if (v.tag === "Leaf") {
3337
3366
  return 0;
@@ -3450,6 +3479,20 @@ var lookup2 = (dictOrd) => (k) => {
3450
3479
  };
3451
3480
  return go;
3452
3481
  };
3482
+ var functorMap = {
3483
+ map: (v) => (v1) => {
3484
+ if (v1.tag === "Leaf") {
3485
+ return Leaf2;
3486
+ }
3487
+ if (v1.tag === "Two") {
3488
+ return $$$Map("Two", functorMap.map(v)(v1._1), v1._2, v(v1._3), functorMap.map(v)(v1._4));
3489
+ }
3490
+ if (v1.tag === "Three") {
3491
+ return $$$Map("Three", functorMap.map(v)(v1._1), v1._2, v(v1._3), functorMap.map(v)(v1._4), v1._5, v(v1._6), functorMap.map(v)(v1._7));
3492
+ }
3493
+ fail();
3494
+ }
3495
+ };
3453
3496
  var fromZipper = (fromZipper$a0$copy) => (fromZipper$a1$copy) => (fromZipper$a2$copy) => {
3454
3497
  let fromZipper$a0 = fromZipper$a0$copy, fromZipper$a1 = fromZipper$a1$copy, fromZipper$a2 = fromZipper$a2$copy, fromZipper$c = true, fromZipper$r;
3455
3498
  while (fromZipper$c) {
@@ -4236,6 +4279,27 @@ var foldableWithIndexMap = {
4236
4279
  },
4237
4280
  Foldable0: () => foldableMap
4238
4281
  };
4282
+ var traversableMap = {
4283
+ traverse: (dictApplicative) => {
4284
+ const Apply0 = dictApplicative.Apply0();
4285
+ const $0 = Apply0.Functor0();
4286
+ return (v) => (v1) => {
4287
+ if (v1.tag === "Leaf") {
4288
+ return dictApplicative.pure(Leaf2);
4289
+ }
4290
+ if (v1.tag === "Two") {
4291
+ return Apply0.apply(Apply0.apply(Apply0.apply($0.map(Two)(traversableMap.traverse(dictApplicative)(v)(v1._1)))(dictApplicative.pure(v1._2)))(v(v1._3)))(traversableMap.traverse(dictApplicative)(v)(v1._4));
4292
+ }
4293
+ if (v1.tag === "Three") {
4294
+ return Apply0.apply(Apply0.apply(Apply0.apply(Apply0.apply(Apply0.apply(Apply0.apply($0.map(Three)(traversableMap.traverse(dictApplicative)(v)(v1._1)))(dictApplicative.pure(v1._2)))(v(v1._3)))(traversableMap.traverse(dictApplicative)(v)(v1._4)))(dictApplicative.pure(v1._5)))(v(v1._6)))(traversableMap.traverse(dictApplicative)(v)(v1._7));
4295
+ }
4296
+ fail();
4297
+ };
4298
+ },
4299
+ sequence: (dictApplicative) => traversableMap.traverse(dictApplicative)(identity9),
4300
+ Functor0: () => functorMap,
4301
+ Foldable1: () => foldableMap
4302
+ };
4239
4303
  var findMin = /* @__PURE__ */ (() => {
4240
4304
  const go = (go$a0$copy) => (go$a1$copy) => {
4241
4305
  let go$a0 = go$a0$copy, go$a1 = go$a1$copy, go$c = true, go$r;
@@ -9679,7 +9743,7 @@ var keys = Object.keys || toArrayWithKey(function(k) {
9679
9743
  });
9680
9744
 
9681
9745
  // output-es/Foreign.Object/index.js
9682
- var identity9 = (x) => x;
9746
+ var identity10 = (x) => x;
9683
9747
  var values = /* @__PURE__ */ toArrayWithKey((v) => (v1) => v1);
9684
9748
  var toAscUnfoldable = (dictUnfoldable) => {
9685
9749
  const $0 = sortWith(ordString)(fst);
@@ -9717,11 +9781,11 @@ var fromFoldable2 = (dictFoldable) => {
9717
9781
  return s;
9718
9782
  };
9719
9783
  };
9720
- var foldM = (dictMonad) => {
9784
+ var foldM3 = (dictMonad) => {
9721
9785
  const bind12 = dictMonad.Bind1().bind;
9722
9786
  return (f) => (z) => _foldM(bind12)(f)(dictMonad.Applicative0().pure(z));
9723
9787
  };
9724
- var foldM1 = /* @__PURE__ */ foldM(monadST);
9788
+ var foldM1 = /* @__PURE__ */ foldM3(monadST);
9725
9789
  var union2 = (m) => mutate((s) => foldM1((s$p) => (k) => (v) => () => {
9726
9790
  s$p[k] = v;
9727
9791
  return s$p;
@@ -9769,7 +9833,7 @@ var traversableObject = {
9769
9833
  const $0 = traversableWithIndexObject.traverseWithIndex(dictApplicative);
9770
9834
  return (x) => $0((v) => x);
9771
9835
  },
9772
- sequence: (dictApplicative) => traversableObject.traverse(dictApplicative)(identity9),
9836
+ sequence: (dictApplicative) => traversableObject.traverse(dictApplicative)(identity10),
9773
9837
  Functor0: () => functorObject,
9774
9838
  Foldable1: () => foldableObject
9775
9839
  };
@@ -9982,7 +10046,7 @@ var intercalate2 = (sep) => (xs) => {
9982
10046
  };
9983
10047
  return go({ init: true, acc: Nil })(xs).acc;
9984
10048
  };
9985
- var identity12 = (x) => x;
10049
+ var identity13 = (x) => x;
9986
10050
  var isEmptySet = { isEmpty };
9987
10051
  var isEmptyObject = { isEmpty: isEmpty2 };
9988
10052
  var $$throw = (dictMonadThrow) => (x) => dictMonadThrow.throwError(error(x));
@@ -10082,13 +10146,13 @@ var bind2Flipped = (dictMonad) => {
10082
10146
  };
10083
10147
  var assertWith = (v) => (v1) => {
10084
10148
  if (v1) {
10085
- return identity12;
10149
+ return identity13;
10086
10150
  }
10087
10151
  return (v2) => throwException(error("Assertion failure: " + v))();
10088
10152
  };
10089
10153
  var assertWhen = (v) => (v1) => {
10090
10154
  if (!v) {
10091
- return (v$1) => identity12;
10155
+ return (v$1) => identity13;
10092
10156
  }
10093
10157
  if (v) {
10094
10158
  return (x) => assertWith(v1)(x());
@@ -10135,7 +10199,7 @@ function intersectionWith_Object(f) {
10135
10199
  }
10136
10200
 
10137
10201
  // output-es/Util.Map/index.js
10138
- var identity13 = (x) => x;
10202
+ var identity14 = (x) => x;
10139
10203
  var mapObjectString = {
10140
10204
  maplet: singleton2,
10141
10205
  keys: /* @__PURE__ */ (() => {
@@ -10287,7 +10351,7 @@ var checkArity = (dictMonadError) => {
10287
10351
  };
10288
10352
 
10289
10353
  // output-es/Dict/index.js
10290
- var identity14 = (x) => x;
10354
+ var identity15 = (x) => x;
10291
10355
  var isEmptyDict = { isEmpty: (v) => isEmpty2(v) };
10292
10356
  var setDictString = {
10293
10357
  empty,
@@ -10340,7 +10404,7 @@ var traversableDict = {
10340
10404
  const $0 = traversableWithIndexObject.traverseWithIndex(dictApplicative);
10341
10405
  return (f) => (m) => dictApplicative.Apply0().Functor0().map((v1) => v1)($0((v) => f)(m));
10342
10406
  },
10343
- sequence: (dictApplicative) => (v) => traversableDict.traverse(dictApplicative)(identity14)(v),
10407
+ sequence: (dictApplicative) => (v) => traversableDict.traverse(dictApplicative)(identity15)(v),
10344
10408
  Functor0: () => functorDict,
10345
10409
  Foldable1: () => foldableDict
10346
10410
  };
@@ -10464,9 +10528,9 @@ var toTuple = (v) => $Tuple(v._1, v._2);
10464
10528
  var unzip3 = (xys) => unzip(listMap(toTuple)(xys));
10465
10529
 
10466
10530
  // output-es/Lattice/index.js
10467
- var identity15 = (x) => x;
10468
- var meetSemilatticeUnit = { meet: (v) => identity15 };
10469
- var joinSemilatticeUnit = { join: (v) => identity15 };
10531
+ var identity16 = (x) => x;
10532
+ var meetSemilatticeUnit = { meet: (v) => identity16 };
10533
+ var joinSemilatticeUnit = { join: (v) => identity16 };
10470
10534
  var boundedMeetSemilatticeUni = { top: void 0, MeetSemilattice0: () => meetSemilatticeUnit };
10471
10535
  var boundedJoinSemilatticeUni = { bot: void 0, JoinSemilattice0: () => joinSemilatticeUnit };
10472
10536
 
@@ -10494,7 +10558,7 @@ var unions = /* @__PURE__ */ (() => {
10494
10558
  };
10495
10559
  return go(Leaf2);
10496
10560
  })();
10497
- var identity16 = (x) => x;
10561
+ var identity17 = (x) => x;
10498
10562
  var Unquote = (value0) => $DocCommentElem("Unquote", value0);
10499
10563
  var None = /* @__PURE__ */ $DocOpt("None");
10500
10564
  var Doc = (value0) => $DocOpt("Doc", value0);
@@ -10701,18 +10765,18 @@ var traversableDocCommentElem = (dictTraversable) => {
10701
10765
  };
10702
10766
  return {
10703
10767
  traverse: (dictApplicative) => {
10704
- const traverse2 = dictTraversable.traverse(dictApplicative);
10768
+ const traverse22 = dictTraversable.traverse(dictApplicative);
10705
10769
  return (f) => (m) => {
10706
10770
  if (m.tag === "Token") {
10707
10771
  return dictApplicative.pure($DocCommentElem("Token", m._1));
10708
10772
  }
10709
10773
  if (m.tag === "Unquote") {
10710
- return dictApplicative.Apply0().Functor0().map((v1) => $DocCommentElem("Unquote", v1))(traverse2(f)(m._1));
10774
+ return dictApplicative.Apply0().Functor0().map((v1) => $DocCommentElem("Unquote", v1))(traverse22(f)(m._1));
10711
10775
  }
10712
10776
  fail();
10713
10777
  };
10714
10778
  },
10715
- sequence: (dictApplicative) => (v) => traversableDocCommentElem(dictTraversable).traverse(dictApplicative)(identity16)(v),
10779
+ sequence: (dictApplicative) => (v) => traversableDocCommentElem(dictTraversable).traverse(dictApplicative)(identity17)(v),
10716
10780
  Functor0: () => functorDocCommentElem1,
10717
10781
  Foldable1: () => foldableDocCommentElem1
10718
10782
  };
@@ -10722,19 +10786,19 @@ var traversableDocOpt = (dictTraversable) => {
10722
10786
  const foldableDocOpt1 = foldableDocOpt(dictTraversable.Foldable1());
10723
10787
  return {
10724
10788
  traverse: (dictApplicative) => {
10725
- const traverse2 = traversableList.traverse(dictApplicative);
10789
+ const traverse22 = traversableList.traverse(dictApplicative);
10726
10790
  const traverse3 = traversableDocCommentElem(dictTraversable).traverse(dictApplicative);
10727
10791
  return (f) => (m) => {
10728
10792
  if (m.tag === "None") {
10729
10793
  return dictApplicative.pure(None);
10730
10794
  }
10731
10795
  if (m.tag === "Doc") {
10732
- return dictApplicative.Apply0().Functor0().map((v1) => $DocOpt("Doc", v1))(traverse2(traverse3(f))(m._1));
10796
+ return dictApplicative.Apply0().Functor0().map((v1) => $DocOpt("Doc", v1))(traverse22(traverse3(f))(m._1));
10733
10797
  }
10734
10798
  fail();
10735
10799
  };
10736
10800
  },
10737
- sequence: (dictApplicative) => (v) => traversableDocOpt(dictTraversable).traverse(dictApplicative)(identity16)(v),
10801
+ sequence: (dictApplicative) => (v) => traversableDocOpt(dictTraversable).traverse(dictApplicative)(identity17)(v),
10738
10802
  Functor0: () => functorDocOpt1,
10739
10803
  Foldable1: () => foldableDocOpt1
10740
10804
  };
@@ -10768,7 +10832,7 @@ var unions12 = /* @__PURE__ */ (() => {
10768
10832
  };
10769
10833
  return go(Leaf2);
10770
10834
  })();
10771
- var identity17 = (x) => x;
10835
+ var identity18 = (x) => x;
10772
10836
  var setSet2 = /* @__PURE__ */ setSet(ordString);
10773
10837
  var fromFoldable5 = /* @__PURE__ */ (() => foldableSet.foldl((m) => (a) => insert(ordString)(a)()(m))(Leaf2))();
10774
10838
  var unions3 = /* @__PURE__ */ (() => {
@@ -11279,7 +11343,7 @@ var traversableVarDef = {
11279
11343
  const Apply0 = dictApplicative.Apply0();
11280
11344
  return (f) => (m) => Apply0.apply(Apply0.Functor0().map((v2) => (v3) => $VarDef(v2, v3))(traversableElim.traverse(dictApplicative)(f)(m._1)))(traversableExpr.traverse(dictApplicative)(f)(m._2));
11281
11345
  },
11282
- sequence: (dictApplicative) => (v) => traversableVarDef.traverse(dictApplicative)(identity17)(v),
11346
+ sequence: (dictApplicative) => (v) => traversableVarDef.traverse(dictApplicative)(identity18)(v),
11283
11347
  Functor0: () => functorVarDef,
11284
11348
  Foldable1: () => foldableVarDef
11285
11349
  };
@@ -11289,7 +11353,7 @@ var traversableRecDefs = {
11289
11353
  const traverse5 = traversableDict.traverse(dictApplicative);
11290
11354
  return (f) => (m) => Apply0.apply(Apply0.Functor0().map((v2) => (v3) => $RecDefs(v2, v3))(f(m._1)))(traverse5(traversableElim.traverse(dictApplicative)(f))(m._2));
11291
11355
  },
11292
- sequence: (dictApplicative) => (v) => traversableRecDefs.traverse(dictApplicative)(identity17)(v),
11356
+ sequence: (dictApplicative) => (v) => traversableRecDefs.traverse(dictApplicative)(identity18)(v),
11293
11357
  Functor0: () => functorRecDefs,
11294
11358
  Foldable1: () => foldableRecDefs
11295
11359
  };
@@ -11351,7 +11415,7 @@ var traversableExpr = {
11351
11415
  fail();
11352
11416
  };
11353
11417
  },
11354
- sequence: (dictApplicative) => (v) => traversableExpr.traverse(dictApplicative)(identity17)(v),
11418
+ sequence: (dictApplicative) => (v) => traversableExpr.traverse(dictApplicative)(identity18)(v),
11355
11419
  Functor0: () => functorExpr,
11356
11420
  Foldable1: () => foldableExpr
11357
11421
  };
@@ -11374,7 +11438,7 @@ var traversableElim = {
11374
11438
  fail();
11375
11439
  };
11376
11440
  },
11377
- sequence: (dictApplicative) => (v) => traversableElim.traverse(dictApplicative)(identity17)(v),
11441
+ sequence: (dictApplicative) => (v) => traversableElim.traverse(dictApplicative)(identity18)(v),
11378
11442
  Functor0: () => functorElim,
11379
11443
  Foldable1: () => foldableElim
11380
11444
  };
@@ -11391,7 +11455,7 @@ var traversableCont = {
11391
11455
  fail();
11392
11456
  };
11393
11457
  },
11394
- sequence: (dictApplicative) => (v) => traversableCont.traverse(dictApplicative)(identity17)(v),
11458
+ sequence: (dictApplicative) => (v) => traversableCont.traverse(dictApplicative)(identity18)(v),
11395
11459
  Functor0: () => functorCont,
11396
11460
  Foldable1: () => foldableCont
11397
11461
  };
@@ -12251,7 +12315,7 @@ var bwdSlice = (dictGraph) => {
12251
12315
  };
12252
12316
 
12253
12317
  // output-es/Data.Profunctor.Choice/index.js
12254
- var identity18 = (x) => x;
12318
+ var identity19 = (x) => x;
12255
12319
  var fanin = (dictCategory) => {
12256
12320
  const identity1 = dictCategory.identity;
12257
12321
  const $0 = dictCategory.Semigroupoid0();
@@ -12264,7 +12328,7 @@ var fanin = (dictCategory) => {
12264
12328
  return v2._1;
12265
12329
  }
12266
12330
  fail();
12267
- })(identity18)(identity1))($1.compose(dictChoice.right(r))(dictChoice.left(l)));
12331
+ })(identity19)(identity1))($1.compose(dictChoice.right(r))(dictChoice.left(l)));
12268
12332
  };
12269
12333
  var choiceFn = /* @__PURE__ */ (() => ({
12270
12334
  left: (v) => (v1) => {
@@ -12908,7 +12972,7 @@ var between = (open2) => (close2) => (p) => (state1, more, lift12, $$throw2, don
12908
12972
  var $Assoc = (tag) => tag;
12909
12973
  var $Operator = (tag, _1, _2) => ({ tag, _1, _2 });
12910
12974
  var choice2 = /* @__PURE__ */ choice(foldableList);
12911
- var identity19 = (x) => x;
12975
+ var identity20 = (x) => x;
12912
12976
  var AssocNone = /* @__PURE__ */ $Assoc("AssocNone");
12913
12977
  var AssocLeft = /* @__PURE__ */ $Assoc("AssocLeft");
12914
12978
  var AssocRight = /* @__PURE__ */ $Assoc("AssocRight");
@@ -13089,7 +13153,7 @@ var makeParser = (term) => (ops) => {
13089
13153
  if ($7) {
13090
13154
  return $22(v4, $6);
13091
13155
  }
13092
- return $32(v2$1, identity19);
13156
+ return $32(v2$1, identity20);
13093
13157
  });
13094
13158
  },
13095
13159
  $32
@@ -13107,7 +13171,7 @@ var makeParser = (term) => (ops) => {
13107
13171
  if ($7) {
13108
13172
  return $22(v4, $6);
13109
13173
  }
13110
- return $32(v2$1, identity19);
13174
+ return $32(v2$1, identity20);
13111
13175
  });
13112
13176
  },
13113
13177
  $32
@@ -13126,7 +13190,7 @@ var makeParser = (term) => (ops) => {
13126
13190
  if ($8) {
13127
13191
  return $32(v4, $7);
13128
13192
  }
13129
- return $42(v2$1, identity19);
13193
+ return $42(v2$1, identity20);
13130
13194
  });
13131
13195
  },
13132
13196
  $42
@@ -13144,7 +13208,7 @@ var makeParser = (term) => (ops) => {
13144
13208
  if ($8) {
13145
13209
  return $32(v4, $7);
13146
13210
  }
13147
- return $42(v2$1, identity19);
13211
+ return $42(v2$1, identity20);
13148
13212
  });
13149
13213
  },
13150
13214
  $42
@@ -13163,7 +13227,7 @@ var makeParser = (term) => (ops) => {
13163
13227
  if ($9) {
13164
13228
  return $42(v4, $8);
13165
13229
  }
13166
- return $52(v2$1, identity19);
13230
+ return $52(v2$1, identity20);
13167
13231
  });
13168
13232
  },
13169
13233
  $52
@@ -13181,7 +13245,7 @@ var makeParser = (term) => (ops) => {
13181
13245
  if ($9) {
13182
13246
  return $42(v4, $8);
13183
13247
  }
13184
- return $52(v2$1, identity19);
13248
+ return $52(v2$1, identity20);
13185
13249
  });
13186
13250
  },
13187
13251
  $52
@@ -13276,7 +13340,7 @@ var makeParser = (term) => (ops) => {
13276
13340
  if ($5) {
13277
13341
  return $$throw2(v4, $4);
13278
13342
  }
13279
- return $1(state1, identity19);
13343
+ return $1(state1, identity20);
13280
13344
  });
13281
13345
  },
13282
13346
  $1
@@ -15851,13 +15915,13 @@ var varDefFwd = (dictMonadError) => {
15851
15915
  };
15852
15916
  var recDefsFwd = (dictMonadError) => {
15853
15917
  const Monad0 = dictMonadError.MonadThrow0().Monad0();
15854
- const traverse2 = traversableNonEmptyList.traverse(Monad0.Applicative0());
15918
+ const traverse22 = traversableNonEmptyList.traverse(Monad0.Applicative0());
15855
15919
  return (dictBoundedLattice) => {
15856
15920
  const top = dictBoundedLattice.BoundedMeetSemilattice1().top;
15857
15921
  return (xcs) => Monad0.Bind1().Apply0().Functor0().map((() => {
15858
15922
  const $0 = RecDefs(top);
15859
15923
  return (x) => $0(fromFoldable16(x));
15860
- })())(traverse2(recDefFwd(dictMonadError)(dictBoundedLattice))((() => {
15924
+ })())(traverse22(recDefFwd(dictMonadError)(dictBoundedLattice))((() => {
15861
15925
  const $0 = wrappedOperation("groupBy")(groupBy2((x) => (y) => x._1 === y._1))(xcs);
15862
15926
  return $NonEmpty($0._1, listMap(RecDef)($0._2));
15863
15927
  })()));
@@ -16059,7 +16123,7 @@ var exprFwd = (dictBoundedLattice) => {
16059
16123
  const Bind1 = Monad0.Bind1();
16060
16124
  const Apply0 = Bind1.Apply0();
16061
16125
  const Functor0 = Apply0.Functor0();
16062
- const traverse2 = traversableList.traverse(Applicative0);
16126
+ const traverse22 = traversableList.traverse(Applicative0);
16063
16127
  return (dictJoinSemilattice) => (v) => {
16064
16128
  if (v.tag === "Var") {
16065
16129
  return Applicative0.pure($Expr("Var", v._1));
@@ -16086,14 +16150,14 @@ var exprFwd = (dictBoundedLattice) => {
16086
16150
  const $0 = v._3;
16087
16151
  const $1 = v._4;
16088
16152
  const $2 = v._1;
16089
- return Bind1.bind(desugComment(dictBoundedLattice)(dictMonadError)(v._2))((edoc) => Functor0.map(Constr($2)(edoc)($0))(traverse2(exprFwd(dictBoundedLattice)(dictMonadError)(dictBoundedLattice.BoundedJoinSemilattice0().JoinSemilattice0()))($1)));
16153
+ return Bind1.bind(desugComment(dictBoundedLattice)(dictMonadError)(v._2))((edoc) => Functor0.map(Constr($2)(edoc)($0))(traverse22(exprFwd(dictBoundedLattice)(dictMonadError)(dictBoundedLattice.BoundedJoinSemilattice0().JoinSemilattice0()))($1)));
16090
16154
  }
16091
16155
  if (v.tag === "Dictionary") {
16092
16156
  const $0 = v._2;
16093
16157
  const $1 = v._1;
16094
16158
  const v1 = unzip(v._3);
16095
16159
  const $2 = v1._2;
16096
- return Bind1.bind(traverse2(desugarableDictEntryExpr.desug(dictMonadError)(dictBoundedLattice))(v1._1))((ks$p) => Bind1.bind(traverse2(exprFwd(dictBoundedLattice)(dictMonadError)(dictBoundedLattice.BoundedJoinSemilattice0().JoinSemilattice0()))($2))((es) => Bind1.bind(desugComment(dictBoundedLattice)(dictMonadError)($0))((edoc) => Functor0.map(Dictionary($1)(edoc))(Applicative0.pure(zipWith2((k) => (v2) => $Pair(
16160
+ return Bind1.bind(traverse22(desugarableDictEntryExpr.desug(dictMonadError)(dictBoundedLattice))(v1._1))((ks$p) => Bind1.bind(traverse22(exprFwd(dictBoundedLattice)(dictMonadError)(dictBoundedLattice.BoundedJoinSemilattice0().JoinSemilattice0()))($2))((es) => Bind1.bind(desugComment(dictBoundedLattice)(dictMonadError)($0))((edoc) => Functor0.map(Dictionary($1)(edoc))(Applicative0.pure(zipWith2((k) => (v2) => $Pair(
16097
16161
  k,
16098
16162
  v2
16099
16163
  ))(ks$p)(es))))));
@@ -16628,11 +16692,11 @@ var moduleFwd = (dictMonadError) => {
16628
16692
  const $0 = Monad0.Bind1().Apply0().Functor0();
16629
16693
  const varDefFwd1 = varDefFwd(dictMonadError);
16630
16694
  const recDefsFwd1 = recDefsFwd(dictMonadError);
16631
- const traverse2 = traversableList.traverse(Monad0.Applicative0());
16695
+ const traverse22 = traversableList.traverse(Monad0.Applicative0());
16632
16696
  return (dictBoundedLattice) => {
16633
16697
  const varDefFwd2 = varDefFwd1(dictBoundedLattice);
16634
16698
  const recDefsFwd2 = recDefsFwd1(dictBoundedLattice);
16635
- return (v) => $0.map(Module)(traverse2((v1) => {
16699
+ return (v) => $0.map(Module)(traverse22((v1) => {
16636
16700
  if (v1.tag === "Left") {
16637
16701
  return $0.map(Left)(varDefFwd2(v1._1));
16638
16702
  }
@@ -17474,7 +17538,7 @@ var unions13 = /* @__PURE__ */ (() => {
17474
17538
  return go(Leaf2);
17475
17539
  })();
17476
17540
  var foldMap2 = /* @__PURE__ */ foldMap({ mempty: Leaf2, Semigroup0: () => ({ append: union(ordDVertex$p) }) });
17477
- var identity22 = (x) => x;
17541
+ var identity23 = (x) => x;
17478
17542
  var boundedLattice = { BoundedJoinSemilattice0: () => boundedJoinSemilatticeUni, BoundedMeetSemilattice1: () => boundedMeetSemilatticeUni };
17479
17543
  var setSet1 = /* @__PURE__ */ setSet(ordString);
17480
17544
  var toUnfoldable14 = /* @__PURE__ */ toUnfoldable4(unfoldableList);
@@ -17600,7 +17664,7 @@ var mapEnvStringVal = {
17600
17664
  var highlightableVertex = {
17601
17665
  highlightIf: (v) => (doc) => beside(beside(doc)(checkOneLine(split("\n")(" _"))))(checkOneLine(split("\n")(" \u27E8" + v + "\u27E9")))
17602
17666
  };
17603
- var highlightableUnit = { highlightIf: (v) => identity22 };
17667
+ var highlightableUnit = { highlightIf: (v) => identity23 };
17604
17668
  var functorMatrixDim = { map: (f) => (m) => $Tuple(m._1, f(m._2)) };
17605
17669
  var functorVal = { map: (f) => (m) => $Val(f(m._1), functorDocOpt(functorVal).map(f)(m._2), functorBaseVal.map(f)(m._3)) };
17606
17670
  var functorMatrixRep = {
@@ -17654,7 +17718,7 @@ var functorBaseVal = {
17654
17718
  var foldableMatrixDim = { foldl: (f) => (z) => (m) => f(z)(m._2), foldr: (f) => (z) => (m) => f(m._2)(z), foldMap: (dictMonoid) => (f) => (m) => f(m._2) };
17655
17719
  var traversableMatrixDim = {
17656
17720
  traverse: (dictApplicative) => (f) => (m) => dictApplicative.Apply0().Functor0().map((v1) => v1)(traversableTuple.traverse(dictApplicative)(f)(m)),
17657
- sequence: (dictApplicative) => (v) => traversableMatrixDim.traverse(dictApplicative)(identity22)(v),
17721
+ sequence: (dictApplicative) => (v) => traversableMatrixDim.traverse(dictApplicative)(identity23)(v),
17658
17722
  Functor0: () => functorMatrixDim,
17659
17723
  Foldable1: () => foldableMatrixDim
17660
17724
  };
@@ -17871,7 +17935,7 @@ var traversableVal = {
17871
17935
  const Apply0 = dictApplicative.Apply0();
17872
17936
  return (f) => (m) => Apply0.apply(Apply0.apply(Apply0.Functor0().map((v3) => (v4) => (v5) => $Val(v3, v4, v5))(f(m._1)))(traversableDocOpt(traversableVal).traverse(dictApplicative)(f)(m._2)))(traversableBaseVal.traverse(dictApplicative)(f)(m._3));
17873
17937
  },
17874
- sequence: (dictApplicative) => (v) => traversableVal.traverse(dictApplicative)(identity22)(v),
17938
+ sequence: (dictApplicative) => (v) => traversableVal.traverse(dictApplicative)(identity23)(v),
17875
17939
  Functor0: () => functorVal,
17876
17940
  Foldable1: () => foldableVal
17877
17941
  };
@@ -17907,7 +17971,7 @@ var traversableFun = {
17907
17971
  fail();
17908
17972
  };
17909
17973
  },
17910
- sequence: (dictApplicative) => (v) => traversableFun.traverse(dictApplicative)(identity22)(v),
17974
+ sequence: (dictApplicative) => (v) => traversableFun.traverse(dictApplicative)(identity23)(v),
17911
17975
  Functor0: () => functorFun,
17912
17976
  Foldable1: () => foldableFun
17913
17977
  };
@@ -17916,7 +17980,7 @@ var traversableEnv = {
17916
17980
  const traverse8 = traversableDict.traverse(dictApplicative);
17917
17981
  return (f) => (m) => dictApplicative.Apply0().Functor0().map((v1) => v1)(traverse8(traversableVal.traverse(dictApplicative)(f))(m));
17918
17982
  },
17919
- sequence: (dictApplicative) => (v) => traversableEnv.traverse(dictApplicative)(identity22)(v),
17983
+ sequence: (dictApplicative) => (v) => traversableEnv.traverse(dictApplicative)(identity23)(v),
17920
17984
  Functor0: () => functorEnv,
17921
17985
  Foldable1: () => foldableEnv
17922
17986
  };
@@ -17960,7 +18024,7 @@ var traversableBaseVal = {
17960
18024
  fail();
17961
18025
  };
17962
18026
  },
17963
- sequence: (dictApplicative) => (v) => traversableBaseVal.traverse(dictApplicative)(identity22)(v),
18027
+ sequence: (dictApplicative) => (v) => traversableBaseVal.traverse(dictApplicative)(identity23)(v),
17964
18028
  Functor0: () => functorBaseVal,
17965
18029
  Foldable1: () => foldableBaseVal
17966
18030
  };
@@ -18023,8 +18087,8 @@ var isZeroNumber = { isZero: ($0) => 0 === $0 };
18023
18087
  var isZeroInt = { isZero: ($0) => 0 === $0 };
18024
18088
  var unary = (dictBoundedJoinSemilattice) => {
18025
18089
  const bot = dictBoundedJoinSemilattice.bot;
18026
- return (id) => (f) => $Tuple(
18027
- id,
18090
+ return (id2) => (f) => $Tuple(
18091
+ id2,
18028
18092
  $Val(
18029
18093
  bot,
18030
18094
  None,
@@ -18033,7 +18097,7 @@ var unary = (dictBoundedJoinSemilattice) => {
18033
18097
  $Fun(
18034
18098
  "Foreign",
18035
18099
  $Tuple(
18036
- id,
18100
+ id2,
18037
18101
  $ForeignOp$p({
18038
18102
  arity: 1,
18039
18103
  op: (dictMonadWithGraphAlloc) => {
@@ -18172,8 +18236,8 @@ var $$boolean = {
18172
18236
  };
18173
18237
  var binaryZero = (dictBoundedJoinSemilattice) => {
18174
18238
  const bot = dictBoundedJoinSemilattice.bot;
18175
- return (dictIsZero) => (id) => (f) => $Tuple(
18176
- id,
18239
+ return (dictIsZero) => (id2) => (f) => $Tuple(
18240
+ id2,
18177
18241
  $Val(
18178
18242
  bot,
18179
18243
  None,
@@ -18182,7 +18246,7 @@ var binaryZero = (dictBoundedJoinSemilattice) => {
18182
18246
  $Fun(
18183
18247
  "Foreign",
18184
18248
  $Tuple(
18185
- id,
18249
+ id2,
18186
18250
  $ForeignOp$p({
18187
18251
  arity: 2,
18188
18252
  op: (dictMonadWithGraphAlloc) => {
@@ -18220,8 +18284,8 @@ var binaryZero = (dictBoundedJoinSemilattice) => {
18220
18284
  };
18221
18285
  var binary = (dictBoundedJoinSemilattice) => {
18222
18286
  const bot = dictBoundedJoinSemilattice.bot;
18223
- return (id) => (f) => $Tuple(
18224
- id,
18287
+ return (id2) => (f) => $Tuple(
18288
+ id2,
18225
18289
  $Val(
18226
18290
  bot,
18227
18291
  None,
@@ -18230,7 +18294,7 @@ var binary = (dictBoundedJoinSemilattice) => {
18230
18294
  $Fun(
18231
18295
  "Foreign",
18232
18296
  $Tuple(
18233
- id,
18297
+ id2,
18234
18298
  $ForeignOp$p({
18235
18299
  arity: 2,
18236
18300
  op: (dictMonadWithGraphAlloc) => {
@@ -18299,6 +18363,7 @@ var greaterThanOrEq = /* @__PURE__ */ (() => {
18299
18363
  return (a1) => (a2) => $0.compare(a1)(a2) !== "LT";
18300
18364
  })();
18301
18365
  var show3 = (v) => "(Tuple " + showIntImpl(v._1) + " " + showIntImpl(v._2) + ")";
18366
+ var traverse2 = /* @__PURE__ */ (() => traversableList.traverse(applicativeMaybe))();
18302
18367
  var concatM = (dictMonad) => foldableList.foldr((() => {
18303
18368
  const $0 = dictMonad.Bind1();
18304
18369
  return (f) => (g) => (a) => $0.bind(f(a))(g);
@@ -18412,9 +18477,9 @@ var match = (dictMonadWithGraphAlloc) => {
18412
18477
  };
18413
18478
  var closeDefs = (dictMonadWithGraphAlloc) => {
18414
18479
  const Monad0 = dictMonadWithGraphAlloc.MonadWithGraph2().Monad0();
18415
- const traverse2 = traversableDict.traverse(Monad0.Applicative0());
18480
+ const traverse2$1 = traversableDict.traverse(Monad0.Applicative0());
18416
18481
  const $$new = dictMonadWithGraphAlloc.new(typeNameVal);
18417
- return (\u03B3) => (\u03C1) => (\u03B1s) => Monad0.Bind1().Apply0().Functor0().map(Env)(traverse2((\u03C3) => {
18482
+ return (\u03B3) => (\u03C1) => (\u03B1s) => Monad0.Bind1().Apply0().Functor0().map(Env)(traverse2$1((\u03C3) => {
18418
18483
  const \u03C1$p = forDefs(\u03C1)(\u03C3);
18419
18484
  return $$new((a) => Val(a)(None))(\u03B1s)($BaseVal(
18420
18485
  "Fun",
@@ -18443,7 +18508,7 @@ var new$p = (dictMonadWithGraphAlloc) => {
18443
18508
  if (v2.tag === "None") {
18444
18509
  return $$new((\u03B1s$p) => (u$p) => $Val(\u03B1s$p, None, u$p))(v1)(v3);
18445
18510
  }
18446
- return Bind1.bind(fresh)((\u03B1) => Bind1.bind(evalDocOpt(dictMonadWithGraphAlloc)(dictMonadReader)(dictLoadFile)(unionWith2((v$1) => identity13)(v)((() => {
18511
+ return Bind1.bind(fresh)((\u03B1) => Bind1.bind(evalDocOpt(dictMonadWithGraphAlloc)(dictMonadReader)(dictLoadFile)(unionWith2((v$1) => identity14)(v)((() => {
18447
18512
  const $0 = {};
18448
18513
  $0.this = $Val(\u03B1, None, v3);
18449
18514
  return $0;
@@ -18491,8 +18556,8 @@ var $$eval = (dictMonadWithGraphAlloc) => {
18491
18556
  const Bind1 = Monad0.Bind1();
18492
18557
  const $0 = Bind1.Apply0().Functor0();
18493
18558
  const Applicative0 = Monad0.Applicative0();
18494
- const traverse2 = traversableList.traverse(Applicative0);
18495
- const traverse3 = traversablePair.traverse(Applicative0);
18559
+ const traverse3 = traversableList.traverse(Applicative0);
18560
+ const traverse4 = traversablePair.traverse(Applicative0);
18496
18561
  const sequence2 = traversableArray.traverse(Applicative0)(identity4);
18497
18562
  return (dictLoadFile) => (v) => (v1) => (v2) => {
18498
18563
  if (v1.tag === "Var") {
@@ -18513,7 +18578,7 @@ var $$eval = (dictMonadWithGraphAlloc) => {
18513
18578
  if (v1.tag === "Dictionary") {
18514
18579
  const $1 = v1._2;
18515
18580
  const $2 = v1._1;
18516
- return Bind1.bind($0.map(unzip3)(traverse2(traverse3((() => {
18581
+ return Bind1.bind($0.map(unzip3)(traverse3(traverse4((() => {
18517
18582
  const $3 = $$eval(dictMonadWithGraphAlloc)(dictMonadReader)(dictLoadFile)(v);
18518
18583
  return (a) => $3(a)(v2);
18519
18584
  })()))(v1._3)))((v3) => {
@@ -18549,7 +18614,7 @@ var $$eval = (dictMonadWithGraphAlloc) => {
18549
18614
  return go$r;
18550
18615
  };
18551
18616
  return go(0)($3);
18552
- })()))(() => Bind1.bind(traverse2((() => {
18617
+ })()))(() => Bind1.bind(traverse3((() => {
18553
18618
  const $5 = $$eval(dictMonadWithGraphAlloc)(dictMonadReader)(dictLoadFile)(v);
18554
18619
  return (a) => $5(a)(v2);
18555
18620
  })())($3))((vs) => new$p(dictMonadWithGraphAlloc)(dictMonadReader)(dictLoadFile)(v)(insert(ordVertex)($4)()(v2))($2)($BaseVal("Constr", $1, vs))));
@@ -18571,7 +18636,7 @@ var $$eval = (dictMonadWithGraphAlloc) => {
18571
18636
  1
18572
18637
  )) + "); got (" + show3($Tuple($6, $7)) + ")"))(() => Bind1.bind(sequence2(arrayBind(range(1)($6))((i) => [
18573
18638
  sequence2(arrayBind(range(1)($7))((j) => [
18574
- $$eval(dictMonadWithGraphAlloc)(dictMonadReader)(dictLoadFile)(unionWith2((v$1) => identity13)(v)(disjointUnion2((() => {
18639
+ $$eval(dictMonadWithGraphAlloc)(dictMonadReader)(dictLoadFile)(unionWith2((v$1) => identity14)(v)(disjointUnion2((() => {
18575
18640
  const $10 = {};
18576
18641
  $10[$3] = $Val($8, None, $BaseVal("Int", i));
18577
18642
  return $10;
@@ -18645,7 +18710,7 @@ var $$eval = (dictMonadWithGraphAlloc) => {
18645
18710
  return Bind1.bind($$eval(dictMonadWithGraphAlloc)(dictMonadReader)(dictLoadFile)(v)(v1._2)(v2))((v3) => Bind1.bind($$eval(dictMonadWithGraphAlloc)(dictMonadReader)(dictLoadFile)(v)($2)(v2))((v$p) => Bind1.bind(apply2(dictMonadWithGraphAlloc)(dictMonadReader)(dictLoadFile)(v3)(v$p))((v4) => {
18646
18711
  const $3 = v4._3;
18647
18712
  const $4 = v4._1;
18648
- return Bind1.bind(evalDocOpt(dictMonadWithGraphAlloc)(dictMonadReader)(dictLoadFile)(unionWith2((v$1) => identity13)(v)((() => {
18713
+ return Bind1.bind(evalDocOpt(dictMonadWithGraphAlloc)(dictMonadReader)(dictLoadFile)(unionWith2((v$1) => identity14)(v)((() => {
18649
18714
  const $5 = {};
18650
18715
  $5.this = v4;
18651
18716
  return $5;
@@ -18655,12 +18720,12 @@ var $$eval = (dictMonadWithGraphAlloc) => {
18655
18720
  if (v1.tag === "Let") {
18656
18721
  const $1 = v1._2;
18657
18722
  const $2 = v1._1._1;
18658
- return Bind1.bind($$eval(dictMonadWithGraphAlloc)(dictMonadReader)(dictLoadFile)(v)(v1._1._2)(v2))((v3) => Bind1.bind(match1(v3)($2))((v4) => $$eval(dictMonadWithGraphAlloc)(dictMonadReader)(dictLoadFile)(unionWith2((v$1) => identity13)(v)(v4._1))($1)(v4._2._2)));
18723
+ return Bind1.bind($$eval(dictMonadWithGraphAlloc)(dictMonadReader)(dictLoadFile)(v)(v1._1._2)(v2))((v3) => Bind1.bind(match1(v3)($2))((v4) => $$eval(dictMonadWithGraphAlloc)(dictMonadReader)(dictLoadFile)(unionWith2((v$1) => identity14)(v)(v4._1))($1)(v4._2._2)));
18659
18724
  }
18660
18725
  if (v1.tag === "LetRec") {
18661
18726
  const $1 = v1._2;
18662
18727
  const $2 = v1._1._1;
18663
- return Bind1.bind(closeDefs1(v)(v1._1._2)(insert(ordVertex)($2)()(v2)))((\u03B3$p) => $$eval(dictMonadWithGraphAlloc)(dictMonadReader)(dictLoadFile)(unionWith2((v$1) => identity13)(v)(\u03B3$p))($1)(insert(ordVertex)($2)()(v2)));
18728
+ return Bind1.bind(closeDefs1(v)(v1._1._2)(insert(ordVertex)($2)()(v2)))((\u03B3$p) => $$eval(dictMonadWithGraphAlloc)(dictMonadReader)(dictLoadFile)(unionWith2((v$1) => identity14)(v)(\u03B3$p))($1)(insert(ordVertex)($2)()(v2)));
18664
18729
  }
18665
18730
  fail();
18666
18731
  };
@@ -18672,7 +18737,7 @@ var concatDocs = (dictMonadWithGraphAlloc) => (dictMonadReader) => {
18672
18737
  const $0 = v._3;
18673
18738
  const $1 = v._2;
18674
18739
  const $2 = v._1;
18675
- return Monad0.Bind1().bind(evalDocOpt(dictMonadWithGraphAlloc)(dictMonadReader)(dictLoadFile)(unionWith2((v$1) => identity13)(\u03B3)((() => {
18740
+ return Monad0.Bind1().bind(evalDocOpt(dictMonadWithGraphAlloc)(dictMonadReader)(dictLoadFile)(unionWith2((v$1) => identity14)(\u03B3)((() => {
18676
18741
  const $3 = {};
18677
18742
  $3.this = $Val($2, None, $0);
18678
18743
  return $3;
@@ -18694,7 +18759,7 @@ var apply2 = (dictMonadWithGraphAlloc) => {
18694
18759
  const $1 = v._1;
18695
18760
  const $2 = v._3._1._1;
18696
18761
  const $3 = v._3._1._3;
18697
- return Bind1.bind(closeDefs1($2)(v._3._1._2)($$$Map("Two", Leaf2, $1, void 0, Leaf2)))((\u03B32) => Bind1.bind(match1(v1)($3))((v3) => $$eval(dictMonadWithGraphAlloc)(dictMonadReader)(dictLoadFile)(unionWith2((v$1) => identity13)(unionWith2((v$1) => identity13)($2)(\u03B32))(v3._1))(v3._2._1.tag === "ContExpr" ? v3._2._1._1 : throwException(error("Expression expected"))())(insert(ordVertex)($1)()(v3._2._2))));
18762
+ return Bind1.bind(closeDefs1($2)(v._3._1._2)($$$Map("Two", Leaf2, $1, void 0, Leaf2)))((\u03B32) => Bind1.bind(match1(v1)($3))((v3) => $$eval(dictMonadWithGraphAlloc)(dictMonadReader)(dictLoadFile)(unionWith2((v$1) => identity14)(unionWith2((v$1) => identity14)($2)(\u03B32))(v3._1))(v3._2._1.tag === "ContExpr" ? v3._2._1._1 : throwException(error("Expression expected"))())(insert(ordVertex)($1)()(v3._2._2))));
18698
18763
  }
18699
18764
  if (v._3._1.tag === "Foreign") {
18700
18765
  const $1 = v._3._1._1._2;
@@ -18814,11 +18879,11 @@ var eval_module = (dictMonadWithGraphAlloc) => {
18814
18879
  if (v1._1.tag === "Left") {
18815
18880
  const $1 = v1._2;
18816
18881
  const $2 = v1._1._1._1;
18817
- return $0.bind(eval3(unionWith2((v$1) => identity13)(\u03B3)(v))(v1._1._1._2)(v2))((v3) => $0.bind(match1(v3)($2))((v4) => go(unionWith2((v$1) => identity13)(v)(v4._1))($1)(v4._2._2)));
18882
+ return $0.bind(eval3(unionWith2((v$1) => identity14)(\u03B3)(v))(v1._1._1._2)(v2))((v3) => $0.bind(match1(v3)($2))((v4) => go(unionWith2((v$1) => identity14)(v)(v4._1))($1)(v4._2._2)));
18818
18883
  }
18819
18884
  if (v1._1.tag === "Right") {
18820
18885
  const $1 = v1._2;
18821
- return $0.bind(closeDefs1(unionWith2((v$1) => identity13)(\u03B3)(v))(v1._1._1._2)(insert(ordVertex)(v1._1._1._1)()(v2)))((\u03B3$p$p) => go(unionWith2((v$1) => identity13)(v)(\u03B3$p$p))($1)(v2));
18886
+ return $0.bind(closeDefs1(unionWith2((v$1) => identity14)(\u03B3)(v))(v1._1._1._2)(insert(ordVertex)(v1._1._1._1)()(v2)))((\u03B3$p$p) => go(unionWith2((v$1) => identity14)(v)(\u03B3$p$p))($1)(v2));
18822
18887
  }
18823
18888
  }
18824
18889
  fail();
@@ -18841,14 +18906,87 @@ var eval_progCxt = (dictMonadWithGraphAlloc) => {
18841
18906
  return (dictLoadFile) => {
18842
18907
  const eval_module3 = eval_module2(dictLoadFile);
18843
18908
  const eval3 = eval2(dictLoadFile);
18844
- return (v) => concatM1(foldableList.foldr(Cons)(listMap((v1) => (\u03B3) => {
18845
- const $2 = v1._1;
18846
- return $0.bind(eval3(\u03B3)(v1._2)(setSet4.empty))((v2) => $1.pure(unionWith2((v$1) => identity13)(\u03B3)((() => {
18847
- const $3 = {};
18848
- $3[$2] = v2;
18849
- return $3;
18850
- })())));
18851
- })(reverse2(v.datasets)))(listMap((mod) => (\u03B3) => $0.bind(eval_module3(\u03B3)(mod)(setSet4.empty))((\u03B3$p) => $1.pure(unionWith2((v$1) => identity13)(\u03B3)(\u03B3$p))))(reverse2(v.mods))))(v.primitives);
18909
+ return (v) => (v1) => {
18910
+ const $2 = v.datasets;
18911
+ const $3 = v1.graph;
18912
+ const $4 = v1.modules;
18913
+ const $5 = v.primitives;
18914
+ const $6 = v1.roots;
18915
+ return $0.bind(foldM2(Monad0)((\u03B3s) => (name2) => {
18916
+ const v2 = definitely("deps evaluated")((() => {
18917
+ const $7 = lookup2(ordString)(name2)($3);
18918
+ if ($7.tag === "Just") {
18919
+ const $8 = traverse2((dep) => lookup2(ordString)(dep)(\u03B3s))($7._1);
18920
+ if ($8.tag === "Just") {
18921
+ const $9 = lookup2(ordString)(name2)($4);
18922
+ if ($9.tag === "Just") {
18923
+ return $Maybe("Just", $Tuple($9._1, $8._1));
18924
+ }
18925
+ if ($9.tag === "Nothing") {
18926
+ return Nothing;
18927
+ }
18928
+ fail();
18929
+ }
18930
+ if ($8.tag === "Nothing") {
18931
+ return Nothing;
18932
+ }
18933
+ fail();
18934
+ }
18935
+ if ($7.tag === "Nothing") {
18936
+ return Nothing;
18937
+ }
18938
+ fail();
18939
+ })());
18940
+ return $0.bind(eval_module3((() => {
18941
+ const go = (go$a0$copy) => (go$a1$copy) => {
18942
+ let go$a0 = go$a0$copy, go$a1 = go$a1$copy, go$c = true, go$r;
18943
+ while (go$c) {
18944
+ const b = go$a0, v$1 = go$a1;
18945
+ if (v$1.tag === "Nil") {
18946
+ go$c = false;
18947
+ go$r = b;
18948
+ continue;
18949
+ }
18950
+ if (v$1.tag === "Cons") {
18951
+ go$a0 = unionWith2((v$2) => identity14)(b)(v$1._1);
18952
+ go$a1 = v$1._2;
18953
+ continue;
18954
+ }
18955
+ fail();
18956
+ }
18957
+ return go$r;
18958
+ };
18959
+ return go($5)(v2._2);
18960
+ })())(v2._1)(setSet4.empty))((\u03B3$p) => $1.pure(insert(ordString)(name2)(\u03B3$p)(\u03B3s)));
18961
+ })(Leaf2)(v1.topsorted))((\u03B3s) => {
18962
+ const go = (go$a0$copy) => (go$a1$copy) => {
18963
+ let go$a0 = go$a0$copy, go$a1 = go$a1$copy, go$c = true, go$r;
18964
+ while (go$c) {
18965
+ const b = go$a0, v$1 = go$a1;
18966
+ if (v$1.tag === "Nil") {
18967
+ go$c = false;
18968
+ go$r = b;
18969
+ continue;
18970
+ }
18971
+ if (v$1.tag === "Cons") {
18972
+ go$a0 = unionWith2((v$2) => identity14)(b)(v$1._1);
18973
+ go$a1 = v$1._2;
18974
+ continue;
18975
+ }
18976
+ fail();
18977
+ }
18978
+ return go$r;
18979
+ };
18980
+ return concatM1(listMap((v2) => (\u03B3) => {
18981
+ const $7 = v2._1;
18982
+ return $0.bind(eval3(\u03B3)(v2._2)(setSet4.empty))((v3) => $1.pure(unionWith2((v$1) => identity14)(\u03B3)((() => {
18983
+ const $8 = {};
18984
+ $8[$7] = v3;
18985
+ return $8;
18986
+ })())));
18987
+ })(reverse2($2)))(go($5)(listMap((dep) => definitely("has env")(lookup2(ordString)(dep)(\u03B3s)))($6)));
18988
+ });
18989
+ };
18852
18990
  };
18853
18991
  };
18854
18992
  };
@@ -18868,17 +19006,14 @@ var graphEval = (dictMonadAff) => {
18868
19006
  const monadReaderStateT2 = monadReaderStateT(monadReaderStateT(dictMonadReader));
18869
19007
  return (dictLoadFile) => (dictMonadError) => {
18870
19008
  const eval1 = $$eval(monadWithGraphAllocWithGr(dictMonadError))(monadReaderStateT2)((() => {
18871
- const loadFile1 = dictLoadFile.loadFile(dictMonadError)(dictMonadAff);
19009
+ const loadFileFromPath1 = dictLoadFile.loadFileFromPath(dictMonadError)(dictMonadAff);
18872
19010
  return {
18873
- loadFile: (dictMonadError1) => (dictMonadAff1) => (folders) => {
18874
- const $3 = loadFile1(folders);
18875
- return (x) => {
18876
- const $4 = $3(x);
18877
- return (s) => $1.Bind1().bind((s$1) => $2.Bind1().bind($4)((x$1) => $2.Applicative0().pure($Tuple(x$1, s$1))))((x$1) => $1.Applicative0().pure($Tuple(
18878
- x$1,
18879
- s
18880
- )));
18881
- };
19011
+ loadFileFromPath: (dictMonadError1) => (dictMonadAff1) => (x) => {
19012
+ const $3 = loadFileFromPath1(x);
19013
+ return (s) => $1.Bind1().bind((s$1) => $2.Bind1().bind($3)((x$1) => $2.Applicative0().pure($Tuple(x$1, s$1))))((x$1) => $1.Applicative0().pure($Tuple(
19014
+ x$1,
19015
+ s
19016
+ )));
18882
19017
  }
18883
19018
  };
18884
19019
  })());
@@ -19742,8 +19877,49 @@ var monoidRecord = () => (dictMonoidRecord) => {
19742
19877
  return { mempty: dictMonoidRecord.memptyRecord($$Proxy), Semigroup0: () => semigroupRecord1 };
19743
19878
  };
19744
19879
 
19880
+ // output-es/Data.Nullable/foreign.js
19881
+ function nullable(a, r, f) {
19882
+ return a == null ? r : f(a);
19883
+ }
19884
+
19885
+ // output-es/Foreign/foreign.js
19886
+ var isArray = Array.isArray || function(value) {
19887
+ return Object.prototype.toString.call(value) === "[object Array]";
19888
+ };
19889
+
19745
19890
  // output-es/File/index.js
19746
19891
  var Folder = (x) => x;
19892
+ var show4 = /* @__PURE__ */ showArrayImpl(showStringImpl);
19893
+ var prependFolder = (v) => (v1) => v + "/" + v1;
19894
+ var loadFile = (dictLoadFile) => (dictMonad) => {
19895
+ const $0 = dictMonad.Applicative0();
19896
+ return (dictMonadError) => {
19897
+ const loadFileFromPath2 = dictLoadFile.loadFileFromPath(dictMonadError);
19898
+ return (dictMonadAff) => {
19899
+ const loadFileFromPath3 = loadFileFromPath2(dictMonadAff);
19900
+ return (folders) => (file) => {
19901
+ const paths = arrayApply(arrayMap(prependFolder)(folders))([file]);
19902
+ return dictMonad.Bind1().bind(foldM(dictMonad)((v) => (v1) => {
19903
+ if (v.tag === "Just") {
19904
+ return $0.pure($Maybe("Just", v._1));
19905
+ }
19906
+ if (v.tag === "Nothing") {
19907
+ return loadFileFromPath3(v1);
19908
+ }
19909
+ fail();
19910
+ })(Nothing)(paths))((result) => {
19911
+ if (result.tag === "Just") {
19912
+ return $0.pure(result._1);
19913
+ }
19914
+ if (result.tag === "Nothing") {
19915
+ return throwException(error("File not found in any path: " + show4(paths)))();
19916
+ }
19917
+ fail();
19918
+ });
19919
+ };
19920
+ };
19921
+ };
19922
+ };
19747
19923
 
19748
19924
  // output-es/Data.CodePoint.Unicode/index.js
19749
19925
  var isUpper = (x) => checkAttr([512, 524288])(x);
@@ -19932,7 +20108,7 @@ var toLowerSimple = /* @__PURE__ */ convert(uTowlower);
19932
20108
  var toUpperSimple = /* @__PURE__ */ convert(uTowupper);
19933
20109
 
19934
20110
  // output-es/Parsing.Token/index.js
19935
- var identity23 = (x) => x;
20111
+ var identity25 = (x) => x;
19936
20112
  var choice3 = /* @__PURE__ */ choice(foldableArray);
19937
20113
  var toUnfoldable10 = /* @__PURE__ */ toUnfoldable2(unfoldableArray);
19938
20114
  var theReservedNames = (v) => {
@@ -20245,10 +20421,10 @@ var makeTokenParser = (v) => {
20245
20421
  if ($132) {
20246
20422
  return $42(v4$1, $122);
20247
20423
  }
20248
- return $52(v2, identity23);
20424
+ return $52(v2, identity25);
20249
20425
  });
20250
20426
  },
20251
- (state2, a) => $22((v2$1) => $52(state2, identity23))
20427
+ (state2, a) => $22((v2$1) => $52(state2, identity25))
20252
20428
  )));
20253
20429
  });
20254
20430
  },
@@ -21514,7 +21690,7 @@ var onlyIf = (b) => (a) => {
21514
21690
  };
21515
21691
  var choose2 = /* @__PURE__ */ choose(altParserT);
21516
21692
  var fanin3 = /* @__PURE__ */ fanin(categoryFn)(choiceFn);
21517
- var identity24 = (x) => x;
21693
+ var identity26 = (x) => x;
21518
21694
  var operators = (binaryOp) => fromFoldable18(listMap(arrayMap((v) => $Operator(
21519
21695
  "Infix",
21520
21696
  (() => {
@@ -21538,6 +21714,10 @@ var operators = (binaryOp) => fromFoldable18(listMap(arrayMap((v) => $Operator(
21538
21714
  }
21539
21715
  fail();
21540
21716
  })(foldableMap.foldr(Cons)(Nil)(opDefs))))));
21717
+ var letters = ($$char) => {
21718
+ const $0 = some(alternativeParserT)(lazyParserT)($$char);
21719
+ return (state1, more, lift12, $$throw2, done) => more((v1) => $0(state1, more, lift12, $$throw2, (state2, a) => more((v2) => done(state2, fromCharArray(a)))));
21720
+ };
21541
21721
  var languageDef = /* @__PURE__ */ (() => {
21542
21722
  const opChar = oneOf([":", "!", "#", "$", "%", "&", "*", "+", ".", "/", "<", "=", ">", "?", "@", "\\", "^", "|", "-", "~"]);
21543
21723
  return {
@@ -21591,7 +21771,7 @@ var languageDef = /* @__PURE__ */ (() => {
21591
21771
  })(),
21592
21772
  opStart: opChar,
21593
21773
  opLetter: opChar,
21594
- reservedNames: ["as", "else", "fun", "if", "in", "let", "match", "then"],
21774
+ reservedNames: ["as", "else", "fun", "if", "in", "let", "match", "then", "import"],
21595
21775
  reservedOpNames: ["|", "..", "=", "<-", "->"],
21596
21776
  caseSensitive: true
21597
21777
  };
@@ -21626,6 +21806,34 @@ var keyword = (str$p) => {
21626
21806
  }
21627
21807
  return throwException(error(str$p + " is not a reserved word"))();
21628
21808
  };
21809
+ var imports_ = /* @__PURE__ */ manyRec2(/* @__PURE__ */ (() => {
21810
+ const $0 = keyword("import");
21811
+ const $1 = joinWith("/");
21812
+ const $2 = sepBy1(token.identifier)(token.reservedOp("."));
21813
+ return (state1, more, lift12, $$throw2, done) => more((v2) => more((v1) => $0(
21814
+ state1,
21815
+ more,
21816
+ lift12,
21817
+ $$throw2,
21818
+ (state2, a) => more((v2$1) => more((v3) => more((v1$1) => $2(
21819
+ state2,
21820
+ more,
21821
+ lift12,
21822
+ $$throw2,
21823
+ (state2$1, a$1) => more((v2$2) => {
21824
+ const $3 = $1(fromFoldable19(a$1));
21825
+ return more((v4) => done(state2$1, $3));
21826
+ })
21827
+ ))))
21828
+ )));
21829
+ })());
21830
+ var withImports = (p) => topLevel((state1, more, lift12, $$throw2, done) => more((v1) => imports_(
21831
+ state1,
21832
+ more,
21833
+ lift12,
21834
+ $$throw2,
21835
+ (state2, a) => more((v2) => more((v1$1) => p(state2, more, lift12, $$throw2, (state2$1, a$1) => more((v2$1) => done(state2$1, $Tuple(a$1, a))))))
21836
+ )));
21629
21837
  var ident = (state1, more, lift12, $$throw2, done) => more((v1) => token.identifier(
21630
21838
  state1,
21631
21839
  more,
@@ -21927,17 +22135,8 @@ var varDefs = (expr$p) => {
21927
22135
  )));
21928
22136
  };
21929
22137
  var commentToken = /* @__PURE__ */ (() => {
21930
- const $0 = some(alternativeParserT)(lazyParserT)(docCommentLetter);
21931
- return (state1, more, lift12, $$throw2, done) => more((v1) => more((v1$1) => $0(
21932
- state1,
21933
- more,
21934
- lift12,
21935
- $$throw2,
21936
- (state2, a) => more((v2) => {
21937
- const $1 = fromCharArray(a);
21938
- return more((v2$1) => done(state2, $DocCommentElem("Token", $1)));
21939
- })
21940
- )));
22138
+ const $0 = letters(docCommentLetter);
22139
+ return (state1, more, lift12, $$throw2, done) => more((v1) => $0(state1, more, lift12, $$throw2, (state2, a) => more((v2) => done(state2, $DocCommentElem("Token", a)))));
21941
22140
  })();
21942
22141
  var commentExpr = (expr$p) => (state1, more, lift12, $$throw2, done) => more((v2) => more((v1) => string2("$")(
21943
22142
  state1,
@@ -22617,10 +22816,10 @@ var expr_$lazy = /* @__PURE__ */ binding(() => {
22617
22816
  if ($47) {
22618
22817
  return $42($ParseState(v4$5._1, v4$5._2, false), $46);
22619
22818
  }
22620
- return $43($ParseState($29, $30, false), identity24);
22819
+ return $43($ParseState($29, $30, false), identity26);
22621
22820
  });
22622
22821
  },
22623
- (state2, a) => $25((v2$3) => $43(state2, identity24))
22822
+ (state2, a) => $25((v2$3) => $43(state2, identity26))
22624
22823
  )));
22625
22824
  });
22626
22825
  },
@@ -22661,10 +22860,10 @@ var expr_$lazy = /* @__PURE__ */ binding(() => {
22661
22860
  if ($45) {
22662
22861
  return $40($ParseState(v4$4._1, v4$4._2, false), $44);
22663
22862
  }
22664
- return $41($ParseState($29, $30, false), identity24);
22863
+ return $41($ParseState($29, $30, false), identity26);
22665
22864
  });
22666
22865
  },
22667
- (state2, a) => $25((v2$3) => $41(state2, identity24))
22866
+ (state2, a) => $25((v2$3) => $41(state2, identity26))
22668
22867
  )));
22669
22868
  });
22670
22869
  },
@@ -23008,25 +23207,19 @@ var expr_$lazy = /* @__PURE__ */ binding(() => {
23008
23207
  return go;
23009
23208
  });
23010
23209
  var expr_ = /* @__PURE__ */ expr_$lazy();
23011
- var module_ = /* @__PURE__ */ (() => {
23012
- const $0 = topLevel((() => {
23013
- const $02 = sepBy_try(defs(expr_))(token.semi);
23014
- return (state1, more, lift12, $$throw2, done) => more((v2) => more((v1) => $02(
23015
- state1,
23016
- more,
23017
- lift12,
23018
- $$throw2,
23019
- (state2, a) => more((v2$1) => more((v3) => token.semi(state2, more, lift12, $$throw2, (state3, a$1) => more((v4) => done(state3, a)))))
23020
- )));
23021
- })());
23022
- return (state1, more, lift12, $$throw2, done) => more((v1) => $0(
23210
+ var module_ = /* @__PURE__ */ withImports(/* @__PURE__ */ (() => {
23211
+ const $0 = sepBy_try(defs(expr_))(token.semi);
23212
+ return (state1, more, lift12, $$throw2, done) => more((v2) => more((v1) => more((v1$1) => $0(
23023
23213
  state1,
23024
23214
  more,
23025
23215
  lift12,
23026
23216
  $$throw2,
23027
- (state2, a) => more((v2) => done(state2, $Module(bindList.bind(a)(identity7))))
23028
- ));
23029
- })();
23217
+ (state2, a) => more((v2$1) => {
23218
+ const $1 = $Module(bindList.bind(a)(identity7));
23219
+ return more((v2$2) => more((v3) => token.semi(state2, more, lift12, $$throw2, (state3, a$1) => more((v4) => done(state3, $1)))));
23220
+ })
23221
+ ))));
23222
+ })());
23030
23223
 
23031
23224
  // output-es/Primitive.Defs/index.js
23032
23225
  var foldM4 = (dictMonad) => (f) => (b0) => foldableDict.foldl((b) => (a) => dictMonad.Bind1().bind(b)((a$1) => f(a$1)(a)))(dictMonad.Applicative0().pure(b0));
@@ -23208,7 +23401,7 @@ var dict_intersectionWith = /* @__PURE__ */ $Tuple(
23208
23401
  const $1 = v._1;
23209
23402
  const $2 = v._2._1._1;
23210
23403
  const $3 = v._2._2._1._1;
23211
- return Bind1.bind($0.map(Dictionary3)($0.map(DictRep)(traversableDict.traverse(Applicative0)(identity14)(intersectionWith_Object((v2) => (v3) => {
23404
+ return Bind1.bind($0.map(Dictionary3)($0.map(DictRep)(traversableDict.traverse(Applicative0)(identity15)(intersectionWith_Object((v2) => (v3) => {
23212
23405
  const $4 = v3._2;
23213
23406
  const $5 = v2._1;
23214
23407
  const $6 = v3._1;
@@ -23429,7 +23622,7 @@ var unions4 = /* @__PURE__ */ (() => {
23429
23622
  };
23430
23623
  return go(Leaf2);
23431
23624
  })();
23432
- var identity25 = (x) => x;
23625
+ var identity27 = (x) => x;
23433
23626
  var verticesProgCxtVertex = {
23434
23627
  vertices: (v) => union7(unions13(listMap(verticesValVertex.vertices)(mapObjectString.values(v.primitives))))(union7(unions4(listMap(verticesModuleVertex.vertices)(v.mods)))(unions4(listMap((x) => verticesExprVertex.vertices(x._2))(v.datasets))))
23435
23628
  };
@@ -23506,13 +23699,47 @@ var traversableProgCxt = {
23506
23699
  const traverse9 = traversableEnv.traverse(dictApplicative);
23507
23700
  return (f) => (m) => Apply0.apply(Apply0.apply(Apply0.Functor0().map((v1) => (v2) => (v3) => ({ primitives: v3, mods: v2, datasets: v1 }))(traverse5(traversableTuple.traverse(dictApplicative)(traverse7(f)))(m.datasets)))(traverse5(traverse8(f))(m.mods)))(traverse9(f)(m.primitives));
23508
23701
  },
23509
- sequence: (dictApplicative) => (v) => traversableProgCxt.traverse(dictApplicative)(identity25)(v),
23702
+ sequence: (dictApplicative) => (v) => traversableProgCxt.traverse(dictApplicative)(identity27)(v),
23510
23703
  Functor0: () => functorProgCxt,
23511
23704
  Foldable1: () => foldableProgCxt
23512
23705
  };
23513
23706
 
23514
23707
  // output-es/Module/index.js
23708
+ var all3 = /* @__PURE__ */ (() => foldableList.foldMap((() => {
23709
+ const semigroupConj1 = { append: (v) => (v1) => v && v1 };
23710
+ return { mempty: true, Semigroup0: () => semigroupConj1 };
23711
+ })()))();
23712
+ var elem2 = /* @__PURE__ */ (() => {
23713
+ const any1 = foldableList.foldMap((() => {
23714
+ const semigroupDisj1 = { append: (v) => (v1) => v || v1 };
23715
+ return { mempty: false, Semigroup0: () => semigroupDisj1 };
23716
+ })());
23717
+ return (x) => any1(($0) => x === $0);
23718
+ })();
23719
+ var fromFoldable20 = /* @__PURE__ */ (() => foldableSet.foldr(Cons)(Nil))();
23515
23720
  var boundedLattice2 = { BoundedJoinSemilattice0: () => boundedJoinSemilatticeUni, BoundedMeetSemilattice1: () => boundedMeetSemilatticeUni };
23721
+ var unions5 = /* @__PURE__ */ (() => {
23722
+ const go = (go$a0$copy) => (go$a1$copy) => {
23723
+ let go$a0 = go$a0$copy, go$a1 = go$a1$copy, go$c = true, go$r;
23724
+ while (go$c) {
23725
+ const b = go$a0, v = go$a1;
23726
+ if (v.tag === "Nil") {
23727
+ go$c = false;
23728
+ go$r = b;
23729
+ continue;
23730
+ }
23731
+ if (v.tag === "Cons") {
23732
+ go$a0 = unionWith(ordDVertex$p)($$const)(b)(v._1);
23733
+ go$a1 = v._2;
23734
+ continue;
23735
+ }
23736
+ fail();
23737
+ }
23738
+ return go$r;
23739
+ };
23740
+ return go(Leaf2);
23741
+ })();
23742
+ var union8 = /* @__PURE__ */ (() => setSet(ordDVertex$p).union)();
23516
23743
  var concatM2 = (dictMonad) => foldrArray((() => {
23517
23744
  const $0 = dictMonad.Bind1();
23518
23745
  return (f) => (g) => (a) => $0.bind(f(a))(g);
@@ -23534,38 +23761,105 @@ var parse = (dictMonadError) => {
23534
23761
  };
23535
23762
  };
23536
23763
  };
23537
- var parseProgram = (dictLoadFile) => (folders) => (file) => (dictMonadAff) => (dictMonadError) => dictMonadAff.MonadEffect0().Monad0().Bind1().bind(dictLoadFile.loadFile(dictMonadError)(dictMonadAff)(folders)(file))((() => {
23538
- const $0 = parse(dictMonadError);
23539
- return (a) => $0(a)(topLevel(expr_));
23540
- })());
23541
- var module_2 = (dictMonadAff) => {
23764
+ var loadModuleGraph = (dictMonadAff) => {
23542
23765
  const Monad0 = dictMonadAff.MonadEffect0().Monad0();
23543
- const Bind1 = Monad0.Bind1();
23544
- const Applicative0 = Monad0.Applicative0();
23766
+ const $0 = Monad0.Bind1();
23767
+ const $1 = Monad0.Applicative0();
23545
23768
  return (dictMonadError) => {
23546
23769
  const parse1 = parse(dictMonadError);
23547
23770
  const desugarModuleFwd = moduleFwd(dictMonadError)(boundedLattice2);
23548
- return (dictLoadFile) => {
23549
- const loadFile = dictLoadFile.loadFile(dictMonadError)(dictMonadAff);
23550
- return (folders) => (file) => (v) => {
23551
- const $0 = v.mods;
23552
- return Bind1.bind(Applicative0.pure())(() => Bind1.bind(loadFile(folders)(file))((src) => Bind1.bind(Bind1.bind(parse1(src)(module_))(desugarModuleFwd))((mod) => Applicative0.pure({
23553
- primitives: v.primitives,
23554
- mods: $List("Cons", mod, $0),
23555
- datasets: v.datasets
23556
- }))));
23771
+ return (dictMonadReader) => {
23772
+ const ask = dictMonadReader.MonadAsk0().ask;
23773
+ return (dictLoadFile) => {
23774
+ const loadFile3 = loadFile(dictLoadFile)(Monad0)(dictMonadError)(dictMonadAff);
23775
+ return (roots) => {
23776
+ const collectModules = (visited) => (graph) => (modules) => (imports) => {
23777
+ if (imports.tag === "Nil") {
23778
+ return $1.pure($Tuple(graph, modules));
23779
+ }
23780
+ if (imports.tag === "Cons") {
23781
+ if ((() => {
23782
+ const $2 = lookup2(ordString)(imports._1)(visited);
23783
+ if ($2.tag === "Nothing") {
23784
+ return false;
23785
+ }
23786
+ if ($2.tag === "Just") {
23787
+ return true;
23788
+ }
23789
+ fail();
23790
+ })()) {
23791
+ return collectModules(visited)(graph)(modules)(imports._2);
23792
+ }
23793
+ return $0.bind($0.bind(ask)((v) => $0.bind(loadFile3(v.fluidSrcPaths)(imports._1 + ".fld"))((src) => $0.bind(parse1(src)(module_))((v1) => {
23794
+ const $2 = v1._2;
23795
+ return $0.bind(desugarModuleFwd(v1._1))((mod$p) => $1.pure($Tuple(
23796
+ mod$p,
23797
+ imports._1 === "lib/prelude" ? $2 : $List("Cons", "lib/prelude", $2)
23798
+ )));
23799
+ }))))((v) => collectModules(insert(ordString)(imports._1)()(visited))(insert(ordString)(imports._1)(v._2)(graph))(insert(ordString)(imports._1)(v._1)(modules))(foldableList.foldr(Cons)(imports._2)(v._2)));
23800
+ }
23801
+ fail();
23802
+ };
23803
+ return $0.bind(collectModules(Leaf2)(Leaf2)(Leaf2)(roots))((v) => {
23804
+ const $2 = v._1;
23805
+ return $1.pure({
23806
+ roots,
23807
+ topsorted: (() => {
23808
+ const go = (go$a0$copy) => (go$a1$copy) => {
23809
+ let go$a0 = go$a0$copy, go$a1 = go$a1$copy, go$c = true, go$r;
23810
+ while (go$c) {
23811
+ const v$1 = go$a0, v1 = go$a1;
23812
+ if (v$1.tag === "Nil") {
23813
+ go$c = false;
23814
+ go$r = reverse2(v1);
23815
+ continue;
23816
+ }
23817
+ const v2 = find(foldableList)((mod) => {
23818
+ const v22 = lookup2(ordString)(mod)($2);
23819
+ if (v22.tag === "Nothing") {
23820
+ return true;
23821
+ }
23822
+ if (v22.tag === "Just") {
23823
+ return all3((dep) => !elem2(dep)(v$1))(v22._1);
23824
+ }
23825
+ fail();
23826
+ })(v$1);
23827
+ if (v2.tag === "Nothing") {
23828
+ go$c = false;
23829
+ go$r = throwException(error("Modules contain circular imports"))();
23830
+ continue;
23831
+ }
23832
+ if (v2.tag === "Just") {
23833
+ go$a0 = deleteBy(eqStringImpl)(v2._1)(v$1);
23834
+ go$a1 = $List("Cons", v2._1, v1);
23835
+ continue;
23836
+ }
23837
+ fail();
23838
+ }
23839
+ return go$r;
23840
+ };
23841
+ return go(fromFoldable20(functorMap.map((v$1) => {
23842
+ })($2)))(Nil);
23843
+ })(),
23844
+ graph: $2,
23845
+ modules: v._2
23846
+ });
23847
+ });
23848
+ };
23557
23849
  };
23558
23850
  };
23559
23851
  };
23560
23852
  };
23561
23853
  var initialConfig = (dictMonadAff) => {
23562
23854
  const Monad0 = dictMonadAff.MonadEffect0().Monad0();
23563
- const Bind1 = Monad0.Bind1();
23564
- const Applicative0 = Monad0.Applicative0();
23565
- const $0 = monadAllocAllocT(Monad0);
23566
- const fresh1 = $0.fresh;
23567
- const alloc = traversableProgCxt.traverse($0.Monad0().Applicative0())((v) => fresh1);
23568
- const $1 = bindStateT(Monad0);
23855
+ const $0 = bindStateT(Monad0);
23856
+ const $1 = monadAllocAllocT(Monad0);
23857
+ const Applicative0 = $1.Monad0().Applicative0();
23858
+ const fresh1 = $1.fresh;
23859
+ const alloc1 = traversableProgCxt.traverse(Applicative0)((v) => fresh1);
23860
+ const applicativeStateT2 = applicativeStateT(Monad0);
23861
+ const traverse1 = traversableMap.traverse(applicativeStateT2);
23862
+ const alloc2 = traversableModule.traverse(Applicative0)((v) => fresh1);
23569
23863
  const runWithGraphT_spy2 = runWithGraphT_spy({
23570
23864
  Applicative0: () => applicativeStateT(Monad0),
23571
23865
  Bind1: () => bindStateT(Monad0)
@@ -23578,30 +23872,35 @@ var initialConfig = (dictMonadAff) => {
23578
23872
  const eval_progCxt1 = eval_progCxt2(monadReaderStateT(monadReaderStateT(dictMonadReader)));
23579
23873
  return (dictLoadFile) => {
23580
23874
  const eval_progCxt22 = eval_progCxt1((() => {
23581
- const loadFile1 = dictLoadFile.loadFile(dictMonadError)(dictMonadAff);
23875
+ const loadFileFromPath1 = dictLoadFile.loadFileFromPath(dictMonadError)(dictMonadAff);
23582
23876
  return {
23583
- loadFile: (dictMonadError1) => (dictMonadAff1) => (folders) => {
23584
- const $4 = loadFile1(folders);
23585
- return (x) => {
23586
- const $5 = $4(x);
23587
- return (s) => $2.Bind1().bind((s$1) => $3.Bind1().bind($5)((x$1) => $3.Applicative0().pure($Tuple(x$1, s$1))))((x$1) => $2.Applicative0().pure($Tuple(
23588
- x$1,
23589
- s
23590
- )));
23591
- };
23877
+ loadFileFromPath: (dictMonadError1) => (dictMonadAff1) => (x) => {
23878
+ const $4 = loadFileFromPath1(x);
23879
+ return (s) => $2.Bind1().bind((s$1) => $3.Bind1().bind($4)((x$1) => $3.Applicative0().pure($Tuple(x$1, s$1))))((x$1) => $2.Applicative0().pure($Tuple(
23880
+ x$1,
23881
+ s
23882
+ )));
23592
23883
  }
23593
23884
  };
23594
23885
  })());
23595
- return (dictFV) => (e) => (progCxt) => Bind1.bind(Applicative0.pure())(() => Bind1.bind(runAllocT(Monad0)($1.bind(alloc(progCxt))((progCxt$p) => $1.bind(runWithGraphT_spy2(eval_progCxt22(progCxt$p))(verticesProgCxtVertex.vertices(progCxt$p)))((v) => applicativeStateT(Monad0).pure($Tuple(
23886
+ return (dictFV) => (e) => (progCxt) => (moduleCxt) => Monad0.Bind1().bind(runAllocT(Monad0)($0.bind(alloc1(progCxt))((progCxt$p) => $0.bind(traverse1(alloc2)(moduleCxt.modules))((modules$p) => $0.bind(runWithGraphT_spy2(eval_progCxt22(progCxt$p)({
23887
+ modules: modules$p,
23888
+ graph: moduleCxt.graph,
23889
+ roots: moduleCxt.roots,
23890
+ topsorted: moduleCxt.topsorted
23891
+ }))(union8(verticesProgCxtVertex.vertices(progCxt$p))(unions5(listMap(verticesModuleVertex.vertices)(foldableMap.foldr(Cons)(Nil)(modules$p))))))((v) => applicativeStateT2.pure($Tuple(
23596
23892
  progCxt$p,
23597
- (() => {
23598
- const $4 = dictFV.fv(e);
23599
- return filterWithKey2((x) => {
23600
- const $5 = setSet(ordString).member(x)($4);
23601
- return (v$1) => $5;
23602
- })(v._2);
23603
- })()
23604
- )))))(0))((v) => Applicative0.pure({ n: v._1, progCxt: v._2._2._1, "\u03B3": v._2._2._2 })));
23893
+ $Tuple(
23894
+ modules$p,
23895
+ (() => {
23896
+ const $4 = dictFV.fv(e);
23897
+ return filterWithKey2((x) => {
23898
+ const $5 = setSet(ordString).member(x)($4);
23899
+ return (v$1) => $5;
23900
+ })(v._2);
23901
+ })()
23902
+ )
23903
+ ))))))(0))((v) => Monad0.Applicative0().pure({ n: v._1, progCxt: v._2._2._1, "\u03B3": v._2._2._2._2 }));
23605
23904
  };
23606
23905
  };
23607
23906
  };
@@ -23609,37 +23908,46 @@ var initialConfig = (dictMonadAff) => {
23609
23908
  var prepConfig = (dictMonadAff) => {
23610
23909
  const Monad0 = dictMonadAff.MonadEffect0().Monad0();
23611
23910
  const $0 = Monad0.Bind1();
23911
+ const loadModuleGraph1 = loadModuleGraph(dictMonadAff);
23612
23912
  const initialConfig1 = initialConfig(dictMonadAff);
23613
23913
  return (dictMonadError) => {
23914
+ const loadModuleGraph2 = loadModuleGraph1(dictMonadError);
23614
23915
  const desug1 = exprFwd(boundedLattice2)(dictMonadError)(joinSemilatticeUnit);
23615
23916
  const initialConfig2 = initialConfig1(dictMonadError);
23616
23917
  return (dictMonadReader) => {
23617
- const ask = dictMonadReader.MonadAsk0().ask;
23918
+ const loadModuleGraph3 = loadModuleGraph2(dictMonadReader);
23618
23919
  const initialConfig3 = initialConfig2(dictMonadReader);
23619
23920
  return (dictLoadFile) => {
23921
+ const loadModuleGraph4 = loadModuleGraph3(dictLoadFile);
23620
23922
  const initialConfig4 = initialConfig3(dictLoadFile)(fVExpr);
23621
- return (file) => (progCxt) => $0.bind(ask)((v) => $0.bind(parseProgram(dictLoadFile)(v.fluidSrcPaths)(file)(dictMonadAff)(dictMonadError))((s) => $0.bind(desug1(s))((e) => $0.bind(initialConfig4(e)(progCxt))((gconfig) => Monad0.Applicative0().pure({
23622
- s,
23623
- e,
23624
- gconfig
23625
- })))));
23923
+ return (progCxt) => (fluidSrc) => $0.bind(parse(dictMonadError)(fluidSrc)(withImports(expr_)))((v) => {
23924
+ const $1 = v._1;
23925
+ return $0.bind(loadModuleGraph4($List("Cons", "lib/prelude", v._2)))((moduleCxt) => $0.bind(desug1($1))((e) => $0.bind(initialConfig4(e)(progCxt)(moduleCxt))((gconfig) => Monad0.Applicative0().pure({
23926
+ s: $1,
23927
+ e,
23928
+ gconfig
23929
+ }))));
23930
+ });
23626
23931
  };
23627
23932
  };
23628
23933
  };
23629
23934
  };
23630
23935
  var datasetAs = (dictMonadAff) => {
23631
23936
  const Monad0 = dictMonadAff.MonadEffect0().Monad0();
23632
- const $0 = Monad0.Bind1();
23937
+ const Bind1 = Monad0.Bind1();
23633
23938
  return (dictMonadError) => {
23634
23939
  const desug1 = exprFwd(boundedLattice2)(dictMonadError)(joinSemilatticeUnit);
23635
- return (dictLoadFile) => (folders) => (v) => (v1) => {
23636
- const $1 = v1.datasets;
23637
- const $2 = v._1;
23638
- return $0.bind($0.bind(parseProgram(dictLoadFile)(folders)(v._2)(dictMonadAff)(dictMonadError))(desug1))((e\u03B1) => Monad0.Applicative0().pure({
23639
- primitives: v1.primitives,
23640
- mods: v1.mods,
23641
- datasets: $List("Cons", $Tuple($2, e\u03B1), $1)
23642
- }));
23940
+ return (dictLoadFile) => {
23941
+ const loadFile3 = loadFile(dictLoadFile)(Monad0)(dictMonadError)(dictMonadAff);
23942
+ return (folders) => (v) => (v1) => {
23943
+ const $0 = v1.datasets;
23944
+ const $1 = v._1;
23945
+ return Bind1.bind(loadFile3(folders)(v._2))((src) => Bind1.bind(Bind1.bind(Bind1.Apply0().Functor0().map(fst)(parse(dictMonadError)(src)(withImports(expr_))))(desug1))((e\u03B1) => Monad0.Applicative0().pure({
23946
+ primitives: v1.primitives,
23947
+ mods: v1.mods,
23948
+ datasets: $List("Cons", $Tuple($1, e\u03B1), $0)
23949
+ })));
23950
+ };
23643
23951
  };
23644
23952
  };
23645
23953
  };
@@ -23647,21 +23955,18 @@ var loadProgCxt = (dictMonadAff) => {
23647
23955
  const Monad0 = dictMonadAff.MonadEffect0().Monad0();
23648
23956
  const $0 = Monad0.Bind1();
23649
23957
  const concatM1 = concatM2(Monad0);
23650
- const module_1 = module_2(dictMonadAff);
23651
23958
  const datasetAs1 = datasetAs(dictMonadAff);
23652
23959
  return (dictMonadError) => {
23653
- const module_22 = module_1(dictMonadError);
23654
23960
  const datasetAs2 = datasetAs1(dictMonadError);
23655
23961
  return (dictMonadReader) => {
23656
23962
  const ask = dictMonadReader.MonadAsk0().ask;
23657
23963
  return (dictLoadFile) => {
23658
- const module_3 = module_22(dictLoadFile);
23659
23964
  const datasetAs3 = datasetAs2(dictLoadFile);
23660
- return (mods) => (datasets) => $0.bind(ask)((v) => $0.bind($0.bind(Monad0.Applicative0().pure({
23965
+ return (datasets) => $0.bind(ask)((v) => $0.bind(Monad0.Applicative0().pure({
23661
23966
  primitives,
23662
23967
  mods: Nil,
23663
23968
  datasets: Nil
23664
- }))(concatM1(arrayMap(module_3(v.fluidSrcPaths))(["lib/prelude", ...mods]))))(concatM1(arrayMap((() => {
23969
+ }))(concatM1(arrayMap((() => {
23665
23970
  const $1 = datasetAs3(v.fluidSrcPaths);
23666
23971
  return (x) => $1($Tuple(x._1, x._2));
23667
23972
  })())(datasets))));
@@ -23674,11 +23979,6 @@ var loadProgCxt = (dictMonadAff) => {
23674
23979
  var $Encoding = (tag) => tag;
23675
23980
  var UTF8 = /* @__PURE__ */ $Encoding("UTF8");
23676
23981
 
23677
- // output-es/Data.Nullable/foreign.js
23678
- function nullable(a, r, f) {
23679
- return a == null ? r : f(a);
23680
- }
23681
-
23682
23982
  // output-es/Node.FS.Constants/foreign.js
23683
23983
  import { constants } from "node:fs";
23684
23984
  var f_OK = constants.F_OK;
@@ -23786,47 +24086,24 @@ var toAff2 = (f) => (a) => (b) => {
23786
24086
  });
23787
24087
  };
23788
24088
 
23789
- // output-es/Foreign/foreign.js
23790
- var isArray = Array.isArray || function(value) {
23791
- return Object.prototype.toString.call(value) === "[object Array]";
23792
- };
23793
-
23794
24089
  // output-es/Node.FS.Stats/foreign.js
23795
24090
  var isFileImpl = (s) => s.isFile();
23796
24091
 
23797
24092
  // output-es/Module.Node/index.js
23798
24093
  var $$try3 = /* @__PURE__ */ $$try(monadErrorAff);
23799
- var findM = (dictMonad) => {
23800
- const $0 = dictMonad.Bind1().Apply0();
23801
- return (dictFoldable) => (xs) => (f) => (base) => dictFoldable.foldr((x) => (acc) => $0.apply($0.Functor0().map(altMaybe.alt)(acc))(f(x)))(dictMonad.Applicative0().pure(base))(xs);
23802
- };
23803
24094
  var loadFileNodeT = (dictMonad) => {
23804
- const bind4 = bindReaderT(dictMonad.Bind1()).bind;
23805
- const $0 = dictMonad.Applicative0();
23806
- const findM1 = findM(monadReaderT(dictMonad))(foldableArray);
24095
+ const Bind1 = dictMonad.Bind1();
24096
+ const $0 = Bind1.Apply0().Functor0();
24097
+ const $1 = dictMonad.Applicative0();
23807
24098
  return {
23808
- loadFile: (dictMonadError) => (dictMonadAff) => (folders) => (v) => bind4(findM1(arrayMap((() => {
23809
- const $1 = v + ".fld";
23810
- return (a) => a + "/" + $1;
23811
- })())(folders))((v1) => bind4(dictMonadAff.liftAff($$try3(toAff1(stat2)(v1))))((stats) => {
23812
- const $1 = $0.pure((() => {
23813
- if (stats.tag === "Left") {
23814
- return false;
23815
- }
23816
- if (stats.tag === "Right") {
23817
- return isFileImpl(stats._1);
23818
- }
23819
- fail();
23820
- })() ? $Maybe("Just", v1) : Nothing);
23821
- return (v$1) => $1;
23822
- }))(Nothing))((url) => {
23823
- if (url.tag === "Nothing") {
23824
- return throwException(error("File " + v + " not found."))();
23825
- }
23826
- if (url.tag === "Just") {
23827
- return dictMonadAff.liftAff(toAff2(readTextFile)(UTF8)(url._1));
23828
- }
23829
- fail();
24099
+ loadFileFromPath: (dictMonadError) => (dictMonadAff) => (v) => bindReaderT(Bind1).bind(dictMonadAff.liftAff($$try3(toAff1(stat2)(v))))((stats) => {
24100
+ if (stats.tag === "Right" && isFileImpl(stats._1)) {
24101
+ const $22 = $0.map(Just);
24102
+ const $3 = dictMonadAff.liftAff(toAff2(readTextFile)(UTF8)(v));
24103
+ return (x) => $22($3(x));
24104
+ }
24105
+ const $2 = $1.pure(Nothing);
24106
+ return (v$1) => $2;
23830
24107
  })
23831
24108
  };
23832
24109
  };
@@ -24614,7 +24891,7 @@ var manyM = (p) => freeMonadRec.tailRecM((acc) => $Free(
24614
24891
  var $DefaultProp = (_1, _2) => ({ tag: "DefaultProp", _1, _2 });
24615
24892
  var $Mod = (_1, _2, _3) => ({ tag: "Mod", _1, _2, _3 });
24616
24893
  var lookup4 = /* @__PURE__ */ lookup(foldableArray)(eqString);
24617
- var identity26 = (x) => x;
24894
+ var identity28 = (x) => x;
24618
24895
  var Mod = (value0) => (value1) => (value2) => $Mod(value0, value1, value2);
24619
24896
  var optionFieldsHasName = { name: (n) => (fields) => ({ optNames: [n, ...fields.optNames], optCompleter: fields.optCompleter, optNoArgError: fields.optNoArgError }) };
24620
24897
  var mkCommand = (m) => {
@@ -24625,8 +24902,8 @@ var mkCommand = (m) => {
24625
24902
  var modSemigroup = {
24626
24903
  append: (v) => (v1) => $Mod((x) => v1._1(v._1(x)), $DefaultProp(v1._2._1.tag === "Nothing" ? v._2._1 : v1._2._1, v1._2._2.tag === "Nothing" ? v._2._2 : v1._2._2), (x) => v1._3(v._3(x)))
24627
24904
  };
24628
- var modMonoid = { mempty: /* @__PURE__ */ $Mod(identity26, /* @__PURE__ */ $DefaultProp(Nothing, Nothing), identity26), Semigroup0: () => modSemigroup };
24629
- var optionMod = /* @__PURE__ */ Mod(identity26)(/* @__PURE__ */ $DefaultProp(Nothing, Nothing));
24905
+ var modMonoid = { mempty: /* @__PURE__ */ $Mod(identity28, /* @__PURE__ */ $DefaultProp(Nothing, Nothing), identity28), Semigroup0: () => modSemigroup };
24906
+ var optionMod = /* @__PURE__ */ Mod(identity28)(/* @__PURE__ */ $DefaultProp(Nothing, Nothing));
24630
24907
  var internal = /* @__PURE__ */ optionMod((p) => ({ propVisibility: Internal, propDescMod: p.propDescMod, propHelp: p.propHelp, propMetaVar: p.propMetaVar, propShowDefault: p.propShowDefault }));
24631
24908
  var baseProps = /* @__PURE__ */ (() => ({
24632
24909
  propMetaVar: "",
@@ -24657,7 +24934,7 @@ var mkParser = (v) => (g) => (rdr) => {
24657
24934
  };
24658
24935
 
24659
24936
  // output-es/Options.Applicative.Builder/index.js
24660
- var identity27 = (x) => x;
24937
+ var identity29 = (x) => x;
24661
24938
  var mempty12 = /* @__PURE__ */ (() => chunkMonoid(docSemigroup).mempty)();
24662
24939
  var min3 = (x) => (y) => {
24663
24940
  const v = optVisibilityOrd.compare(x)(y);
@@ -24757,19 +25034,19 @@ var defaultPrefs = {
24757
25034
  var command = (cmd) => (pinfo) => $Mod(
24758
25035
  (p) => ({ cmdCommands: [$Tuple(cmd, pinfo), ...p.cmdCommands], cmdGroup: p.cmdGroup }),
24759
25036
  $DefaultProp(Nothing, Nothing),
24760
- identity26
25037
+ identity28
24761
25038
  );
24762
25039
  var abortOption = (err) => (m) => {
24763
25040
  const $0 = fold3([
24764
25041
  $Mod(
24765
25042
  (p) => ({ optNoArgError: (v) => err, optCompleter: p.optCompleter, optNames: p.optNames }),
24766
25043
  $DefaultProp(Nothing, Nothing),
24767
- identity26
25044
+ identity28
24768
25045
  ),
24769
25046
  $Mod(
24770
- identity27,
24771
- $DefaultProp($Maybe("Just", identity27), Nothing),
24772
- identity27
25047
+ identity29,
25048
+ $DefaultProp($Maybe("Just", identity29), Nothing),
25049
+ identity29
24773
25050
  ),
24774
25051
  optionMod((p) => ({ propMetaVar: "", propDescMod: p.propDescMod, propHelp: p.propHelp, propShowDefault: p.propShowDefault, propVisibility: p.propVisibility }))
24775
25052
  ]);
@@ -24849,7 +25126,7 @@ var modify_ = /* @__PURE__ */ (() => {
24849
25126
  return (f) => $0.state((s) => $Tuple(void 0, f(s)));
24850
25127
  })();
24851
25128
  var throwError = /* @__PURE__ */ (() => monadThrowExceptT(monadStateT).throwError)();
24852
- var identity28 = (x) => x;
25129
+ var identity30 = (x) => x;
24853
25130
  var TNil = /* @__PURE__ */ $TStep("TNil");
24854
25131
  var ComplResult = (value0) => $ComplResult("ComplResult", value0);
24855
25132
  var runListT = (dictMonad) => (xs) => dictMonad.Bind1().bind(xs)((s) => {
@@ -25100,10 +25377,10 @@ var nondetTAltOp = (dictMonad) => {
25100
25377
  const monadStateT1 = { Applicative0: () => applicativeStateT(dictMonad), Bind1: () => bindStateT(dictMonad) };
25101
25378
  const listTBind1 = listTBind(monadStateT1);
25102
25379
  const lift6 = listTMonadTrans.lift(monadStateT1);
25103
- const $$get2 = monadStateStateT(dictMonad).state((s) => $Tuple(s, s));
25380
+ const $$get3 = monadStateStateT(dictMonad).state((s) => $Tuple(s, s));
25104
25381
  const $0 = listTAlternative(monadStateT1);
25105
25382
  const empty3 = $0.Plus1().empty;
25106
- return (m1) => (m2) => listTAlt(monadStateT1).alt(m1)(listTBind1.bind(lift6($$get2))((s) => listTBind1.bind(!s ? $0.Applicative0().pure() : empty3)(() => m2)));
25383
+ return (m1) => (m2) => listTAlt(monadStateT1).alt(m1)(listTBind1.bind(lift6($$get3))((s) => listTBind1.bind(!s ? $0.Applicative0().pure() : empty3)(() => m2)));
25107
25384
  };
25108
25385
  var nondetTFunctor = (dictMonad) => ({ map: (f) => listTFunctor({ Applicative0: () => applicativeStateT(dictMonad), Bind1: () => bindStateT(dictMonad) }).map(f) });
25109
25386
  var nondetTAlt = (dictMonad) => {
@@ -25147,7 +25424,7 @@ var takeListT = (dictMonad) => {
25147
25424
  if (v === 0) {
25148
25425
  return (v$1) => empty3;
25149
25426
  }
25150
- const $0 = bimapTStep(identity28)(takeListT(dictMonad)(v - 1 | 0));
25427
+ const $0 = bimapTStep(identity30)(takeListT(dictMonad)(v - 1 | 0));
25151
25428
  return (x) => dictMonad.Bind1().bind(x)((a$p) => dictMonad.Applicative0().pure($0(a$p)));
25152
25429
  };
25153
25430
  };
@@ -25161,12 +25438,12 @@ var disamb = (dictMonad) => {
25161
25438
 
25162
25439
  // output-es/Options.Applicative.Common/index.js
25163
25440
  var $OptWord = (_1, _2) => ({ tag: "OptWord", _1, _2 });
25164
- var fromFoldable20 = /* @__PURE__ */ (() => fromFoldableImpl(foldableList.foldr))();
25441
+ var fromFoldable21 = /* @__PURE__ */ (() => fromFoldableImpl(foldableList.foldr))();
25165
25442
  var any2 = /* @__PURE__ */ (() => foldableArray.foldMap((() => {
25166
25443
  const semigroupDisj1 = { append: (v) => (v1) => v || v1 };
25167
25444
  return { mempty: false, Semigroup0: () => semigroupDisj1 };
25168
25445
  })()))();
25169
- var elem2 = /* @__PURE__ */ (() => {
25446
+ var elem3 = /* @__PURE__ */ (() => {
25170
25447
  const any1 = foldableArray.foldMap((() => {
25171
25448
  const semigroupDisj1 = { append: (v) => (v1) => v || v1 };
25172
25449
  return { mempty: false, Semigroup0: () => semigroupDisj1 };
@@ -25236,12 +25513,12 @@ var parseWord = /* @__PURE__ */ (() => {
25236
25513
  (() => {
25237
25514
  const v2 = span((v3) => v3 !== "=")($1._2._2);
25238
25515
  if (v2.rest.tag === "Nil") {
25239
- return $OptWord($OptName("OptLong", fromCharArray(fromFoldable20($1._2._2))), Nothing);
25516
+ return $OptWord($OptName("OptLong", fromCharArray(fromFoldable21($1._2._2))), Nothing);
25240
25517
  }
25241
25518
  if (v2.rest.tag === "Cons") {
25242
25519
  return $OptWord(
25243
- $OptName("OptLong", fromCharArray(fromFoldable20(v2.init))),
25244
- $Maybe("Just", fromCharArray(fromFoldable20(v2.rest._2)))
25520
+ $OptName("OptLong", fromCharArray(fromFoldable21(v2.init))),
25521
+ $Maybe("Just", fromCharArray(fromFoldable21(v2.rest._2)))
25245
25522
  );
25246
25523
  }
25247
25524
  fail();
@@ -25256,7 +25533,7 @@ var parseWord = /* @__PURE__ */ (() => {
25256
25533
  "Just",
25257
25534
  $OptWord(
25258
25535
  $OptName("OptShort", $1._2._1),
25259
- $1._2._2.tag !== "Nil" ? $Maybe("Just", fromCharArray(fromFoldable20($1._2._2))) : Nothing
25536
+ $1._2._2.tag !== "Nil" ? $Maybe("Just", fromCharArray(fromFoldable21($1._2._2))) : Nothing
25260
25537
  )
25261
25538
  );
25262
25539
  }
@@ -25275,16 +25552,16 @@ var optMatches = (dictMonadP) => {
25275
25552
  const Monad0 = dictMonadP.Monad0();
25276
25553
  const bindStateT2 = bindStateT(Monad0);
25277
25554
  const monadStateStateT2 = monadStateStateT(Monad0);
25278
- const $$get2 = monadStateStateT2.state((s) => $Tuple(s, s));
25555
+ const $$get3 = monadStateStateT2.state((s) => $Tuple(s, s));
25279
25556
  const $0 = applicativeStateT(Monad0);
25280
25557
  const $1 = dictMonadP.Monad0().Applicative0().pure;
25281
25558
  return (disambiguate) => (opt) => (v) => {
25282
25559
  if (opt.tag === "OptReader") {
25283
- const $2 = (disambiguate ? any2(isOptionPrefix(v._1))(opt._1) : elem2(v._1)(opt._1)) ? $Maybe("Just", void 0) : Nothing;
25560
+ const $2 = (disambiguate ? any2(isOptionPrefix(v._1))(opt._1) : elem3(v._1)(opt._1)) ? $Maybe("Just", void 0) : Nothing;
25284
25561
  if ($2.tag === "Just") {
25285
25562
  return $Maybe(
25286
25563
  "Just",
25287
- bindStateT2.bind($$get2)((args) => {
25564
+ bindStateT2.bind($$get3)((args) => {
25288
25565
  const missing_arg = dictMonadP.missingArgP(opt._3(showOption(v._1)))(opt._2.crCompleter);
25289
25566
  return bindStateT2.bind((() => {
25290
25567
  if (v._2.tag === "Nothing") {
@@ -25324,7 +25601,7 @@ var optMatches = (dictMonadP) => {
25324
25601
  }
25325
25602
  fail();
25326
25603
  }
25327
- if (opt.tag === "FlagReader" && (disambiguate ? any2(isOptionPrefix(v._1))(opt._1) : elem2(v._1)(opt._1)) && ((() => {
25604
+ if (opt.tag === "FlagReader" && (disambiguate ? any2(isOptionPrefix(v._1))(opt._1) : elem3(v._1)(opt._1)) && ((() => {
25328
25605
  if (v._1.tag === "OptShort") {
25329
25606
  return true;
25330
25607
  }
@@ -25343,7 +25620,7 @@ var optMatches = (dictMonadP) => {
25343
25620
  })())) {
25344
25621
  return $Maybe(
25345
25622
  "Just",
25346
- bindStateT2.bind($$get2)((args) => bindStateT2.bind((() => {
25623
+ bindStateT2.bind($$get3)((args) => bindStateT2.bind((() => {
25347
25624
  if (v._2.tag === "Just") {
25348
25625
  const $2 = $List("Cons", fromCharArray(["-", ...toCharArray(v._2._1)]), args);
25349
25626
  return monadStateStateT2.state((v$1) => $Tuple(void 0, $2));
@@ -25493,7 +25770,7 @@ var searchArg = (dictMonadP) => {
25493
25770
  const bindStateT2 = bindStateT(Monad0);
25494
25771
  const $1 = applyStateT(Monad0);
25495
25772
  const monadStateStateT2 = monadStateStateT(Monad0);
25496
- const $$get2 = monadStateStateT2.state((s) => $Tuple(s, s));
25773
+ const $$get3 = monadStateStateT2.state((s) => $Tuple(s, s));
25497
25774
  const $2 = dictMonadP.Alt1().Functor0();
25498
25775
  const Apply0 = Monad0.Bind1().Apply0();
25499
25776
  const exitContext = dictMonadP.exitContext;
@@ -25506,7 +25783,7 @@ var searchArg = (dictMonadP) => {
25506
25783
  if ($5.tag === "Just") {
25507
25784
  if (prefs.prefBacktrack === "NoBacktrack") {
25508
25785
  const $6 = $5._1;
25509
- return lift2(bindStateT2.bind($1.apply($1.Functor0().map($$const)($$get2))(monadStateStateT2.state((v) => $Tuple(void 0, Nil))))((args) => {
25786
+ return lift2(bindStateT2.bind($1.apply($1.Functor0().map($$const)($$get3))(monadStateStateT2.state((v) => $Tuple(void 0, Nil))))((args) => {
25510
25787
  const $7 = Apply0.apply(Apply0.Functor0().map($$const)(Apply0.apply(Apply0.Functor0().map((v) => identity)(dictMonadP.enterContext(arg)($6)))(runParserInfo(dictMonadP)($6)(args))))(exitContext);
25511
25788
  return (s) => $2.map((v1) => $Tuple($Parser("NilP", v1._1), v1._2))(Monad0.Bind1().bind($7)((x) => Monad0.Applicative0().pure($Tuple(
25512
25789
  x,
@@ -25721,8 +25998,8 @@ var mapParser = (f) => {
25721
25998
 
25722
25999
  // output-es/Options.Applicative.BashCompletion/index.js
25723
26000
  var $Richness = (tag, _1, _2) => ({ tag, _1, _2 });
25724
- var fromFoldable21 = /* @__PURE__ */ foldrArray(Cons)(Nil);
25725
- var identity29 = (x) => x;
26001
+ var fromFoldable24 = /* @__PURE__ */ foldrArray(Cons)(Nil);
26002
+ var identity31 = (x) => x;
25726
26003
  var fold4 = /* @__PURE__ */ (() => foldableArray.foldMap(monoidArray)(identity3))();
25727
26004
  var sequence = /* @__PURE__ */ (() => traversableArray.traverse(applicativeEffect)(identity4))();
25728
26005
  var unLines = (xs) => foldlArray((v) => (v1) => {
@@ -25835,7 +26112,7 @@ var bashCompletionQuery = (pinfo) => (pprefs) => (richness) => (ws) => (i) => (v
25835
26112
  const $0 = arrayMap(showOption);
25836
26113
  const add_opt_help1 = (opt) => {
25837
26114
  if (richness.tag === "Standard") {
25838
- return identity29;
26115
+ return identity31;
25839
26116
  }
25840
26117
  if (richness.tag === "Enriched") {
25841
26118
  const $1 = richness._1;
@@ -25868,7 +26145,7 @@ var bashCompletionQuery = (pinfo) => (pprefs) => (richness) => (ws) => (i) => (v
25868
26145
  }
25869
26146
  fail();
25870
26147
  };
25871
- const v2 = runCompletion(runParserFully(completionMonadP)(pinfo.infoPolicy)(pinfo.infoParser)(fromFoldable21(slice(1)(v1.init.length)(v1.init))))(pprefs);
26148
+ const v2 = runCompletion(runParserFully(completionMonadP)(pinfo.infoPolicy)(pinfo.infoParser)(fromFoldable24(slice(1)(v1.init.length)(v1.init))))(pprefs);
25872
26149
  if (v2.tag === "Just") {
25873
26150
  if (v2._1.tag === "Left") {
25874
26151
  const $1 = v2._1._1._2;
@@ -25908,7 +26185,7 @@ var bashCompletionQuery = (pinfo) => (pprefs) => (richness) => (ws) => (i) => (v
25908
26185
  }
25909
26186
  const $22 = (() => {
25910
26187
  if (richness.tag === "Standard") {
25911
- return identity29;
26188
+ return identity31;
25912
26189
  }
25913
26190
  if (richness.tag === "Enriched") {
25914
26191
  const $23 = richness._2;
@@ -26189,7 +26466,7 @@ var helpText = (v) => {
26189
26466
  var fold5 = /* @__PURE__ */ (() => foldableArray.foldMap(monoidArray)(identity3))();
26190
26467
  var chunkMonoid3 = /* @__PURE__ */ chunkMonoid(docSemigroup);
26191
26468
  var listToChunk2 = /* @__PURE__ */ listToChunk(docMonoid);
26192
- var identity30 = (x) => x;
26469
+ var identity32 = (x) => x;
26193
26470
  var mempty2 = /* @__PURE__ */ (() => $Tuple(monoidMaybe(semigroupString).mempty, chunkMonoid3.mempty))();
26194
26471
  var usageHelp = (chunk) => ({
26195
26472
  helpUsage: chunk,
@@ -26229,7 +26506,7 @@ var optDesc = (pprefs) => (style) => (info2) => (opt) => {
26229
26506
  })()));
26230
26507
  return (() => {
26231
26508
  if (opt.optProps.propDescMod.tag === "Nothing") {
26232
- return identity30;
26509
+ return identity32;
26233
26510
  }
26234
26511
  if (opt.optProps.propDescMod.tag === "Just") {
26235
26512
  return functorMaybe.map(opt.optProps.propDescMod._1);
@@ -26764,7 +27041,7 @@ var mempty13 = /* @__PURE__ */ (() => chunkMonoid(docSemigroup).mempty)();
26764
27041
  var fold1 = /* @__PURE__ */ (() => foldableArray.foldMap(parserHelpMonoid)(identity3))();
26765
27042
  var mempty22 = (v) => () => {
26766
27043
  };
26767
- var fromFoldable24 = /* @__PURE__ */ foldrArray(Cons)(Nil);
27044
+ var fromFoldable25 = /* @__PURE__ */ foldrArray(Cons)(Nil);
26768
27045
  var renderFailure = (failure) => (progn) => {
26769
27046
  const v = failure(progn);
26770
27047
  return $Tuple(
@@ -26909,12 +27186,12 @@ var helper = /* @__PURE__ */ (() => abortOption(ShowHelpText)(foldableArray.fold
26909
27186
  $Mod(
26910
27187
  optionFieldsHasName.name($OptName("OptLong", "help")),
26911
27188
  $DefaultProp(Nothing, Nothing),
26912
- identity26
27189
+ identity28
26913
27190
  ),
26914
27191
  $Mod(
26915
27192
  optionFieldsHasName.name($OptName("OptShort", "h")),
26916
27193
  $DefaultProp(Nothing, Nothing),
26917
- identity26
27194
+ identity28
26918
27195
  ),
26919
27196
  help("Show this help text"),
26920
27197
  hidden
@@ -26975,7 +27252,7 @@ var execParserPure = (pprefs) => (pinfo) => (args) => {
26975
27252
  "AltP",
26976
27253
  parserFunctor.map(Left)(bashCompletionParser(pinfo)(pprefs)),
26977
27254
  parserFunctor.map(Right)(pinfo.infoParser)
26978
- ))(fromFoldable24(args))([])(pprefs);
27255
+ ))(fromFoldable25(args))([])(pprefs);
26979
27256
  if (v._1.tag === "Right") {
26980
27257
  if (v._1._1.tag === "Right") {
26981
27258
  return $ParserResult("Success", v._1._1._1);
@@ -27000,9 +27277,9 @@ var monadErrorErrorNodeT = /* @__PURE__ */ monadErrorReaderT(monadErrorAff);
27000
27277
  var monadReaderFileCxtNodeT = /* @__PURE__ */ monadReaderReaderT(monadAff);
27001
27278
  var loadFileNodeT2 = /* @__PURE__ */ loadFileNodeT(monadAff);
27002
27279
  var loadProgCxt2 = /* @__PURE__ */ loadProgCxt(monadAffNodeT)(monadErrorErrorNodeT)(monadReaderFileCxtNodeT)(loadFileNodeT2);
27280
+ var loadFile2 = /* @__PURE__ */ loadFile(loadFileNodeT2)(/* @__PURE__ */ monadReaderT(monadAff))(monadErrorErrorNodeT)(monadAffNodeT);
27003
27281
  var prepConfig2 = /* @__PURE__ */ prepConfig(monadAffNodeT)(monadErrorErrorNodeT)(monadReaderFileCxtNodeT)(loadFileNodeT2);
27004
27282
  var graphEval2 = /* @__PURE__ */ graphEval(monadAffNodeT)(monadReaderFileCxtNodeT)(loadFileNodeT2)(monadErrorErrorNodeT);
27005
- var fromFoldable25 = /* @__PURE__ */ (() => fromFoldableImpl(foldableList.foldr))();
27006
27283
  var Evaluate = (value0) => $Command(value0);
27007
27284
  var parseLocal = /* @__PURE__ */ $Parser(
27008
27285
  "AltP",
@@ -27021,30 +27298,14 @@ var parseLocal = /* @__PURE__ */ $Parser(
27021
27298
  })()),
27022
27299
  /* @__PURE__ */ $Parser("NilP", false)
27023
27300
  );
27024
- var parseImports = /* @__PURE__ */ $Parser(
27025
- "BindP",
27026
- /* @__PURE__ */ manyM(/* @__PURE__ */ option(readerAsk)(/* @__PURE__ */ (() => {
27027
- const $0 = help("Comma-separated list of files to import");
27028
- const $1 = $0._2._1.tag === "Nothing" ? Nothing : $0._2._1;
27029
- const $2 = $0._2._2.tag === "Nothing" ? Nothing : $0._2._2;
27030
- return $Mod(
27031
- (x) => $0._1({
27032
- optNames: [$OptName("OptShort", "i"), $OptName("OptLong", "imports"), ...x.optNames],
27033
- optCompleter: x.optCompleter,
27034
- optNoArgError: x.optNoArgError
27035
- }),
27036
- $DefaultProp($1.tag === "Nothing" ? Nothing : $1, $2.tag === "Nothing" ? Nothing : $2),
27037
- (x) => $0._3(x)
27038
- );
27039
- })()))
27040
- );
27041
27301
  var evaluate = (v) => {
27042
27302
  const $0 = v._1.fileName;
27043
- return bind3(loadProgCxt2(v._1.imports)(v._1.datasets))((progCxt) => bind3(prepConfig2($0)(progCxt))((v1) => bind3(graphEval2(v1.gconfig)(v1.e))((v2) => {
27303
+ const fluidSrcPaths = [v._1.fluidSrcPath, ...v._1.local ? ["node_modules/@explorable-viz/fluid/dist/fluid/fluid"] : []];
27304
+ return bind3(loadProgCxt2(v._1.datasets))((progCxt) => bind3(loadFile2(fluidSrcPaths)($0))((fluidSrc) => bind3(prepConfig2(progCxt)(fluidSrc))((v1) => bind3(graphEval2(v1.gconfig)(v1.e))((v2) => {
27044
27305
  const $1 = _pure(functorVal.map((v$1) => {
27045
27306
  })(v2["out\u03B1"]));
27046
27307
  return (v$1) => $1;
27047
- })))({ fluidSrcPaths: [v._1.fluidSrcPath, ...v._1.local ? ["node_modules/@explorable-viz/fluid/dist/fluid/fluid"] : []] });
27308
+ }))))({ fluidSrcPaths });
27048
27309
  };
27049
27310
  var dispatchCommand = (v) => _bind(evaluate(v._1))((v1) => _liftEffect(log(intercalate4("\n")(removeDocWS(prettyVal(highlightableUnit).pretty(v1)).lines))));
27050
27311
  var callback = (v) => {
@@ -27109,14 +27370,8 @@ var parseEvaluate = /* @__PURE__ */ (() => $Parser(
27109
27370
  $Parser(
27110
27371
  "MultP",
27111
27372
  $MultPE(
27112
- $Parser(
27113
- "MultP",
27114
- $MultPE(
27115
- parserFunctor.map((v) => (v1) => (v2) => (v3) => (v4) => $EvalArgs({ local: v, imports: v1, datasets: v2, fileName: v3, fluidSrcPath: v4 }))(parseLocal),
27116
- parserFunctor.map(fromFoldable25)(parseImports)
27117
- )
27118
- ),
27119
- parserFunctor.map(fromFoldable25)(parseDatasets)
27373
+ parserFunctor.map((v) => (v1) => (v2) => (v3) => $EvalArgs({ local: v, datasets: v1, fileName: v2, fluidSrcPath: v3 }))(parseLocal),
27374
+ parserFunctor.map(fromFoldableImpl(foldableList.foldr))(parseDatasets)
27120
27375
  )
27121
27376
  ),
27122
27377
  option(readerAsk)((() => {