@@ -31,6 +31,11 @@
3131 };
3232 };
3333 };
34+ var applyFlipped = function(x) {
35+ return function(f) {
36+ return f(x);
37+ };
38+ };
3439
3540 // output/Data.Functor/foreign.js
3641 var arrayMap = function(f) {
@@ -68,6 +73,17 @@
6873 var apply = function(dict) {
6974 return dict.apply;
7075 };
76+ var lift2 = function(dictApply) {
77+ var apply1 = apply(dictApply);
78+ var map4 = map(dictApply.Functor0());
79+ return function(f) {
80+ return function(a) {
81+ return function(b) {
82+ return apply1(map4(f)(a))(b);
83+ };
84+ };
85+ };
86+ };
7187
7288 // output/Control.Applicative/index.js
7389 var pure = function(dict) {
@@ -146,6 +162,11 @@
146162 };
147163
148164 // output/Data.Semigroup/foreign.js
165+ var concatString = function(s1) {
166+ return function(s2) {
167+ return s1 + s2;
168+ };
169+ };
149170 var concatArray = function(xs) {
150171 return function(ys) {
151172 if (xs.length === 0) return ys;
@@ -162,6 +183,9 @@
162183 };
163184 }
164185 };
186+ var semigroupString = {
187+ append: concatString
188+ };
165189 var semigroupRecordNil = {
166190 appendRecord: function(v) {
167191 return function(v1) {
@@ -193,7 +217,7 @@
193217 return function(dictSemigroupRecord) {
194218 var appendRecord1 = appendRecord(dictSemigroupRecord);
195219 return function(dictSemigroup) {
196− var append12 = append(dictSemigroup);
220+ var append1 = append(dictSemigroup);
197221 return {
198222 appendRecord: function(v) {
199223 return function(ra) {
@@ -202,7 +226,7 @@
202226 var key = reflectSymbol2($$Proxy.value);
203227 var insert = unsafeSet(key);
204228 var get = unsafeGet(key);
205− return insert(append12(get(ra))(get(rb)))(tail);
229+ return insert(append1(get(ra))(get(rb)))(tail);
206230 };
207231 };
208232 }
@@ -220,6 +244,12 @@
220244 return semigroupUnit;
221245 }
222246 };
247+ var monoidString = {
248+ mempty: "",
249+ Semigroup0: function() {
250+ return semigroupString;
251+ }
252+ };
223253 var monoidRecordNil = {
224254 memptyRecord: function(v) {
225255 return {};
@@ -293,13 +323,13 @@
293323
294324 // output/Control.Monad/index.js
295325 var ap = function(dictMonad) {
296− var bind3 = bind(dictMonad.Bind1());
297− var pure3 = pure(dictMonad.Applicative0());
326+ var bind4 = bind(dictMonad.Bind1());
327+ var pure4 = pure(dictMonad.Applicative0());
298328 return function(f) {
299329 return function(a) {
300− return bind3(f)(function(f$prime) {
301− return bind3(a)(function(a$prime) {
302− return pure3(f$prime(a$prime));
330+ return bind4(f)(function(f$prime) {
331+ return bind4(a)(function(a$prime) {
332+ return pure4(f$prime(a$prime));
303333 });
304334 });
305335 };
@@ -307,15 +337,15 @@
307337 };
308338
309339 // output/Effect/index.js
310− var $runtime_lazy = function(name14, moduleName, init) {
311− var state2 = 0;
340+ var $runtime_lazy = function(name15, moduleName, init) {
341+ var state3 = 0;
312342 var val;
313343 return function(lineNumber) {
314− if (state2 === 2) return val;
315− if (state2 === 1) throw new ReferenceError(name14 + " was needed before it finished initializing (module " + moduleName + ", line " + lineNumber + ")", moduleName, lineNumber);
316− state2 = 1;
344+ if (state3 === 2) return val;
345+ if (state3 === 1) throw new ReferenceError(name15 + " was needed before it finished initializing (module " + moduleName + ", line " + lineNumber + ")", moduleName, lineNumber);
346+ state3 = 1;
317347 val = init();
318− state2 = 2;
348+ state3 = 2;
319349 return val;
320350 };
321351 };
@@ -371,6 +401,22 @@
371401 return result;
372402 };
373403 var replicateImpl = typeof Array.prototype.fill === "function" ? replicateFill : replicatePolyfill;
404+ var indexImpl = function(just, nothing, xs, i) {
405+ return i < 0 || i >= xs.length ? nothing : just(xs[i]);
406+ };
407+ var concat = function(xss) {
408+ if (xss.length <= 1e4) {
409+ return Array.prototype.concat.apply([], xss);
410+ }
411+ var result = [];
412+ for (var i = 0, l = xss.length; i < l; i++) {
413+ var xs = xss[i];
414+ for (var j = 0, m = xs.length; j < m; j++) {
415+ result.push(xs[j]);
416+ }
417+ }
418+ return result;
419+ };
374420
375421 // output/Data.Bounded/foreign.js
376422 var topChar = String.fromCharCode(65535);
@@ -436,6 +482,52 @@
436482 return maybe(a)(identity2);
437483 };
438484
485+ // output/Data.Identity/index.js
486+ var Identity = function(x) {
487+ return x;
488+ };
489+ var functorIdentity = {
490+ map: function(f) {
491+ return function(m) {
492+ return f(m);
493+ };
494+ }
495+ };
496+ var applyIdentity = {
497+ apply: function(v) {
498+ return function(v1) {
499+ return v(v1);
500+ };
501+ },
502+ Functor0: function() {
503+ return functorIdentity;
504+ }
505+ };
506+ var bindIdentity = {
507+ bind: function(v) {
508+ return function(f) {
509+ return f(v);
510+ };
511+ },
512+ Apply0: function() {
513+ return applyIdentity;
514+ }
515+ };
516+ var applicativeIdentity = {
517+ pure: Identity,
518+ Apply0: function() {
519+ return applyIdentity;
520+ }
521+ };
522+ var monadIdentity = {
523+ Applicative0: function() {
524+ return applicativeIdentity;
525+ },
526+ Bind1: function() {
527+ return bindIdentity;
528+ }
529+ };
530+
439531 // output/Effect.Ref/foreign.js
440532 var _new = function(val) {
441533 return function() {
@@ -480,15 +572,15 @@
480572 };
481573
482574 // output/Control.Monad.ST.Internal/index.js
483− var $runtime_lazy2 = function(name14, moduleName, init) {
484− var state2 = 0;
575+ var $runtime_lazy2 = function(name15, moduleName, init) {
576+ var state3 = 0;
485577 var val;
486578 return function(lineNumber) {
487− if (state2 === 2) return val;
488− if (state2 === 1) throw new ReferenceError(name14 + " was needed before it finished initializing (module " + moduleName + ", line " + lineNumber + ")", moduleName, lineNumber);
489− state2 = 1;
579+ if (state3 === 2) return val;
580+ if (state3 === 1) throw new ReferenceError(name15 + " was needed before it finished initializing (module " + moduleName + ", line " + lineNumber + ")", moduleName, lineNumber);
581+ state3 = 1;
490582 val = init();
491− state2 = 2;
583+ state3 = 2;
492584 return val;
493585 };
494586 };
@@ -570,10 +662,54 @@
570662 return x;
571663 };
572664
665+ // output/Safe.Coerce/index.js
666+ var coerce = function() {
667+ return unsafeCoerce2;
668+ };
669+
670+ // output/Data.Newtype/index.js
671+ var coerce2 = /* @__PURE__ */ coerce();
672+ var unwrap = function() {
673+ return coerce2;
674+ };
675+
573676 // output/Data.Foldable/index.js
574677 var foldr = function(dict) {
575678 return dict.foldr;
576679 };
680+ var foldl = function(dict) {
681+ return dict.foldl;
682+ };
683+ var intercalate = function(dictFoldable) {
684+ var foldl2 = foldl(dictFoldable);
685+ return function(dictMonoid) {
686+ var append3 = append(dictMonoid.Semigroup0());
687+ var mempty5 = mempty(dictMonoid);
688+ return function(sep) {
689+ return function(xs) {
690+ var go2 = function(v) {
691+ return function(v1) {
692+ if (v.init) {
693+ return {
694+ init: false,
695+ acc: v1
696+ };
697+ }
698+ ;
699+ return {
700+ init: false,
701+ acc: append3(v.acc)(append3(sep)(v1))
702+ };
703+ };
704+ };
705+ return foldl2(go2)({
706+ init: true,
707+ acc: mempty5
708+ })(xs).acc;
709+ };
710+ };
711+ };
712+ };
577713 var foldMapDefaultR = function(dictFoldable) {
578714 var foldr2 = foldr(dictFoldable);
579715 return function(dictMonoid) {
@@ -595,9 +731,6 @@
595731 return foldMapDefaultR(foldableArray)(dictMonoid);
596732 }
597733 };
598− var foldMap = function(dict) {
599− return dict.foldMap;
600− };
601734
602735 // output/Data.Function.Uncurried/foreign.js
603736 var runFn2 = function(fn) {
@@ -607,18 +740,106 @@
607740 };
608741 };
609742 };
743+ var runFn4 = function(fn) {
744+ return function(a) {
745+ return function(b) {
746+ return function(c) {
747+ return function(d) {
748+ return fn(a, b, c, d);
749+ };
750+ };
751+ };
752+ };
753+ };
610754
611− // output/Data.Array/index.js
612− var foldMap1 = /* @__PURE__ */ foldMap(foldableArray);
613− var append2 = /* @__PURE__ */ append(semigroupArray);
614− var foldMap2 = function(dictMonoid) {
615− return foldMap1(dictMonoid);
755+ // output/Data.Traversable/foreign.js
756+ var traverseArrayImpl = /* @__PURE__ */ function() {
757+ function array1(a) {
758+ return [a];
759+ }
760+ function array2(a) {
761+ return function(b) {
762+ return [a, b];
763+ };
764+ }
765+ function array3(a) {
766+ return function(b) {
767+ return function(c) {
768+ return [a, b, c];
769+ };
770+ };
771+ }
772+ function concat2(xs) {
773+ return function(ys) {
774+ return xs.concat(ys);
775+ };
776+ }
777+ return function(apply2) {
778+ return function(map4) {
779+ return function(pure4) {
780+ return function(f) {
781+ return function(array) {
782+ function go2(bot, top2) {
783+ switch (top2 - bot) {
784+ case 0:
785+ return pure4([]);
786+ case 1:
787+ return map4(array1)(f(array[bot]));
788+ case 2:
789+ return apply2(map4(array2)(f(array[bot])))(f(array[bot + 1]));
790+ case 3:
791+ return apply2(apply2(map4(array3)(f(array[bot])))(f(array[bot + 1])))(f(array[bot + 2]));
792+ default:
793+ var pivot = bot + Math.floor((top2 - bot) / 4) * 2;
794+ return apply2(map4(concat2)(go2(bot, pivot)))(go2(pivot, top2));
795+ }
796+ }
797+ return go2(0, array.length);
798+ };
799+ };
800+ };
801+ };
802+ };
803+ }();
804+
805+ // output/Data.Traversable/index.js
806+ var identity3 = /* @__PURE__ */ identity(categoryFn);
807+ var traverse = function(dict) {
808+ return dict.traverse;
616809 };
617− var cons = function(x) {
618− return function(xs) {
619− return append2([x])(xs);
810+ var sequenceDefault = function(dictTraversable) {
811+ var traverse22 = traverse(dictTraversable);
812+ return function(dictApplicative) {
813+ return traverse22(dictApplicative)(identity3);
620814 };
621815 };
816+ var traversableArray = {
817+ traverse: function(dictApplicative) {
818+ var Apply0 = dictApplicative.Apply0();
819+ return traverseArrayImpl(apply(Apply0))(map(Apply0.Functor0()))(pure(dictApplicative));
820+ },
821+ sequence: function(dictApplicative) {
822+ return sequenceDefault(traversableArray)(dictApplicative);
823+ },
824+ Functor0: function() {
825+ return functorArray;
826+ },
827+ Foldable1: function() {
828+ return foldableArray;
829+ }
830+ };
831+
832+ // output/Data.Array/index.js
833+ var intercalate1 = /* @__PURE__ */ intercalate(foldableArray);
834+ var intercalate2 = function(dictMonoid) {
835+ return intercalate1(dictMonoid);
836+ };
837+ var index = /* @__PURE__ */ function() {
838+ return runFn4(indexImpl)(Just.create)(Nothing.value);
839+ }();
840+ var head = function(xs) {
841+ return index(xs)(0);
842+ };
622843
623844 // output/Maquette/foreign.js
624845 var NAMESPACE_W3 = "http://www.w3.org/";
@@ -749,8 +970,8 @@
749970 "exitAnimation",
750971 "updateAnimation"
751972 ];
752− function filterVNodeOnlyProps(name14) {
753− return !vnodeOnlyProps.includes(name14);
973+ function filterVNodeOnlyProps(name15) {
974+ return !vnodeOnlyProps.includes(name15);
754975 }
755976 var setProperties = function(domNode, properties, projectionOptions) {
756977 if (!properties) {
@@ -1386,6 +1607,11 @@
13861607 };
13871608 };
13881609 }
1610+ function scheduleRender(projector) {
1611+ return function() {
1612+ projector.scheduleRender();
1613+ };
1614+ }
13891615 function replace(projector) {
13901616 return function(el) {
13911617 return function(render3) {
@@ -1400,6 +1626,169 @@
14001626 var string = unsafeCoerce2;
14011627 var h2 = _h;
14021628
1629+ // output/Control.Monad.Writer.Class/index.js
1630+ var tell = function(dict) {
1631+ return dict.tell;
1632+ };
1633+
1634+ // output/Control.Monad.Writer.Trans/index.js
1635+ var WriterT = function(x) {
1636+ return x;
1637+ };
1638+ var runWriterT = function(v) {
1639+ return v;
1640+ };
1641+ var mapWriterT = function(f) {
1642+ return function(v) {
1643+ return f(v);
1644+ };
1645+ };
1646+ var functorWriterT = function(dictFunctor) {
1647+ var map4 = map(dictFunctor);
1648+ return {
1649+ map: function(f) {
1650+ return mapWriterT(map4(function(v) {
1651+ return new Tuple(f(v.value0), v.value1);
1652+ }));
1653+ }
1654+ };
1655+ };
1656+ var applyWriterT = function(dictSemigroup) {
1657+ var append3 = append(dictSemigroup);
1658+ return function(dictApply) {
1659+ var apply2 = apply(dictApply);
1660+ var Functor0 = dictApply.Functor0();
1661+ var map4 = map(Functor0);
1662+ var functorWriterT1 = functorWriterT(Functor0);
1663+ return {
1664+ apply: function(v) {
1665+ return function(v1) {
1666+ var k = function(v3) {
1667+ return function(v4) {
1668+ return new Tuple(v3.value0(v4.value0), append3(v3.value1)(v4.value1));
1669+ };
1670+ };
1671+ return apply2(map4(k)(v))(v1);
1672+ };
1673+ },
1674+ Functor0: function() {
1675+ return functorWriterT1;
1676+ }
1677+ };
1678+ };
1679+ };
1680+ var bindWriterT = function(dictSemigroup) {
1681+ var append3 = append(dictSemigroup);
1682+ var applyWriterT1 = applyWriterT(dictSemigroup);
1683+ return function(dictBind) {
1684+ var bind4 = bind(dictBind);
1685+ var Apply0 = dictBind.Apply0();
1686+ var map4 = map(Apply0.Functor0());
1687+ var applyWriterT2 = applyWriterT1(Apply0);
1688+ return {
1689+ bind: function(v) {
1690+ return function(k) {
1691+ return bind4(v)(function(v1) {
1692+ var v2 = k(v1.value0);
1693+ return map4(function(v3) {
1694+ return new Tuple(v3.value0, append3(v1.value1)(v3.value1));
1695+ })(v2);
1696+ });
1697+ };
1698+ },
1699+ Apply0: function() {
1700+ return applyWriterT2;
1701+ }
1702+ };
1703+ };
1704+ };
1705+ var semigroupWriterT = function(dictApply) {
1706+ return function(dictSemigroup) {
1707+ var lift22 = lift2(applyWriterT(dictSemigroup)(dictApply));
1708+ return function(dictSemigroup1) {
1709+ return {
1710+ append: lift22(append(dictSemigroup1))
1711+ };
1712+ };
1713+ };
1714+ };
1715+ var applicativeWriterT = function(dictMonoid) {
1716+ var mempty5 = mempty(dictMonoid);
1717+ var applyWriterT1 = applyWriterT(dictMonoid.Semigroup0());
1718+ return function(dictApplicative) {
1719+ var pure4 = pure(dictApplicative);
1720+ var applyWriterT2 = applyWriterT1(dictApplicative.Apply0());
1721+ return {
1722+ pure: function(a) {
1723+ return pure4(new Tuple(a, mempty5));
1724+ },
1725+ Apply0: function() {
1726+ return applyWriterT2;
1727+ }
1728+ };
1729+ };
1730+ };
1731+ var monadWriterT = function(dictMonoid) {
1732+ var applicativeWriterT1 = applicativeWriterT(dictMonoid);
1733+ var bindWriterT1 = bindWriterT(dictMonoid.Semigroup0());
1734+ return function(dictMonad) {
1735+ var applicativeWriterT22 = applicativeWriterT1(dictMonad.Applicative0());
1736+ var bindWriterT22 = bindWriterT1(dictMonad.Bind1());
1737+ return {
1738+ Applicative0: function() {
1739+ return applicativeWriterT22;
1740+ },
1741+ Bind1: function() {
1742+ return bindWriterT22;
1743+ }
1744+ };
1745+ };
1746+ };
1747+ var monadTellWriterT = function(dictMonoid) {
1748+ var Semigroup0 = dictMonoid.Semigroup0();
1749+ var monadWriterT1 = monadWriterT(dictMonoid);
1750+ return function(dictMonad) {
1751+ var monadWriterT2 = monadWriterT1(dictMonad);
1752+ return {
1753+ tell: function() {
1754+ var $262 = pure(dictMonad.Applicative0());
1755+ var $263 = Tuple.create(unit);
1756+ return function($264) {
1757+ return WriterT($262($263($264)));
1758+ };
1759+ }(),
1760+ Semigroup0: function() {
1761+ return Semigroup0;
1762+ },
1763+ Monad1: function() {
1764+ return monadWriterT2;
1765+ }
1766+ };
1767+ };
1768+ };
1769+ var monoidWriterT = function(dictApplicative) {
1770+ var semigroupWriterT1 = semigroupWriterT(dictApplicative.Apply0());
1771+ return function(dictMonoid) {
1772+ var pure4 = pure(applicativeWriterT(dictMonoid)(dictApplicative));
1773+ var semigroupWriterT2 = semigroupWriterT1(dictMonoid.Semigroup0());
1774+ return function(dictMonoid1) {
1775+ var semigroupWriterT3 = semigroupWriterT2(dictMonoid1.Semigroup0());
1776+ return {
1777+ mempty: pure4(mempty(dictMonoid1)),
1778+ Semigroup0: function() {
1779+ return semigroupWriterT3;
1780+ }
1781+ };
1782+ };
1783+ };
1784+ };
1785+
1786+ // output/Control.Monad.Writer/index.js
1787+ var unwrap2 = /* @__PURE__ */ unwrap();
1788+ var runWriter = function($5) {
1789+ return unwrap2(runWriterT($5));
1790+ };
1791+
14031792 // output/Foreign.Object/foreign.js
14041793 function _copyST(m) {
14051794 return function() {
@@ -1416,7 +1805,7 @@
14161805 function runST(f) {
14171806 return f();
14181807 }
1419− function _foldM(bind3) {
1808+ function _foldM(bind4) {
14201809 return function(f) {
14211810 return function(mz) {
14221811 return function(m) {
@@ -1428,7 +1817,7 @@
14281817 }
14291818 for (var k in m) {
14301819 if (hasOwnProperty.call(m, k)) {
1431− acc = bind3(acc)(g(k));
1820+ acc = bind4(acc)(g(k));
14321821 }
14331822 }
14341823 return acc;
@@ -1506,6 +1895,20 @@
15061895 })(s)(m);
15071896 });
15081897 };
1898+ var fold2 = /* @__PURE__ */ _foldM(applyFlipped);
1899+ var foldMap2 = function(dictMonoid) {
1900+ var append1 = append(dictMonoid.Semigroup0());
1901+ var mempty5 = mempty(dictMonoid);
1902+ return function(f) {
1903+ return fold2(function(acc) {
1904+ return function(k) {
1905+ return function(v) {
1906+ return append1(acc)(f(k)(v));
1907+ };
1908+ };
1909+ })(mempty5);
1910+ };
1911+ };
15091912
15101913 // output/Record.Unsafe.Union/foreign.js
15111914 function unsafeUnionFn(r1, r2) {
@@ -1527,12 +1930,23 @@
15271930 var unsafeUnion = /* @__PURE__ */ runFn2(unsafeUnionFn);
15281931
15291932 // output/Plum.View/index.js
1933+ var append2 = /* @__PURE__ */ append(semigroupArray);
15301934 var semigroupRecord3 = /* @__PURE__ */ semigroupRecord();
15311935 var childrenIsSymbol = {
15321936 reflectSymbol: function() {
15331937 return "children";
15341938 }
15351939 };
1940+ var downIsSymbol = {
1941+ reflectSymbol: function() {
1942+ return "down";
1943+ }
1944+ };
1945+ var hoverIsSymbol = {
1946+ reflectSymbol: function() {
1947+ return "hover";
1948+ }
1949+ };
15361950 var meatIsSymbol = {
15371951 reflectSymbol: function() {
15381952 return "meat";
@@ -1543,16 +1957,17 @@
15431957 return "nerves";
15441958 }
15451959 };
1546− var semigroupRecordCons2 = /* @__PURE__ */ semigroupRecordCons(childrenIsSymbol)()(/* @__PURE__ */ semigroupRecordCons(meatIsSymbol)()(/* @__PURE__ */ semigroupRecordCons(nervesIsSymbol)()(semigroupRecordNil)(semigroupArray))(semigroupArray));
1960+ var semigroupRecordCons2 = /* @__PURE__ */ semigroupRecordCons(childrenIsSymbol)()(/* @__PURE__ */ semigroupRecordCons(downIsSymbol)()(/* @__PURE__ */ semigroupRecordCons(hoverIsSymbol)()(/* @__PURE__ */ semigroupRecordCons(meatIsSymbol)()(/* @__PURE__ */ semigroupRecordCons(nervesIsSymbol)()(semigroupRecordNil)(semigroupArray))(semigroupArray))(semigroupArray))(semigroupArray));
15471961 var show2 = /* @__PURE__ */ show(showInt);
15481962 var show1 = /* @__PURE__ */ show(showNumber);
1963+ var mempty2 = /* @__PURE__ */ mempty(monoidArray);
15491964 var monoidRecord2 = /* @__PURE__ */ monoidRecord();
15501965 var monoidRecordCons2 = /* @__PURE__ */ monoidRecordCons(childrenIsSymbol);
1551− var monoidRecordCons1 = /* @__PURE__ */ monoidRecordCons(meatIsSymbol)(monoidArray)()(/* @__PURE__ */ monoidRecordCons(nervesIsSymbol)(monoidArray)()(monoidRecordNil));
1552− var mempty2 = /* @__PURE__ */ mempty(/* @__PURE__ */ monoidRecord2(/* @__PURE__ */ monoidRecordCons2(monoidArray)()(monoidRecordCons1)));
1553− var append1 = /* @__PURE__ */ append(semigroupArray);
1554− var mempty1 = /* @__PURE__ */ mempty(monoidArray);
1555− var map2 = /* @__PURE__ */ map(functorArray);
1966+ var monoidRecordCons1 = /* @__PURE__ */ monoidRecordCons(downIsSymbol)(monoidArray)()(/* @__PURE__ */ monoidRecordCons(hoverIsSymbol)(monoidArray)()(/* @__PURE__ */ monoidRecordCons(meatIsSymbol)(monoidArray)()(/* @__PURE__ */ monoidRecordCons(nervesIsSymbol)(monoidArray)()(monoidRecordNil))));
1967+ var mempty1 = /* @__PURE__ */ mempty(/* @__PURE__ */ monoidRecord2(/* @__PURE__ */ monoidRecordCons2(monoidArray)()(monoidRecordCons1)));
1968+ var foldMap3 = /* @__PURE__ */ foldMap2(monoidString);
1969+ var intercalate3 = /* @__PURE__ */ intercalate2(monoidString);
1970+ var map2 = /* @__PURE__ */ map(/* @__PURE__ */ functorWriterT(functorIdentity));
15561971 var Px = /* @__PURE__ */ function() {
15571972 function Px2(value0) {
15581973 this.value0 = value0;
@@ -1908,79 +2323,88 @@
19082323 None3.value = new None3();
19092324 return None3;
19102325 }();
1911− var semigroupUIWith = function(dictSemigroup) {
1912− var append3 = append(semigroupRecord3(semigroupRecordCons2(dictSemigroup)));
1913− return function(dictSemigroup1) {
1914− var append4 = append(dictSemigroup1);
1915− return {
1916− append: function(v) {
1917− return function(v1) {
1918− return new UI(append3(v.value0)(v1.value0), append4(v.value1)(v1.value1));
1919− };
1920− }
1921− };
1922− };
1923− };
1924− var semigroupSkin = {
2326+ var semigroupSkinGrowth = {
19252327 append: function(v) {
19262328 return function(v1) {
19272329 return union(v)(v1);
19282330 };
19292331 }
19302332 };
1931− var append22 = /* @__PURE__ */ append(semigroupSkin);
2333+ var bindWriterT2 = /* @__PURE__ */ bindWriterT(semigroupSkinGrowth)(bindIdentity);
2334+ var discard2 = /* @__PURE__ */ discard(discardUnit)(bindWriterT2);
2335+ var bind2 = /* @__PURE__ */ bind(bindWriterT2);
2336+ var append22 = /* @__PURE__ */ append(/* @__PURE__ */ semigroupWriterT(applyIdentity)(semigroupSkinGrowth)(semigroupArray));
19322337 var semigroupMutation = {
19332338 append: function(v) {
19342339 return function(v1) {
19352340 return {
1936− extraSkin: append22(v.extraSkin)(v1.extraSkin)
2341+ extraSkin: append2(v.extraSkin)(v1.extraSkin)
19372342 };
19382343 };
19392344 }
19402345 };
1941− var renderableColor = {
1942− render: function(v) {
1943− return "rgba(" + (show2(v.r) + ("," + (show2(v.g) + ("," + (show2(v.b) + ("," + (show1(v.a) + ")")))))));
1944− }
1945− };
1946− var monoidUIWith = function(dictMonoid) {
1947− var mempty42 = mempty(monoidRecord2(monoidRecordCons2(dictMonoid)()(monoidRecordCons1)));
1948− var semigroupUIWith1 = semigroupUIWith(dictMonoid.Semigroup0());
1949− return function(dictMonoid1) {
1950− var semigroupUIWith2 = semigroupUIWith1(dictMonoid1.Semigroup0());
2346+ var semigroupGenericUI = function(dictSemigroup) {
2347+ var append3 = append(semigroupRecord3(semigroupRecordCons2(dictSemigroup)));
2348+ return function(dictSemigroup1) {
2349+ var append4 = append(dictSemigroup1);
19512350 return {
1952− mempty: new UI(mempty42, mempty(dictMonoid1)),
1953− Semigroup0: function() {
1954− return semigroupUIWith2;
2351+ append: function(v) {
2352+ return function(v1) {
2353+ return new UI(append3(v.value0)(v1.value0), append4(v.value1)(v1.value1));
2354+ };
19552355 }
19562356 };
19572357 };
19582358 };
1959− var monoidSkin = {
2359+ var renderableColor = {
2360+ render: function(v) {
2361+ return "rgba(" + (show2(v.r) + ("," + (show2(v.g) + ("," + (show2(v.b) + ("," + (show1(v.a) + ")")))))));
2362+ },
2363+ renderKey: function(v) {
2364+ return show2(v.r) + ("-" + (show2(v.g) + ("-" + (show2(v.b) + ("-" + show1(v.a))))));
2365+ }
2366+ };
2367+ var monoidSkinGrowth = {
19602368 mempty: empty2,
19612369 Semigroup0: function() {
1962− return semigroupSkin;
2370+ return semigroupSkinGrowth;
19632371 }
19642372 };
1965− var mempty22 = /* @__PURE__ */ mempty(monoidSkin);
1966− var foldMap3 = /* @__PURE__ */ foldMap2(monoidSkin);
2373+ var tell2 = /* @__PURE__ */ tell(/* @__PURE__ */ monadTellWriterT(monoidSkinGrowth)(monadIdentity));
2374+ var applicativeWriterT2 = /* @__PURE__ */ applicativeWriterT(monoidSkinGrowth)(applicativeIdentity);
2375+ var pure2 = /* @__PURE__ */ pure(applicativeWriterT2);
2376+ var mempty22 = /* @__PURE__ */ mempty(/* @__PURE__ */ monoidWriterT(applicativeIdentity)(monoidSkinGrowth)(monoidArray));
2377+ var traverse2 = /* @__PURE__ */ traverse(traversableArray)(applicativeWriterT2);
19672378 var monoidMutation = {
19682379 mempty: {
1969− extraSkin: mempty22
2380+ extraSkin: mempty2
19702381 },
19712382 Semigroup0: function() {
19722383 return semigroupMutation;
19732384 }
19742385 };
19752386 var mempty3 = /* @__PURE__ */ mempty(monoidMutation);
1976− var functorUIWith = {
2387+ var monoidGenericUI = function(dictMonoid) {
2388+ var mempty42 = mempty(monoidRecord2(monoidRecordCons2(dictMonoid)()(monoidRecordCons1)));
2389+ var semigroupGenericUI1 = semigroupGenericUI(dictMonoid.Semigroup0());
2390+ return function(dictMonoid1) {
2391+ var semigroupGenericUI2 = semigroupGenericUI1(dictMonoid1.Semigroup0());
2392+ return {
2393+ mempty: new UI(mempty42, mempty(dictMonoid1)),
2394+ Semigroup0: function() {
2395+ return semigroupGenericUI2;
2396+ }
2397+ };
2398+ };
2399+ };
2400+ var functorGenericUI = {
19772401 map: function(f) {
19782402 return function(v) {
19792403 return new UI(v.value0, f(v.value1));
19802404 };
19812405 }
19822406 };
1983− var applyUIWith = function(dictMonoid) {
2407+ var applyGenericUI = function(dictMonoid) {
19842408 var append3 = append(semigroupRecord3(semigroupRecordCons2(dictMonoid.Semigroup0())));
19852409 return {
19862410 apply: function(v) {
@@ -1989,13 +2413,13 @@
19892413 };
19902414 },
19912415 Functor0: function() {
1992− return functorUIWith;
2416+ return functorGenericUI;
19932417 }
19942418 };
19952419 };
1996− var bindUIWith = function(dictMonoid) {
2420+ var bindGenericUI = function(dictMonoid) {
19972421 var append3 = append(semigroupRecord3(semigroupRecordCons2(dictMonoid.Semigroup0())));
1998− var applyUIWith1 = applyUIWith(dictMonoid);
2422+ var applyGenericUI1 = applyGenericUI(dictMonoid);
19992423 return {
20002424 bind: function(v) {
20012425 return function(f) {
@@ -2004,28 +2428,49 @@
20042428 };
20052429 },
20062430 Apply0: function() {
2007− return applyUIWith1;
2431+ return applyGenericUI1;
20082432 }
20092433 };
20102434 };
20112435 var text = function(s) {
20122436 return function(v) {
20132437 return new UI({
2014− nerves: mempty2.nerves,
2015− meat: mempty2.meat,
2016− children: [{
2438+ nerves: mempty1.nerves,
2439+ meat: mempty1.meat,
2440+ hover: mempty1.hover,
2441+ down: mempty1.down,
2442+ children: [new Tuple({
20172443 meat: v.value0.meat,
20182444 nerves: v.value0.nerves,
2019− bones: new Text(s)
2020− }]
2445+ hover: v.value0.hover,
2446+ down: v.value0.down
2447+ }, new Text(s))]
20212448 }, v.value1);
20222449 };
20232450 };
2024− var sk = function(key) {
2025− return function(val) {
2026− return singleton2(key)(val);
2451+ var styleSkinGrowth = function(v) {
2452+ return foldMap3(function(className) {
2453+ return function(v1) {
2454+ return "." + (className + ("{" + (v1.key + (":" + (v1.value + ";}")))));
2455+ };
2456+ })(v);
2457+ };
2458+ var sk = function(cName) {
2459+ return function(key) {
2460+ return function(value12) {
2461+ return discard2(tell2(singleton2(cName)({
2462+ key,
2463+ value: value12
2464+ })))(function() {
2465+ return pure2([cName]);
2466+ });
2467+ };
20272468 };
20282469 };
2470+ var renderKey = function(dict) {
2471+ return dict.renderKey;
2472+ };
2473+ var renderKey1 = /* @__PURE__ */ renderKey(renderableColor);
20292474 var render = function(dict) {
20302475 return dict.render;
20312476 };
@@ -2052,18 +2497,42 @@
20522497 return "min(" + (show2(v.value0) + ("px," + (render(renderableLength)(v.value1) + ")")));
20532498 }
20542499 ;
2055− throw new Error("Failed pattern match at Plum.View (line 258, column 12 - line 263, column 62): " + [v.constructor.name]);
2500+ throw new Error("Failed pattern match at Plum.View (line 295, column 12 - line 300, column 62): " + [v.constructor.name]);
2501+ },
2502+ renderKey: function(v) {
2503+ if (v instanceof Px) {
2504+ return show2(v.value0);
2505+ }
2506+ ;
2507+ if (v instanceof Fit) {
2508+ return "fit-content";
2509+ }
2510+ ;
2511+ if (v instanceof Fill) {
2512+ return "fill";
2513+ }
2514+ ;
2515+ if (v instanceof Max2) {
2516+ return "max-" + (show2(v.value0) + ("-" + renderKey(renderableLength)(v.value1)));
2517+ }
2518+ ;
2519+ if (v instanceof Min2) {
2520+ return "min-" + (show2(v.value0) + ("-" + renderKey(renderableLength)(v.value1)));
2521+ }
2522+ ;
2523+ throw new Error("Failed pattern match at Plum.View (line 301, column 15 - line 306, column 56): " + [v.constructor.name]);
20562524 }
20572525 };
2526+ var renderKey2 = /* @__PURE__ */ renderKey(renderableLength);
20582527 var render2 = /* @__PURE__ */ render(renderableLength);
20592528 var skin = function(ctx) {
20602529 return function(v) {
20612530 if (v instanceof Spacing) {
2062− return sk("gap")(show2(v.value0) + ("px " + (show2(v.value1) + "px")));
2531+ return sk("spacing-" + (show2(v.value0) + ("-" + show2(v.value1))))("gap")(show2(v.value0) + ("px " + (show2(v.value1) + "px")));
20632532 }
20642533 ;
20652534 if (v instanceof Explain) {
2066− return sk("border")("dashed magenta");
2535+ return sk("explain")("border")("dashed magenta");
20672536 }
20682537 ;
20692538 if (v instanceof Align) {
@@ -2076,17 +2545,7 @@
20762545 }
20772546 ;
20782547 if (ctx instanceof Grid) {
2079− return sk(function() {
2080− if (v.value0 instanceof X) {
2081− return "justify-items";
2082− }
2083− ;
2084− if (v.value0 instanceof Y) {
2085− return "align-items";
2086− }
2087− ;
2088− throw new Error("Failed pattern match at Plum.View (line 215, column 9 - line 217, column 29): " + [v.value0.constructor.name]);
2089− }())(function() {
2548+ var v1 = function() {
20902549 if (v.value1 instanceof Start) {
20912550 return "start";
20922551 }
@@ -2099,121 +2558,135 @@
20992558 return "end";
21002559 }
21012560 ;
2102− throw new Error("Failed pattern match at Plum.View (line 219, column 9 - line 222, column 23): " + [v.value1.constructor.name]);
2103− }());
2561+ throw new Error("Failed pattern match at Plum.View (line 244, column 13 - line 247, column 27): " + [v.value1.constructor.name]);
2562+ }();
2563+ var k = function() {
2564+ if (v.value0 instanceof X) {
2565+ return "justify-items";
2566+ }
2567+ ;
2568+ if (v.value0 instanceof Y) {
2569+ return "align-items";
2570+ }
2571+ ;
2572+ throw new Error("Failed pattern match at Plum.View (line 239, column 13 - line 241, column 33): " + [v.value0.constructor.name]);
2573+ }();
2574+ return sk("align-grid-" + (k + ("-" + v1)))(k)(v1);
21042575 }
21052576 ;
21062577 if (ctx instanceof Flexbox) {
2107− return sk(function() {
2108− var v1 = new Tuple(ctx.value0, v.value0);
2109− if (v1.value0 instanceof X && v1.value1 instanceof X) {
2110− return "justify-content";
2578+ var v1 = function() {
2579+ if (v.value1 instanceof Start) {
2580+ return "flex-start";
21112581 }
21122582 ;
2113− if (v1.value0 instanceof X && v1.value1 instanceof Y) {
2114− return "align-items";
2583+ if (v.value1 instanceof Center) {
2584+ return "center";
21152585 }
21162586 ;
2117− if (v1.value0 instanceof Y && v1.value1 instanceof X) {
2118− return "align-items";
2587+ if (v.value1 instanceof End) {
2588+ return "flex-end";
21192589 }
21202590 ;
2121− if (v1.value0 instanceof Y && v1.value1 instanceof Y) {
2591+ throw new Error("Failed pattern match at Plum.View (line 263, column 13 - line 266, column 32): " + [v.value1.constructor.name]);
2592+ }();
2593+ var k = function() {
2594+ var v2 = new Tuple(ctx.value0, v.value0);
2595+ if (v2.value0 instanceof X && v2.value1 instanceof X) {
21222596 return "justify-content";
21232597 }
21242598 ;
2125− throw new Error("Failed pattern match at Plum.View (line 226, column 9 - line 230, column 38): " + [v1.constructor.name]);
2126− }())(function() {
2127− if (v.value1 instanceof Start) {
2128− return "flex-start";
2599+ if (v2.value0 instanceof X && v2.value1 instanceof Y) {
2600+ return "align-items";
21292601 }
21302602 ;
2131− if (v.value1 instanceof Center) {
2132− return "center";
2603+ if (v2.value0 instanceof Y && v2.value1 instanceof X) {
2604+ return "align-items";
21332605 }
21342606 ;
2135− if (v.value1 instanceof End) {
2136− return "flex-end";
2607+ if (v2.value0 instanceof Y && v2.value1 instanceof Y) {
2608+ return "justify-content";
21372609 }
21382610 ;
2139− throw new Error("Failed pattern match at Plum.View (line 232, column 9 - line 235, column 28): " + [v.value1.constructor.name]);
2140− }());
2611+ throw new Error("Failed pattern match at Plum.View (line 255, column 13 - line 259, column 42): " + [v2.constructor.name]);
2612+ }();
2613+ return sk("align-flexbox-" + (k + ("-" + v1)))(k)(v1);
21412614 }
21422615 ;
2143− throw new Error("Failed pattern match at Plum.View (line 211, column 26 - line 236, column 8): " + [ctx.constructor.name]);
2616+ throw new Error("Failed pattern match at Plum.View (line 233, column 26 - line 269, column 51): " + [ctx.constructor.name]);
21442617 }
21452618 ;
21462619 if (v instanceof Width) {
2147− return sk("width")(render2(v.value0));
2620+ return sk("width-" + renderKey2(v.value0))("width")(render2(v.value0));
21482621 }
21492622 ;
21502623 if (v instanceof Height) {
2151− return sk("height")(render2(v.value0));
2624+ return sk("width-" + renderKey2(v.value0))("height")(render2(v.value0));
21522625 }
21532626 ;
21542627 if (v instanceof Wrapped) {
21552628 if (ctx instanceof Flexbox) {
2156− return sk("flex-wrap")("wrap");
2629+ return sk("wrapped")("flex-wrap")("wrap");
21572630 }
21582631 ;
2159− return mempty22;
2632+ return pure2([]);
21602633 }
21612634 ;
21622635 if (v instanceof BackgroundColor) {
2163− return sk("background-color")(render1(v.value0));
2636+ return sk("bg-color-" + renderKey1(v.value0))("background-color")(render1(v.value0));
21642637 }
21652638 ;
21662639 if (v instanceof Padding) {
2167− return sk("padding")(show2(v.value0.top) + ("px " + (show2(v.value0.right) + ("px " + (show2(v.value0.bottom) + ("px " + (show2(v.value0.left) + "px")))))));
2640+ return sk("padding-" + (show2(v.value0.top) + ("-" + (show2(v.value0.right) + ("-" + (show2(v.value0.bottom) + ("-" + show2(v.value0.left))))))))("padding")(show2(v.value0.top) + ("px " + (show2(v.value0.right) + ("px " + (show2(v.value0.bottom) + ("px " + (show2(v.value0.left) + "px")))))));
21682641 }
21692642 ;
21702643 if (v instanceof Spread) {
21712644 if (ctx instanceof Flexbox) {
2172− return sk("justify-content")("space-between");
2645+ return sk("spread")("justify-content")("space-between");
21732646 }
21742647 ;
2175− return mempty22;
2648+ return pure2([]);
21762649 }
21772650 ;
21782651 if (v instanceof Opacity) {
2179− return sk("opacity")(show1(v.value0));
2652+ return sk("opacity-" + show1(v.value0))("opacity")(show1(v.value0));
21802653 }
21812654 ;
21822655 if (v instanceof Pointer) {
2183− return sk("cursor")("pointer");
2656+ return sk("pointer")("cursor")("pointer");
21842657 }
21852658 ;
21862659 if (v instanceof Move) {
2187− return sk("transform")("translate(" + (show2(v.value0.x) + ("px, " + (show2(v.value0.y) + ")"))));
2660+ return sk("move-" + (show2(v.value0.x) + ("-" + show2(v.value0.y))))("transform")("translate(" + (show2(v.value0.x) + ("px, " + (show2(v.value0.y) + "px)"))));
21882661 }
21892662 ;
21902663 if (v instanceof Clip && v.value0 instanceof X) {
2191− return sk("overflow-x")("hidden");
2664+ return sk("clip-x")("overflow-x")("hidden");
21922665 }
21932666 ;
21942667 if (v instanceof Clip && v.value0 instanceof Y) {
2195− return sk("overflow-y")("hidden");
2668+ return sk("clip-y")("overflow-y")("hidden");
21962669 }
21972670 ;
2198− throw new Error("Failed pattern match at Plum.View (line 208, column 12 - line 252, column 37): " + [v.constructor.name]);
2671+ throw new Error("Failed pattern match at Plum.View (line 230, column 12 - line 288, column 46): " + [v.constructor.name]);
21992672 };
22002673 };
22012674 var hWith = function(elem2) {
22022675 return function(props) {
2203− return function(v) {
2676+ return function(classes) {
22042677 return function(children) {
22052678 return h2(elem2)(unsafeUnion(props)({
2206− styles: v
2679+ "class": intercalate3(" ")(classes)
22072680 }))(children);
22082681 };
22092682 };
22102683 };
22112684 };
22122685 var h3 = function(elem2) {
2213− return function(v) {
2686+ return function(classes) {
22142687 return function(children) {
22152688 return h2(elem2)({
2216− styles: v
2689+ "class": intercalate3(" ")(classes)
22172690 })(children);
22182691 };
22192692 };
@@ -2224,9 +2697,13 @@
22242697 var widthFill = [new Width(Fill.value), new Height(Fill.value)];
22252698 var alignCenter = [new Align(X.value, Center.value), new Align(Y.value, Center.value)];
22262699 var skn = function(ctx) {
2227− return append22(foldMap3(skin(ctx))(append1(v1.meat)(append1(function() {
2700+ return map2(function($424) {
2701+ return function(v2) {
2702+ return append2(v2)(v.extraSkin);
2703+ }(concat($424));
2704+ })(traverse2(skin(ctx))(append2(v1.value0.meat)(append2(function() {
22282705 if (ctx instanceof Span) {
2229− return mempty1;
2706+ return mempty2;
22302707 }
22312708 ;
22322709 if (ctx instanceof Grid) {
@@ -2241,7 +2718,7 @@
22412718 return widthFill;
22422719 }
22432720 ;
2244− throw new Error("Failed pattern match at Plum.View (line 310, column 16 - line 314, column 35): " + [ctx.constructor.name]);
2721+ throw new Error("Failed pattern match at Plum.View (line 368, column 16 - line 372, column 35): " + [ctx.constructor.name]);
22452722 }())(function() {
22462723 if (ctx instanceof Grid) {
22472724 return alignCenter;
@@ -2252,88 +2729,125 @@
22522729 }
22532730 ;
22542731 if (ctx instanceof Span) {
2255− return mempty1;
2732+ return mempty2;
22562733 }
22572734 ;
22582735 if (ctx instanceof Generic) {
22592736 return alignCenter;
22602737 }
22612738 ;
2262− throw new Error("Failed pattern match at Plum.View (line 315, column 16 - line 319, column 37): " + [ctx.constructor.name]);
2263− }()))))(v.extraSkin);
2739+ throw new Error("Failed pattern match at Plum.View (line 373, column 16 - line 377, column 37): " + [ctx.constructor.name]);
2740+ }()))));
22642741 };
2265− if (v1.bones instanceof Text) {
2266− return h3("span")(skn(Span.value))([string(v1.bones.value0)]);
2742+ if (v1.value1 instanceof Text) {
2743+ return map2(function(c) {
2744+ return h3("span")(c)([string(v1.value1.value0)]);
2745+ })(skn(Span.value));
22672746 }
22682747 ;
2269− if (v1.bones instanceof Wrapper) {
2270− return h3("div")(append22(skn(new Flexbox(X.value)))(append22(sk("display")("flex"))(sk("flex-direction")("row"))))([growSkin(fire)(mempty3)(v1.bones.value0)]);
2748+ if (v1.value1 instanceof Wrapper) {
2749+ return bind2(append22(skn(new Flexbox(X.value)))(append22(sk("display-flex")("display")("flex"))(sk("flex-direction-row")("flex-direction")("row"))))(function(classes) {
2750+ return bind2(growSkin(fire)(mempty3)(v1.value1.value0))(function(x$prime) {
2751+ return pure2(h3("div")(classes)([x$prime]));
2752+ });
2753+ });
22712754 }
22722755 ;
2273− if (v1.bones instanceof Stack) {
2274− return h3("div")(append22(skn(Grid.value))(sk("display")("grid")))(map2(growSkin(fire)({
2275− extraSkin: append22(sk("grid-row")("1"))(sk("grid-column")("1"))
2276− }))(v1.bones.value0));
2756+ if (v1.value1 instanceof Stack) {
2757+ return bind2(append22(skn(Grid.value))(sk("display-grid")("display")("grid")))(function(classes) {
2758+ return bind2(append22(sk("grid-row-1")("grid-row")("1"))(sk("grid-column-1")("grid-column")("1")))(function(extraSkin) {
2759+ return bind2(traverse2(growSkin(fire)({
2760+ extraSkin
2761+ }))(v1.value1.value0))(function(children$prime) {
2762+ return pure2(h3("div")(classes)(children$prime));
2763+ });
2764+ });
2765+ });
22772766 }
22782767 ;
2279− if (v1.bones instanceof Row) {
2280− return h3("div")(append22(skn(new Flexbox(X.value)))(append22(sk("display")("flex"))(sk("flex-direction")("row"))))(map2(growSkin(fire)(mempty3))(v1.bones.value0));
2768+ if (v1.value1 instanceof Row) {
2769+ return bind2(append22(skn(new Flexbox(X.value)))(append22(sk("display-flex")("display")("flex"))(sk("flex-direction-row")("flex-direction")("row"))))(function(classes) {
2770+ return bind2(traverse2(growSkin(fire)(mempty3))(v1.value1.value0))(function(children$prime) {
2771+ return pure2(h3("div")(classes)(children$prime));
2772+ });
2773+ });
22812774 }
22822775 ;
2283− if (v1.bones instanceof Column) {
2284− return h3("div")(append22(skn(new Flexbox(Y.value)))(append22(sk("display")("flex"))(sk("flex-direction")("column"))))(map2(growSkin(fire)(mempty3))(v1.bones.value0));
2776+ if (v1.value1 instanceof Column) {
2777+ return bind2(append22(skn(new Flexbox(Y.value)))(append22(sk("display-flex")("display")("flex"))(sk("flex-direction-column")("flex-direction")("column"))))(function(classes) {
2778+ return bind2(traverse2(growSkin(fire)(mempty3))(v1.value1.value0))(function(children$prime) {
2779+ return pure2(h3("div")(classes)(children$prime));
2780+ });
2781+ });
22852782 }
22862783 ;
2287− if (v1.bones instanceof Link) {
2288− return hWith("a")({
2289− href: v1.bones.value0,
2290− rel: "noopener noreferrer",
2291− target: function() {
2292− if (v1.bones.value1.newTab) {
2293− return "_blank";
2294− }
2295− ;
2296− return "_self";
2297− }()
2298− })(append22(skn(new Flexbox(X.value)))(append22(sk("display")("flex"))(sk("flex-direction")("row"))))([growSkin(fire)(mempty3)(v1.bones.value2)]);
2784+ if (v1.value1 instanceof Link) {
2785+ return bind2(append22(skn(new Flexbox(X.value)))(append22(sk("display-flex")("display")("flex"))(sk("flex-direction-row")("flex-direction")("row"))))(function(classes) {
2786+ return bind2(growSkin(fire)(mempty3)(v1.value1.value2))(function(child$prime) {
2787+ return pure2(hWith("a")({
2788+ href: v1.value1.value0,
2789+ rel: "noopener noreferrer",
2790+ target: function() {
2791+ if (v1.value1.value1.newTab) {
2792+ return "_blank";
2793+ }
2794+ ;
2795+ return "_self";
2796+ }()
2797+ })(classes)([child$prime]));
2798+ });
2799+ });
22992800 }
23002801 ;
2301− if (v1.bones instanceof Download) {
2302− return hWith("a")({
2303− href: v1.bones.value0,
2304− download: fromMaybe("")(v1.bones.value1.filename)
2305− })(append22(skn(new Flexbox(X.value)))(append22(sk("display")("flex"))(sk("flex-direction")("row"))))([growSkin(fire)(mempty3)(v1.bones.value2)]);
2802+ if (v1.value1 instanceof Download) {
2803+ return bind2(append22(skn(new Flexbox(X.value)))(append22(sk("display-flex")("display")("flex"))(sk("flex-direction-row")("flex-direction")("row"))))(function(classes) {
2804+ return bind2(growSkin(fire)(mempty3)(v1.value1.value2))(function(child$prime) {
2805+ return pure2(hWith("a")({
2806+ href: v1.value1.value0,
2807+ download: fromMaybe("")(v1.value1.value1.filename)
2808+ })(classes)([child$prime]));
2809+ });
2810+ });
23062811 }
23072812 ;
2308− if (v1.bones instanceof Image2) {
2309− return hWith("img")({
2310− src: v1.bones.value0,
2311− alt: v1.bones.value1.description
2312− })(skn(Generic.value))([]);
2813+ if (v1.value1 instanceof Image2) {
2814+ return map2(function(c) {
2815+ return hWith("img")({
2816+ src: v1.value1.value0,
2817+ alt: v1.value1.value1.description
2818+ })(c)([]);
2819+ })(skn(Generic.value));
23132820 }
23142821 ;
2315− if (v1.bones instanceof None) {
2316− return h3("div")(mempty22)([]);
2822+ if (v1.value1 instanceof None) {
2823+ return pure2(h3("div")(mempty2)([]));
23172824 }
23182825 ;
2319− throw new Error("Failed pattern match at Plum.View (line 322, column 5 - line 346, column 32): " + [v1.bones.constructor.name]);
2826+ throw new Error("Failed pattern match at Plum.View (line 380, column 3 - line 421, column 37): " + [v1.value1.constructor.name]);
23202827 };
23212828 };
23222829 };
23232830 var grow = function(fire) {
23242831 return function(v) {
2325− return growSkin(fire)(mempty3)(v);
2832+ var v1 = runWriter(growSkin(fire)(mempty3)(v));
2833+ return {
2834+ node: v1.value0,
2835+ style: styleSkinGrowth(v1.value1)
2836+ };
23262837 };
23272838 };
23282839 var column = function(v) {
23292840 return new UI({
2330− nerves: mempty2.nerves,
2331− meat: mempty2.meat,
2332− children: [{
2841+ nerves: mempty1.nerves,
2842+ meat: mempty1.meat,
2843+ hover: mempty1.hover,
2844+ down: mempty1.down,
2845+ children: [new Tuple({
23332846 meat: v.value0.meat,
23342847 nerves: v.value0.nerves,
2335− bones: new Column(v.value0.children)
2336− }]
2848+ hover: v.value0.hover,
2849+ down: v.value0.down
2850+ }, new Column(v.value0.children))]
23372851 }, v.value1);
23382852 };
23392853
@@ -2382,39 +2896,46 @@
23822896 }
23832897
23842898 // output/Plum/index.js
2385− var bind2 = /* @__PURE__ */ bind(bindEffect);
2386− var map4 = /* @__PURE__ */ map(functorArray);
2899+ var bind3 = /* @__PURE__ */ bind(bindEffect);
23872900 var outerStyle = "html,body{height:100%;padding:0;margin:0;}";
23882901 var run3 = function(id) {
23892902 return function(plum2) {
23902903 return function __do() {
2391− var modelRef = bind2(plum2.init)($$new)();
2392− var v = bind2(bind2(windowImpl)(document2))(function() {
2393− var $12 = getElementById(id);
2394− return function($13) {
2395− return $12(toNonElementParentNode($13));
2904+ var modelRef = bind3(plum2.init)($$new)();
2905+ var v = bind3(bind3(windowImpl)(document2))(function() {
2906+ var $21 = getElementById(id);
2907+ return function($22) {
2908+ return $21(toNonElementParentNode($22));
23962909 };
23972910 }())();
23982911 if (v instanceof Just) {
23992912 var projector = createProjector();
24002913 return replace(projector)(v.value0)(function __do2() {
24012914 var model = read(modelRef)();
2402− var el = map4(grow(function(msg) {
2403− return function __do3() {
2404− var m = read(modelRef)();
2405− var m_ = plum2.update(msg)(m)();
2406− return write(m_)(modelRef)();
2407− };
2408− }))(function() {
2409− var v1 = plum2.view(model);
2410− return v1.value0.children;
2411− }());
2412− return h2("div")({
2413− styles: {
2414− height: "100%",
2415− width: "100%"
2416− }
2417− })(cons(h2("style")({})([string(outerStyle)]))(el));
2915+ var v1 = plum2.view(model);
2916+ var v2 = head(v1.value0.children);
2917+ if (v2 instanceof Nothing) {
2918+ return h2("div")({})([]);
2919+ }
2920+ ;
2921+ if (v2 instanceof Just) {
2922+ var v3 = grow(function(msg) {
2923+ return function __do3() {
2924+ var m = read(modelRef)();
2925+ var m_ = plum2.update(msg)(m)();
2926+ write(m_)(modelRef)();
2927+ return scheduleRender(projector)();
2928+ };
2929+ })(v2.value0);
2930+ return h2("div")({
2931+ styles: {
2932+ height: "100%",
2933+ width: "100%"
2934+ }
2935+ })([h2("style")({})([string(outerStyle + v3.style)]), v3.node]);
2936+ }
2937+ ;
2938+ throw new Error("Failed pattern match at Plum (line 35, column 20 - line 52, column 94): " + [v2.constructor.name]);
24182939 })();
24192940 }
24202941 ;
@@ -2422,27 +2943,27 @@
24222943 return unit;
24232944 }
24242945 ;
2425− throw new Error("Failed pattern match at Plum (line 26, column 92 - line 42, column 25): " + [v.constructor.name]);
2946+ throw new Error("Failed pattern match at Plum (line 26, column 92 - line 54, column 25): " + [v.constructor.name]);
24262947 };
24272948 };
24282949 };
24292950
24302951 // output/Main/index.js
2431− var pure2 = /* @__PURE__ */ pure(applicativeEffect);
2432− var discard2 = /* @__PURE__ */ discard(discardUnit)(/* @__PURE__ */ bindUIWith(monoidArray));
2433− var mempty4 = /* @__PURE__ */ mempty(/* @__PURE__ */ monoidUIWith(monoidUnit)(monoidUnit));
2952+ var pure3 = /* @__PURE__ */ pure(applicativeEffect);
2953+ var discard3 = /* @__PURE__ */ discard(discardUnit)(/* @__PURE__ */ bindGenericUI(monoidArray));
2954+ var mempty4 = /* @__PURE__ */ mempty(/* @__PURE__ */ monoidGenericUI(monoidUnit)(monoidUnit));
24342955 var plum = {
2435− init: /* @__PURE__ */ pure2({
2956+ init: /* @__PURE__ */ pure3({
24362957 text: "Test"
24372958 }),
24382959 view: function(model) {
2439− return column(discard2(text("hi")(mempty4))(function() {
2960+ return column(discard3(text("hi")(mempty4))(function() {
24402961 return text("hello")(mempty4);
24412962 }));
24422963 },
24432964 update: function(msg) {
24442965 return function(model) {
2445− return pure2({
2966+ return pure3({
24462967 text: "Button pressed"
24472968 });
24482969 };