@@ -1983,6 +1983,9 @@
1986+ function _lookup(no, yes, k, m2) {
1987+ return k in m2 ? yes(m2[k]) : no;
1986 function toArrayWithKey(f) {
1989 function toArrayWithKey(f) {
1987 return function(m2) {
1990 return function(m2) {
1988 var r = [];
1991 var r = [];
@@ -2083,6 +2086,37 @@
2083 })(s)(m2);
2086 })(s)(m2);
2089+ var unionWith = function(f) {
2090+ return function(m1) {
2091+ return function(m2) {
2092+ return mutate(function(s1) {
2093+ return foldM1(function(s2) {
2094+ return function(k) {
2095+ return function(v1) {
2096+ return poke2(k)(_lookup(v1, function(v2) {
2106+ var semigroupObject = function(dictSemigroup) {
2108+ append: unionWith(append(dictSemigroup))
2111+ var monoidObject = function(dictSemigroup) {
2112+ var semigroupObject1 = semigroupObject(dictSemigroup);
2115+ Semigroup0: function() {
2116+ return semigroupObject1;
2086 var fold2 = /* @__PURE__ */ _foldM(applyFlipped);
2120 var fold2 = /* @__PURE__ */ _foldM(applyFlipped);
2087 var foldMap2 = function(dictMonoid) {
2121 var foldMap2 = function(dictMonoid) {
2088 var append1 = append(dictMonoid.Semigroup0());
2122 var append1 = append(dictMonoid.Semigroup0());
@@ -2232,11 +2266,23 @@
2233 var semigroupRecordCons2 = /* @__PURE__ */ semigroupRecordCons(childrenIsSymbol)()(/* @__PURE__ */ semigroupRecordCons(downIsSymbol)()(/* @__PURE__ */ semigroupRecordCons(hoverIsSymbol)()(/* @__PURE__ */ semigroupRecordCons(meatIsSymbol)()(/* @__PURE__ */ semigroupRecordCons(nervesIsSymbol)()(semigroupRecordNil)(semigroupArray))(semigroupArray))(semigroupArray))(semigroupArray));
2267 var semigroupRecordCons2 = /* @__PURE__ */ semigroupRecordCons(childrenIsSymbol)()(/* @__PURE__ */ semigroupRecordCons(downIsSymbol)()(/* @__PURE__ */ semigroupRecordCons(hoverIsSymbol)()(/* @__PURE__ */ semigroupRecordCons(meatIsSymbol)()(/* @__PURE__ */ semigroupRecordCons(nervesIsSymbol)()(semigroupRecordNil)(semigroupArray))(semigroupArray))(semigroupArray))(semigroupArray));
2234 var show2 = /* @__PURE__ */ show(showInt);
2268 var show2 = /* @__PURE__ */ show(showInt);
2235− var mempty2 = /* @__PURE__ */ mempty(monoidArray);
2236 var monoidRecord2 = /* @__PURE__ */ monoidRecord();
2269 var monoidRecord2 = /* @__PURE__ */ monoidRecord();
2237− var monoidRecordCons2 = /* @__PURE__ */ monoidRecordCons(childrenIsSymbol);
2270+ var monoidRecordCons2 = /* @__PURE__ */ monoidRecordCons(downIsSymbol);
2238− var monoidRecordCons1 = /* @__PURE__ */ monoidRecordCons(downIsSymbol)(monoidArray)()(/* @__PURE__ */ monoidRecordCons(hoverIsSymbol)(monoidArray)()(/* @__PURE__ */ monoidRecordCons(meatIsSymbol)(monoidArray)()(/* @__PURE__ */ monoidRecordCons(nervesIsSymbol)(monoidArray)()(monoidRecordNil))));
2271+ var monoidObject2 = /* @__PURE__ */ monoidObject(/* @__PURE__ */ semigroupRecord3(/* @__PURE__ */ semigroupRecordCons({
2272+ reflectSymbol: function() {
2275+ })()(/* @__PURE__ */ semigroupRecordCons({
2276+ reflectSymbol: function() {
2279+ })()(semigroupRecordNil)(semigroupString))(semigroupString)));
2280+ var monoidRecordCons1 = /* @__PURE__ */ monoidRecordCons(hoverIsSymbol);
2281+ var monoidRecordCons22 = /* @__PURE__ */ monoidRecordCons(meatIsSymbol);
2282+ var mempty2 = /* @__PURE__ */ mempty(monoidArray);
2283+ var monoidRecordCons3 = /* @__PURE__ */ monoidRecordCons(childrenIsSymbol);
2284+ var monoidRecordCons4 = /* @__PURE__ */ monoidRecordCons2(monoidArray)()(/* @__PURE__ */ monoidRecordCons1(monoidArray)()(/* @__PURE__ */ monoidRecordCons22(monoidArray)()(/* @__PURE__ */ monoidRecordCons(nervesIsSymbol)(monoidArray)()(monoidRecordNil))));
2239− var mempty1 = /* @__PURE__ */ mempty(/* @__PURE__ */ monoidRecord2(/* @__PURE__ */ monoidRecordCons2(monoidArray)()(monoidRecordCons1)));
2285+ var mempty1 = /* @__PURE__ */ mempty(/* @__PURE__ */ monoidRecord2(/* @__PURE__ */ monoidRecordCons3(monoidArray)()(monoidRecordCons4)));
2240 var foldMap3 = /* @__PURE__ */ foldMap2(monoidString);
2286 var foldMap3 = /* @__PURE__ */ foldMap2(monoidString);
2241 var show1 = /* @__PURE__ */ show(showNumber);
2287 var show1 = /* @__PURE__ */ show(showNumber);
2242 var mempty22 = /* @__PURE__ */ mempty(monoidUnit);
2288 var mempty22 = /* @__PURE__ */ mempty(monoidUnit);
@@ -2632,7 +2678,11 @@
2632 var semigroupSkinGrowth = {
2678 var semigroupSkinGrowth = {
2633 append: function(v) {
2679 append: function(v) {
2634 return function(v1) {
2680 return function(v1) {
2635− return union(v)(v1);
2681+ return {
2682+ meat: union(v.meat)(v1.meat),
2683+ hover: union(v.hover)(v1.hover),
2684+ down: union(v.down)(v1.down)
@@ -2711,7 +2761,7 @@
2713 var monoidSkinGrowth = {
2763 var monoidSkinGrowth = {
2714− mempty: empty2,
2764+ mempty: /* @__PURE__ */ mempty(/* @__PURE__ */ monoidRecord2(/* @__PURE__ */ monoidRecordCons2(monoidObject2)()(/* @__PURE__ */ monoidRecordCons1(monoidObject2)()(/* @__PURE__ */ monoidRecordCons22(monoidObject2)()(monoidRecordNil))))),
2715 Semigroup0: function() {
2765 Semigroup0: function() {
2716 return semigroupSkinGrowth;
2766 return semigroupSkinGrowth;
@@ -2732,7 +2782,7 @@
2733 var mempty4 = /* @__PURE__ */ mempty(monoidMutation);
2783 var mempty4 = /* @__PURE__ */ mempty(monoidMutation);
2734 var monoidGenericUI = function(dictMonoid) {
2784 var monoidGenericUI = function(dictMonoid) {
2735− var mempty52 = mempty(monoidRecord2(monoidRecordCons2(dictMonoid)()(monoidRecordCons1)));
2785+ var mempty52 = mempty(monoidRecord2(monoidRecordCons3(dictMonoid)()(monoidRecordCons4)));
2736 var semigroupGenericUI1 = semigroupGenericUI(dictMonoid.Semigroup0());
2786 var semigroupGenericUI1 = semigroupGenericUI(dictMonoid.Semigroup0());
2737 return function(dictMonoid1) {
2787 return function(dictMonoid1) {
2738 var semigroupGenericUI2 = semigroupGenericUI1(dictMonoid1.Semigroup0());
2788 var semigroupGenericUI2 = semigroupGenericUI1(dictMonoid1.Semigroup0());
@@ -2800,15 +2850,27 @@
2800 return function(v1) {
2850 return function(v1) {
2801 return "." + (className + ("{" + (v1.key + (":" + (v1.value + ";}")))));
2851 return "." + (className + ("{" + (v1.key + (":" + (v1.value + ";}")))));
2803− })(v);
2853+ })(v.meat) + (foldMap3(function(className) {
2854+ return function(v1) {
2855+ return "." + (className + ("{" + (v1.key + (":" + (v1.value + ";}")))));
2857+ })(v.hover) + foldMap3(function(className) {
2858+ return function(v1) {
2859+ return "." + (className + ("{" + (v1.key + (":" + (v1.value + ";}")))));
2805 var sk = function(cName) {
2863 var sk = function(cName) {
2806 return function(key) {
2864 return function(key) {
2807 return function(value12) {
2865 return function(value12) {
2808− return discard2(tell2(singleton2(cName)({
2866+ return discard2(tell2({
2867+ meat: singleton2(cName)({
2810− value: value12
2869+ value: value12
2811− })))(function() {
2873+ }))(function() {
2812 return pure2([cName]);
2874 return pure2([cName]);
@@ -3033,7 +3095,7 @@
3035 var onMouseDown = function(dictMonoid) {
3097 var onMouseDown = function(dictMonoid) {
3036− var mempty52 = mempty(monoidRecord2(monoidRecordCons2(dictMonoid)()(monoidRecordCons1)));
3098+ var mempty52 = mempty(monoidRecord2(monoidRecordCons3(dictMonoid)()(monoidRecordCons4)));
3037 return function(v) {
3099 return function(v) {
3038 return new UI({
3100 return new UI({
3039 nerves: mempty52.nerves,
3101 nerves: mempty52.nerves,
@@ -3045,7 +3107,7 @@
3047 var onHover = function(dictMonoid) {
3109 var onHover = function(dictMonoid) {
3048− var mempty52 = mempty(monoidRecord2(monoidRecordCons2(dictMonoid)()(monoidRecordCons1)));
3110+ var mempty52 = mempty(monoidRecord2(monoidRecordCons3(dictMonoid)()(monoidRecordCons4)));
3049 return function(v) {
3111 return function(v) {
3050 return new UI({
3112 return new UI({
3051 nerves: mempty52.nerves,
3113 nerves: mempty52.nerves,
@@ -3057,7 +3119,7 @@
3059 var m = function(dictMonoid) {
3121 var m = function(dictMonoid) {
3060− var mempty52 = mempty(monoidRecord2(monoidRecordCons2(dictMonoid)()(monoidRecordCons1)));
3122+ var mempty52 = mempty(monoidRecord2(monoidRecordCons3(dictMonoid)()(monoidRecordCons4)));
3061 return function(meat) {
3123 return function(meat) {
3062 return new UI({
3124 return new UI({
3063 nerves: mempty52.nerves,
3125 nerves: mempty52.nerves,
@@ -3094,10 +3156,10 @@
3094 var widthFill = [new Width(Fill.value), new Height(Fill.value)];
3156 var widthFill = [new Width(Fill.value), new Height(Fill.value)];
3095 var alignCenter = [new Align(X.value, Center.value), new Align(Y.value, Center.value)];
3157 var alignCenter = [new Align(X.value, Center.value), new Align(Y.value, Center.value)];
3096 var skn = function(ctx) {
3158 var skn = function(ctx) {
3097− return bind2(map2(function($482) {
3159+ return bind2(map2(function($513) {
3098 return function(v2) {
3160 return function(v2) {
3099 return append2(v2)(v.extraSkin);
3161 return append2(v2)(v.extraSkin);
3100− }(concat($482));
3162+ }(concat($513));
3101 })(traverse2(skin(ctx))(append2(v1.value0.meat)(append2(function() {
3163 })(traverse2(skin(ctx))(append2(v1.value0.meat)(append2(function() {
3102 if (ctx instanceof Span) {
3164 if (ctx instanceof Span) {
3103 return mempty2;
3165 return mempty2;
@@ -3115,7 +3177,7 @@
3115 return widthFill;
3177 return widthFill;
3118− throw new Error("Failed pattern match at Plum.View (line 435, column 16 - line 439, column 35): " + [ctx.constructor.name]);
3180+ throw new Error("Failed pattern match at Plum.View (line 445, column 16 - line 449, column 35): " + [ctx.constructor.name]);
3119 }())(function() {
3181 }())(function() {
3120 if (ctx instanceof Grid) {
3182 if (ctx instanceof Grid) {
3121 return alignCenter;
3183 return alignCenter;
@@ -3133,20 +3195,28 @@
3133 return alignCenter;
3195 return alignCenter;
3136− throw new Error("Failed pattern match at Plum.View (line 440, column 16 - line 444, column 37): " + [ctx.constructor.name]);
3198+ throw new Error("Failed pattern match at Plum.View (line 450, column 16 - line 454, column 37): " + [ctx.constructor.name]);
3137 }())))))(function(meatClasses) {
3199 }())))))(function(meatClasses) {
3138 var v2 = runWriter(traverse2(skin(ctx))(v1.value0.hover));
3200 var v2 = runWriter(traverse2(skin(ctx))(v1.value0.hover));
3139 return bind2(traverseWithIndex2(function(key) {
3201 return bind2(traverseWithIndex2(function(key) {
3140 return function(val) {
3202 return function(val) {
3141− return tell2(singleton2(key + "-hover:hover")(val));
3205+ hover: singleton2(key + "-hover:hover")(val),
3143− })(v2.value1))(function() {
3209+ })(v2.value1.meat))(function() {
3144 var v3 = runWriter(traverse2(skin(ctx))(v1.value0.down));
3210 var v3 = runWriter(traverse2(skin(ctx))(v1.value0.down));
3145 return bind2(traverseWithIndex2(function(key) {
3211 return bind2(traverseWithIndex2(function(key) {
3146 return function(val) {
3212 return function(val) {
3147− return tell2(singleton2(key + "-down:active")(val));
3216+ down: singleton2(key + "-down:active")(val)
3149− })(v3.value1))(function() {
3219+ })(v3.value1.meat))(function() {
3150 return pure2(append2(meatClasses)(append2(map1(function(v4) {
3220 return pure2(append2(meatClasses)(append2(map1(function(v4) {
3151 return v4 + "-hover";
3221 return v4 + "-hover";
3152 })(concat(v2.value0)))(map1(function(v4) {
3222 })(concat(v2.value0)))(map1(function(v4) {
@@ -3240,7 +3310,7 @@
3240 return pure2(h3("div")(mempty2)([]));
3310 return pure2(h3("div")(mempty2)([]));
3243− throw new Error("Failed pattern match at Plum.View (line 453, column 3 - line 494, column 37): " + [v1.value1.constructor.name]);
3313+ throw new Error("Failed pattern match at Plum.View (line 477, column 3 - line 518, column 37): " + [v1.value1.constructor.name]);