diff --git a/docs/index.02f39a8f.js b/docs/index.02f39a8f.js new file mode 100644 index 0000000..bf70976 --- /dev/null +++ b/docs/index.02f39a8f.js @@ -0,0 +1,2 @@ +function n(n){return n&&n.__esModule?n.default:n}var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},t={},r={},u=e.parcelRequire529b;null==u&&((u=function(n){if(n in t)return t[n].exports;if(n in r){var e=r[n];delete r[n];var u={id:n,exports:{}};return t[n]=u,e.call(u.exports,u,u.exports),u.exports}var o=new Error("Cannot find module '"+n+"'");throw o.code="MODULE_NOT_FOUND",o}).register=function(n,e){r[n]=e},e.parcelRequire529b=u),u.register("426T3",(function(n,e){var t=function(){var n=String.fromCharCode,e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-$",r={};function u(n,e){if(!r[n]){r[n]={};for(var t=0;t>>8,t[2*r+1]=i%256}return t},decompressFromUint8Array:function(e){if(null==e)return o.decompress(e);for(var t=new Array(e.length/2),r=0,u=t.length;r>=1}else{for(u=1,r=0;r>=1}0==--l&&(l=Math.pow(2,s),s++),delete a[A]}else for(u=i[A],r=0;r>=1;0==--l&&(l=Math.pow(2,s),s++),i[f]=v++,A=String(c)}if(""!==A){if(Object.prototype.hasOwnProperty.call(a,A)){if(A.charCodeAt(0)<256){for(r=0;r>=1}else{for(u=1,r=0;r>=1}0==--l&&(l=Math.pow(2,s),s++),delete a[A]}else for(u=i[A],r=0;r>=1;0==--l&&(l=Math.pow(2,s),s++)}for(u=2,r=0;r>=1;for(;;){if(m<<=1,w==e-1){d.push(t(m));break}w++}return d.join("")},decompress:function(n){return null==n?"":""==n?null:o._decompress(n.length,32768,(function(e){return n.charCodeAt(e)}))},_decompress:function(e,t,r){var u,o,i,a,c,f,A,l=[],v=4,s=4,d=3,m="",w=[],p={val:r(0),position:t,index:1};for(u=0;u<3;u+=1)l[u]=u;for(i=0,c=Math.pow(2,2),f=1;f!=c;)a=p.val&p.position,p.position>>=1,0==p.position&&(p.position=t,p.val=r(p.index++)),i|=(a>0?1:0)*f,f<<=1;switch(i){case 0:for(i=0,c=Math.pow(2,8),f=1;f!=c;)a=p.val&p.position,p.position>>=1,0==p.position&&(p.position=t,p.val=r(p.index++)),i|=(a>0?1:0)*f,f<<=1;A=n(i);break;case 1:for(i=0,c=Math.pow(2,16),f=1;f!=c;)a=p.val&p.position,p.position>>=1,0==p.position&&(p.position=t,p.val=r(p.index++)),i|=(a>0?1:0)*f,f<<=1;A=n(i);break;case 2:return""}for(l[3]=A,o=A,w.push(A);;){if(p.index>e)return"";for(i=0,c=Math.pow(2,d),f=1;f!=c;)a=p.val&p.position,p.position>>=1,0==p.position&&(p.position=t,p.val=r(p.index++)),i|=(a>0?1:0)*f,f<<=1;switch(A=i){case 0:for(i=0,c=Math.pow(2,8),f=1;f!=c;)a=p.val&p.position,p.position>>=1,0==p.position&&(p.position=t,p.val=r(p.index++)),i|=(a>0?1:0)*f,f<<=1;l[s++]=n(i),A=s-1,v--;break;case 1:for(i=0,c=Math.pow(2,16),f=1;f!=c;)a=p.val&p.position,p.position>>=1,0==p.position&&(p.position=t,p.val=r(p.index++)),i|=(a>0?1:0)*f,f<<=1;l[s++]=n(i),A=s-1,v--;break;case 2:return w.join("")}if(0==v&&(v=Math.pow(2,d),d++),l[A])m=l[A];else{if(A!==s)return null;m=o+o.charAt(0)}w.push(m),l[s++]=o+m.charAt(0),o=m,0==--v&&(v=Math.pow(2,d),d++)}}};return o}();"function"==typeof define&&define.amd?define((function(){return t})):null!=n?n.exports=t:"undefined"!=typeof angular&&null!=angular&&angular.module("LZString",[]).factory("LZString",(function(){return t}))}));var o,i=(o={webm:"data:video/webm;base64,GkXfowEAAAAAAAAfQoaBAUL3gQFC8oEEQvOBCEKChHdlYm1Ch4EEQoWBAhhTgGcBAAAAAAAVkhFNm3RALE27i1OrhBVJqWZTrIHfTbuMU6uEFlSua1OsggEwTbuMU6uEHFO7a1OsghV17AEAAAAAAACkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVSalmAQAAAAAAAEUq17GDD0JATYCNTGF2ZjU1LjMzLjEwMFdBjUxhdmY1NS4zMy4xMDBzpJBlrrXf3DCDVB8KcgbMpcr+RImIQJBgAAAAAAAWVK5rAQAAAAAAD++uAQAAAAAAADLXgQFzxYEBnIEAIrWcg3VuZIaFVl9WUDiDgQEj44OEAmJaAOABAAAAAAAABrCBsLqBkK4BAAAAAAAPq9eBAnPFgQKcgQAitZyDdW5khohBX1ZPUkJJU4OBAuEBAAAAAAAAEZ+BArWIQOdwAAAAAABiZIEgY6JPbwIeVgF2b3JiaXMAAAAAAoC7AAAAAAAAgLUBAAAAAAC4AQN2b3JiaXMtAAAAWGlwaC5PcmcgbGliVm9yYmlzIEkgMjAxMDExMDEgKFNjaGF1ZmVudWdnZXQpAQAAABUAAABlbmNvZGVyPUxhdmM1NS41Mi4xMDIBBXZvcmJpcyVCQ1YBAEAAACRzGCpGpXMWhBAaQlAZ4xxCzmvsGUJMEYIcMkxbyyVzkCGkoEKIWyiB0JBVAABAAACHQXgUhIpBCCGEJT1YkoMnPQghhIg5eBSEaUEIIYQQQgghhBBCCCGERTlokoMnQQgdhOMwOAyD5Tj4HIRFOVgQgydB6CCED0K4moOsOQghhCQ1SFCDBjnoHITCLCiKgsQwuBaEBDUojILkMMjUgwtCiJqDSTX4GoRnQXgWhGlBCCGEJEFIkIMGQcgYhEZBWJKDBjm4FITLQagahCo5CB+EIDRkFQCQAACgoiiKoigKEBqyCgDIAAAQQFEUx3EcyZEcybEcCwgNWQUAAAEACAAAoEiKpEiO5EiSJFmSJVmSJVmS5omqLMuyLMuyLMsyEBqyCgBIAABQUQxFcRQHCA1ZBQBkAAAIoDiKpViKpWiK54iOCISGrAIAgAAABAAAEDRDUzxHlETPVFXXtm3btm3btm3btm3btm1blmUZCA1ZBQBAAAAQ0mlmqQaIMAMZBkJDVgEACAAAgBGKMMSA0JBVAABAAACAGEoOogmtOd+c46BZDppKsTkdnEi1eZKbirk555xzzsnmnDHOOeecopxZDJoJrTnnnMSgWQqaCa0555wnsXnQmiqtOeeccc7pYJwRxjnnnCateZCajbU555wFrWmOmkuxOeecSLl5UptLtTnnnHPOOeecc84555zqxekcnBPOOeecqL25lpvQxTnnnE/G6d6cEM4555xzzjnnnHPOOeecIDRkFQAABABAEIaNYdwpCNLnaCBGEWIaMulB9+gwCRqDnELq0ehopJQ6CCWVcVJKJwgNWQUAAAIAQAghhRRSSCGFFFJIIYUUYoghhhhyyimnoIJKKqmooowyyyyzzDLLLLPMOuyssw47DDHEEEMrrcRSU2011lhr7jnnmoO0VlprrbVSSimllFIKQkNWAQAgAAAEQgYZZJBRSCGFFGKIKaeccgoqqIDQkFUAACAAgAAAAABP8hzRER3RER3RER3RER3R8RzPESVREiVREi3TMjXTU0VVdWXXlnVZt31b2IVd933d933d+HVhWJZlWZZlWZZlWZZlWZZlWZYgNGQVAAACAAAghBBCSCGFFFJIKcYYc8w56CSUEAgNWQUAAAIACAAAAHAUR3EcyZEcSbIkS9IkzdIsT/M0TxM9URRF0zRV0RVdUTdtUTZl0zVdUzZdVVZtV5ZtW7Z125dl2/d93/d93/d93/d93/d9XQdCQ1YBABIAADqSIymSIimS4ziOJElAaMgqAEAGAEAAAIriKI7jOJIkSZIlaZJneZaomZrpmZ4qqkBoyCoAABAAQAAAAAAAAIqmeIqpeIqoeI7oiJJomZaoqZoryqbsuq7ruq7ruq7ruq7ruq7ruq7ruq7ruq7ruq7ruq7ruq7ruq4LhIasAgAkAAB0JEdyJEdSJEVSJEdygNCQVQCADACAAAAcwzEkRXIsy9I0T/M0TxM90RM901NFV3SB0JBVAAAgAIAAAAAAAAAMybAUy9EcTRIl1VItVVMt1VJF1VNVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVN0zRNEwgNWQkAkAEAkBBTLS3GmgmLJGLSaqugYwxS7KWxSCpntbfKMYUYtV4ah5RREHupJGOKQcwtpNApJq3WVEKFFKSYYyoVUg5SIDRkhQAQmgHgcBxAsixAsiwAAAAAAAAAkDQN0DwPsDQPAAAAAAAAACRNAyxPAzTPAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABA0jRA8zxA8zwAAAAAAAAA0DwP8DwR8EQRAAAAAAAAACzPAzTRAzxRBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABA0jRA8zxA8zwAAAAAAAAAsDwP8EQR0DwRAAAAAAAAACzPAzxRBDzRAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAEOAAABBgIRQasiIAiBMAcEgSJAmSBM0DSJYFTYOmwTQBkmVB06BpME0AAAAAAAAAAAAAJE2DpkHTIIoASdOgadA0iCIAAAAAAAAAAAAAkqZB06BpEEWApGnQNGgaRBEAAAAAAAAAAAAAzzQhihBFmCbAM02IIkQRpgkAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAGHAAAAgwoQwUGrIiAIgTAHA4imUBAIDjOJYFAACO41gWAABYliWKAABgWZooAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAYcAAACDChDBQashIAiAIAcCiKZQHHsSzgOJYFJMmyAJYF0DyApgFEEQAIAAAocAAACLBBU2JxgEJDVgIAUQAABsWxLE0TRZKkaZoniiRJ0zxPFGma53meacLzPM80IYqiaJoQRVE0TZimaaoqME1VFQAAUOAAABBgg6bE4gCFhqwEAEICAByKYlma5nmeJ4qmqZokSdM8TxRF0TRNU1VJkqZ5niiKommapqqyLE3zPFEURdNUVVWFpnmeKIqiaaqq6sLzPE8URdE0VdV14XmeJ4qiaJqq6roQRVE0TdNUTVV1XSCKpmmaqqqqrgtETxRNU1Vd13WB54miaaqqq7ouEE3TVFVVdV1ZBpimaaqq68oyQFVV1XVdV5YBqqqqruu6sgxQVdd1XVmWZQCu67qyLMsCAAAOHAAAAoygk4wqi7DRhAsPQKEhKwKAKAAAwBimFFPKMCYhpBAaxiSEFEImJaXSUqogpFJSKRWEVEoqJaOUUmopVRBSKamUCkIqJZVSAADYgQMA2IGFUGjISgAgDwCAMEYpxhhzTiKkFGPOOScRUoox55yTSjHmnHPOSSkZc8w556SUzjnnnHNSSuacc845KaVzzjnnnJRSSuecc05KKSWEzkEnpZTSOeecEwAAVOAAABBgo8jmBCNBhYasBABSAQAMjmNZmuZ5omialiRpmud5niiapiZJmuZ5nieKqsnzPE8URdE0VZXneZ4oiqJpqirXFUXTNE1VVV2yLIqmaZqq6rowTdNUVdd1XZimaaqq67oubFtVVdV1ZRm2raqq6rqyDFzXdWXZloEsu67s2rIAAPAEBwCgAhtWRzgpGgssNGQlAJABAEAYg5BCCCFlEEIKIYSUUggJAAAYcAAACDChDBQashIASAUAAIyx1lprrbXWQGettdZaa62AzFprrbXWWmuttdZaa6211lJrrbXWWmuttdZaa6211lprrbXWWmuttdZaa6211lprrbXWWmuttdZaa6211lprrbXWWmstpZRSSimllFJKKaWUUkoppZRSSgUA+lU4APg/2LA6wknRWGChISsBgHAAAMAYpRhzDEIppVQIMeacdFRai7FCiDHnJKTUWmzFc85BKCGV1mIsnnMOQikpxVZjUSmEUlJKLbZYi0qho5JSSq3VWIwxqaTWWoutxmKMSSm01FqLMRYjbE2ptdhqq7EYY2sqLbQYY4zFCF9kbC2m2moNxggjWywt1VprMMYY3VuLpbaaizE++NpSLDHWXAAAd4MDAESCjTOsJJ0VjgYXGrISAAgJACAQUooxxhhzzjnnpFKMOeaccw5CCKFUijHGnHMOQgghlIwx5pxzEEIIIYRSSsaccxBCCCGEkFLqnHMQQgghhBBKKZ1zDkIIIYQQQimlgxBCCCGEEEoopaQUQgghhBBCCKmklEIIIYRSQighlZRSCCGEEEIpJaSUUgohhFJCCKGElFJKKYUQQgillJJSSimlEkoJJYQSUikppRRKCCGUUkpKKaVUSgmhhBJKKSWllFJKIYQQSikFAAAcOAAABBhBJxlVFmGjCRcegEJDVgIAZAAAkKKUUiktRYIipRikGEtGFXNQWoqocgxSzalSziDmJJaIMYSUk1Qy5hRCDELqHHVMKQYtlRhCxhik2HJLoXMOAAAAQQCAgJAAAAMEBTMAwOAA4XMQdAIERxsAgCBEZohEw0JweFAJEBFTAUBigkIuAFRYXKRdXECXAS7o4q4DIQQhCEEsDqCABByccMMTb3jCDU7QKSp1IAAAAAAADADwAACQXAAREdHMYWRobHB0eHyAhIiMkAgAAAAAABcAfAAAJCVAREQ0cxgZGhscHR4fICEiIyQBAIAAAgAAAAAggAAEBAQAAAAAAAIAAAAEBB9DtnUBAAAAAAAEPueBAKOFggAAgACjzoEAA4BwBwCdASqwAJAAAEcIhYWIhYSIAgIABhwJ7kPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99YAD+/6tQgKOFggADgAqjhYIAD4AOo4WCACSADqOZgQArADECAAEQEAAYABhYL/QACIBDmAYAAKOFggA6gA6jhYIAT4AOo5mBAFMAMQIAARAQABgAGFgv9AAIgEOYBgAAo4WCAGSADqOFggB6gA6jmYEAewAxAgABEBAAGAAYWC/0AAiAQ5gGAACjhYIAj4AOo5mBAKMAMQIAARAQABgAGFgv9AAIgEOYBgAAo4WCAKSADqOFggC6gA6jmYEAywAxAgABEBAAGAAYWC/0AAiAQ5gGAACjhYIAz4AOo4WCAOSADqOZgQDzADECAAEQEAAYABhYL/QACIBDmAYAAKOFggD6gA6jhYIBD4AOo5iBARsAEQIAARAQFGAAYWC/0AAiAQ5gGACjhYIBJIAOo4WCATqADqOZgQFDADECAAEQEAAYABhYL/QACIBDmAYAAKOFggFPgA6jhYIBZIAOo5mBAWsAMQIAARAQABgAGFgv9AAIgEOYBgAAo4WCAXqADqOFggGPgA6jmYEBkwAxAgABEBAAGAAYWC/0AAiAQ5gGAACjhYIBpIAOo4WCAbqADqOZgQG7ADECAAEQEAAYABhYL/QACIBDmAYAAKOFggHPgA6jmYEB4wAxAgABEBAAGAAYWC/0AAiAQ5gGAACjhYIB5IAOo4WCAfqADqOZgQILADECAAEQEAAYABhYL/QACIBDmAYAAKOFggIPgA6jhYICJIAOo5mBAjMAMQIAARAQABgAGFgv9AAIgEOYBgAAo4WCAjqADqOFggJPgA6jmYECWwAxAgABEBAAGAAYWC/0AAiAQ5gGAACjhYICZIAOo4WCAnqADqOZgQKDADECAAEQEAAYABhYL/QACIBDmAYAAKOFggKPgA6jhYICpIAOo5mBAqsAMQIAARAQABgAGFgv9AAIgEOYBgAAo4WCArqADqOFggLPgA6jmIEC0wARAgABEBAUYABhYL/QACIBDmAYAKOFggLkgA6jhYIC+oAOo5mBAvsAMQIAARAQABgAGFgv9AAIgEOYBgAAo4WCAw+ADqOZgQMjADECAAEQEAAYABhYL/QACIBDmAYAAKOFggMkgA6jhYIDOoAOo5mBA0sAMQIAARAQABgAGFgv9AAIgEOYBgAAo4WCA0+ADqOFggNkgA6jmYEDcwAxAgABEBAAGAAYWC/0AAiAQ5gGAACjhYIDeoAOo4WCA4+ADqOZgQObADECAAEQEAAYABhYL/QACIBDmAYAAKOFggOkgA6jhYIDuoAOo5mBA8MAMQIAARAQABgAGFgv9AAIgEOYBgAAo4WCA8+ADqOFggPkgA6jhYID+oAOo4WCBA+ADhxTu2sBAAAAAAAAEbuPs4EDt4r3gQHxghEr8IEK",mp4:"data:video/mp4;base64,AAAAHGZ0eXBNNFYgAAACAGlzb21pc28yYXZjMQAAAAhmcmVlAAAGF21kYXTeBAAAbGliZmFhYyAxLjI4AABCAJMgBDIARwAAArEGBf//rdxF6b3m2Ui3lizYINkj7u94MjY0IC0gY29yZSAxNDIgcjIgOTU2YzhkOCAtIEguMjY0L01QRUctNCBBVkMgY29kZWMgLSBDb3B5bGVmdCAyMDAzLTIwMTQgLSBodHRwOi8vd3d3LnZpZGVvbGFuLm9yZy94MjY0Lmh0bWwgLSBvcHRpb25zOiBjYWJhYz0wIHJlZj0zIGRlYmxvY2s9MTowOjAgYW5hbHlzZT0weDE6MHgxMTEgbWU9aGV4IHN1Ym1lPTcgcHN5PTEgcHN5X3JkPTEuMDA6MC4wMCBtaXhlZF9yZWY9MSBtZV9yYW5nZT0xNiBjaHJvbWFfbWU9MSB0cmVsbGlzPTEgOHg4ZGN0PTAgY3FtPTAgZGVhZHpvbmU9MjEsMTEgZmFzdF9wc2tpcD0xIGNocm9tYV9xcF9vZmZzZXQ9LTIgdGhyZWFkcz02IGxvb2thaGVhZF90aHJlYWRzPTEgc2xpY2VkX3RocmVhZHM9MCBucj0wIGRlY2ltYXRlPTEgaW50ZXJsYWNlZD0wIGJsdXJheV9jb21wYXQ9MCBjb25zdHJhaW5lZF9pbnRyYT0wIGJmcmFtZXM9MCB3ZWlnaHRwPTAga2V5aW50PTI1MCBrZXlpbnRfbWluPTI1IHNjZW5lY3V0PTQwIGludHJhX3JlZnJlc2g9MCByY19sb29rYWhlYWQ9NDAgcmM9Y3JmIG1idHJlZT0xIGNyZj0yMy4wIHFjb21wPTAuNjAgcXBtaW49MCBxcG1heD02OSBxcHN0ZXA9NCB2YnZfbWF4cmF0ZT03NjggdmJ2X2J1ZnNpemU9MzAwMCBjcmZfbWF4PTAuMCBuYWxfaHJkPW5vbmUgZmlsbGVyPTAgaXBfcmF0aW89MS40MCBhcT0xOjEuMDAAgAAAAFZliIQL8mKAAKvMnJycnJycnJycnXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXiEASZACGQAjgCEASZACGQAjgAAAAAdBmjgX4GSAIQBJkAIZACOAAAAAB0GaVAX4GSAhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZpgL8DJIQBJkAIZACOAIQBJkAIZACOAAAAABkGagC/AySEASZACGQAjgAAAAAZBmqAvwMkhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZrAL8DJIQBJkAIZACOAAAAABkGa4C/AySEASZACGQAjgCEASZACGQAjgAAAAAZBmwAvwMkhAEmQAhkAI4AAAAAGQZsgL8DJIQBJkAIZACOAIQBJkAIZACOAAAAABkGbQC/AySEASZACGQAjgCEASZACGQAjgAAAAAZBm2AvwMkhAEmQAhkAI4AAAAAGQZuAL8DJIQBJkAIZACOAIQBJkAIZACOAAAAABkGboC/AySEASZACGQAjgAAAAAZBm8AvwMkhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZvgL8DJIQBJkAIZACOAAAAABkGaAC/AySEASZACGQAjgCEASZACGQAjgAAAAAZBmiAvwMkhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZpAL8DJIQBJkAIZACOAAAAABkGaYC/AySEASZACGQAjgCEASZACGQAjgAAAAAZBmoAvwMkhAEmQAhkAI4AAAAAGQZqgL8DJIQBJkAIZACOAIQBJkAIZACOAAAAABkGawC/AySEASZACGQAjgAAAAAZBmuAvwMkhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZsAL8DJIQBJkAIZACOAAAAABkGbIC/AySEASZACGQAjgCEASZACGQAjgAAAAAZBm0AvwMkhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZtgL8DJIQBJkAIZACOAAAAABkGbgCvAySEASZACGQAjgCEASZACGQAjgAAAAAZBm6AnwMkhAEmQAhkAI4AhAEmQAhkAI4AhAEmQAhkAI4AhAEmQAhkAI4AAAAhubW9vdgAAAGxtdmhkAAAAAAAAAAAAAAAAAAAD6AAABDcAAQAAAQAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAzB0cmFrAAAAXHRraGQAAAADAAAAAAAAAAAAAAABAAAAAAAAA+kAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAABAAAAAALAAAACQAAAAAAAkZWR0cwAAABxlbHN0AAAAAAAAAAEAAAPpAAAAAAABAAAAAAKobWRpYQAAACBtZGhkAAAAAAAAAAAAAAAAAAB1MAAAdU5VxAAAAAAALWhkbHIAAAAAAAAAAHZpZGUAAAAAAAAAAAAAAABWaWRlb0hhbmRsZXIAAAACU21pbmYAAAAUdm1oZAAAAAEAAAAAAAAAAAAAACRkaW5mAAAAHGRyZWYAAAAAAAAAAQAAAAx1cmwgAAAAAQAAAhNzdGJsAAAAr3N0c2QAAAAAAAAAAQAAAJ9hdmMxAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAALAAkABIAAAASAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGP//AAAALWF2Y0MBQsAN/+EAFWdCwA3ZAsTsBEAAAPpAADqYA8UKkgEABWjLg8sgAAAAHHV1aWRraEDyXyRPxbo5pRvPAyPzAAAAAAAAABhzdHRzAAAAAAAAAAEAAAAeAAAD6QAAABRzdHNzAAAAAAAAAAEAAAABAAAAHHN0c2MAAAAAAAAAAQAAAAEAAAABAAAAAQAAAIxzdHN6AAAAAAAAAAAAAAAeAAADDwAAAAsAAAALAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAAiHN0Y28AAAAAAAAAHgAAAEYAAANnAAADewAAA5gAAAO0AAADxwAAA+MAAAP2AAAEEgAABCUAAARBAAAEXQAABHAAAASMAAAEnwAABLsAAATOAAAE6gAABQYAAAUZAAAFNQAABUgAAAVkAAAFdwAABZMAAAWmAAAFwgAABd4AAAXxAAAGDQAABGh0cmFrAAAAXHRraGQAAAADAAAAAAAAAAAAAAACAAAAAAAABDcAAAAAAAAAAAAAAAEBAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAkZWR0cwAAABxlbHN0AAAAAAAAAAEAAAQkAAADcAABAAAAAAPgbWRpYQAAACBtZGhkAAAAAAAAAAAAAAAAAAC7gAAAykBVxAAAAAAALWhkbHIAAAAAAAAAAHNvdW4AAAAAAAAAAAAAAABTb3VuZEhhbmRsZXIAAAADi21pbmYAAAAQc21oZAAAAAAAAAAAAAAAJGRpbmYAAAAcZHJlZgAAAAAAAAABAAAADHVybCAAAAABAAADT3N0YmwAAABnc3RzZAAAAAAAAAABAAAAV21wNGEAAAAAAAAAAQAAAAAAAAAAAAIAEAAAAAC7gAAAAAAAM2VzZHMAAAAAA4CAgCIAAgAEgICAFEAVBbjYAAu4AAAADcoFgICAAhGQBoCAgAECAAAAIHN0dHMAAAAAAAAAAgAAADIAAAQAAAAAAQAAAkAAAAFUc3RzYwAAAAAAAAAbAAAAAQAAAAEAAAABAAAAAgAAAAIAAAABAAAAAwAAAAEAAAABAAAABAAAAAIAAAABAAAABgAAAAEAAAABAAAABwAAAAIAAAABAAAACAAAAAEAAAABAAAACQAAAAIAAAABAAAACgAAAAEAAAABAAAACwAAAAIAAAABAAAADQAAAAEAAAABAAAADgAAAAIAAAABAAAADwAAAAEAAAABAAAAEAAAAAIAAAABAAAAEQAAAAEAAAABAAAAEgAAAAIAAAABAAAAFAAAAAEAAAABAAAAFQAAAAIAAAABAAAAFgAAAAEAAAABAAAAFwAAAAIAAAABAAAAGAAAAAEAAAABAAAAGQAAAAIAAAABAAAAGgAAAAEAAAABAAAAGwAAAAIAAAABAAAAHQAAAAEAAAABAAAAHgAAAAIAAAABAAAAHwAAAAQAAAABAAAA4HN0c3oAAAAAAAAAAAAAADMAAAAaAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAACMc3RjbwAAAAAAAAAfAAAALAAAA1UAAANyAAADhgAAA6IAAAO+AAAD0QAAA+0AAAQAAAAEHAAABC8AAARLAAAEZwAABHoAAASWAAAEqQAABMUAAATYAAAE9AAABRAAAAUjAAAFPwAABVIAAAVuAAAFgQAABZ0AAAWwAAAFzAAABegAAAX7AAAGFwAAAGJ1ZHRhAAAAWm1ldGEAAAAAAAAAIWhkbHIAAAAAAAAAAG1kaXJhcHBsAAAAAAAAAAAAAAAALWlsc3QAAAAlqXRvbwAAAB1kYXRhAAAAAQAAAABMYXZmNTUuMzMuMTAw"}).webm,a=o.mp4;const c=()=>"undefined"!=typeof navigator&&parseFloat((""+(/CPU.*OS ([0-9_]{3,4})[0-9_]{0,1}|(CPU like).*AppleWebKit.*Mobile/i.exec(navigator.userAgent)||[0,""])[1]).replace("undefined","3_2").replace("_",".").replace("_",""))<10&&!window.MSStream,f=()=>"wakeLock"in navigator;var A=new(n(class{constructor(){if(this.enabled=!1,f()){this._wakeLock=null;const n=()=>{null!==this._wakeLock&&"visible"===document.visibilityState&&this.enable()};document.addEventListener("visibilitychange",n),document.addEventListener("fullscreenchange",n)}else c()?this.noSleepTimer=null:(this.noSleepVideo=document.createElement("video"),this.noSleepVideo.setAttribute("title","No Sleep"),this.noSleepVideo.setAttribute("playsinline",""),this._addSourceToVideo(this.noSleepVideo,"webm",i),this._addSourceToVideo(this.noSleepVideo,"mp4",a),this.noSleepVideo.addEventListener("loadedmetadata",(()=>{this.noSleepVideo.duration<=1?this.noSleepVideo.setAttribute("loop",""):this.noSleepVideo.addEventListener("timeupdate",(()=>{this.noSleepVideo.currentTime>.5&&(this.noSleepVideo.currentTime=Math.random())}))})))}_addSourceToVideo(n,e,t){var r=document.createElement("source");r.src=t,r.type=`video/${e}`,n.appendChild(r)}get isEnabled(){return this.enabled}enable(){if(f())return navigator.wakeLock.request("screen").then((n=>{this._wakeLock=n,this.enabled=!0,console.log("Wake Lock active."),this._wakeLock.addEventListener("release",(()=>{console.log("Wake Lock released.")}))})).catch((n=>{throw this.enabled=!1,console.error(`${n.name}, ${n.message}`),n}));if(c())return this.disable(),console.warn("\n NoSleep enabled for older iOS devices. This can interrupt\n active or long-running network requests from completing successfully.\n See https://github.com/richtr/NoSleep.js/issues/15 for more details.\n "),this.noSleepTimer=window.setInterval((()=>{document.hidden||(window.location.href=window.location.href.split("#")[0],window.setTimeout(window.stop,0))}),15e3),this.enabled=!0,Promise.resolve();return this.noSleepVideo.play().then((n=>(this.enabled=!0,n))).catch((n=>{throw this.enabled=!1,n}))}disable(){f()?(this._wakeLock&&this._wakeLock.release(),this._wakeLock=null):c()?this.noSleepTimer&&(console.warn("\n NoSleep now disabled for older iOS devices.\n "),window.clearInterval(this.noSleepTimer),this.noSleepTimer=null):this.noSleepVideo.pause(),this.enabled=!1}}));function l(){window.addEventListener("popstate",(()=>{window.location.reload()}));var n=document.querySelector(":root");window.addEventListener("resize",(()=>{n.style.setProperty("--app-height",Math.max(document.documentElement.clientHeight,window.innerHeight||0)-1+"px")}));const e=getComputedStyle(document.documentElement).getPropertyValue("--header-bg");var t=document.createElement("meta");t.name="theme-color",t.content=e,document.head.appendChild(t)}document.addEventListener("click",(function n(){document.removeEventListener("click",n,!1),A.enable()}),!1);var v={compose:function(n){return function(e){return function(t){return n(e(t))}}}},s=function(n){return n.compose},d=function(n){return n.identity},m={identity:function(n){return n},Semigroupoid0:function(){return v}},w=function(n){return function(e){return function(t){return function(r){return n(e(t))(e(r))}}}},p=function(n){return function(e){return function(t){return n(t)(e)}}},h=function(n){return function(e){return n}};const g=void 0;var E=function(){function n(){}return n.value=new n,n}(),b=function(n){return n.map},C=function(n){var e=b(n);return function(n){return function(t){return e(t)(n)}}},B=function(n){return b(n)(h(g))},y=function(n){var e=b(n);return function(n){return function(t){return e(h(t))(n)}}},F={map:function(n){return function(e){for(var t=e.length,r=new Array(t),u=0;u>1))-o>1&&n(e,t,u,r,o,a),i-a>1&&n(e,t,u,r,a,i),c=o,f=a,A=o;c0?(r[A++]=v,++f):(r[A++]=l,++c);for(;c="0"&&n[u]<="9"?"\\&":"";return"\\"+t.charCodeAt(0).toString(10)+o}))+'"'}},qn={show:function(n){return n.toString()}},Jn={show:function(n){if(n)return"true";if(!n)return"false";throw new Error("Failed pattern match at Data.Show (line 23, column 1 - line 25, column 23): "+[n.constructor.name])}},Hn=function(n){return n.show},Xn=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),Ln=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),jn=function(){function n(){}return n.value=new n,n}(),Wn=function(n){return n},Un=function(n){return n.to},Nn=function(n){return n.from},_n=d(m),Kn=function(){function n(){}return n.value=new n,n}(),$n=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),ne=function(n){return function(e){return function(t){if(t instanceof Kn)return n;if(t instanceof $n)return e(t.value0);throw new Error("Failed pattern match at Data.Maybe (line 237, column 1 - line 237, column 51): "+[n.constructor.name,e.constructor.name,t.constructor.name])}}},ee=ne(!0)(h(!1)),te=ne(!1)(h(!0)),re={map:function(n){return function(e){return e instanceof $n?new $n(n(e.value0)):Kn.value}}},ue=b(re),oe=function(n){return ne(n)(_n)},ie=function(){return function(n){if(n instanceof $n)return n.value0;throw new Error("Failed pattern match at Data.Maybe (line 288, column 1 - line 288, column 46): "+[n.constructor.name])}},ae=function(n){var e=mn(n);return{eq:function(n){return function(t){return n instanceof Kn&&t instanceof Kn||n instanceof $n&&t instanceof $n&&e(n.value0)(t.value0)}}}},ce={apply:function(n){return function(e){if(n instanceof $n)return ue(n.value0)(e);if(n instanceof Kn)return Kn.value;throw new Error("Failed pattern match at Data.Maybe (line 67, column 1 - line 69, column 30): "+[n.constructor.name,e.constructor.name])}},Functor0:function(){return re}},fe={bind:function(n){return function(e){if(n instanceof $n)return e(n.value0);if(n instanceof Kn)return Kn.value;throw new Error("Failed pattern match at Data.Maybe (line 125, column 1 - line 127, column 28): "+[n.constructor.name,e.constructor.name])}},Apply0:function(){return ce}},Ae=function(){return{pure:$n.create,Apply0:function(){return ce}}}(),le=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),ve=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),se=function(n){return ne(new le(n))(ve.create)},de={map:function(n){return function(e){if(e instanceof le)return new le(e.value0);if(e instanceof ve)return new ve(n(e.value0));throw new Error("Failed pattern match at Data.Either (line 0, column 0 - line 0, column 0): "+[e.constructor.name])}}},me=b(de),we=function(n){return function(e){return function(t){if(t instanceof le)return n(t.value0);if(t instanceof ve)return e(t.value0);throw new Error("Failed pattern match at Data.Either (line 208, column 1 - line 208, column 64): "+[n.constructor.name,e.constructor.name,t.constructor.name])}}},pe=function(){return we(h(Kn.value))($n.create)}(),he={apply:function(n){return function(e){if(n instanceof le)return new le(n.value0);if(n instanceof ve)return me(n.value0)(e);throw new Error("Failed pattern match at Data.Either (line 70, column 1 - line 72, column 30): "+[n.constructor.name,e.constructor.name])}},Functor0:function(){return de}},ge={bind:we((function(n){return function(e){return new le(n)}}))((function(n){return function(e){return e(n)}})),Apply0:function(){return he}},Ee=function(){return{pure:ve.create,Apply0:function(){return he}}}(),be={Applicative0:function(){return Ee},Bind1:function(){return ge}},Ce=function(n){return n},Be={map:function(n){return function(e){return n(e)}}},ye={apply:function(n){return function(e){return n(e)}},Functor0:function(){return Be}},Fe={bind:function(n){return function(e){return e(n)}},Apply0:function(){return ye}},Me={pure:Ce,Apply0:function(){return ye}},Se={Applicative0:function(){return Me},Bind1:function(){return Fe}};var Ie={Ring0:function(){return Fn}},Qe=function(n){return n.mod},ke={degree:function(n){return Math.min(Math.abs(n),2147483647)},div:function(n){return function(e){return 0===e?0:e>0?Math.floor(n/e):-Math.floor(n/-e)}},mod:function(n){return function(e){if(0===e)return 0;var t=Math.abs(e);return(n%t+t)%t}},CommutativeRing0:function(){return Ie}},De=function(n){return n.div},Re={mempty:"",Semigroup0:function(){return G}},Te={mempty:[],Semigroup0:function(){return q}},Oe=function(n){return n.mempty},Ve=function(n){var e=Oe(n),t=H(n.Semigroup0());return{mempty:function(n){return e},Semigroup0:function(){return t}}};const xe=function(n){return function(){return n}};var Ze=function(n,e,t){var r,u=0;return function(o){if(2===u)return r;if(1===u)throw new ReferenceError(n+" was needed before it finished initializing (module "+e+", line "+o+")",e,o);return u=1,r=t(),u=2,r}},Pe={Applicative0:function(){return ze},Bind1:function(){return Ye}},Ye={bind:function(n){return function(e){return function(){return e(n())()}}},Apply0:function(){return qe(0)}},ze={pure:xe,Apply0:function(){return qe(0)}},Ge=Ze("functorEffect","Effect",(function(){return{map:(n=ze,e=I(n.Apply0()),t=R(n),function(n){return function(r){return e(t(n))(r)}})};var n,e,t})),qe=Ze("applyEffect","Effect",(function(){return{apply:tn(Pe),Functor0:function(){return Ge(0)}}})),Je=Ge(20),He=qe(23);const Xe=function(n){return function(){return n.value}},Le=function(n){return function(e){return function(){e.value=n}}};var je=B(Je),We=function(n){return function(){return{value:n}}},Ue=function(n){return function(e){return function(){var t=n(e.value);return e.value=t.state,t.value}}},Ne=function(n){return Ue((function(e){var t=n(e);return{state:t,value:t}}))},_e=function(n){return function(e){return je(Ne(n)(e))}},Ke=N(Ye),$e=b(Je),nt=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),et=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),tt=function(n){return n.tailRecM},rt=function(n){return function(e){return function(e){var t,r=!1;function u(t){if(!(t instanceof nt)){if(t instanceof et)return r=!0,t.value0;throw new Error("Failed pattern match at Control.Monad.Rec.Class (line 93, column 3 - line 93, column 25): "+[t.constructor.name])}e=n(t.value0)}for(;!r;)t=u(e);return t}(n(e))}},ut={tailRecM:function(n){return function(e){return rt((function(e){if(e instanceof le)return new et(new le(e.value0));if(e instanceof ve&&e.value0 instanceof nt)return new nt(n(e.value0.value0));if(e instanceof ve&&e.value0 instanceof et)return new et(new ve(e.value0.value0));throw new Error("Failed pattern match at Control.Monad.Rec.Class (line 121, column 7 - line 121, column 33): "+[e.constructor.name])}))(n(e))}},Monad0:function(){return be}},ot={tailRecM:function(n){return function(e){var t=function(n){if(n instanceof et)return n.value0;throw new Error("Failed pattern match at Control.Monad.Rec.Class (line 113, column 30 - line 113, column 44): "+[n.constructor.name])};return function(){var r=Ke(We)(n(e))();return function(){for(;!function(){var e=Xe(r)();if(e instanceof nt){var t=n(e.value0)();return Le(t)(r)(),!1}if(e instanceof et)return!0;throw new Error("Failed pattern match at Control.Monad.Rec.Class (line 104, column 22 - line 109, column 28): "+[e.constructor.name])}(););}(),$e(t)(Xe(r))()}}},Monad0:function(){return Pe}},it={bimap:function(n){return function(e){return function(t){if(t instanceof nt)return new nt(n(t.value0));if(t instanceof et)return new et(e(t.value0));throw new Error("Failed pattern match at Control.Monad.Rec.Class (line 29, column 1 - line 31, column 34): "+[n.constructor.name,e.constructor.name,t.constructor.name])}}}};function at(n){return function(){return{value:n}}}const ct=function(n){return function(){return n.value}},ft=function(n){return function(e){return function(){return e.value=n}}};var At=function(n,e,t){var r,u=0;return function(o){if(2===u)return r;if(1===u)throw new ReferenceError(n+" was needed before it finished initializing (module "+e+", line "+o+")",e,o);return u=1,r=t(),u=2,r}},lt=function(n){return function(e){return function(){var t=n(e.value);return e.value=t.state,t.value}}},vt={map:function(n){return function(e){return function(){return n(e())}}}},st={Applicative0:function(){return mt},Bind1:function(){return dt}},dt={bind:function(n){return function(e){return function(){return e(n())()}}},Apply0:function(){return wt(0)}},mt={pure:function(n){return function(){return n}},Apply0:function(){return wt(0)}},wt=At("applyST","Control.Monad.ST.Internal",(function(){return{apply:tn(st),Functor0:function(){return vt}}})),pt=wt(46);const ht=function(n){return function(){return n}};function gt(n){return function(){return n.slice()}}const Et=gt;!function(){function n(e,t,r,u,o,i){var a,c,f,A,l,v;for((a=o+(i-o>>1))-o>1&&n(e,t,u,r,o,a),i-a>1&&n(e,t,u,r,a,i),c=o,f=a,A=o;c0?(r[A++]=v,++f):(r[A++]=l,++c);for(;c=0;u--)r=n(t[u])(r);return r}}},foldl:function(n){return function(e){return function(t){for(var r=e,u=t.length,o=0;o=t.length?e:n(t[r])}}})(Kn.value);var n}(),Vr=function(n){return Or(n)(0)},xr=function(n){return O(ur(n))},Zr=function(){return(n=$n.create,function(e){return function(t){return function(r){for(var u=0,o=r.length;u=r.length)return e;var u=r.slice();return u.splice(t,1),n(u)}}})(Kn.value);var n}(),Gr=function(n){return function(e){return function(t){return 0===t.length?[]:ne(t)((function(n){return Dr(zr(n)(t))}))(Zr(n(e))(t))}}},qr=p(U(W)),Jr=function(n){return qr((e=ne([])(Tr),function(t){return e(n(t))}));var e};const Hr=function(n){return function(e){return e.toString(n)}};isNaN,isFinite;Math.abs,Math.acos,Math.asin,Math.atan,Math.ceil,Math.cos,Math.exp,Math.floor,Math.log,Math.round,Math.sign&&Math.sign,Math.sin,Math.sqrt,Math.tan,Math.trunc&&Math.trunc;var Xr=function(){return(n=$n.create,function(e){return function(t){var r;r=t<11?"[0-"+(t-1).toString()+"]":11===t?"[0-9a]":"[0-9a-"+String.fromCharCode(86+t)+"]";var u=new RegExp("^[\\+\\-]?"+r+"+$","i");return function(r){if(u.test(r)){var o=parseInt(r,t);return(0|o)===o?n(o):e}return e}}})(Kn.value);var n}()(10),Lr=function(){return(n=$n.create,function(e){return function(t){return(0|t)===t?n(t):e}})(Kn.value);var n}(),jr={liftEffect:d(m),Monad0:function(){return Pe}},Wr=function(n){return n.liftEffect};const Ur=function(n){return function(){console.warn(n)}},Nr=function(n){return function(){console.error(n)}};var _r=u("426T3");function Kr(n){return new Error(n)}function $r(n){return n.message}function nu(n){return function(){throw n}}function eu(n){return function(e){return function(){try{return e()}catch(e){return e instanceof Error||"[object Error]"===Object.prototype.toString.call(e)?n(e)():n(new Error(e.toString()))()}}}}var tu=R(ze),ru=b(Je),uu=function(n){return n.throwError},ou=function(n){return n.catchError},iu=function(n){var e=ou(n),t=n.MonadThrow0().Monad0(),r=b(t.Bind1().Apply0().Functor0()),u=R(t.Applicative0());return function(n){return e(r(ve.create)(n))((function(n){return u(le.create(n))}))}},au=function(n){return n.state},cu=function(n){var e=au(n);return function(n){return e((function(e){return new Yt(g,n)}))}},fu=function(n){return au(n)((function(n){return new Yt(n,n)}))},Au=function(n){return n.lift},lu=function(n){return n.tell},vu=b(de),su=function(n){var e=b(n);return function(n){return function(t){var r;return e((r=n,function(n){if(n instanceof ve)return new ve(n.value0);if(n instanceof le)return new le(r(n.value0));throw new Error("Failed pattern match at Control.Monad.Except.Trans (line 42, column 3 - line 42, column 32): "+[r.constructor.name,n.constructor.name])}))(t)}}},du=function(n){return function(e){return n(e)}},mu=function(n){var e=b(n);return{map:function(n){return du(e(vu(n)))}}},wu=function(n){return{Applicative0:function(){return gu(n)},Bind1:function(){return pu(n)}}},pu=function(n){var e=U(n.Bind1()),t=R(n.Applicative0());return{bind:function(n){return function(r){return e(n)(we((function(n){return t(le.create(n))}))((function(n){return r(n)})))}},Apply0:function(){return hu(n)}}},hu=function(n){var e=mu(n.Bind1().Apply0().Functor0());return{apply:tn(wu(n)),Functor0:function(){return e}}},gu=function(n){return{pure:(e=R(n.Applicative0()),function(n){return e(ve.create(n))}),Apply0:function(){return hu(n)}};var e},Eu=function(n){var e,t=wu(n);return{throwError:(e=R(n.Applicative0()),function(n){return e(le.create(n))}),Monad0:function(){return t}}},bu=function(n){var e=J(n);return function(n){var t=n.Bind1(),r=U(t),u=R(n.Applicative0()),o=mu(t.Apply0().Functor0());return{alt:function(n){return function(t){return r(n)((function(n){if(n instanceof ve)return u(new ve(n.value0));if(n instanceof le)return r(t)((function(t){if(t instanceof ve)return u(new ve(t.value0));if(t instanceof le)return u(new le(e(n.value0)(t.value0)));throw new Error("Failed pattern match at Control.Monad.Except.Trans (line 86, column 9 - line 88, column 49): "+[t.constructor.name])}));throw new Error("Failed pattern match at Control.Monad.Except.Trans (line 82, column 5 - line 88, column 49): "+[n.constructor.name])}))}},Functor0:function(){return o}}}},Cu=$t(),Bu=su(Be),yu=function(n){return Cu(n)};function Fu(n){return typeof n}function Mu(n){return Object.prototype.toString.call(n).slice(8,-1)}Array.isArray;var Su=function(){function n(n,e){this.value0=n,this.value1=e}return n.create=function(e){return function(t){return new n(e,t)}},n}(),Iu=function(n){var e=Pt(n);return function(n){return new Su(n,e)}},Qu=function(n){var e=Hn(n);return function(n){var t=Hn(n);return{show:function(n){return"(NonEmpty "+e(n.value0)+" "+t(n.value1)+")"}}}},ku=function(n){var e=b(n);return{map:function(n){return function(t){return new Su(n(t.value0),e(n)(t.value1))}}}},Du=d(m),Ru=function(){function n(){}return n.value=new n,n}(),Tu=function(){function n(n,e){this.value0=n,this.value1=e}return n.create=function(e){return function(t){return new n(e,t)}},n}(),Ou=function(n){return new Tu(n.value0,n.value1)},Vu={map:function(n){var e;return e=Ru.value,function(t){var r,u=e,o=!1;function i(e,r){return r instanceof Tu&&r.value1 instanceof Tu&&r.value1.value1 instanceof Tu?(u=new Tu(r,e),void(t=r.value1.value1.value1)):(o=!0,(a=e,function(e){for(var t,r,u,o=a,i=!1;!i;)u=e,t=(r=o)instanceof Tu&&r.value0 instanceof Tu&&r.value0.value1 instanceof Tu&&r.value0.value1.value1 instanceof Tu?(o=r.value1,void(e=new Tu(n(r.value0.value0),new Tu(n(r.value0.value1.value0),new Tu(n(r.value0.value1.value1.value0),u))))):(i=!0,u);return t})((i=r)instanceof Tu&&i.value1 instanceof Tu&&i.value1.value1 instanceof Ru?new Tu(n(i.value0),new Tu(n(i.value1.value0),Ru.value)):i instanceof Tu&&i.value1 instanceof Ru?new Tu(n(i.value0),Ru.value):Ru.value));var i,a}for(;!o;)r=i(u,t);return r}}},xu=b(Vu),Zu=ku(Vu),Pu={foldr:function(n){return function(e){var t,r=(t=Ru.value,function(n){var e,r=t,u=!1;function o(e,t){if(t instanceof Ru)return u=!0,e;if(t instanceof Tu)return r=new Tu(t.value0,e),void(n=t.value1);throw new Error("Failed pattern match at Data.List.Types (line 107, column 7 - line 107, column 23): "+[e.constructor.name,t.constructor.name])}for(;!u;)e=o(r,n);return e}),u=ar(Pu)(p(n))(e);return function(n){return u(r(n))}}},foldl:function(n){return function(e){return function(t){var r,u=e,o=!1;function i(e,r){if(r instanceof Ru)return o=!0,e;if(r instanceof Tu)return u=n(e)(r.value0),void(t=r.value1);throw new Error("Failed pattern match at Data.List.Types (line 111, column 12 - line 113, column 30): "+[r.constructor.name])}for(;!o;)r=i(u,t);return r}}},foldMap:function(n){var e=J(n.Semigroup0()),t=Oe(n);return function(n){return ar(Pu)((function(t){var r=e(t);return function(e){return r(n(e))}}))(t)}}},Yu=ar(Pu),zu=ur(Pu),Gu=cr(Pu)(Re),qu={append:function(n){return function(e){return zu(Tu.create)(e)(n)}}},Ju=J(qu),Hu={append:function(n){return function(e){return new Su(n.value0,Ju(n.value1)(Ou(e)))}}},Xu=function(n){var e=Hn(n);return{show:function(n){return n instanceof Ru?"Nil":"("+Gu(" : ")(xu(e)(n))+" : Nil)"}}},Lu=function(n){var e=Hn(Qu(n)(Xu(n)));return{show:function(n){return"(NonEmptyList "+e(n)+")"}}},ju={traverse:function(n){var e=n.Apply0(),t=b(e.Functor0()),r=D(e),u=R(n);return function(n){var e=t(Yu(p(Tu.create))(Ru.value)),o=Yu((function(e){var t=r(p(Tu.create))(e);return function(e){return t(n(e))}}))(u(Ru.value));return function(n){return e(o(n))}}},sequence:function(n){return br(ju)(n)(Du)},Functor0:function(){return Vu},Foldable1:function(){return Pu}},Wu={apply:function(n){return function(e){if(n instanceof Ru)return Ru.value;if(n instanceof Tu)return Ju(xu(n.value0)(e))(I(Wu)(n.value1)(e));throw new Error("Failed pattern match at Data.List.Types (line 157, column 1 - line 159, column 48): "+[n.constructor.name,e.constructor.name])}},Functor0:function(){return Vu}},Uu=I(Wu),Nu={apply:function(n){return function(e){return new Su(n.value0(e.value0),Ju(Uu(n.value1)(new Tu(e.value0,Ru.value)))(Uu(new Tu(n.value0,n.value1))(e.value1)))}},Functor0:function(){return Zu}},_u={bind:function(n){return function(e){if(n instanceof Ru)return Ru.value;if(n instanceof Tu)return Ju(e(n.value0))(U(_u)(n.value1)(e));throw new Error("Failed pattern match at Data.List.Types (line 164, column 1 - line 166, column 37): "+[n.constructor.name,e.constructor.name])}},Apply0:function(){return Wu}},Ku={alt:Ju,Functor0:function(){return Vu}},$u=function(){return{empty:Ru.value,Alt0:function(){return Ku}}}(),no={pure:function(){var n=Iu($u);return function(e){return n(e)}}(),Apply0:function(){return Nu}},eo=Ht(it),to=U(_u),ro=d(m),uo=function(n){return new Tu(n,Ru.value)},oo=function(){var n;return n=Ru.value,function(e){var t,r=n,u=!1;function o(n,t){if(t instanceof Ru)return u=!0,n;if(t instanceof Tu)return r=new Tu(t.value0,n),void(e=t.value1);throw new Error("Failed pattern match at Data.List (line 368, column 3 - line 368, column 19): "+[n.constructor.name,t.constructor.name])}for(;!u;)t=o(r,e);return t}}(),io=function(n){return n instanceof Ru},ao=function(n){var e=U(n.Monad0().Bind1()),t=tt(n);return function(n){var r=n.Plus1().Alt0(),u=X(r),o=b(r.Functor0()),i=R(n.Applicative0());return function(n){return t((function(t){return e(u(o(nt.create)(n))(i(new et(g))))((function(n){return i(eo((function(n){return new Tu(n,t)}))((function(n){return oo(t)}))(n))}))}))(Ru.value)}}},co=function(n){return function(e){var t,r=n,u=!1;function o(n,t){if(n instanceof Ru)return u=!0,Kn.value;if(n instanceof Tu&&0===t)return u=!0,new $n(n.value0);if(n instanceof Tu)return r=n.value1,void(e=t-1|0);throw new Error("Failed pattern match at Data.List (line 281, column 1 - line 281, column 44): "+[n.constructor.name,t.constructor.name])}for(;!u;)t=o(r,e);return t}},fo=function(n){if(n instanceof Ru)return Kn.value;if(n instanceof Tu)return new $n(n.value0);throw new Error("Failed pattern match at Data.List (line 230, column 1 - line 230, column 22): "+[n.constructor.name])},Ao=function(n){var e;return e=0,function(t){var r,u=e,o=!1;function i(e,r){if(r instanceof Tu)return n(r.value0)?(o=!0,new $n(e)):(u=e+1|0,void(t=r.value1));if(r instanceof Ru)return o=!0,Kn.value;throw new Error("Failed pattern match at Data.List (line 301, column 3 - line 301, column 35): "+[e.constructor.name,r.constructor.name])}for(;!o;)r=i(u,t);return r}},lo=function(n){return to(n)(ro)};const vo=function(n){throw new Error(n)};var so=function(){return vo},mo=so(),wo=function(n){return n()},po=function(n){return wo((function(){return mo(n)}))},ho=function(n){return function(e){return function(t){var r=e(new Tu(t.value0,t.value1));if(r instanceof Tu)return new Su(r.value0,r.value1);if(r instanceof Ru)return po("Impossible: empty list in NonEmptyList "+n);throw new Error("Failed pattern match at Data.List.NonEmpty (line 92, column 3 - line 94, column 81): "+[r.constructor.name])}}},go=function(n){return new Tu(n.value0,n.value1)},Eo=function(){var n=Iu($u);return function(e){return n(e)}}(),bo=ho("reverse")(oo),Co=function(n){return function(e){return new Su(n,new Tu(e.value0,e.value1))}};const Bo=function(n){return n.length},yo=function(n){return function(e){return e.substring(n)}},Fo=function(n){return function(e){return{before:e.substring(0,n),after:e.substring(n)}}},Mo=function(n){return function(e){if(n>=0&&n=0&&t=hi&&n<=pi?new $n((e=n,String.fromCharCode(e))):Kn.value;var e},Mi={succ:Bi(Fi)(wi),pred:yi(Fi)(wi),Ord0:function(){return Qn}},Si=function(){return{cardinality:wi(Zn(Yn))-wi(zn(Yn))|0,toEnum:Fi,fromEnum:wi,Bounded0:function(){return Yn},Enum1:function(){return Mi}}}(),Ii=b(re),Qi=function(n){return n["genericSucc'"]},ki=function(n){var e=Un(n),t=Nn(n);return function(n){var r=Ii(e),u=Qi(n);return function(n){return r(u(t(n)))}}},Di=function(n){return n["genericPred'"]},Ri=function(n){var e=Un(n),t=Nn(n);return function(n){var r=Ii(e),u=Di(n);return function(n){return r(u(t(n)))}}},Ti=function(n){var e=Di(n),t=Qi(n);return function(n){var r=Ai(n);return function(n){var u=Di(n),o=Qi(n);return function(n){var i=si(n);return{"genericPred'":function(n){if(n instanceof Xn)return Ii(Xn.create)(e(n.value0));if(n instanceof Ln){var t=u(n.value0);if(t instanceof Kn)return new $n(new Xn(r));if(t instanceof $n)return new $n(new Ln(t.value0));throw new Error("Failed pattern match at Data.Enum.Generic (line 30, column 14 - line 32, column 31): "+[t.constructor.name])}throw new Error("Failed pattern match at Data.Enum.Generic (line 28, column 18 - line 32, column 31): "+[n.constructor.name])},"genericSucc'":function(n){if(n instanceof Xn){var e=t(n.value0);if(e instanceof Kn)return new $n(new Ln(i));if(e instanceof $n)return new $n(new Xn(e.value0));throw new Error("Failed pattern match at Data.Enum.Generic (line 34, column 14 - line 36, column 31): "+[e.constructor.name])}if(n instanceof Ln)return Ii(Ln.create)(o(n.value0));throw new Error("Failed pattern match at Data.Enum.Generic (line 33, column 18 - line 37, column 36): "+[n.constructor.name])}}}}}},Oi={"genericPred'":function(n){return Kn.value},"genericSucc'":function(n){return Kn.value}},Vi=function(n){var e=Di(n),t=Qi(n);return{"genericPred'":function(n){return Ii(Wn)(e(n))},"genericSucc'":function(n){return Ii(Wn)(t(n))}}},xi=er()()()(),Zi=function(n){return n},Pi={dimap:function(n){return function(e){return function(e){return function(t){return e(n(t))}}}}},Yi={first:function(n){return function(e){return n(qt(e))}},second:function(n){return function(e){return n(zt(e))}},Profunctor0:function(){return Pi}},zi=function(n){var e=Oe(Ve(n));return{left:function(n){return we(n)(e)},right:function(n){return we(e)(n)},Profunctor0:function(){return Pi}}},Gi=function(n){var e=hr(n),t=zi(n);return{wander:function(n){return function(t){return xi(wr)(n(e))(t)}},Strong0:function(){return Yi},Choice1:function(){return t}}},qi=d(m),Ji={dimap:function(n){return function(e){return function(t){return function(r){return e(t(n(r)))}}}}},Hi=function(n){return n.dimap},Xi=function(n){var e=Hi(n);return function(n){return e(qi)(n)}},Li=function(n){return n.right},ji={left:function(n){return function(e){if(e instanceof le)return new le(n(e.value0));if(e instanceof ve)return new ve(e.value0);throw new Error("Failed pattern match at Data.Profunctor.Choice (line 32, column 1 - line 35, column 16): "+[n.constructor.name,e.constructor.name])}},right:b(de),Profunctor0:function(){return Ji}},Wi={first:function(n){return function(e){return new Yt(n(e.value0),e.value1)}},second:b(Gt),Profunctor0:function(){return Ji}},Ui=function(n){return n.first},Ni=er()()()(),_i={wander:function(n){return Ni(Ce)(n(Me))},Strong0:function(){return Wi},Choice1:function(){return ji}},Ki=function(n){return n.wander},$i=_t(),na=function(n){return function(e){return function(t){var r=Hi(t);return function(t){return r(n)(e)(t)}}}},ea=function(){return function(){return function(n){return na($i)($i)(n)}}},ta=function(n){return function(e){var t=Hi(e.Profunctor0()),r=Ui(e);return function(e){return t(n)((function(n){return n.value1(n.value0)}))(r(e))}}},ra=function(n){return function(e){return function(t){return ta((function(t){return new Yt(n(t),(function(n){return e(t)(n)}))}))(t)}}},ua=d(m),oa=function(n){return function(e){return function(t){var r=t.Profunctor0(),u=Hi(r),o=Li(t),i=Xi(r);return function(t){return u(e)(we(ua)(ua))(o(i(n)(t)))}}}},ia=function(n){return function(e){return function(t){return oa(n)((function(n){return ne(new le(n))(ve.create)(e(n))}))(t)}}},aa=function(n){return oa(Ln.create)((function(n){return n instanceof Ln?new ve(n.value0):new le(n)}))(n)},ca=function(n){return oa(Xn.create)((function(n){return n instanceof Xn?new ve(n.value0):new le(n)}))(n)},fa=function(n){return na((function(n){return n}))((function(n){return n}))(n)},Aa=function(n){return na((function(n){return n}))((function(n){return n}))(n)},la=ea()(),va=function(){return function(){return function(n){return la(n)}}},sa=function(n){return oa($n.create)(ne(new le(Kn.value))(ve.create))(n)};const da=function(n){return function(e){return function(t){return function(r){return n(e,t,r)}}}},ma=function(n){return function(e){return function(t){return function(r){return function(u){return n(e,t,r,u)}}}}};var wa=function(n){var e=P(n);return function(){return function(){return function(n){return function(t){return function(r){return z(e(n))(t)(r)}}}}}},pa=function(n){var e=P(n);return function(){return function(n){return function(t){return Y(e(n))(t)}}}},ha=function(n){var e=pa(n)(),t=wa(n)()();return function(){return function(){return function(n){return function(r){return ra(e(n))(p(t(n)))(r)}}}}},ga={lift:function(n){var e=U(n.Bind1()),t=R(n.Applicative0());return function(n){return function(r){return e(n)((function(n){return t(new Yt(n,r))}))}}}},Ea=Au(ga),ba=function(n){var e=b(n);return{map:function(n){return function(t){return function(r){return e((function(e){return new Yt(n(e.value0),e.value1)}))(t(r))}}}}},Ca=function(n){var e=b(n);return function(n){return function(t){return e(zt)(n(t))}}},Ba=function(n){return{Applicative0:function(){return Ma(n)},Bind1:function(){return ya(n)}}},ya=function(n){var e=U(n.Bind1());return{bind:function(n){return function(t){return function(r){return e(n(r))((function(n){return t(n.value0)(n.value1)}))}}},Apply0:function(){return Fa(n)}}},Fa=function(n){var e=ba(n.Bind1().Apply0().Functor0());return{apply:tn(Ba(n)),Functor0:function(){return e}}},Ma=function(n){var e=R(n.Applicative0());return{pure:function(n){return function(t){return e(new Yt(n,t))}},Apply0:function(){return Fa(n)}}},Sa=function(n){var e,t,r=n.Monad0(),u=Ba(r);return{liftEffect:(e=Ea(r),t=Wr(n),function(n){return e(t(n))}),Monad0:function(){return u}}},Ia=function(n){var e=R(n.Applicative0()),t=Ba(n);return{state:function(n){return function(t){return e(n(t))}},Monad0:function(){return t}}},Qa=function(n){return function(e){return n(h(e))}},ka=function(n){var e=br(n);return function(n){return Ki(n)((function(n){return e(n)}))}},Da=va()(),Ra=function(n){var e=ha(n)()();return function(){return function(){return function(n){return{constructBarlow:function(t){return e(E.value)(n)}}}}}},Ta=function(n){var e=ca(n),t=n.Profunctor0(),r=fa(t),u=Aa(t);return{constructBarlowGeneric:function(n){return function(n){return e(r(u(n)))}}}},Oa=function(n){return n.constructBarlowGeneric},Va=function(n){var e=function(n){var e=Nn(n),t=Un(n);return function(n){return na(e)(t)(n)}}(n);return function(n){var t=Oa(n);return function(n){var r=e(n);return{constructBarlow:function(n){var e=t(E.value);return function(n){return r(e(n))}}}}}},xa=function(n){var e=Oa(n);return function(n){var t=aa(n);return{constructBarlowGeneric:function(n){var r=e(E.value);return function(n){return t(r(n))}}}}},Za=function(n){return n.constructBarlow},Pa=function(n){var e=Za(n);return function(){return function(n){var t=Da(n);return{constructBarlow:function(n){var r=e(E.value);return function(n){return t(r(n))}}}}}},Ya=function(n){var e=ha(n)()();return function(n){var t=Za(n);return function(){return function(){return function(n){return{constructBarlow:function(r){var u=e(E.value)(n),o=t(E.value);return function(n){return u(o(n))}}}}}}}},za=function(){return E.value}(),Ga=function(){return function(n){var e=Za(n);return{barlow:function(n){return e(E.value)}}}},qa=function(n){return n.barlow};var Ja=J(q),Ha={genericShowArgs:function(n){return[]}},Xa=function(n){return n.genericShowArgs},La=function(n){var e=Xa(n);return function(n){var t=P(n);return{"genericShow'":function(n){var r,u=t(E.value),o=e(n);return 0===o.length?u:"("+(r=" ",function(n){return n.join(r)})(Ja([u])(o))+")"}}}},ja=function(n){return n["genericShow'"]},Wa=function(n){var e=ja(n);return function(n){var t=ja(n);return{"genericShow'":function(n){if(n instanceof Xn)return e(n.value0);if(n instanceof Ln)return t(n.value0);throw new Error("Failed pattern match at Data.Show.Generic (line 26, column 1 - line 28, column 40): "+[n.constructor.name])}}}},Ua=function(n){var e=Nn(n);return function(n){var t=ja(n);return function(n){return t(e(n))}}};var Na="function"==typeof Array.from,_a="undefined"!=typeof Symbol&&null!=Symbol&&void 0!==Symbol.iterator&&"function"==typeof String.prototype[Symbol.iterator],Ka="function"==typeof String.prototype.fromCodePoint,$a="function"==typeof String.prototype.codePointAt;const nc=function(n){return $a?function(n){return n.codePointAt(0)}:n},ec=function(n){return Ka?String.fromCodePoint:n},tc=function(n){return function(e){return _a?function(n){for(var t="",r=n[Symbol.iterator](),u=0;u1){var t=uc(Mo(1)(n));return Ac(t)?fc(e)(t):e}return e})),wc=rc(dc)(mc),pc=function(n){return V(wc(n))},hc=function(){var n,e,t,r,u=(e=gi(n=Si),t=Ci(n),r=zn(n.Bounded0()),function(n){return function(u){return function(o){var i=e(o);if(i instanceof $n)return i.value0;if(i instanceof Kn)return o=0?"+"+uf(n):uf(n)}},cA=function(n){var e=_c(n);return{print:function(n){return e(n.elem)+oe("")(Oc(n.spaceSuffix)(" "))}}},fA={print:function(n){return n.pre+(n.interval+n.post)}},AA={to:function(n){if(n instanceof Xn)return new tA(n.value0);if(n instanceof Ln&&n.value0 instanceof Xn)return new rA(n.value0.value0);if(n instanceof Ln&&n.value0 instanceof Ln&&n.value0.value0 instanceof Xn)return new uA(n.value0.value0.value0);if(n instanceof Ln&&n.value0 instanceof Ln&&n.value0.value0 instanceof Ln&&n.value0.value0.value0 instanceof Xn)return new oA(n.value0.value0.value0.value0);if(n instanceof Ln&&n.value0 instanceof Ln&&n.value0.value0 instanceof Ln&&n.value0.value0.value0 instanceof Ln)return new iA(n.value0.value0.value0.value0);throw new Error("Failed pattern match at TablatureDocument (line 29, column 1 - line 29, column 48): "+[n.constructor.name])},from:function(n){if(n instanceof tA)return new Xn(n.value0);if(n instanceof rA)return new Ln(new Xn(n.value0));if(n instanceof uA)return new Ln(new Ln(new Xn(n.value0)));if(n instanceof oA)return new Ln(new Ln(new Ln(new Xn(n.value0))));if(n instanceof iA)return new Ln(new Ln(new Ln(new Ln(n.value0))));throw new Error("Failed pattern match at TablatureDocument (line 29, column 1 - line 29, column 48): "+[n.constructor.name])}},lA=Va(AA),vA={to:function(n){if(n instanceof Xn)return Df.value;if(n instanceof Ln&&n.value0 instanceof Xn)return Rf.value;if(n instanceof Ln&&n.value0 instanceof Ln&&n.value0.value0 instanceof Xn)return Tf.value;if(n instanceof Ln&&n.value0 instanceof Ln&&n.value0.value0 instanceof Ln&&n.value0.value0.value0 instanceof Xn)return Of.value;if(n instanceof Ln&&n.value0 instanceof Ln&&n.value0.value0 instanceof Ln&&n.value0.value0.value0 instanceof Ln&&n.value0.value0.value0.value0 instanceof Xn)return Vf.value;if(n instanceof Ln&&n.value0 instanceof Ln&&n.value0.value0 instanceof Ln&&n.value0.value0.value0 instanceof Ln&&n.value0.value0.value0.value0 instanceof Ln&&n.value0.value0.value0.value0.value0 instanceof Xn)return xf.value;if(n instanceof Ln&&n.value0 instanceof Ln&&n.value0.value0 instanceof Ln&&n.value0.value0.value0 instanceof Ln&&n.value0.value0.value0.value0 instanceof Ln&&n.value0.value0.value0.value0.value0 instanceof Ln)return Zf.value;throw new Error("Failed pattern match at TablatureDocument (line 209, column 1 - line 209, column 46): "+[n.constructor.name])},from:function(n){if(n instanceof Df)return new Xn(jn.value);if(n instanceof Rf)return new Ln(new Xn(jn.value));if(n instanceof Tf)return new Ln(new Ln(new Xn(jn.value)));if(n instanceof Of)return new Ln(new Ln(new Ln(new Xn(jn.value))));if(n instanceof Vf)return new Ln(new Ln(new Ln(new Ln(new Xn(jn.value)))));if(n instanceof xf)return new Ln(new Ln(new Ln(new Ln(new Ln(new Xn(jn.value))))));if(n instanceof Zf)return new Ln(new Ln(new Ln(new Ln(new Ln(new Ln(jn.value))))));throw new Error("Failed pattern match at TablatureDocument (line 209, column 1 - line 209, column 46): "+[n.constructor.name])}},sA=ki(vA)(df),dA=Ri(vA)(df),mA={print:Ua(vA)(Wa(of({reflectSymbol:function(){return"A"}}))(Wa(of({reflectSymbol:function(){return"B"}}))(Wa(of({reflectSymbol:function(){return"C"}}))(Wa(of({reflectSymbol:function(){return"D"}}))(Wa(of({reflectSymbol:function(){return"E"}}))(Wa(of({reflectSymbol:function(){return"F"}}))(of({reflectSymbol:function(){return"G"}}))))))))},wA=_c(mA),pA={print:function(n){var e=wA(n.primitive);return n.lowercase?ri(e):e}},hA=_c(pA),gA={print:function(n){return hA(n.letter)+n.mod}},EA=_c(gA),bA=_c(cA(gA)),CA={print:function(n){return EA(n.root)+(n.type+(af(rf)("")(cf((function(n){return n.pre+(n.interval+n.post)}))(n.mods))+oe("")(ff(n.bass)(EA))))}},BA={print:function(n){if(n instanceof Pf)return n.value0;if(n instanceof Yf)return bA(n.value0);if(n instanceof Gf)return n.value0;if(n instanceof zf)return n.value0;if(n instanceof qf)return n.value0;if(n instanceof Jf)return n.value0;if(n instanceof Hf)return n.value0;if(n instanceof Xf)return n.value0;throw new Error("Failed pattern match at TablatureDocument (line 274, column 1 - line 282, column 33): "+[n.constructor.name])}},yA={eq:function(n){return function(e){return n instanceof Df&&e instanceof Df||(n instanceof Rf&&e instanceof Rf||(n instanceof Tf&&e instanceof Tf||(n instanceof Of&&e instanceof Of||(n instanceof Vf&&e instanceof Vf||(n instanceof xf&&e instanceof xf||n instanceof Zf&&e instanceof Zf)))))}}},FA=mn(yA),MA={compare:function(n){return function(e){if(n instanceof Df&&e instanceof Df)return En.value;if(n instanceof Df)return hn.value;if(e instanceof Df)return gn.value;if(n instanceof Rf&&e instanceof Rf)return En.value;if(n instanceof Rf)return hn.value;if(e instanceof Rf)return gn.value;if(n instanceof Tf&&e instanceof Tf)return En.value;if(n instanceof Tf)return hn.value;if(e instanceof Tf)return gn.value;if(n instanceof Of&&e instanceof Of)return En.value;if(n instanceof Of)return hn.value;if(e instanceof Of)return gn.value;if(n instanceof Vf&&e instanceof Vf)return En.value;if(n instanceof Vf)return hn.value;if(e instanceof Vf)return gn.value;if(n instanceof xf&&e instanceof xf)return En.value;if(n instanceof xf)return hn.value;if(e instanceof xf)return gn.value;if(n instanceof Zf&&e instanceof Zf)return En.value;throw new Error("Failed pattern match at TablatureDocument (line 0, column 0 - line 0, column 0): "+[n.constructor.name,e.constructor.name])}},Eq0:function(){return yA}},SA={eq:function(n){return function(e){return n.lowercase===e.lowercase&&FA(n.primitive)(e.primitive)}}},IA=mn(SA),QA={eq:function(n){return function(e){return IA(n.letter)(e.letter)&&n.mod===e.mod}}},kA={succ:function(n){return n instanceof Zf?new $n(Df.value):sA(n)},pred:function(n){return n instanceof Df?new $n(Zf.value):dA(n)},Ord0:function(){return MA}},DA=Ei(kA),RA=bi(kA),TA={"succ'":function(n){return mf(DA(n))},"pred'":function(n){return mf(RA(n))},Enum0:function(){return kA}},OA=function(n){return qa(wf(Pa(pf(n))()(n.Profunctor0())))(za)},VA=function(n){return qa(wf(Pa(hf(n))()(n.Profunctor0())))(za)},xA=function(n){return qa(wf(Pa(gf(n))()(n.Profunctor0())))(za)},ZA=function(n){var e=n.Profunctor0();return qa(wf(Pa(bf(Pa(Cf(n))()(e))()()(n))()(e)))(za)},PA=function(n){return qa(wf(Pa(Bf(n))()(n.Profunctor0())))(za)},YA=function(n){return qa(wf(Pa(yf(n))()(n.Profunctor0())))(za)},zA=function(n){var e=n.Profunctor0();return qa(wf(Pa(bf(Pa(Ff(n))()(e))()()(n))()(e)))(za)},GA=function(n){return qa(wf(Pa(Mf(n))()(n.Profunctor0())))(za)},qA=function(n){return qa(wf(Pa(Sf(n))()(n.Profunctor0())))(za)},JA=function(n){return qa(wf(Pa(If(n))()(n.Profunctor0())))(za)},HA=function(n){return ia(Yf.create)((function(n){return n instanceof Yf?new $n(n.value0):Kn.value}))(n)},XA=function(n){return ia(nA.create)((function(n){return n instanceof nA?new $n(n.value0):Kn.value}))(n)},LA=function(n){return qa(wf(lA(xa(xa(xa(function(n){var e=aa(n),t=n.Profunctor0(),r=fa(t),u=Aa(t);return{constructBarlowGeneric:function(n){return function(n){return e(r(u(n)))}}}}(n))(n))(n))(n))(n.Profunctor0())))(za)},jA=function(n){return qa(wf(lA(xa(xa(Ta(n))(n))(n))(n.Profunctor0())))(za)},WA=function(n){return ia(Nf.create)((function(n){return n instanceof Nf?new $n(n.value0):Kn.value}))(n)},UA=function(n){return qa(wf(lA(xa(xa(xa(Ta(n))(n))(n))(n))(n.Profunctor0())))(za)},NA=$t(),_A=d(m),KA=nr()()(Zi),$A=function(n){return function(e){return function(t){var r=p(NA)(t),u=KA(n)((function(n){return e(n)}));return function(n){return r(u(n))}}}},nl=function(n){var e=Rn(n);return function(n){return $A(n)((function(n){var t=ne(n)(function(n){return function(t){return e(n)(t)?n:t}}(n));return function(n){return $n.create(t(n))}}))(Kn.value)}},el=function(n){var e=Li(n),t=Hi(n.Profunctor0());return function(n){var r=t((function(e){return n(e)?new ve(e):new le(e)}))(we(_A)(_A));return function(n){return r(e(n))}}},tl=function(n){return function(n){return function(e){var t=KA(n)((function(n){return e(n)}));return function(n){return NA(t(n))}}}},rl=$t(),ul=d(m),ol=function(n){return rl(n(ul))},il=_c(CA),al=_c(cA(CA)),cl=tl(),fl=Wt(It),Al=LA(zi(fl)),ll=ka(ju),vl=ll(Gi(fl)),sl=gr(Cn),dl=zi(sl),ml=LA(dl),wl=ll(Gi(sl)),pl=el(dl),hl=LA(ji),gl=ll(_i),El=b(Vu),bl=Hn(qn),Cl=zA(Wi),Bl=YA(Yi),yl=ZA(Yi),Fl=ZA(Wi),Ml=YA(Wi),Sl=Nc(TA),Il=mn(yA),Ql=Kc(TA),kl=tf(QA),Dl=d(m),Rl=xn(In)(Fn),Tl=jA(ji),Ol=HA(ji),Vl=XA(ji),xl=UA(ji),Zl=WA(ji),Pl=xA(Wi),Yl=JA(Wi),zl=sa(ji),Gl=pn(ae(sn)),ql=function(){function n(){}return n.value=new n,n}(),Jl=function(){function n(){}return n.value=new n,n}(),Hl=function(){function n(){}return n.value=new n,n}(),Xl={eq:function(n){return function(e){return n instanceof ql&&e instanceof ql||(n instanceof Jl&&e instanceof Jl||n instanceof Hl&&e instanceof Hl)}}},Ll=function(){var n=function(n){return n instanceof nA&&(e="^([Aa][Mm]?|[DdGg]o|[a-z]|Bob)$",function(n){return yc(Rc(e)(Mc))(n)})(il(n.value0.elem));var e},e=function(e){return e instanceof nA&&!n(e)},t=function(e){return e instanceof nA&&n(e)?new Kf(al(e.value0)):e},r=function(n){return n instanceof eA},u=function(e){return(r=pl(n),t=KA((function(n){return ml(wl(r(n)))}))(h(1)),function(n){return NA(t(n))})(e)>3;var t,r};return El((function(n){var o=function(n){return cl((function(n){return Al(vl(n))}))(r)(n)}(n)||u(n)||function(n){return cl((function(n){return Al(vl(n))}))(e)(n)}(n);return o?n:hl(gl(t))(n)}))}(),jl=function(n){var e=_c(n);return function(n){return function(t){var r=n(t.elem);return{elem:r,spaceSuffix:(t.spaceSuffix+Bo(e(t.elem))|0)-Bo(e(r))|0}}}},Wl=jl(gA),Ul=jl(CA),Nl=function(n){return function(e){var t=function(n){var e,t=Xr(n);if(t instanceof Kn)return n;if(t instanceof $n){var r=oe(10)((e=12)>=2&&e<=36?new $n(e):Kn.value);return t.value0>25?bl(t.value0):ei("b")("↋")(ei("a")("↊")(Hr(r)(t.value0)))}throw new Error("Failed pattern match at TablatureRewriter (line 259, column 5 - line 268, column 47): "+[t.constructor.name])};return!n.dozenalizeTabs?e:El((function(n){return n instanceof uA?new uA((e=n.value0,ef(0)(e)((function(n){return function(e){if(e instanceof zf)return new Yt(0,new zf(oe("")(Oc(n)("-"))+e.value0));if(e instanceof Jf){var r=t(e.value0);return p(Yt.create)(new Jf(r))("↊"===r||"↋"===r?n+1|0:n)}return new Yt(n,e)}})))):n;var e}))(e)}},_l=function(n){var e=kl((function(n){var e=function(e){var t=So(e)(ol(Bl)(n));if(t instanceof Kn)return n;if(t instanceof $n)return Fl(Ql)(Qa(Ml)(t.value0)(n));throw new Error("Failed pattern match at TablatureRewriter (line 143, column 20 - line 145, column 68): "+[t.constructor.name])};return e(Il(ol(yl)(n))(Tf.value)||Il(ol(yl)(n))(xf.value)?"b":"bb")})),t=kl((function(n){var e=function(e){var t=So(e)(ol(Bl)(n));if(t instanceof Kn)return n;if(t instanceof $n)return Fl(Sl)(Qa(Ml)(t.value0)(n));throw new Error("Failed pattern match at TablatureRewriter (line 137, column 20 - line 139, column 68): "+[t.constructor.name])};return e(Il(ol(yl)(n))(Rf.value)||Il(ol(yl)(n))(Vf.value)?"#":"##")})),r=kl((function(n){return Ml((e=ni("b#")(""),t=ni("#b")(""),function(n){return e(t(n))}))(n);var e,t}));return function(u){return o=function(e){var t,r;if(n.noteOrientation instanceof Hl)return"#"===(t=ol(Bl)(e))?(r=ol(yl)(e))instanceof Df?Qa(Fl)(Rf.value)(Qa(Ml)("b")(e)):r instanceof Of?Qa(Fl)(Vf.value)(Qa(Ml)("b")(e)):r instanceof Zf?Qa(Fl)(Df.value)(Qa(Ml)("b")(e)):e:"b"===t?(r=ol(yl)(e))instanceof Of?Qa(Fl)(Tf.value)(Qa(Ml)("#")(e)):r instanceof Zf?Qa(Fl)(xf.value)(Qa(Ml)("#")(e)):e:e;if(n.noteOrientation instanceof ql)return"#"===(t=ol(Bl)(e))?(r=ol(yl)(e))instanceof Df?Qa(Fl)(Rf.value)(Qa(Ml)("b")(e)):r instanceof Tf?Qa(Fl)(Of.value)(Qa(Ml)("b")(e)):r instanceof Of?Qa(Fl)(Vf.value)(Qa(Ml)("b")(e)):r instanceof xf?Qa(Fl)(Zf.value)(Qa(Ml)("b")(e)):r instanceof Zf?Qa(Fl)(Df.value)(Qa(Ml)("b")(e)):e:e;if(n.noteOrientation instanceof Jl)return"b"===(t=ol(Bl)(e))?(r=ol(yl)(e))instanceof Df?Qa(Fl)(Zf.value)(Qa(Ml)("#")(e)):r instanceof Rf?Qa(Fl)(Df.value)(Qa(Ml)("#")(e)):r instanceof Of?Qa(Fl)(Tf.value)(Qa(Ml)("#")(e)):r instanceof Vf?Qa(Fl)(Of.value)(Qa(Ml)("#")(e)):r instanceof Zf?Qa(Fl)(xf.value)(Qa(Ml)("#")(e)):e:e;throw new Error("Failed pattern match at TablatureRewriter (line 147, column 5 - line 179, column 20): "+[n.noteOrientation.constructor.name])}(e(t(r(u)))),Qa(Cl)(!1)(o);var o}},Kl=function(n){var e=function(n){return Ml((function(e){return e+n}))};if(0===n.transposition)return Dl;if(n.transposition>0){var t=_l(n),r=e(oe("")(Oc(n.transposition)("#")));return function(n){return t(r(n))}}var u=_l(n),o=e(oe("")(Oc(Rl(n.transposition))("b")));return function(n){return u(o(n))}},$l=function(n){var e=Ul(n),t=hl(gl(Vl(e))),r=xl(gl(Zl(e)));return El((function(n){return t(r(n))}))},nv=function(n){return function(e){var t=function(n){return oo(ef(!1)(oo(n))((function(n){return function(e){return e instanceof Gf?new Yt(!0,e):e instanceof zf?new Yt(!0,n?e:new Gf((t=e.value0,Gl(Io(Bo(t)-1|0)(t))(new $n("|"))?t+"|":t))):new Yt(n,e);var t}})))};return!n.normalizeTabs?e:El((function(n){return n instanceof uA?new uA(t(n.value0)):n}))(e)}},ev=function(n){var e=function(n){var e,t,r,u=(e=n.normalizeChords?_l(n):Dl,t=Kl(n),function(n){return e(t(n))}),o=(r=Wl(u),Tl(gl(Ol(r))));return El(o)}(n),t=function(n){var e,t,r,u,o=(e=n.normalizeChords?_l(n):Dl,t=Kl(n),function(n){return e(t(n))}),i=(r=Yl(zl(o)),u=Pl(o),function(n){return r(u(n))});return $l(i)}(n),r=Nl(n),u=function(n){return function(e){var t,r,u=(t=ei("13")("11"),r=ei("11")("↋"),function(n){return t(r(n))});return n.dozenalizeChords?$l((function(n){var e=u(n.type),t=El((function(n){return{pre:n.pre,interval:u(n.interval),post:n.post}}))(n.mods);return{root:n.root,type:e,mods:t,bass:n.bass}}))(e):e}}(n),o=nv(n),i=function(n){return function(e){var t=function(n){return n instanceof zf?new zf(ei("—")("-")(ei(" ")("-")(n.value0))):n instanceof Gf?new Gf(ei("[")("|")(ei("]")("|")(n.value0))):n};return n.normalizeTabs?El((function(n){return n instanceof uA?new uA(El(t)(n.value0)):n}))(e):e}}(n);return function(n){return e(t(r(u(o(i(Ll(n)))))))}},tv=d(m),rv=Hn(qn),uv=Wr(jr),ov=k(He),iv=R(ze),av=function(n){var e,t=jo(n);if(t instanceof $n)return uv((e=t.value0,function(){Ko(e)}));if(t instanceof Kn)return uv(Nr("Could not save tablature to URL"));throw new Error("Failed pattern match at AppUrl (line 23, column 3 - line 25, column 80): "+[t.constructor.name])},cv=ai([]),fv=function(){var n,e=_o(),t=Lo(e);return t instanceof $n?(n=t.value0,function(){No(n)})():ov(Nr("Could not load decompressed shortlink URL"))(iv(g))()},Av=function(){var n=uv(_o)();if(""===n||"#"===n)return"";var e=Lo(n);if(e instanceof $n)return e.value0;if(e instanceof Kn)return ov(Nr("Could not load tablature from URL"))(iv(""))();throw new Error("Failed pattern match at AppUrl (line 31, column 8 - line 33, column 78): "+[e.constructor.name])},lv=function(){var n=function(){var n=ci("t")();if(n instanceof Kn)return Kn.value;if(n instanceof $n){var e=Xr(n.value0);return e instanceof $n?new $n(e.value0):ov(Nr("Could not parse transposition parameter"))(iv(Kn.value))()}throw new Error("Failed pattern match at AppUrl (line 45, column 3 - line 50, column 87): "+[n.constructor.name])}(),e=function(){var n=ci("o")();if(n instanceof Kn)return Kn.value;if(n instanceof $n){var e=Xr(n.value0);return e instanceof $n&&0===e.value0?new $n(ql.value):e instanceof $n&&1===e.value0?new $n(Jl.value):ov(Nr("Could not parse note orientation parameter"))(iv(Kn.value))()}throw new Error("Failed pattern match at AppUrl (line 55, column 3 - line 61, column 90): "+[n.constructor.name])}();return{transposition:oe(0)(n),noteOrientation:oe(Hl.value)(e)}},vv=Vi(Oi),sv=Ti(vv)(li(fi)),dv=di(vi),mv=mi(dv),wv=sv(sv(sv(sv(sv(vv)(dv))(mv))(mv))(mv))(mv),pv=function(){function n(){}return n.value=new n,n}(),hv=function(){function n(){}return n.value=new n,n}(),gv=function(){function n(){}return n.value=new n,n}(),Ev=function(){function n(){}return n.value=new n,n}(),bv=function(){function n(){}return n.value=new n,n}(),Cv=function(){function n(){}return n.value=new n,n}(),Bv={print:function(n){if(n instanceof pv)return"(0.2)";if(n instanceof hv)return"(0.4)";if(n instanceof gv)return"(0.6)";if(n instanceof Ev)return"(1.0)";if(n instanceof bv)return"(2.0)";if(n instanceof Cv)return"(4.0)";throw new Error("Failed pattern match at AutoscrollSpeed (line 18, column 1 - line 24, column 26): "+[n.constructor.name])}},yv={to:function(n){if(n instanceof Xn)return pv.value;if(n instanceof Ln&&n.value0 instanceof Xn)return hv.value;if(n instanceof Ln&&n.value0 instanceof Ln&&n.value0.value0 instanceof Xn)return gv.value;if(n instanceof Ln&&n.value0 instanceof Ln&&n.value0.value0 instanceof Ln&&n.value0.value0.value0 instanceof Xn)return Ev.value;if(n instanceof Ln&&n.value0 instanceof Ln&&n.value0.value0 instanceof Ln&&n.value0.value0.value0 instanceof Ln&&n.value0.value0.value0.value0 instanceof Xn)return bv.value;if(n instanceof Ln&&n.value0 instanceof Ln&&n.value0.value0 instanceof Ln&&n.value0.value0.value0 instanceof Ln&&n.value0.value0.value0.value0 instanceof Ln)return Cv.value;throw new Error("Failed pattern match at AutoscrollSpeed (line 28, column 1 - line 28, column 68): "+[n.constructor.name])},from:function(n){if(n instanceof pv)return new Xn(jn.value);if(n instanceof hv)return new Ln(new Xn(jn.value));if(n instanceof gv)return new Ln(new Ln(new Xn(jn.value)));if(n instanceof Ev)return new Ln(new Ln(new Ln(new Xn(jn.value))));if(n instanceof bv)return new Ln(new Ln(new Ln(new Ln(new Xn(jn.value)))));if(n instanceof Cv)return new Ln(new Ln(new Ln(new Ln(new Ln(jn.value)))));throw new Error("Failed pattern match at AutoscrollSpeed (line 28, column 1 - line 28, column 68): "+[n.constructor.name])}},Fv={eq:function(n){return function(e){return n instanceof pv&&e instanceof pv||(n instanceof hv&&e instanceof hv||(n instanceof gv&&e instanceof gv||(n instanceof Ev&&e instanceof Ev||(n instanceof bv&&e instanceof bv||n instanceof Cv&&e instanceof Cv))))}}},Mv={compare:function(n){return function(e){if(n instanceof pv&&e instanceof pv)return En.value;if(n instanceof pv)return hn.value;if(e instanceof pv)return gn.value;if(n instanceof hv&&e instanceof hv)return En.value;if(n instanceof hv)return hn.value;if(e instanceof hv)return gn.value;if(n instanceof gv&&e instanceof gv)return En.value;if(n instanceof gv)return hn.value;if(e instanceof gv)return gn.value;if(n instanceof Ev&&e instanceof Ev)return En.value;if(n instanceof Ev)return hn.value;if(e instanceof Ev)return gn.value;if(n instanceof bv&&e instanceof bv)return En.value;if(n instanceof bv)return hn.value;if(e instanceof bv)return gn.value;if(n instanceof Cv&&e instanceof Cv)return En.value;throw new Error("Failed pattern match at AutoscrollSpeed (line 0, column 0 - line 0, column 0): "+[n.constructor.name,e.constructor.name])}},Eq0:function(){return Fv}},Sv={succ:ki(yv)(wv),pred:Ri(yv)(wv),Ord0:function(){return Mv}},Iv=j($),Qv=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),kv=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),Dv=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),Rv=function(){function n(){}return n.value=new n,n}(),Tv=function(n){return function(e){return n(e)}},Ov=function(n){return ol(Tv(n)(Yi))},Vv=function(n){var e=C(n.Monad0().Bind1().Apply0().Functor0()),t=fu(n);return function(n){return e(t)(Ov(n))}},xv=function(n){return function(e){var t=Ov(n)(e);if(t.value instanceof Rv)return t.default;if(t.value instanceof Dv)return t.value.value0;throw new Error("Failed pattern match at Cache (line 86, column 3 - line 88, column 28): "+[t.value.constructor.name])}},Zv=function(n){var e=n.Monad0().Bind1(),t=U(e),r=C(e.Apply0().Functor0()),u=fu(n),o=cu(n);return function(n){return function(e){return t(r(u)(Tv(n)(Wi)(e)))(o)}}},Pv=function(n){var e=n.Monad0(),t=e.Bind1(),r=U(t),u=Vv(n),o=R(e.Applicative0()),i=Iv(t),a=Zv(n);return function(n){return r(u(n.entry))((function(e){if(e.value instanceof Dv)return o(e.value.value0);if(e.value instanceof Rv)return r(n.fetch.value0)((function(t){return r(o(oe(e.default)(t)))((function(e){return i(a(n.entry)((function(n){return{value:new Dv(e),default:n.default,dependants:n.dependants}})))((function(){return o(e)}))}))}));throw new Error("Failed pattern match at Cache (line 124, column 3 - line 130, column 17): "+[e.value.constructor.name])}))}},Yv=function(n){var e=nf(n);return function(t){return e(t.dependants)((r=zv(n),function(n){return n(r)}));var r}},zv=function(n){var e=n.Monad0(),t=e.Bind1(),r=U(t),u=Vv(n),o=R(e.Applicative0()),i=Iv(t),a=Zv(n);return function(e){return r(u(e))((function(t){if(t.value instanceof Rv)return o(g);if(t.value instanceof Dv)return i(a(e)((function(n){return{value:Rv.value,default:n.default,dependants:Ru.value}})))((function(){return Yv(n)(t)}));throw new Error("Failed pattern match at Cache (line 95, column 3 - line 99, column 33): "+[t.value.constructor.name])}))}},Gv=function(n){var e=n.Monad0().Bind1(),t=U(e),r=Vv(n),u=Iv(e),o=Yv(n),i=Zv(n);return function(n){return function(e){return t(r(n.entry))((function(t){return u(n.flush.value0(e))((function(){return u(o(t))((function(){return i(n.entry)((function(n){return{value:new Dv(e),default:n.default,dependants:n.dependants}}))}))}))}))}}},qv=function(n){return{value:Rv.value,default:n,dependants:Ru.value}},Jv=function(n){var e=n.Monad0(),t=e.Bind1(),r=U(t),u=Pv(n),o=Iv(t),i=function(n){var e=Zv(n);return function(n){return function(t){return e(n.entry)((function(n){return{value:n.value,default:n.default,dependants:new Tu((e=t,function(n){return n(e)}),n.dependants)};var e}))}}}(n),a=R(e.Applicative0());return function(n){return function(e){return r(u(e))((function(t){return o(i(e)(n))((function(){return a(t)}))}))}}};var Hv=Hn(Jn),Xv=function(n){return function(e){return function(n){return function(e){return function(){window.localStorage.setItem(n,e)}}}(n)(Hv(e))}},Lv=function(n){return function(){var e=function(n){return function(){return window.localStorage.getItem(n)}}(n)();return"true"===e?new $n(!0):"false"===e?new $n(!1):Kn.value}};const jv=function(n){return n()};!function(){function n(n){this.fn=n}var e={},t=function(n,e){this.head=n,this.tail=e};function r(n){return new t(n,e)}function u(n){return function(e){return new t(n,e)}}function o(n){for(var t=[],r=n;r!==e;)t.push(r.head),r=r.tail;return t}}();var Wv=ie(),Uv=function(n){return function(e){return Wv(n(e))}},Nv=Uv(Vr),_v=b(de),Kv=U(ge),$v=R(Ee),ns=tt(ut),es={map:function(n){return function(e){var t=_v((function(e){return{result:n(e.result),suffix:e.suffix}}));return function(n){return t(e(n))}}}},ts=function(n){return function(e){return new le({pos:e.position,error:n})}},rs={apply:function(n){return function(e){return function(t){return Kv(n(t))((function(n){return Kv(e(n.suffix))((function(e){return $v({result:n.result(e.result),suffix:e.suffix})}))}))}}},Functor0:function(){return es}},us=D(rs),os={bind:function(n){return function(e){return function(t){return Kv(n(t))((function(n){return e(n.result)(n.suffix)}))}}},Apply0:function(){return rs}},is=function(n){return{append:us(J(n))}},as={pure:function(n){return function(e){return new ve({result:n,suffix:e})}},Apply0:function(){return rs}},cs={Applicative0:function(){return as},Bind1:function(){return os}},fs={tailRecM:function(n){return function(e){var t=function(n){if(n.result instanceof nt)return new nt({state:n.result.value0,str:n.suffix});if(n.result instanceof et)return new et({result:n.result.value0,suffix:n.suffix});throw new Error("Failed pattern match at StringParser.Parser (line 87, column 5 - line 87, column 68): "+[n.constructor.name])};return function(r){return ns((function(e){return _v(t)(n(e.state)(e.str))}))({state:e,str:r})}}},Monad0:function(){return cs}},As={alt:function(n){return function(e){return function(t){var r=n(t);return r instanceof le?t.position===r.value0.pos?e(t):new le({error:r.value0.error,pos:r.value0.pos}):r}}},Functor0:function(){return es}},ls={empty:ts("No alternative"),Alt0:function(){return As}},vs={Applicative0:function(){return as},Plus1:function(){return ls}},ss=X(As),ds=U(os),ms=R(as),ws=b(es),ps=k(rs),hs=tt(fs),gs=R(no),Es=function(n){return function(e){var t=n(e);return t instanceof le?new le({pos:e.position,error:t.value0.error}):t}},bs=function(n){return function(e){return ss(e)(ms(n))}},Cs=function(n){return bs(Kn.value)(ws($n.create)(n))},Bs=function(n){return Es((e=n,function(n){var t=e(n);return t instanceof ve?new ve({result:t.value0.result,suffix:n}):t}));var e},ys=function(n){return function(e){var t=n(e);return t instanceof ve?e.position0)&&(h=S,E=X._3(H)));break;case m:P=new g(s,new g(p,E,b),P,O),h=S,E=O&&O!==z&&0===Y?X._1.killed(n.fromLeft(O))(X._2):b?X._1.failed(n.fromLeft(b))(X._2):X._1.completed(n.fromRight(E))(X._2),b=null,Y++;break;case w:Y++,P=new g(s,new g(p,E,b),P,O),h=S,E=X._1;break;case p:Y--,h=D,E=X._1,b=X._2}break;case R:for(var L in G)G.hasOwnProperty(L)&&(q=q&&G[L].rethrow,C(G[L].handler(E)));return G=null,void(O&&b?setTimeout((function(){throw n.fromLeft(b)}),0):n.isLeft(E)&&q&&setTimeout((function(){if(q)throw n.fromLeft(E)}),0));case M:h=S;break;case k:return}}function H(n){return function(){if(h===R)return q=q&&n.rethrow,n.handler(E)(),function(){};var e=z++;return(G=G||{})[e]=n,function(){null!==G&&delete G[e]}}}return{kill:function(e,t){return function(){if(h===R)return t(n.right(void 0))(),function(){};var r=H({rethrow:!1,handler:function(){return t(n.right(void 0))}})();switch(h){case M:O=n.left(e),h=R,E=O,J(v);break;case k:null===O&&(O=n.left(e)),0===Y&&(h===k&&(P=new g(s,new g(w,E(e)),P,O)),h=D,E=null,b=null,J(++v));break;default:null===O&&(O=n.left(e)),0===Y&&(h=D,E=null,b=null)}return r}},join:function(n){return function(){var e=H({rethrow:!1,handler:n})();return h===M&&J(v),e}},onComplete:H,isSuspended:function(){return h===M},run:function(){h===M&&(F.isDraining()?J(v):F.enqueue((function(){J(v)})))}}}function O(e,t,r,u){var i=0,a={},c=0,f={},d=new Error("[ParAff] Early exit"),m=null,w=n;function p(t,r,u){var o,i,c=r,f=null,d=null,m=0,w={};n:for(;;)switch(o=null,c.tag){case h:if(c._3===n&&(o=a[c._1],w[m++]=o.kill(t,(function(n){return function(){0===--m&&u(n)()}}))),null===f)break n;c=f._2,null===d?f=null:(f=d._1,d=d._2);break;case A:c=c._2;break;case l:case v:f&&(d=new g(s,f,d)),f=c,c=c._1}if(0===m)u(e.right(void 0))();else for(i=0,o=m;i0})).map((function(n){var e=n.indexOf(":");return c(n.substring(0,e))(n.substring(e+2))})),body:t.response})},t.responseType=f.responseType,t.withCredentials=f.withCredentials,t.timeout=f.timeout,t.send(f.content),function(n,e,r){try{t.abort()}catch(n){return e(n)}return r()}}))))((function(n){if(n instanceof ve){var e=yu(t(n.value0.body));if(e instanceof le)return new le(new wh(function(n){return n.value0}(e.value0),n.value0));if(e instanceof ve)return new ve({body:e.value0,headers:n.value0.headers,status:n.value0.status,statusText:n.value0.statusText});throw new Error("Failed pattern match at Affjax (line 209, column 9 - line 211, column 52): "+[e.constructor.name])}if(n instanceof le)return new le("AffjaxTimeoutErrorMessageIdent"===(r=$r(n.value0))?ph.value:"AffjaxRequestFailedMessageIdent"===r?hh.value:new gh(n.value0));var r;throw new Error("Failed pattern match at Affjax (line 207, column 144 - line 219, column 28): "+[n.constructor.name])}));var o,i,a,c,f};if(e.content instanceof Kn)return o(_w(Kn.value));if(e.content instanceof $n){var i=function(n){if(n instanceof Zm)return new ve(n.value0(xo));if(n instanceof Pm)return new ve(xo(n.value0));if(n instanceof Ym)return new ve(xo(n.value0));if(n instanceof zm)return new ve(xo(n.value0));if(n instanceof Gm)return new ve(xo(n.value0));if(n instanceof qm)return se("Body contains values that cannot be encoded as application/x-www-form-urlencoded")(ah(xo)(kw(n.value0)));if(n instanceof Jm)return new ve(xo(fw(n.value0)));throw new Error("Failed pattern match at Affjax (line 235, column 20 - line 250, column 69): "+[n.constructor.name])}(e.content.value0);if(i instanceof ve)return o(_w(new $n(i.value0)));if(i instanceof le)return dh(new le(new mh(i.value0)));throw new Error("Failed pattern match at Affjax (line 199, column 7 - line 203, column 48): "+[i.constructor.name])}throw new Error("Failed pattern match at Affjax (line 195, column 3 - line 203, column 48): "+[e.content.constructor.name])}},bh=function(){return{method:new le(Rw.value),url:"/",headers:[],content:Kn.value,username:Kn.value,password:Kn.value,withCredentials:!1,responseFormat:iw,timeout:Kn.value}}(),Ch=function(n){return function(e){return function(t){return Eh(n)({method:bh.method,url:t,headers:bh.headers,content:bh.content,username:bh.username,password:bh.password,withCredentials:bh.withCredentials,responseFormat:e,timeout:bh.timeout})}}};const Bh={newXHR:function(){return new XMLHttpRequest},fixupUrl:function(n){return n||"/"}};var yh=Ch(Bh);var Fh=Au(xc),Mh=Au(ga),Sh={liftAff:d(m),MonadEffect0:function(){return zp}},Ih=function(n){return n.liftAff},Qh=j($),kh=R(ze),Dh=function(n){var e=n.MonadEffect0(),t=e.Monad0(),r=t.Bind1(),u=Qh(r),o=Wr(e),i=R(t.Applicative0()),a=U(r),c=Ih(n);return function(n){var e=Fw(n);if(e instanceof Kn)return u(o(Nr("Could not encode "+n)))((function(){return i(Kn.value)}));if(e instanceof $n){var t="https://api.codetabs.com/v1/proxy?quest="+e.value0;return a(c(yh(ow)(t)))((function(n){return o(function(){if(n instanceof le)return function(){return Nr("CORS Proxy response failed to decode: "+function(n){if(n instanceof mh)return"There was a problem with the request content: "+n.value0;if(n instanceof wh)return"There was a problem with the response body: "+Yo(n.value0);if(n instanceof ph)return"There was a problem making the request: timeout";if(n instanceof hh)return"There was a problem making the request: request failed";if(n instanceof gh)return"There was a problem making the request: "+$r(n.value0);throw new Error("Failed pattern match at Affjax (line 113, column 14 - line 123, column 66): "+[n.constructor.name])}(n.value0))(),Kn.value};if(n instanceof ve)return kh(new $n(n.value0.body));throw new Error("Failed pattern match at CorsProxy (line 25, column 18 - line 29, column 48): "+[n.constructor.name])}())}))}throw new Error("Failed pattern match at CorsProxy (line 18, column 3 - line 29, column 48): "+[e.constructor.name])}};const Rh=JSON.parse;JSON.stringify;var Th=function(n){var e=zo(n),t=R(gu(n));return function(n){return function(r){return function(n,e,t,r){return null==r?n:e(r[t])}(e(new To("object",Fu(r))),t,n,r)}}},Oh=function(n){return Th(n)};var Vh=v,xh=function(){return function(){return function(n){var e=P(n);return function(n){return function(t){return function(r){return function(n){return function(e){return function(t){return t[n]=e,t}}}(e(n))(t)(r)}}}}}},Zh=m,Ph=function(n){return function(e){return n(function(n){var e={};for(var t in n)({}).hasOwnProperty.call(n,t)&&(e[t]=n[t]);return e}(e))}},Yh=gu(Se),zh=R(Yh),Gh=b(mu(Be)),qh=b(Zu),Jh=pu(Se),Hh=N(Jh),Xh=_(Jh),Lh=d(Zh),jh=U(Jh),Wh=s(Vh),Uh=xh()(),Nh=Oh(Se),_h={readImpl:Ho(Se)},Kh={readImpl:Jo(Se)},$h=function(n){return n.readImpl},ng={getFields:function(n){return function(n){return zh(Lh)}}},eg=function(){var n,e=Xt(Lt)((n=R(no),function(e){return n(Ro.create($r(e)))})),t=eh(Rh);return function(n){return e(jv((r=t(n),eu((function(n){return tu(le.create(n))}))(ru(ve.create)(r)))));var r}}(),tg=function(n){var e=Xh($h(n))(eg);return function(n){return yu(e(n))}},rg=function(n){return n.getFields},ug=function(){return function(n){var e=rg(n);return{readImpl:function(n){return Gh(p(Ph)({}))(e(E.value)(n))}}}},og=function(n){var e=function(n){var e=J(n);return function(n){return function(t){if(n instanceof le&&t instanceof ve)return new le(n.value0);if(n instanceof le&&t instanceof le)return new le(e(n.value0)(t.value0));if(n instanceof ve&&t instanceof le)return new le(t.value0);if(n instanceof ve&&t instanceof ve)return new ve(n.value0(t.value0));throw new Error("Failed pattern match at SimpleJSON (line 251, column 1 - line 251, column 90): "+[n.constructor.name,t.constructor.name])}}}(n);return function(n){var t=n.Apply0(),r=I(t),u=b(t.Functor0());return function(n){return function(t){return r(u(e)(n))(t)}}}}(Hu)(Me),ig=function(n){var e=P(n),t=Uh(n);return function(n){var r=$h(n);return function(n){var u=rg(n);return function(){return function(){return{getFields:function(n){return function(n){var o=u(E.value)(n),i=e(E.value),a=Bu(qh(Vo.create(i))),c=jh(a(Hh(r)(Nh(i)(n))))((function(n){return zh(t(E.value)(n))}));return og(Gh(Wh)(c))(o)}}}}}}}},ag=ug(),cg=ig({reflectSymbol:function(){return"url"}}),fg=tg(ag(cg(ag(ig({reflectSymbol:function(){return"shortLink"}})(_h)(ng)()()))(ng)()())),Ag=tg(ag(cg(ag(ig({reflectSymbol:function(){return"status"}})(Kh)(ng)()()))(ng)()())),lg=j($),vg=Hn(qn),sg=Hn(Lu(Po)),dg=function(n){var e=n.MonadEffect0(),t=e.Monad0(),r=zc(t),u=U(r),o=R(t.Applicative0()),i=Dh(n),a=function(n){var e=n.MonadEffect0(),t=e.Monad0(),r=U(zc(t)),u=Wr(Jc(e)),o=R(qc(t)),i=k(Gc(t)),a=R(t.Applicative0());return function(n){return r(u(Uo))((function(e){var t=jo(n);return t instanceof $n?o(e+"?u#"+t.value0):i(u(Nr("Could not compress shortlink URI")))(a(Kn.value))}))}}(n),c=lg(r),f=Wr(Jc(e));return function(n){return u(o(Fw(n)))((function(n){return u(i("https://cutt.ly/api/api.php?key=d27fec420c4daade4093757967023d6b70bc7&short="+n))((function(n){var e=fg(n);if(e instanceof ve)return a(e.value0.url.shortLink);if(e instanceof le){var t=Ag(n);if(t instanceof ve)return c(f(Nr("Received error status from cuttly API: "+vg(t.value0.url.status))))((function(){return o(Kn.value)}));if(t instanceof le)return c(f(Nr("Can't parse response JSON: "+sg(t.value0)+". Response: "+n)))((function(){return o(Kn.value)}));throw new Error("Failed pattern match at CuttlyUrlShortener (line 29, column 7 - line 35, column 32): "+[t.constructor.name])}throw new Error("Failed pattern match at CuttlyUrlShortener (line 26, column 3 - line 35, column 32): "+[e.constructor.name])}))}))}};var mg=function(n){return pw(Kn.value)($n.create)(n)},wg=function(n){return gw(Kn.value)($n.create)(n)},pg=function(n){return function(e){return hw(Kn.value)(mw(n))(e)}},hg=function(n){return Ew(Kn.value)($n.create)(n)};function gg(){return new DOMParser}function Eg(n){return function(e){return function(t){return function(){return t.parseFromString(e,n)}}}}var bg=function(n){return function(e){return function(){return e[n]}}};bg("URL"),bg("documentURI"),bg("origin"),bg("compatMode"),bg("characterSet"),bg("contentType");bg("documentElement");var Cg=function(n){return function(e){return function(n,e,t,r){if("undefined"!=typeof window){var u=window[t];if(null!=u&&r instanceof u)return e(r)}for(var o=r;null!=o;){var i=Object.getPrototypeOf(o),a=i.constructor.name;if(a===t)return e(r);if("Object"===a)return n;o=i}return n}(Kn.value,$n.create,n,e)}},Bg=Nt,yg=function(n){return function(e){return e[n]}};yg("namespaceURI"),yg("prefix"),yg("localName"),yg("tagName");var Fg=function(n){return function(e){return function(){return e[n]}}};Fg("children"),Fg("firstElementChild"),Fg("lastElementChild"),Fg("childElementCount");var Mg=b(Je),Sg=function(n){var e,t=Mg(Kw),r=(e=n,function(n){return function(){return n.querySelector(e)}});return function(n){return t(r(n))}};var Ig=b(Je),Qg=Nt;function kg(n){return function(){return[].slice.call(n)}}var Dg=function(n){return function(e){return function(){return e[n]}}};Dg("baseURI"),Dg("ownerDocument");const Rg=Dg("parentNode");Dg("parentElement");Dg("childNodes"),Dg("firstChild"),Dg("lastChild"),Dg("previousSibling");const Tg=Dg("nextSibling");Dg("nodeValue");const Og=Dg("textContent");function Vg(n){return function(e){return function(){e.appendChild(n)}}}var xg=b(Je),Zg=function(){var n=xg(Kw);return function(e){return n(Rg(e))}}(),Pg=function(){var n=xg(Kw);return function(e){return n(Tg(e))}}(),Yg=b(re),zg=R(ze),Gg=b(Je),qg=nn(Ye),Jg=function(n){return function(e){if(n instanceof Kn)return new ve(e);if(n instanceof $n)return new le(n.value0);throw new Error("Failed pattern match at Web.DOM.DOMParser (line 73, column 30 - line 75, column 21): "+[n.constructor.name])}},Hg=function(n){return function(){var e,t=qg(Gg(kg)((e="parsererror",function(n){return function(){return n.getElementsByTagName(e)}})(n)))();return function(n){var e=Yg(Qg)(n);if(e instanceof Kn)return zg(Kn.value);if(e instanceof $n)return Gg($n.create)(Og(e.value0));throw new Error("Failed pattern match at Web.DOM.DOMParser (line 65, column 23 - line 67, column 45): "+[e.constructor.name])}(Vr(t))()}},Xg=U(fe),Lg=j($),jg=vp(Te),Wg=sp(Te),Ug=yt(kt(kt(It))),Ng=Yr(ae(ln)),_g=lp(Te),Kg=b(Je),$g=br(Br)(ze),nE=function(n){var e=R(n.Applicative0());return function(n){return e(n)}},eE=function(){return x((function(n){return te(n.rating)&&ee(n.marketingType)&&Ug(Ng)(n.contentType)([new $n("Pro"),new $n("Video"),new $n("Power")])}))}(),tE=function(n){var e=jg(n),t=zc(e),r=Lg(t),u=T(qc(e)),o=lu(Xc(Wg(n))),i=U(t),a=$c(n),c=C(fp(n.Bind1().Apply0().Functor0())),f=function(n){var e=U(n.Bind1()),t=n.Applicative0(),r=Lc(t),u=R(t);return function(n){return function(t){return e(r((function(e){return n(e)}))(t))((function(n){return e(u(Jr(jc)(n)))((function(n){return u(n)}))}))}}}(e),A=function(n){var e=jg(n),t=Lg(zc(e)),r=T(qc(e)),u=lu(Xc(Wg(n))),o=$c(n);return function(n){var e=Xg(Xg(pg("tab_url")(n))(mg))((function(e){return Xg(Xg(pg("song_name")(n))(mg))((function(t){return Xg(Xg(pg("artist_name")(n))(mg))((function(r){var u=Xg(pg("rating")(n))(wg),o=Xg(pg("type")(n))(mg),i=Xg(pg("marketing_type")(n))(mg);return new $n({url:e,rating:u,name:t,artist:r,contentType:o,marketingType:i})}))}))}));return t(r(ee(e))(u(["Could not find search results in json "+fw(n)])))((function(){return o(e)}))}}(n);return function(n){var e=Xg(Xg(Xg(Xg(pg("store")(n))(pg("page")))(pg("data")))(pg("results")))(hg);return r(u(ee(e))(o(["Could not find search results in json "+fw(n)])))((function(){return i(a(e))((function(n){return c(f(A)(n))($n.create)}))}))}},rE=function(n){var e=n.MonadEffect0(),t=e.Monad0(),r=U(zc(t)),u=Wr(Jc(e)),o=Wr(e),i=R(t.Applicative0());return function(n){return r(u(gg))((function(e){return r(o(Kg(pe)((t=n,function(n){return function(){var e=Eg("text/html")(t)(n)(),r=Hg(e)();return Jg(r)(e)}})(e))))((function(n){return r(o(Sg(".js-store")(Bg(n))))((function(n){return r(o((e="data-content",u=Ig(Kw),t=e,a=function(n){return function(){return n.getAttribute(t)}},function(n){return u(a(n))})(n)))((function(n){return i(pe(bw(n)))}));var e,t,u,a}))}));var t}))}},uE=function(n){var e=U(zc(n.MonadEffect0().Monad0())),t=Dh(n),r=rE(n);return function(n){return e(t(n))((function(n){return r(n)}))}},oE=function(n){var e=n.MonadEffect0(),t=e.Monad0(),r=U(zc(t)),u=uE(n),o=function(n){var e=jg(n),t=zc(e),r=Lg(t),u=qc(e),o=T(u),i=lu(Xc(Wg(n))),a=U(t),c=R(_g(n.Applicative0())),f=R(u);return function(n){var e=Xg(Xg(Xg(Xg(Xg(Xg(pg("store")(n))(pg("page")))(pg("data")))(pg("tab_view")))(pg("wiki_tab")))(pg("content")))(mg);return r(o(ee(e))(i(["Could not retrieve tablature data from json "+fw(n)])))((function(){return a(c(e))((function(n){return f(Fc(Rc("\\[\\/?(ch|tab)\\]")(Ic))("")(n).replace(/"/g,'"').replace(/'/g,"'").replace(/</g,"<").replace(/>/g,">").replace(/&/g,"&"))}))}))}}(Yc(t)),i=Wr(Jc(e)),a=nE(t);return function(n){return function(n){return r(u(n))((function(n){return r(o(n))((function(n){return r(i($g(Nr)(n.value1)))((function(){return a(n.value0)}))}))}))}}},iE=j($),aE=mn(rm),cE=Ei(Sv),fE=bi(Sv),AE=dg(Sh),lE=R(ze),vE=mn(um),sE=function(){function n(){}return n.value=new n,n}(),dE=function(){function n(){}return n.value=new n,n}(),mE=function(){function n(){}return n.value=new n,n}(),wE=function(){function n(){}return n.value=new n,n}(),pE=function(){function n(){}return n.value=new n,n}(),hE=function(){function n(){}return n.value=new n,n}(),gE=function(){function n(){}return n.value=new n,n}(),EE=function(){function n(){}return n.value=new n,n}(),bE=function(){function n(){}return n.value=new n,n}(),CE=function(){function n(){}return n.value=new n,n}(),BE=function(){function n(){}return n.value=new n,n}(),yE=function(){function n(){}return n.value=new n,n}(),FE=function(){function n(){}return n.value=new n,n}(),ME=function(){function n(){}return n.value=new n,n}(),SE=function(){function n(){}return n.value=new n,n}(),IE=function(){function n(){}return n.value=new n,n}(),QE=function(){function n(){}return n.value=new n,n}(),kE=function(){function n(){}return n.value=new n,n}(),DE=function(){function n(){}return n.value=new n,n}(),RE=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),TE=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),OE=function(){function n(){}return n.value=new n,n}(),VE=function(n){var e=iE(n.MonadEffect0().Monad0().Bind1()),t=function(n){var e=n.MonadEffect0(),t=e.Monad0(),r=b(t.Bind1().Apply0().Functor0()),u=U(zc(t)),o=uE(n),i=tE(Yc(t)),a=Wr(Jc(e)),c=nE(t);return function(n){var e=im(Hc(n));return function(n){return r(h(g))(u(o("https://www.ultimate-guitar.com/search.php?search_type=title&value="+n))((function(n){return u(i(n))((function(n){return u(a($g(Nr)(n.value1)))((function(){return u(c(n.value0))((function(n){return e((function(n){return hm(n)}))(new $n(eE(n)))}))}))}))})))}}}(n);return function(n){var r=im(n),u=t(n);return function(n){return e(r((function(n){return function(n){return qa(kd(Pa(Pd(n))()(n.Profunctor0())))(za)}(n)}))(new $n(n)))((function(){return u(n)}))}}},xE=function(n){var e=n.MonadEffect0(),t=e.Monad0(),r=b(t.Bind1().Apply0().Functor0()),u=zc(t),o=U(u),i=oE(n),a=iE(u),c=sm(function(n){var e,t,r=n.MonadEffect0(),u=Jc(r);return{liftAff:(e=Fh(r.Monad0()),t=Ih(n),function(n){return e(t(n))}),MonadEffect0:function(){return u}}}(n)),f=Wr(Jc(e));return function(n){var e=i(n),t=Hc(n),u=Gv(t),A=c(t),l=zv(t),v=im(t);return function(n){return r(h(g))(o(e(n))((function(n){return a(u(A)(n))((function(){return a(f(cv))((function(){return a(l(fm))((function(){return v((function(n){return ym(n)}))(_d.value)}))}))}))})))}}},ZE=function(n){var e=n.MonadEffect0(),t=U(e.Monad0().Bind1()),r=Wr(e),u=Ih(n);return function(n){return t(r(Wo))((function(n){return t(u(AE(n)))((function(n){return r(function(){if(n instanceof $n)return e=n.value0,function(){window.prompt("Copy the following link:",e)};var e;if(n instanceof Kn)return lE(g);throw new Error("Failed pattern match at AppActions (line 111, column 16 - line 113, column 25): "+[n.constructor.name])}())}))}))}};function PE(n){return function(e){return function(t){return n.apply(t,[e])}}}const YE=PE(Number.prototype.toPrecision),zE=PE(Number.prototype.toFixed),GE=PE(Number.prototype.toExponential);var qE=Vn(In),JE=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),HE=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),XE=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),LE=function(n){if(n instanceof JE)return YE(n.value0);if(n instanceof HE)return zE(n.value0);if(n instanceof XE)return GE(n.value0);throw new Error("Failed pattern match at Data.Number.Format (line 59, column 1 - line 59, column 43): "+[n.constructor.name])},jE=function(){var n=qE(1)(21);return function(e){return JE.create(n(e))}}();var WE=function(n){return function(e){return function(){return setInterval(e,n)}}},UE=function(n){return function(){clearInterval(n)}},NE=function(){function n(n,e){this.value0=n,this.value1=e}return n.create=function(e){return function(t){return new n(e,t)}},n}(),_E=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),KE=function(){function n(n,e,t,r){this.value0=n,this.value1=e,this.value2=t,this.value3=r}return n.create=function(e){return function(t){return function(r){return function(u){return new n(e,t,r,u)}}}},n}(),$E=Nt,nb=function(n,e){return n.value2(n.value1,e)},eb=Nt,tb=function(n){return n.value3(n.value1)},rb=$E((function(n){return n.value0})),ub=b(F),ob=b(Gt),ib=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),ab=function(){function n(n,e,t,r){this.value0=n,this.value1=e,this.value2=t,this.value3=r}return n.create=function(e){return function(t){return function(r){return function(u){return new n(e,t,r,u)}}}},n}(),cb=function(){function n(n,e,t,r){this.value0=n,this.value1=e,this.value2=t,this.value3=r}return n.create=function(e){return function(t){return function(r){return function(u){return new n(e,t,r,u)}}}},n}(),fb=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),Ab=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),lb=function(){function n(n,e,t){this.value0=n,this.value1=e,this.value2=t}return n.create=function(e){return function(t){return function(r){return new n(e,t,r)}}},n}(),vb=function(n){return function(e){return n(e)}},sb=Nt,db=Ht({bimap:function(n){return function(e){return vb((function(t){return sb(new lb((function(e){return n(t.value0(e))}),(function(n){return e(t.value1(n))}),t.value2))}))}}}),mb=vb((function(n){var e=function(t){if(t instanceof ib)return new ib(t.value0);if(t instanceof ab)return new ab(t.value0,t.value1,n.value0(t.value2),ub(e)(t.value3));if(t instanceof cb)return new cb(t.value0,t.value1,n.value0(t.value2),ub(ob(e))(t.value3));if(t instanceof fb)return new fb(n.value1(t.value0));if(t instanceof Ab)return new Ab(db(n.value0)(n.value1)(t.value0));throw new Error("Failed pattern match at Halogen.VDom.Types (line 86, column 7 - line 86, column 27): "+[t.constructor.name])};return e(n.value2)}));function wb(n,e){return e[n]}function pb(n,e,t){t[n]=e}function hb(n,e,t){for(var r={},u=0;u\n// This work is free. You can redistribute it and/or modify it\n// under the terms of the WTFPL, Version 2\n// For more information see LICENSE.txt or http://www.wtfpl.net/\n//\n// For more information, the home page:\n// http://pieroxy.net/blog/pages/lz-string/testing.html\n//\n// LZ-based compression algorithm, version 1.4.5\nvar LZString = (function() {\n\n// private property\nvar f = String.fromCharCode;\nvar keyStrBase64 = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\nvar keyStrUriSafe = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-$\";\nvar baseReverseDic = {};\n\nfunction getBaseValue(alphabet, character) {\n if (!baseReverseDic[alphabet]) {\n baseReverseDic[alphabet] = {};\n for (var i=0 ; i>> 8;\n buf[i*2+1] = current_value % 256;\n }\n return buf;\n },\n\n //decompress from uint8array (UCS-2 big endian format)\n decompressFromUint8Array:function (compressed) {\n if (compressed===null || compressed===undefined){\n return LZString.decompress(compressed);\n } else {\n var buf=new Array(compressed.length/2); // 2 bytes per character\n for (var i=0, TotalLen=buf.length; i> 1;\n }\n } else {\n value = 1;\n for (i=0 ; i> 1;\n }\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n delete context_dictionaryToCreate[context_w];\n } else {\n value = context_dictionary[context_w];\n for (i=0 ; i> 1;\n }\n\n\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n // Add wc to the dictionary.\n context_dictionary[context_wc] = context_dictSize++;\n context_w = String(context_c);\n }\n }\n\n // Output the code for w.\n if (context_w !== \"\") {\n if (Object.prototype.hasOwnProperty.call(context_dictionaryToCreate,context_w)) {\n if (context_w.charCodeAt(0)<256) {\n for (i=0 ; i> 1;\n }\n } else {\n value = 1;\n for (i=0 ; i> 1;\n }\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n delete context_dictionaryToCreate[context_w];\n } else {\n value = context_dictionary[context_w];\n for (i=0 ; i> 1;\n }\n\n\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n }\n\n // Mark the end of the stream\n value = 2;\n for (i=0 ; i> 1;\n }\n\n // Flush the last char\n while (true) {\n context_data_val = (context_data_val << 1);\n if (context_data_position == bitsPerChar-1) {\n context_data.push(getCharFromInt(context_data_val));\n break;\n }\n else context_data_position++;\n }\n return context_data.join('');\n },\n\n decompress: function (compressed) {\n if (compressed == null) return \"\";\n if (compressed == \"\") return null;\n return LZString._decompress(compressed.length, 32768, function(index) { return compressed.charCodeAt(index); });\n },\n\n _decompress: function (length, resetValue, getNextValue) {\n var dictionary = [],\n next,\n enlargeIn = 4,\n dictSize = 4,\n numBits = 3,\n entry = \"\",\n result = [],\n i,\n w,\n bits, resb, maxpower, power,\n c,\n data = {val:getNextValue(0), position:resetValue, index:1};\n\n for (i = 0; i < 3; i += 1) {\n dictionary[i] = i;\n }\n\n bits = 0;\n maxpower = Math.pow(2,2);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n\n switch (next = bits) {\n case 0:\n bits = 0;\n maxpower = Math.pow(2,8);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n c = f(bits);\n break;\n case 1:\n bits = 0;\n maxpower = Math.pow(2,16);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n c = f(bits);\n break;\n case 2:\n return \"\";\n }\n dictionary[3] = c;\n w = c;\n result.push(c);\n while (true) {\n if (data.index > length) {\n return \"\";\n }\n\n bits = 0;\n maxpower = Math.pow(2,numBits);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n\n switch (c = bits) {\n case 0:\n bits = 0;\n maxpower = Math.pow(2,8);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n\n dictionary[dictSize++] = f(bits);\n c = dictSize-1;\n enlargeIn--;\n break;\n case 1:\n bits = 0;\n maxpower = Math.pow(2,16);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n dictionary[dictSize++] = f(bits);\n c = dictSize-1;\n enlargeIn--;\n break;\n case 2:\n return result.join('');\n }\n\n if (enlargeIn == 0) {\n enlargeIn = Math.pow(2, numBits);\n numBits++;\n }\n\n if (dictionary[c]) {\n entry = dictionary[c];\n } else {\n if (c === dictSize) {\n entry = w + w.charAt(0);\n } else {\n return null;\n }\n }\n result.push(entry);\n\n // Add w+entry[0] to the dictionary.\n dictionary[dictSize++] = w + entry.charAt(0);\n enlargeIn--;\n\n w = entry;\n\n if (enlargeIn == 0) {\n enlargeIn = Math.pow(2, numBits);\n numBits++;\n }\n\n }\n }\n};\n return LZString;\n})();\n\nif (typeof define === 'function' && define.amd) {\n define(function () { return LZString; });\n} else if( typeof module !== 'undefined' && module != null ) {\n module.exports = LZString\n} else if( typeof angular !== 'undefined' && angular != null ) {\n angular.module('LZString', [])\n .factory('LZString', function () {\n return LZString;\n });\n}\n","module.exports = {\n webm:\n \"data:video/webm;base64,GkXfowEAAAAAAAAfQoaBAUL3gQFC8oEEQvOBCEKChHdlYm1Ch4EEQoWBAhhTgGcBAAAAAAAVkhFNm3RALE27i1OrhBVJqWZTrIHfTbuMU6uEFlSua1OsggEwTbuMU6uEHFO7a1OsghV17AEAAAAAAACkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVSalmAQAAAAAAAEUq17GDD0JATYCNTGF2ZjU1LjMzLjEwMFdBjUxhdmY1NS4zMy4xMDBzpJBlrrXf3DCDVB8KcgbMpcr+RImIQJBgAAAAAAAWVK5rAQAAAAAAD++uAQAAAAAAADLXgQFzxYEBnIEAIrWcg3VuZIaFVl9WUDiDgQEj44OEAmJaAOABAAAAAAAABrCBsLqBkK4BAAAAAAAPq9eBAnPFgQKcgQAitZyDdW5khohBX1ZPUkJJU4OBAuEBAAAAAAAAEZ+BArWIQOdwAAAAAABiZIEgY6JPbwIeVgF2b3JiaXMAAAAAAoC7AAAAAAAAgLUBAAAAAAC4AQN2b3JiaXMtAAAAWGlwaC5PcmcgbGliVm9yYmlzIEkgMjAxMDExMDEgKFNjaGF1ZmVudWdnZXQpAQAAABUAAABlbmNvZGVyPUxhdmM1NS41Mi4xMDIBBXZvcmJpcyVCQ1YBAEAAACRzGCpGpXMWhBAaQlAZ4xxCzmvsGUJMEYIcMkxbyyVzkCGkoEKIWyiB0JBVAABAAACHQXgUhIpBCCGEJT1YkoMnPQghhIg5eBSEaUEIIYQQQgghhBBCCCGERTlokoMnQQgdhOMwOAyD5Tj4HIRFOVgQgydB6CCED0K4moOsOQghhCQ1SFCDBjnoHITCLCiKgsQwuBaEBDUojILkMMjUgwtCiJqDSTX4GoRnQXgWhGlBCCGEJEFIkIMGQcgYhEZBWJKDBjm4FITLQagahCo5CB+EIDRkFQCQAACgoiiKoigKEBqyCgDIAAAQQFEUx3EcyZEcybEcCwgNWQUAAAEACAAAoEiKpEiO5EiSJFmSJVmSJVmS5omqLMuyLMuyLMsyEBqyCgBIAABQUQxFcRQHCA1ZBQBkAAAIoDiKpViKpWiK54iOCISGrAIAgAAABAAAEDRDUzxHlETPVFXXtm3btm3btm3btm3btm1blmUZCA1ZBQBAAAAQ0mlmqQaIMAMZBkJDVgEACAAAgBGKMMSA0JBVAABAAACAGEoOogmtOd+c46BZDppKsTkdnEi1eZKbirk555xzzsnmnDHOOeecopxZDJoJrTnnnMSgWQqaCa0555wnsXnQmiqtOeeccc7pYJwRxjnnnCateZCajbU555wFrWmOmkuxOeecSLl5UptLtTnnnHPOOeecc84555zqxekcnBPOOeecqL25lpvQxTnnnE/G6d6cEM4555xzzjnnnHPOOeecIDRkFQAABABAEIaNYdwpCNLnaCBGEWIaMulB9+gwCRqDnELq0ehopJQ6CCWVcVJKJwgNWQUAAAIAQAghhRRSSCGFFFJIIYUUYoghhhhyyimnoIJKKqmooowyyyyzzDLLLLPMOuyssw47DDHEEEMrrcRSU2011lhr7jnnmoO0VlprrbVSSimllFIKQkNWAQAgAAAEQgYZZJBRSCGFFGKIKaeccgoqqIDQkFUAACAAgAAAAABP8hzRER3RER3RER3RER3R8RzPESVREiVREi3TMjXTU0VVdWXXlnVZt31b2IVd933d933d+HVhWJZlWZZlWZZlWZZlWZZlWZYgNGQVAAACAAAghBBCSCGFFFJIKcYYc8w56CSUEAgNWQUAAAIACAAAAHAUR3EcyZEcSbIkS9IkzdIsT/M0TxM9URRF0zRV0RVdUTdtUTZl0zVdUzZdVVZtV5ZtW7Z125dl2/d93/d93/d93/d93/d9XQdCQ1YBABIAADqSIymSIimS4ziOJElAaMgqAEAGAEAAAIriKI7jOJIkSZIlaZJneZaomZrpmZ4qqkBoyCoAABAAQAAAAAAAAIqmeIqpeIqoeI7oiJJomZaoqZoryqbsuq7ruq7ruq7ruq7ruq7ruq7ruq7ruq7ruq7ruq7ruq7ruq4LhIasAgAkAAB0JEdyJEdSJEVSJEdygNCQVQCADACAAAAcwzEkRXIsy9I0T/M0TxM90RM901NFV3SB0JBVAAAgAIAAAAAAAAAMybAUy9EcTRIl1VItVVMt1VJF1VNVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVN0zRNEwgNWQkAkAEAkBBTLS3GmgmLJGLSaqugYwxS7KWxSCpntbfKMYUYtV4ah5RREHupJGOKQcwtpNApJq3WVEKFFKSYYyoVUg5SIDRkhQAQmgHgcBxAsixAsiwAAAAAAAAAkDQN0DwPsDQPAAAAAAAAACRNAyxPAzTPAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABA0jRA8zxA8zwAAAAAAAAA0DwP8DwR8EQRAAAAAAAAACzPAzTRAzxRBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABA0jRA8zxA8zwAAAAAAAAAsDwP8EQR0DwRAAAAAAAAACzPAzxRBDzRAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAEOAAABBgIRQasiIAiBMAcEgSJAmSBM0DSJYFTYOmwTQBkmVB06BpME0AAAAAAAAAAAAAJE2DpkHTIIoASdOgadA0iCIAAAAAAAAAAAAAkqZB06BpEEWApGnQNGgaRBEAAAAAAAAAAAAAzzQhihBFmCbAM02IIkQRpgkAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAGHAAAAgwoQwUGrIiAIgTAHA4imUBAIDjOJYFAACO41gWAABYliWKAABgWZooAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAYcAAACDChDBQashIAiAIAcCiKZQHHsSzgOJYFJMmyAJYF0DyApgFEEQAIAAAocAAACLBBU2JxgEJDVgIAUQAABsWxLE0TRZKkaZoniiRJ0zxPFGma53meacLzPM80IYqiaJoQRVE0TZimaaoqME1VFQAAUOAAABBgg6bE4gCFhqwEAEICAByKYlma5nmeJ4qmqZokSdM8TxRF0TRNU1VJkqZ5niiKommapqqyLE3zPFEURdNUVVWFpnmeKIqiaaqq6sLzPE8URdE0VdV14XmeJ4qiaJqq6roQRVE0TdNUTVV1XSCKpmmaqqqqrgtETxRNU1Vd13WB54miaaqqq7ouEE3TVFVVdV1ZBpimaaqq68oyQFVV1XVdV5YBqqqqruu6sgxQVdd1XVmWZQCu67qyLMsCAAAOHAAAAoygk4wqi7DRhAsPQKEhKwKAKAAAwBimFFPKMCYhpBAaxiSEFEImJaXSUqogpFJSKRWEVEoqJaOUUmopVRBSKamUCkIqJZVSAADYgQMA2IGFUGjISgAgDwCAMEYpxhhzTiKkFGPOOScRUoox55yTSjHmnHPOSSkZc8w556SUzjnnnHNSSuacc845KaVzzjnnnJRSSuecc05KKSWEzkEnpZTSOeecEwAAVOAAABBgo8jmBCNBhYasBABSAQAMjmNZmuZ5omialiRpmud5niiapiZJmuZ5nieKqsnzPE8URdE0VZXneZ4oiqJpqirXFUXTNE1VVV2yLIqmaZqq6rowTdNUVdd1XZimaaqq67oubFtVVdV1ZRm2raqq6rqyDFzXdWXZloEsu67s2rIAAPAEBwCgAhtWRzgpGgssNGQlAJABAEAYg5BCCCFlEEIKIYSUUggJAAAYcAAACDChDBQashIASAUAAIyx1lprrbXWQGettdZaa62AzFprrbXWWmuttdZaa6211lJrrbXWWmuttdZaa6211lprrbXWWmuttdZaa6211lprrbXWWmuttdZaa6211lprrbXWWmstpZRSSimllFJKKaWUUkoppZRSSgUA+lU4APg/2LA6wknRWGChISsBgHAAAMAYpRhzDEIppVQIMeacdFRai7FCiDHnJKTUWmzFc85BKCGV1mIsnnMOQikpxVZjUSmEUlJKLbZYi0qho5JSSq3VWIwxqaTWWoutxmKMSSm01FqLMRYjbE2ptdhqq7EYY2sqLbQYY4zFCF9kbC2m2moNxggjWywt1VprMMYY3VuLpbaaizE++NpSLDHWXAAAd4MDAESCjTOsJJ0VjgYXGrISAAgJACAQUooxxhhzzjnnpFKMOeaccw5CCKFUijHGnHMOQgghlIwx5pxzEEIIIYRSSsaccxBCCCGEkFLqnHMQQgghhBBKKZ1zDkIIIYQQQimlgxBCCCGEEEoopaQUQgghhBBCCKmklEIIIYRSQighlZRSCCGEEEIpJaSUUgohhFJCCKGElFJKKYUQQgillJJSSimlEkoJJYQSUikppRRKCCGUUkpKKaVUSgmhhBJKKSWllFJKIYQQSikFAAAcOAAABBhBJxlVFmGjCRcegEJDVgIAZAAAkKKUUiktRYIipRikGEtGFXNQWoqocgxSzalSziDmJJaIMYSUk1Qy5hRCDELqHHVMKQYtlRhCxhik2HJLoXMOAAAAQQCAgJAAAAMEBTMAwOAA4XMQdAIERxsAgCBEZohEw0JweFAJEBFTAUBigkIuAFRYXKRdXECXAS7o4q4DIQQhCEEsDqCABByccMMTb3jCDU7QKSp1IAAAAAAADADwAACQXAAREdHMYWRobHB0eHyAhIiMkAgAAAAAABcAfAAAJCVAREQ0cxgZGhscHR4fICEiIyQBAIAAAgAAAAAggAAEBAQAAAAAAAIAAAAEBB9DtnUBAAAAAAAEPueBAKOFggAAgACjzoEAA4BwBwCdASqwAJAAAEcIhYWIhYSIAgIABhwJ7kPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99YAD+/6tQgKOFggADgAqjhYIAD4AOo4WCACSADqOZgQArADECAAEQEAAYABhYL/QACIBDmAYAAKOFggA6gA6jhYIAT4AOo5mBAFMAMQIAARAQABgAGFgv9AAIgEOYBgAAo4WCAGSADqOFggB6gA6jmYEAewAxAgABEBAAGAAYWC/0AAiAQ5gGAACjhYIAj4AOo5mBAKMAMQIAARAQABgAGFgv9AAIgEOYBgAAo4WCAKSADqOFggC6gA6jmYEAywAxAgABEBAAGAAYWC/0AAiAQ5gGAACjhYIAz4AOo4WCAOSADqOZgQDzADECAAEQEAAYABhYL/QACIBDmAYAAKOFggD6gA6jhYIBD4AOo5iBARsAEQIAARAQFGAAYWC/0AAiAQ5gGACjhYIBJIAOo4WCATqADqOZgQFDADECAAEQEAAYABhYL/QACIBDmAYAAKOFggFPgA6jhYIBZIAOo5mBAWsAMQIAARAQABgAGFgv9AAIgEOYBgAAo4WCAXqADqOFggGPgA6jmYEBkwAxAgABEBAAGAAYWC/0AAiAQ5gGAACjhYIBpIAOo4WCAbqADqOZgQG7ADECAAEQEAAYABhYL/QACIBDmAYAAKOFggHPgA6jmYEB4wAxAgABEBAAGAAYWC/0AAiAQ5gGAACjhYIB5IAOo4WCAfqADqOZgQILADECAAEQEAAYABhYL/QACIBDmAYAAKOFggIPgA6jhYICJIAOo5mBAjMAMQIAARAQABgAGFgv9AAIgEOYBgAAo4WCAjqADqOFggJPgA6jmYECWwAxAgABEBAAGAAYWC/0AAiAQ5gGAACjhYICZIAOo4WCAnqADqOZgQKDADECAAEQEAAYABhYL/QACIBDmAYAAKOFggKPgA6jhYICpIAOo5mBAqsAMQIAARAQABgAGFgv9AAIgEOYBgAAo4WCArqADqOFggLPgA6jmIEC0wARAgABEBAUYABhYL/QACIBDmAYAKOFggLkgA6jhYIC+oAOo5mBAvsAMQIAARAQABgAGFgv9AAIgEOYBgAAo4WCAw+ADqOZgQMjADECAAEQEAAYABhYL/QACIBDmAYAAKOFggMkgA6jhYIDOoAOo5mBA0sAMQIAARAQABgAGFgv9AAIgEOYBgAAo4WCA0+ADqOFggNkgA6jmYEDcwAxAgABEBAAGAAYWC/0AAiAQ5gGAACjhYIDeoAOo4WCA4+ADqOZgQObADECAAEQEAAYABhYL/QACIBDmAYAAKOFggOkgA6jhYIDuoAOo5mBA8MAMQIAARAQABgAGFgv9AAIgEOYBgAAo4WCA8+ADqOFggPkgA6jhYID+oAOo4WCBA+ADhxTu2sBAAAAAAAAEbuPs4EDt4r3gQHxghEr8IEK\",\n mp4:\n \"data:video/mp4;base64,AAAAHGZ0eXBNNFYgAAACAGlzb21pc28yYXZjMQAAAAhmcmVlAAAGF21kYXTeBAAAbGliZmFhYyAxLjI4AABCAJMgBDIARwAAArEGBf//rdxF6b3m2Ui3lizYINkj7u94MjY0IC0gY29yZSAxNDIgcjIgOTU2YzhkOCAtIEguMjY0L01QRUctNCBBVkMgY29kZWMgLSBDb3B5bGVmdCAyMDAzLTIwMTQgLSBodHRwOi8vd3d3LnZpZGVvbGFuLm9yZy94MjY0Lmh0bWwgLSBvcHRpb25zOiBjYWJhYz0wIHJlZj0zIGRlYmxvY2s9MTowOjAgYW5hbHlzZT0weDE6MHgxMTEgbWU9aGV4IHN1Ym1lPTcgcHN5PTEgcHN5X3JkPTEuMDA6MC4wMCBtaXhlZF9yZWY9MSBtZV9yYW5nZT0xNiBjaHJvbWFfbWU9MSB0cmVsbGlzPTEgOHg4ZGN0PTAgY3FtPTAgZGVhZHpvbmU9MjEsMTEgZmFzdF9wc2tpcD0xIGNocm9tYV9xcF9vZmZzZXQ9LTIgdGhyZWFkcz02IGxvb2thaGVhZF90aHJlYWRzPTEgc2xpY2VkX3RocmVhZHM9MCBucj0wIGRlY2ltYXRlPTEgaW50ZXJsYWNlZD0wIGJsdXJheV9jb21wYXQ9MCBjb25zdHJhaW5lZF9pbnRyYT0wIGJmcmFtZXM9MCB3ZWlnaHRwPTAga2V5aW50PTI1MCBrZXlpbnRfbWluPTI1IHNjZW5lY3V0PTQwIGludHJhX3JlZnJlc2g9MCByY19sb29rYWhlYWQ9NDAgcmM9Y3JmIG1idHJlZT0xIGNyZj0yMy4wIHFjb21wPTAuNjAgcXBtaW49MCBxcG1heD02OSBxcHN0ZXA9NCB2YnZfbWF4cmF0ZT03NjggdmJ2X2J1ZnNpemU9MzAwMCBjcmZfbWF4PTAuMCBuYWxfaHJkPW5vbmUgZmlsbGVyPTAgaXBfcmF0aW89MS40MCBhcT0xOjEuMDAAgAAAAFZliIQL8mKAAKvMnJycnJycnJycnXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXiEASZACGQAjgCEASZACGQAjgAAAAAdBmjgX4GSAIQBJkAIZACOAAAAAB0GaVAX4GSAhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZpgL8DJIQBJkAIZACOAIQBJkAIZACOAAAAABkGagC/AySEASZACGQAjgAAAAAZBmqAvwMkhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZrAL8DJIQBJkAIZACOAAAAABkGa4C/AySEASZACGQAjgCEASZACGQAjgAAAAAZBmwAvwMkhAEmQAhkAI4AAAAAGQZsgL8DJIQBJkAIZACOAIQBJkAIZACOAAAAABkGbQC/AySEASZACGQAjgCEASZACGQAjgAAAAAZBm2AvwMkhAEmQAhkAI4AAAAAGQZuAL8DJIQBJkAIZACOAIQBJkAIZACOAAAAABkGboC/AySEASZACGQAjgAAAAAZBm8AvwMkhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZvgL8DJIQBJkAIZACOAAAAABkGaAC/AySEASZACGQAjgCEASZACGQAjgAAAAAZBmiAvwMkhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZpAL8DJIQBJkAIZACOAAAAABkGaYC/AySEASZACGQAjgCEASZACGQAjgAAAAAZBmoAvwMkhAEmQAhkAI4AAAAAGQZqgL8DJIQBJkAIZACOAIQBJkAIZACOAAAAABkGawC/AySEASZACGQAjgAAAAAZBmuAvwMkhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZsAL8DJIQBJkAIZACOAAAAABkGbIC/AySEASZACGQAjgCEASZACGQAjgAAAAAZBm0AvwMkhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZtgL8DJIQBJkAIZACOAAAAABkGbgCvAySEASZACGQAjgCEASZACGQAjgAAAAAZBm6AnwMkhAEmQAhkAI4AhAEmQAhkAI4AhAEmQAhkAI4AhAEmQAhkAI4AAAAhubW9vdgAAAGxtdmhkAAAAAAAAAAAAAAAAAAAD6AAABDcAAQAAAQAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAzB0cmFrAAAAXHRraGQAAAADAAAAAAAAAAAAAAABAAAAAAAAA+kAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAABAAAAAALAAAACQAAAAAAAkZWR0cwAAABxlbHN0AAAAAAAAAAEAAAPpAAAAAAABAAAAAAKobWRpYQAAACBtZGhkAAAAAAAAAAAAAAAAAAB1MAAAdU5VxAAAAAAALWhkbHIAAAAAAAAAAHZpZGUAAAAAAAAAAAAAAABWaWRlb0hhbmRsZXIAAAACU21pbmYAAAAUdm1oZAAAAAEAAAAAAAAAAAAAACRkaW5mAAAAHGRyZWYAAAAAAAAAAQAAAAx1cmwgAAAAAQAAAhNzdGJsAAAAr3N0c2QAAAAAAAAAAQAAAJ9hdmMxAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAALAAkABIAAAASAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGP//AAAALWF2Y0MBQsAN/+EAFWdCwA3ZAsTsBEAAAPpAADqYA8UKkgEABWjLg8sgAAAAHHV1aWRraEDyXyRPxbo5pRvPAyPzAAAAAAAAABhzdHRzAAAAAAAAAAEAAAAeAAAD6QAAABRzdHNzAAAAAAAAAAEAAAABAAAAHHN0c2MAAAAAAAAAAQAAAAEAAAABAAAAAQAAAIxzdHN6AAAAAAAAAAAAAAAeAAADDwAAAAsAAAALAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAAiHN0Y28AAAAAAAAAHgAAAEYAAANnAAADewAAA5gAAAO0AAADxwAAA+MAAAP2AAAEEgAABCUAAARBAAAEXQAABHAAAASMAAAEnwAABLsAAATOAAAE6gAABQYAAAUZAAAFNQAABUgAAAVkAAAFdwAABZMAAAWmAAAFwgAABd4AAAXxAAAGDQAABGh0cmFrAAAAXHRraGQAAAADAAAAAAAAAAAAAAACAAAAAAAABDcAAAAAAAAAAAAAAAEBAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAkZWR0cwAAABxlbHN0AAAAAAAAAAEAAAQkAAADcAABAAAAAAPgbWRpYQAAACBtZGhkAAAAAAAAAAAAAAAAAAC7gAAAykBVxAAAAAAALWhkbHIAAAAAAAAAAHNvdW4AAAAAAAAAAAAAAABTb3VuZEhhbmRsZXIAAAADi21pbmYAAAAQc21oZAAAAAAAAAAAAAAAJGRpbmYAAAAcZHJlZgAAAAAAAAABAAAADHVybCAAAAABAAADT3N0YmwAAABnc3RzZAAAAAAAAAABAAAAV21wNGEAAAAAAAAAAQAAAAAAAAAAAAIAEAAAAAC7gAAAAAAAM2VzZHMAAAAAA4CAgCIAAgAEgICAFEAVBbjYAAu4AAAADcoFgICAAhGQBoCAgAECAAAAIHN0dHMAAAAAAAAAAgAAADIAAAQAAAAAAQAAAkAAAAFUc3RzYwAAAAAAAAAbAAAAAQAAAAEAAAABAAAAAgAAAAIAAAABAAAAAwAAAAEAAAABAAAABAAAAAIAAAABAAAABgAAAAEAAAABAAAABwAAAAIAAAABAAAACAAAAAEAAAABAAAACQAAAAIAAAABAAAACgAAAAEAAAABAAAACwAAAAIAAAABAAAADQAAAAEAAAABAAAADgAAAAIAAAABAAAADwAAAAEAAAABAAAAEAAAAAIAAAABAAAAEQAAAAEAAAABAAAAEgAAAAIAAAABAAAAFAAAAAEAAAABAAAAFQAAAAIAAAABAAAAFgAAAAEAAAABAAAAFwAAAAIAAAABAAAAGAAAAAEAAAABAAAAGQAAAAIAAAABAAAAGgAAAAEAAAABAAAAGwAAAAIAAAABAAAAHQAAAAEAAAABAAAAHgAAAAIAAAABAAAAHwAAAAQAAAABAAAA4HN0c3oAAAAAAAAAAAAAADMAAAAaAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAACMc3RjbwAAAAAAAAAfAAAALAAAA1UAAANyAAADhgAAA6IAAAO+AAAD0QAAA+0AAAQAAAAEHAAABC8AAARLAAAEZwAABHoAAASWAAAEqQAABMUAAATYAAAE9AAABRAAAAUjAAAFPwAABVIAAAVuAAAFgQAABZ0AAAWwAAAFzAAABegAAAX7AAAGFwAAAGJ1ZHRhAAAAWm1ldGEAAAAAAAAAIWhkbHIAAAAAAAAAAG1kaXJhcHBsAAAAAAAAAAAAAAAALWlsc3QAAAAlqXRvbwAAAB1kYXRhAAAAAQAAAABMYXZmNTUuMzMuMTAw\",\n};\n","const { webm, mp4 } = require(\"./media.js\");\n\n// Detect iOS browsers < version 10\nconst oldIOS = () =>\n typeof navigator !== \"undefined\" &&\n parseFloat(\n (\n \"\" +\n (/CPU.*OS ([0-9_]{3,4})[0-9_]{0,1}|(CPU like).*AppleWebKit.*Mobile/i.exec(\n navigator.userAgent\n ) || [0, \"\"])[1]\n )\n .replace(\"undefined\", \"3_2\")\n .replace(\"_\", \".\")\n .replace(\"_\", \"\")\n ) < 10 &&\n !window.MSStream;\n\n// Detect native Wake Lock API support\nconst nativeWakeLock = () => \"wakeLock\" in navigator;\n\nclass NoSleep {\n constructor() {\n this.enabled = false;\n if (nativeWakeLock()) {\n this._wakeLock = null;\n const handleVisibilityChange = () => {\n if (this._wakeLock !== null && document.visibilityState === \"visible\") {\n this.enable();\n }\n };\n document.addEventListener(\"visibilitychange\", handleVisibilityChange);\n document.addEventListener(\"fullscreenchange\", handleVisibilityChange);\n } else if (oldIOS()) {\n this.noSleepTimer = null;\n } else {\n // Set up no sleep video element\n this.noSleepVideo = document.createElement(\"video\");\n\n this.noSleepVideo.setAttribute(\"title\", \"No Sleep\");\n this.noSleepVideo.setAttribute(\"playsinline\", \"\");\n\n this._addSourceToVideo(this.noSleepVideo, \"webm\", webm);\n this._addSourceToVideo(this.noSleepVideo, \"mp4\", mp4);\n\n this.noSleepVideo.addEventListener(\"loadedmetadata\", () => {\n if (this.noSleepVideo.duration <= 1) {\n // webm source\n this.noSleepVideo.setAttribute(\"loop\", \"\");\n } else {\n // mp4 source\n this.noSleepVideo.addEventListener(\"timeupdate\", () => {\n if (this.noSleepVideo.currentTime > 0.5) {\n this.noSleepVideo.currentTime = Math.random();\n }\n });\n }\n });\n }\n }\n\n _addSourceToVideo(element, type, dataURI) {\n var source = document.createElement(\"source\");\n source.src = dataURI;\n source.type = `video/${type}`;\n element.appendChild(source);\n }\n\n get isEnabled() {\n return this.enabled;\n }\n\n enable() {\n if (nativeWakeLock()) {\n return navigator.wakeLock\n .request(\"screen\")\n .then((wakeLock) => {\n this._wakeLock = wakeLock;\n this.enabled = true;\n console.log(\"Wake Lock active.\");\n this._wakeLock.addEventListener(\"release\", () => {\n // ToDo: Potentially emit an event for the page to observe since\n // Wake Lock releases happen when page visibility changes.\n // (https://web.dev/wakelock/#wake-lock-lifecycle)\n console.log(\"Wake Lock released.\");\n });\n })\n .catch((err) => {\n this.enabled = false;\n console.error(`${err.name}, ${err.message}`);\n throw err;\n });\n } else if (oldIOS()) {\n this.disable();\n console.warn(`\n NoSleep enabled for older iOS devices. This can interrupt\n active or long-running network requests from completing successfully.\n See https://github.com/richtr/NoSleep.js/issues/15 for more details.\n `);\n this.noSleepTimer = window.setInterval(() => {\n if (!document.hidden) {\n window.location.href = window.location.href.split(\"#\")[0];\n window.setTimeout(window.stop, 0);\n }\n }, 15000);\n this.enabled = true;\n return Promise.resolve();\n } else {\n let playPromise = this.noSleepVideo.play();\n return playPromise\n .then((res) => {\n this.enabled = true;\n return res;\n })\n .catch((err) => {\n this.enabled = false;\n throw err;\n });\n }\n }\n\n disable() {\n if (nativeWakeLock()) {\n if (this._wakeLock) {\n this._wakeLock.release();\n }\n this._wakeLock = null;\n } else if (oldIOS()) {\n if (this.noSleepTimer) {\n console.warn(`\n NoSleep now disabled for older iOS devices.\n `);\n window.clearInterval(this.noSleepTimer);\n this.noSleepTimer = null;\n }\n } else {\n this.noSleepVideo.pause();\n }\n this.enabled = false;\n }\n}\n\nmodule.exports = NoSleep;\n","\"use strict\";\n\nimport NoSleep from 'nosleep.js';\nvar noSleep = new NoSleep();\n\n// Enable wake lock.\n// (must be wrapped in a user input event handler e.g. a mouse or touch handler)\ndocument.addEventListener('click', function enableNoSleep() {\n document.removeEventListener('click', enableNoSleep, false);\n noSleep.enable();\n}, false);\n\nfunction executeJavascriptHacks() {\n // The popstate event of the Window interface is fired when the active history entry changes while the user navigates the session history. \n // Hack for making sure hashchanges trigger a reload when nagivating history\n // TODO: handle this event properly without a reload by executing the Initialize action on this event\n window.addEventListener('popstate', () => {\n window.location.reload();\n });\n\n // Hack to be able to use the right viewport height in the CSS, because the CSS vh value doesn't behave well on mobile.\n var root = document.querySelector(':root');\n window.addEventListener('resize', () => {\n root.style.setProperty('--app-height', vh() + 'px');\n });\n function vh() {\n // - 1 because sometimes the innerHeight doesn't seem to be rounded correctly or something\n return Math.max(document.documentElement.clientHeight, window.innerHeight || 0) - 1;\n }\n\n // Set browser color for mobile devices\n const styles = getComputedStyle(document.documentElement);\n const bgColor = styles.getPropertyValue('--header-bg');\n var m = document.createElement('meta');\n m.name = 'theme-color';\n m.content = bgColor;\n document.head.appendChild(m);\n};\n\nexport { executeJavascriptHacks }\n","// Generated by purs version 0.15.7\nvar semigroupoidFn = {\n compose: function (f) {\n return function (g) {\n return function (x) {\n return f(g(x));\n };\n };\n }\n};\nvar compose = function (dict) {\n return dict.compose;\n};\nvar composeFlipped = function (dictSemigroupoid) {\n var compose1 = compose(dictSemigroupoid);\n return function (f) {\n return function (g) {\n return compose1(g)(f);\n };\n };\n};\nexport {\n compose,\n composeFlipped,\n semigroupoidFn\n};\n","// Generated by purs version 0.15.7\nimport * as Control_Semigroupoid from \"../Control.Semigroupoid/index.js\";\nvar identity = function (dict) {\n return dict.identity;\n};\nvar categoryFn = {\n identity: function (x) {\n return x;\n },\n Semigroupoid0: function () {\n return Control_Semigroupoid.semigroupoidFn;\n }\n};\nexport {\n identity,\n categoryFn\n};\nexport {\n compose\n} from \"../Control.Semigroupoid/index.js\";\n","// Generated by purs version 0.15.7\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Data_Boolean from \"../Data.Boolean/index.js\";\nvar on = function (f) {\n return function (g) {\n return function (x) {\n return function (y) {\n return f(g(x))(g(y));\n };\n };\n };\n};\nvar flip = function (f) {\n return function (b) {\n return function (a) {\n return f(a)(b);\n };\n };\n};\nvar $$const = function (a) {\n return function (v) {\n return a;\n };\n};\nvar applyN = function (f) {\n var go = function ($copy_n) {\n return function ($copy_acc) {\n var $tco_var_n = $copy_n;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(n, acc) {\n if (n <= 0) {\n $tco_done = true;\n return acc;\n };\n if (Data_Boolean.otherwise) {\n $tco_var_n = n - 1 | 0;\n $copy_acc = f(acc);\n return;\n };\n throw new Error(\"Failed pattern match at Data.Function (line 107, column 3 - line 109, column 37): \" + [ n.constructor.name, acc.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_n, $copy_acc);\n };\n return $tco_result;\n };\n };\n return go;\n};\nvar applyFlipped = function (x) {\n return function (f) {\n return f(x);\n };\n};\nvar apply = function (f) {\n return function (x) {\n return f(x);\n };\n};\nexport {\n flip,\n $$const as const,\n apply,\n applyFlipped,\n applyN,\n on\n};\nexport {\n compose,\n identity\n} from \"../Control.Category/index.js\";\n","export const arrayMap = function (f) {\n return function (arr) {\n var l = arr.length;\n var result = new Array(l);\n for (var i = 0; i < l; i++) {\n result[i] = f(arr[i]);\n }\n return result;\n };\n};\n","export const unit = undefined;\n","// Generated by purs version 0.15.7\nimport * as $foreign from \"./foreign.js\";\nvar showUnit = {\n show: function (v) {\n return \"unit\";\n }\n};\nexport {\n unit\n} from \"./foreign.js\";\nexport {\n showUnit\n};\n","// Generated by purs version 0.15.7\nvar $$Proxy = /* #__PURE__ */ (function () {\n function $$Proxy() {\n\n };\n $$Proxy.value = new $$Proxy();\n return $$Proxy;\n})();\nexport {\n $$Proxy as Proxy\n};\n","// Generated by purs version 0.15.7\nimport * as $foreign from \"./foreign.js\";\nimport * as Control_Semigroupoid from \"../Control.Semigroupoid/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nimport * as Type_Proxy from \"../Type.Proxy/index.js\";\nvar map = function (dict) {\n return dict.map;\n};\nvar mapFlipped = function (dictFunctor) {\n var map1 = map(dictFunctor);\n return function (fa) {\n return function (f) {\n return map1(f)(fa);\n };\n };\n};\nvar $$void = function (dictFunctor) {\n return map(dictFunctor)(Data_Function[\"const\"](Data_Unit.unit));\n};\nvar voidLeft = function (dictFunctor) {\n var map1 = map(dictFunctor);\n return function (f) {\n return function (x) {\n return map1(Data_Function[\"const\"](x))(f);\n };\n };\n};\nvar voidRight = function (dictFunctor) {\n var map1 = map(dictFunctor);\n return function (x) {\n return map1(Data_Function[\"const\"](x));\n };\n};\nvar functorProxy = {\n map: function (v) {\n return function (v1) {\n return Type_Proxy[\"Proxy\"].value;\n };\n }\n};\nvar functorFn = {\n map: /* #__PURE__ */ Control_Semigroupoid.compose(Control_Semigroupoid.semigroupoidFn)\n};\nvar functorArray = {\n map: $foreign.arrayMap\n};\nvar flap = function (dictFunctor) {\n var map1 = map(dictFunctor);\n return function (ff) {\n return function (x) {\n return map1(function (f) {\n return f(x);\n })(ff);\n };\n };\n};\nexport {\n map,\n mapFlipped,\n $$void as void,\n voidRight,\n voidLeft,\n flap,\n functorFn,\n functorArray,\n functorProxy\n};\n","// Generated by purs version 0.15.7\nimport * as $foreign from \"./foreign.js\";\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Type_Proxy from \"../Type.Proxy/index.js\";\nvar identity = /* #__PURE__ */ Control_Category.identity(Control_Category.categoryFn);\nvar applyProxy = {\n apply: function (v) {\n return function (v1) {\n return Type_Proxy[\"Proxy\"].value;\n };\n },\n Functor0: function () {\n return Data_Functor.functorProxy;\n }\n};\nvar applyFn = {\n apply: function (f) {\n return function (g) {\n return function (x) {\n return f(x)(g(x));\n };\n };\n },\n Functor0: function () {\n return Data_Functor.functorFn;\n }\n};\nvar applyArray = {\n apply: $foreign.arrayApply,\n Functor0: function () {\n return Data_Functor.functorArray;\n }\n};\nvar apply = function (dict) {\n return dict.apply;\n};\nvar applyFirst = function (dictApply) {\n var apply1 = apply(dictApply);\n var map = Data_Functor.map(dictApply.Functor0());\n return function (a) {\n return function (b) {\n return apply1(map(Data_Function[\"const\"])(a))(b);\n };\n };\n};\nvar applySecond = function (dictApply) {\n var apply1 = apply(dictApply);\n var map = Data_Functor.map(dictApply.Functor0());\n return function (a) {\n return function (b) {\n return apply1(map(Data_Function[\"const\"](identity))(a))(b);\n };\n };\n};\nvar lift2 = function (dictApply) {\n var apply1 = apply(dictApply);\n var map = Data_Functor.map(dictApply.Functor0());\n return function (f) {\n return function (a) {\n return function (b) {\n return apply1(map(f)(a))(b);\n };\n };\n };\n};\nvar lift3 = function (dictApply) {\n var apply1 = apply(dictApply);\n var map = Data_Functor.map(dictApply.Functor0());\n return function (f) {\n return function (a) {\n return function (b) {\n return function (c) {\n return apply1(apply1(map(f)(a))(b))(c);\n };\n };\n };\n };\n};\nvar lift4 = function (dictApply) {\n var apply1 = apply(dictApply);\n var map = Data_Functor.map(dictApply.Functor0());\n return function (f) {\n return function (a) {\n return function (b) {\n return function (c) {\n return function (d) {\n return apply1(apply1(apply1(map(f)(a))(b))(c))(d);\n };\n };\n };\n };\n };\n};\nvar lift5 = function (dictApply) {\n var apply1 = apply(dictApply);\n var map = Data_Functor.map(dictApply.Functor0());\n return function (f) {\n return function (a) {\n return function (b) {\n return function (c) {\n return function (d) {\n return function (e) {\n return apply1(apply1(apply1(apply1(map(f)(a))(b))(c))(d))(e);\n };\n };\n };\n };\n };\n };\n};\nexport {\n apply,\n applyFirst,\n applySecond,\n lift2,\n lift3,\n lift4,\n lift5,\n applyFn,\n applyArray,\n applyProxy\n};\nexport {\n map,\n void\n} from \"../Data.Functor/index.js\";\n","export const arrayApply = function (fs) {\n return function (xs) {\n var l = fs.length;\n var k = xs.length;\n var result = new Array(l*k);\n var n = 0;\n for (var i = 0; i < l; i++) {\n var f = fs[i];\n for (var j = 0; j < k; j++) {\n result[n++] = f(xs[j]);\n }\n }\n return result;\n };\n};\n","// Generated by purs version 0.15.7\nimport * as Control_Apply from \"../Control.Apply/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nimport * as Type_Proxy from \"../Type.Proxy/index.js\";\nvar pure = function (dict) {\n return dict.pure;\n};\nvar unless = function (dictApplicative) {\n var pure1 = pure(dictApplicative);\n return function (v) {\n return function (v1) {\n if (!v) {\n return v1;\n };\n if (v) {\n return pure1(Data_Unit.unit);\n };\n throw new Error(\"Failed pattern match at Control.Applicative (line 68, column 1 - line 68, column 65): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n };\n};\nvar when = function (dictApplicative) {\n var pure1 = pure(dictApplicative);\n return function (v) {\n return function (v1) {\n if (v) {\n return v1;\n };\n if (!v) {\n return pure1(Data_Unit.unit);\n };\n throw new Error(\"Failed pattern match at Control.Applicative (line 63, column 1 - line 63, column 63): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n };\n};\nvar liftA1 = function (dictApplicative) {\n var apply = Control_Apply.apply(dictApplicative.Apply0());\n var pure1 = pure(dictApplicative);\n return function (f) {\n return function (a) {\n return apply(pure1(f))(a);\n };\n };\n};\nvar applicativeProxy = {\n pure: function (v) {\n return Type_Proxy[\"Proxy\"].value;\n },\n Apply0: function () {\n return Control_Apply.applyProxy;\n }\n};\nvar applicativeFn = {\n pure: function (x) {\n return function (v) {\n return x;\n };\n },\n Apply0: function () {\n return Control_Apply.applyFn;\n }\n};\nvar applicativeArray = {\n pure: function (x) {\n return [ x ];\n },\n Apply0: function () {\n return Control_Apply.applyArray;\n }\n};\nexport {\n pure,\n liftA1,\n unless,\n when,\n applicativeFn,\n applicativeArray,\n applicativeProxy\n};\nexport {\n apply\n} from \"../Control.Apply/index.js\";\nexport {\n map,\n void\n} from \"../Data.Functor/index.js\";\n","//------------------------------------------------------------------------------\n// Array creation --------------------------------------------------------------\n//------------------------------------------------------------------------------\n\nexport const range = function (start) {\n return function (end) {\n var step = start > end ? -1 : 1;\n var result = new Array(step * (end - start) + 1);\n var i = start, n = 0;\n while (i !== end) {\n result[n++] = i;\n i += step;\n }\n result[n] = i;\n return result;\n };\n};\n\nvar replicateFill = function (count) {\n return function (value) {\n if (count < 1) {\n return [];\n }\n var result = new Array(count);\n return result.fill(value);\n };\n};\n\nvar replicatePolyfill = function (count) {\n return function (value) {\n var result = [];\n var n = 0;\n for (var i = 0; i < count; i++) {\n result[n++] = value;\n }\n return result;\n };\n};\n\n// In browsers that have Array.prototype.fill we use it, as it's faster.\nexport const replicate = typeof Array.prototype.fill === \"function\" ? replicateFill : replicatePolyfill;\n\nexport const fromFoldableImpl = (function () {\n function Cons(head, tail) {\n this.head = head;\n this.tail = tail;\n }\n var emptyList = {};\n\n function curryCons(head) {\n return function (tail) {\n return new Cons(head, tail);\n };\n }\n\n function listToArray(list) {\n var result = [];\n var count = 0;\n var xs = list;\n while (xs !== emptyList) {\n result[count++] = xs.head;\n xs = xs.tail;\n }\n return result;\n }\n\n return function (foldr) {\n return function (xs) {\n return listToArray(foldr(curryCons)(emptyList)(xs));\n };\n };\n})();\n\n//------------------------------------------------------------------------------\n// Array size ------------------------------------------------------------------\n//------------------------------------------------------------------------------\n\nexport const length = function (xs) {\n return xs.length;\n};\n\n//------------------------------------------------------------------------------\n// Non-indexed reads -----------------------------------------------------------\n//------------------------------------------------------------------------------\n\nexport const unconsImpl = function (empty) {\n return function (next) {\n return function (xs) {\n return xs.length === 0 ? empty({}) : next(xs[0])(xs.slice(1));\n };\n };\n};\n\n//------------------------------------------------------------------------------\n// Indexed operations ----------------------------------------------------------\n//------------------------------------------------------------------------------\n\nexport const indexImpl = function (just) {\n return function (nothing) {\n return function (xs) {\n return function (i) {\n return i < 0 || i >= xs.length ? nothing : just(xs[i]);\n };\n };\n };\n};\n\nexport const findMapImpl = function (nothing) {\n return function (isJust) {\n return function (f) {\n return function (xs) {\n for (var i = 0; i < xs.length; i++) {\n var result = f(xs[i]);\n if (isJust(result)) return result;\n }\n return nothing;\n };\n };\n };\n};\n\nexport const findIndexImpl = function (just) {\n return function (nothing) {\n return function (f) {\n return function (xs) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (f(xs[i])) return just(i);\n }\n return nothing;\n };\n };\n };\n};\n\nexport const findLastIndexImpl = function (just) {\n return function (nothing) {\n return function (f) {\n return function (xs) {\n for (var i = xs.length - 1; i >= 0; i--) {\n if (f(xs[i])) return just(i);\n }\n return nothing;\n };\n };\n };\n};\n\nexport const _insertAt = function (just) {\n return function (nothing) {\n return function (i) {\n return function (a) {\n return function (l) {\n if (i < 0 || i > l.length) return nothing;\n var l1 = l.slice();\n l1.splice(i, 0, a);\n return just(l1);\n };\n };\n };\n };\n};\n\nexport const _deleteAt = function (just) {\n return function (nothing) {\n return function (i) {\n return function (l) {\n if (i < 0 || i >= l.length) return nothing;\n var l1 = l.slice();\n l1.splice(i, 1);\n return just(l1);\n };\n };\n };\n};\n\nexport const _updateAt = function (just) {\n return function (nothing) {\n return function (i) {\n return function (a) {\n return function (l) {\n if (i < 0 || i >= l.length) return nothing;\n var l1 = l.slice();\n l1[i] = a;\n return just(l1);\n };\n };\n };\n };\n};\n\n//------------------------------------------------------------------------------\n// Transformations -------------------------------------------------------------\n//------------------------------------------------------------------------------\n\nexport const reverse = function (l) {\n return l.slice().reverse();\n};\n\nexport const concat = function (xss) {\n if (xss.length <= 10000) {\n // This method is faster, but it crashes on big arrays.\n // So we use it when can and fallback to simple variant otherwise.\n return Array.prototype.concat.apply([], xss);\n }\n\n var result = [];\n for (var i = 0, l = xss.length; i < l; i++) {\n var xs = xss[i];\n for (var j = 0, m = xs.length; j < m; j++) {\n result.push(xs[j]);\n }\n }\n return result;\n};\n\nexport const filter = function (f) {\n return function (xs) {\n return xs.filter(f);\n };\n};\n\nexport const partition = function (f) {\n return function (xs) {\n var yes = [];\n var no = [];\n for (var i = 0; i < xs.length; i++) {\n var x = xs[i];\n if (f(x))\n yes.push(x);\n else\n no.push(x);\n }\n return { yes: yes, no: no };\n };\n};\n\nexport const scanl = function (f) {\n return function (b) {\n return function (xs) {\n var len = xs.length;\n var acc = b;\n var out = new Array(len);\n for (var i = 0; i < len; i++) {\n acc = f(acc)(xs[i]);\n out[i] = acc;\n }\n return out;\n };\n };\n};\n\nexport const scanr = function (f) {\n return function (b) {\n return function (xs) {\n var len = xs.length;\n var acc = b;\n var out = new Array(len);\n for (var i = len - 1; i >= 0; i--) {\n acc = f(xs[i])(acc);\n out[i] = acc;\n }\n return out;\n };\n };\n};\n\n//------------------------------------------------------------------------------\n// Sorting ---------------------------------------------------------------------\n//------------------------------------------------------------------------------\n\nexport const sortByImpl = (function () {\n function mergeFromTo(compare, fromOrdering, xs1, xs2, from, to) {\n var mid;\n var i;\n var j;\n var k;\n var x;\n var y;\n var c;\n\n mid = from + ((to - from) >> 1);\n if (mid - from > 1) mergeFromTo(compare, fromOrdering, xs2, xs1, from, mid);\n if (to - mid > 1) mergeFromTo(compare, fromOrdering, xs2, xs1, mid, to);\n\n i = from;\n j = mid;\n k = from;\n while (i < mid && j < to) {\n x = xs2[i];\n y = xs2[j];\n c = fromOrdering(compare(x)(y));\n if (c > 0) {\n xs1[k++] = y;\n ++j;\n }\n else {\n xs1[k++] = x;\n ++i;\n }\n }\n while (i < mid) {\n xs1[k++] = xs2[i++];\n }\n while (j < to) {\n xs1[k++] = xs2[j++];\n }\n }\n\n return function (compare) {\n return function (fromOrdering) {\n return function (xs) {\n var out;\n\n if (xs.length < 2) return xs;\n\n out = xs.slice(0);\n mergeFromTo(compare, fromOrdering, out, xs.slice(0), 0, xs.length);\n\n return out;\n };\n };\n };\n})();\n\n//------------------------------------------------------------------------------\n// Subarrays -------------------------------------------------------------------\n//------------------------------------------------------------------------------\n\nexport const slice = function (s) {\n return function (e) {\n return function (l) {\n return l.slice(s, e);\n };\n };\n};\n\n//------------------------------------------------------------------------------\n// Zipping ---------------------------------------------------------------------\n//------------------------------------------------------------------------------\n\nexport const zipWith = function (f) {\n return function (xs) {\n return function (ys) {\n var l = xs.length < ys.length ? xs.length : ys.length;\n var result = new Array(l);\n for (var i = 0; i < l; i++) {\n result[i] = f(xs[i])(ys[i]);\n }\n return result;\n };\n };\n};\n\n//------------------------------------------------------------------------------\n// Folding ---------------------------------------------------------------------\n//------------------------------------------------------------------------------\n\nexport const any = function (p) {\n return function (xs) {\n var len = xs.length;\n for (var i = 0; i < len; i++) {\n if (p(xs[i])) return true;\n }\n return false;\n };\n};\n\nexport const all = function (p) {\n return function (xs) {\n var len = xs.length;\n for (var i = 0; i < len; i++) {\n if (!p(xs[i])) return false;\n }\n return true;\n };\n};\n\n//------------------------------------------------------------------------------\n// Partial ---------------------------------------------------------------------\n//------------------------------------------------------------------------------\n\nexport const unsafeIndexImpl = function (xs) {\n return function (n) {\n return xs[n];\n };\n};\n","// Generated by purs version 0.15.7\nimport * as $foreign from \"./foreign.js\";\nimport * as Type_Proxy from \"../Type.Proxy/index.js\";\nvar reifySymbol = function (s) {\n return function (f) {\n return $foreign.unsafeCoerce(function (dictIsSymbol) {\n return f(dictIsSymbol);\n })({\n reflectSymbol: function (v) {\n return s;\n }\n })(Type_Proxy[\"Proxy\"].value);\n };\n};\nvar reflectSymbol = function (dict) {\n return dict.reflectSymbol;\n};\nexport {\n reflectSymbol,\n reifySymbol\n};\n","export const unsafeHas = function (label) {\n return function (rec) {\n return {}.hasOwnProperty.call(rec, label);\n };\n};\n\nexport const unsafeGet = function (label) {\n return function (rec) {\n return rec[label];\n };\n};\n\nexport const unsafeSet = function (label) {\n return function (value) {\n return function (rec) {\n var copy = {};\n for (var key in rec) {\n if ({}.hasOwnProperty.call(rec, key)) {\n copy[key] = rec[key];\n }\n }\n copy[label] = value;\n return copy;\n };\n };\n};\n\nexport const unsafeDelete = function (label) {\n return function (rec) {\n var copy = {};\n for (var key in rec) {\n if (key !== label && {}.hasOwnProperty.call(rec, key)) {\n copy[key] = rec[key];\n }\n }\n return copy;\n };\n};\n","// Generated by purs version 0.15.7\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Symbol from \"../Data.Symbol/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nimport * as Data_Void from \"../Data.Void/index.js\";\nimport * as Record_Unsafe from \"../Record.Unsafe/index.js\";\nimport * as Type_Proxy from \"../Type.Proxy/index.js\";\nvar semigroupVoid = {\n append: function (v) {\n return Data_Void.absurd;\n }\n};\nvar semigroupUnit = {\n append: function (v) {\n return function (v1) {\n return Data_Unit.unit;\n };\n }\n};\nvar semigroupString = {\n append: $foreign.concatString\n};\nvar semigroupRecordNil = {\n appendRecord: function (v) {\n return function (v1) {\n return function (v2) {\n return {};\n };\n };\n }\n};\nvar semigroupProxy = {\n append: function (v) {\n return function (v1) {\n return Type_Proxy[\"Proxy\"].value;\n };\n }\n};\nvar semigroupArray = {\n append: $foreign.concatArray\n};\nvar appendRecord = function (dict) {\n return dict.appendRecord;\n};\nvar semigroupRecord = function () {\n return function (dictSemigroupRecord) {\n return {\n append: appendRecord(dictSemigroupRecord)(Type_Proxy[\"Proxy\"].value)\n };\n };\n};\nvar append = function (dict) {\n return dict.append;\n};\nvar semigroupFn = function (dictSemigroup) {\n var append1 = append(dictSemigroup);\n return {\n append: function (f) {\n return function (g) {\n return function (x) {\n return append1(f(x))(g(x));\n };\n };\n }\n };\n};\nvar semigroupRecordCons = function (dictIsSymbol) {\n var reflectSymbol = Data_Symbol.reflectSymbol(dictIsSymbol);\n return function () {\n return function (dictSemigroupRecord) {\n var appendRecord1 = appendRecord(dictSemigroupRecord);\n return function (dictSemigroup) {\n var append1 = append(dictSemigroup);\n return {\n appendRecord: function (v) {\n return function (ra) {\n return function (rb) {\n var tail = appendRecord1(Type_Proxy[\"Proxy\"].value)(ra)(rb);\n var key = reflectSymbol(Type_Proxy[\"Proxy\"].value);\n var insert = Record_Unsafe.unsafeSet(key);\n var get = Record_Unsafe.unsafeGet(key);\n return insert(append1(get(ra))(get(rb)))(tail);\n };\n };\n }\n };\n };\n };\n };\n};\nexport {\n append,\n appendRecord,\n semigroupString,\n semigroupUnit,\n semigroupVoid,\n semigroupFn,\n semigroupArray,\n semigroupProxy,\n semigroupRecord,\n semigroupRecordNil,\n semigroupRecordCons\n};\n","export const concatString = function (s1) {\n return function (s2) {\n return s1 + s2;\n };\n};\n\nexport const concatArray = function (xs) {\n return function (ys) {\n if (xs.length === 0) return ys;\n if (ys.length === 0) return xs;\n return xs.concat(ys);\n };\n};\n","// Generated by purs version 0.15.7\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nvar altArray = {\n alt: /* #__PURE__ */ Data_Semigroup.append(Data_Semigroup.semigroupArray),\n Functor0: function () {\n return Data_Functor.functorArray;\n }\n};\nvar alt = function (dict) {\n return dict.alt;\n};\nexport {\n alt,\n altArray\n};\nexport {\n map,\n void\n} from \"../Data.Functor/index.js\";\n","// Generated by purs version 0.15.7\nimport * as $foreign from \"./foreign.js\";\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Apply from \"../Control.Apply/index.js\";\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Type_Proxy from \"../Type.Proxy/index.js\";\nvar identity = /* #__PURE__ */ Control_Category.identity(Control_Category.categoryFn);\nvar discard = function (dict) {\n return dict.discard;\n};\nvar bindProxy = {\n bind: function (v) {\n return function (v1) {\n return Type_Proxy[\"Proxy\"].value;\n };\n },\n Apply0: function () {\n return Control_Apply.applyProxy;\n }\n};\nvar bindFn = {\n bind: function (m) {\n return function (f) {\n return function (x) {\n return f(m(x))(x);\n };\n };\n },\n Apply0: function () {\n return Control_Apply.applyFn;\n }\n};\nvar bindArray = {\n bind: $foreign.arrayBind,\n Apply0: function () {\n return Control_Apply.applyArray;\n }\n};\nvar bind = function (dict) {\n return dict.bind;\n};\nvar bindFlipped = function (dictBind) {\n return Data_Function.flip(bind(dictBind));\n};\nvar composeKleisliFlipped = function (dictBind) {\n var bindFlipped1 = bindFlipped(dictBind);\n return function (f) {\n return function (g) {\n return function (a) {\n return bindFlipped1(f)(g(a));\n };\n };\n };\n};\nvar composeKleisli = function (dictBind) {\n var bind1 = bind(dictBind);\n return function (f) {\n return function (g) {\n return function (a) {\n return bind1(f(a))(g);\n };\n };\n };\n};\nvar discardProxy = {\n discard: function (dictBind) {\n return bind(dictBind);\n }\n};\nvar discardUnit = {\n discard: function (dictBind) {\n return bind(dictBind);\n }\n};\nvar ifM = function (dictBind) {\n var bind1 = bind(dictBind);\n return function (cond) {\n return function (t) {\n return function (f) {\n return bind1(cond)(function (cond$prime) {\n if (cond$prime) {\n return t;\n };\n return f;\n });\n };\n };\n };\n};\nvar join = function (dictBind) {\n var bind1 = bind(dictBind);\n return function (m) {\n return bind1(m)(identity);\n };\n};\nexport {\n bind,\n bindFlipped,\n discard,\n join,\n composeKleisli,\n composeKleisliFlipped,\n ifM,\n bindFn,\n bindArray,\n bindProxy,\n discardUnit,\n discardProxy\n};\nexport {\n liftA1,\n pure,\n unless,\n when\n} from \"../Control.Applicative/index.js\";\nexport {\n apply\n} from \"../Control.Apply/index.js\";\nexport {\n map,\n void\n} from \"../Data.Functor/index.js\";\n","export const arrayBind = function (arr) {\n return function (f) {\n var result = [];\n for (var i = 0, l = arr.length; i < l; i++) {\n Array.prototype.push.apply(result, f(arr[i]));\n }\n return result;\n };\n};\n","// Generated by purs version 0.15.7\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Apply from \"../Control.Apply/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nvar whenM = function (dictMonad) {\n var bind = Control_Bind.bind(dictMonad.Bind1());\n var when = Control_Applicative.when(dictMonad.Applicative0());\n return function (mb) {\n return function (m) {\n return bind(mb)(function (b) {\n return when(b)(m);\n });\n };\n };\n};\nvar unlessM = function (dictMonad) {\n var bind = Control_Bind.bind(dictMonad.Bind1());\n var unless = Control_Applicative.unless(dictMonad.Applicative0());\n return function (mb) {\n return function (m) {\n return bind(mb)(function (b) {\n return unless(b)(m);\n });\n };\n };\n};\nvar monadProxy = {\n Applicative0: function () {\n return Control_Applicative.applicativeProxy;\n },\n Bind1: function () {\n return Control_Bind.bindProxy;\n }\n};\nvar monadFn = {\n Applicative0: function () {\n return Control_Applicative.applicativeFn;\n },\n Bind1: function () {\n return Control_Bind.bindFn;\n }\n};\nvar monadArray = {\n Applicative0: function () {\n return Control_Applicative.applicativeArray;\n },\n Bind1: function () {\n return Control_Bind.bindArray;\n }\n};\nvar liftM1 = function (dictMonad) {\n var bind = Control_Bind.bind(dictMonad.Bind1());\n var pure = Control_Applicative.pure(dictMonad.Applicative0());\n return function (f) {\n return function (a) {\n return bind(a)(function (a$prime) {\n return pure(f(a$prime));\n });\n };\n };\n};\nvar ap = function (dictMonad) {\n var bind = Control_Bind.bind(dictMonad.Bind1());\n var pure = Control_Applicative.pure(dictMonad.Applicative0());\n return function (f) {\n return function (a) {\n return bind(f)(function (f$prime) {\n return bind(a)(function (a$prime) {\n return pure(f$prime(a$prime));\n });\n });\n };\n };\n};\nexport {\n liftM1,\n whenM,\n unlessM,\n ap,\n monadFn,\n monadArray,\n monadProxy\n};\nexport {\n liftA1,\n pure,\n unless,\n when\n} from \"../Control.Applicative/index.js\";\nexport {\n apply\n} from \"../Control.Apply/index.js\";\nexport {\n bind,\n ifM,\n join\n} from \"../Control.Bind/index.js\";\nexport {\n map,\n void\n} from \"../Data.Functor/index.js\";\n","export const topInt = 2147483647;\nexport const bottomInt = -2147483648;\n\nexport const topChar = String.fromCharCode(65535);\nexport const bottomChar = String.fromCharCode(0);\n\nexport const topNumber = Number.POSITIVE_INFINITY;\nexport const bottomNumber = Number.NEGATIVE_INFINITY;\n","var unsafeCompareImpl = function (lt) {\n return function (eq) {\n return function (gt) {\n return function (x) {\n return function (y) {\n return x < y ? lt : x === y ? eq : gt;\n };\n };\n };\n };\n};\n\nexport const ordBooleanImpl = unsafeCompareImpl;\nexport const ordIntImpl = unsafeCompareImpl;\nexport const ordNumberImpl = unsafeCompareImpl;\nexport const ordStringImpl = unsafeCompareImpl;\nexport const ordCharImpl = unsafeCompareImpl;\n\nexport const ordArrayImpl = function (f) {\n return function (xs) {\n return function (ys) {\n var i = 0;\n var xlen = xs.length;\n var ylen = ys.length;\n while (i < xlen && i < ylen) {\n var x = xs[i];\n var y = ys[i];\n var o = f(x)(y);\n if (o !== 0) {\n return o;\n }\n i++;\n }\n if (xlen === ylen) {\n return 0;\n } else if (xlen > ylen) {\n return -1;\n } else {\n return 1;\n }\n };\n };\n};\n","var refEq = function (r1) {\n return function (r2) {\n return r1 === r2;\n };\n};\n\nexport const eqBooleanImpl = refEq;\nexport const eqIntImpl = refEq;\nexport const eqNumberImpl = refEq;\nexport const eqCharImpl = refEq;\nexport const eqStringImpl = refEq;\n\nexport const eqArrayImpl = function (f) {\n return function (xs) {\n return function (ys) {\n if (xs.length !== ys.length) return false;\n for (var i = 0; i < xs.length; i++) {\n if (!f(xs[i])(ys[i])) return false;\n }\n return true;\n };\n };\n};\n","// Generated by purs version 0.15.7\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Symbol from \"../Data.Symbol/index.js\";\nimport * as Record_Unsafe from \"../Record.Unsafe/index.js\";\nimport * as Type_Proxy from \"../Type.Proxy/index.js\";\nvar eqVoid = {\n eq: function (v) {\n return function (v1) {\n return true;\n };\n }\n};\nvar eqUnit = {\n eq: function (v) {\n return function (v1) {\n return true;\n };\n }\n};\nvar eqString = {\n eq: $foreign.eqStringImpl\n};\nvar eqRowNil = {\n eqRecord: function (v) {\n return function (v1) {\n return function (v2) {\n return true;\n };\n };\n }\n};\nvar eqRecord = function (dict) {\n return dict.eqRecord;\n};\nvar eqRec = function () {\n return function (dictEqRecord) {\n return {\n eq: eqRecord(dictEqRecord)(Type_Proxy[\"Proxy\"].value)\n };\n };\n};\nvar eqProxy = {\n eq: function (v) {\n return function (v1) {\n return true;\n };\n }\n};\nvar eqNumber = {\n eq: $foreign.eqNumberImpl\n};\nvar eqInt = {\n eq: $foreign.eqIntImpl\n};\nvar eqChar = {\n eq: $foreign.eqCharImpl\n};\nvar eqBoolean = {\n eq: $foreign.eqBooleanImpl\n};\nvar eq1 = function (dict) {\n return dict.eq1;\n};\nvar eq = function (dict) {\n return dict.eq;\n};\nvar eq2 = /* #__PURE__ */ eq(eqBoolean);\nvar eqArray = function (dictEq) {\n return {\n eq: $foreign.eqArrayImpl(eq(dictEq))\n };\n};\nvar eq1Array = {\n eq1: function (dictEq) {\n return eq(eqArray(dictEq));\n }\n};\nvar eqRowCons = function (dictEqRecord) {\n var eqRecord1 = eqRecord(dictEqRecord);\n return function () {\n return function (dictIsSymbol) {\n var reflectSymbol = Data_Symbol.reflectSymbol(dictIsSymbol);\n return function (dictEq) {\n var eq3 = eq(dictEq);\n return {\n eqRecord: function (v) {\n return function (ra) {\n return function (rb) {\n var tail = eqRecord1(Type_Proxy[\"Proxy\"].value)(ra)(rb);\n var key = reflectSymbol(Type_Proxy[\"Proxy\"].value);\n var get = Record_Unsafe.unsafeGet(key);\n return eq3(get(ra))(get(rb)) && tail;\n };\n };\n }\n };\n };\n };\n };\n};\nvar notEq = function (dictEq) {\n var eq3 = eq(dictEq);\n return function (x) {\n return function (y) {\n return eq2(eq3(x)(y))(false);\n };\n };\n};\nvar notEq1 = function (dictEq1) {\n var eq11 = eq1(dictEq1);\n return function (dictEq) {\n var eq12 = eq11(dictEq);\n return function (x) {\n return function (y) {\n return eq2(eq12(x)(y))(false);\n };\n };\n };\n};\nexport {\n eq,\n notEq,\n eq1,\n notEq1,\n eqRecord,\n eqBoolean,\n eqInt,\n eqNumber,\n eqChar,\n eqString,\n eqUnit,\n eqVoid,\n eqArray,\n eqRec,\n eqProxy,\n eq1Array,\n eqRowNil,\n eqRowCons\n};\n","// Generated by purs version 0.15.7\nvar LT = /* #__PURE__ */ (function () {\n function LT() {\n\n };\n LT.value = new LT();\n return LT;\n})();\nvar GT = /* #__PURE__ */ (function () {\n function GT() {\n\n };\n GT.value = new GT();\n return GT;\n})();\nvar EQ = /* #__PURE__ */ (function () {\n function EQ() {\n\n };\n EQ.value = new EQ();\n return EQ;\n})();\nvar showOrdering = {\n show: function (v) {\n if (v instanceof LT) {\n return \"LT\";\n };\n if (v instanceof GT) {\n return \"GT\";\n };\n if (v instanceof EQ) {\n return \"EQ\";\n };\n throw new Error(\"Failed pattern match at Data.Ordering (line 26, column 1 - line 29, column 17): \" + [ v.constructor.name ]);\n }\n};\nvar semigroupOrdering = {\n append: function (v) {\n return function (v1) {\n if (v instanceof LT) {\n return LT.value;\n };\n if (v instanceof GT) {\n return GT.value;\n };\n if (v instanceof EQ) {\n return v1;\n };\n throw new Error(\"Failed pattern match at Data.Ordering (line 21, column 1 - line 24, column 18): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n }\n};\nvar invert = function (v) {\n if (v instanceof GT) {\n return LT.value;\n };\n if (v instanceof EQ) {\n return EQ.value;\n };\n if (v instanceof LT) {\n return GT.value;\n };\n throw new Error(\"Failed pattern match at Data.Ordering (line 33, column 1 - line 33, column 31): \" + [ v.constructor.name ]);\n};\nvar eqOrdering = {\n eq: function (v) {\n return function (v1) {\n if (v instanceof LT && v1 instanceof LT) {\n return true;\n };\n if (v instanceof GT && v1 instanceof GT) {\n return true;\n };\n if (v instanceof EQ && v1 instanceof EQ) {\n return true;\n };\n return false;\n };\n }\n};\nexport {\n LT,\n GT,\n EQ,\n invert,\n eqOrdering,\n semigroupOrdering,\n showOrdering\n};\n","// Generated by purs version 0.15.7\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Symbol from \"../Data.Symbol/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nimport * as Record_Unsafe from \"../Record.Unsafe/index.js\";\nimport * as Type_Proxy from \"../Type.Proxy/index.js\";\nvar zeroRecord = function (dict) {\n return dict.zeroRecord;\n};\nvar zero = function (dict) {\n return dict.zero;\n};\nvar semiringUnit = {\n add: function (v) {\n return function (v1) {\n return Data_Unit.unit;\n };\n },\n zero: Data_Unit.unit,\n mul: function (v) {\n return function (v1) {\n return Data_Unit.unit;\n };\n },\n one: Data_Unit.unit\n};\nvar semiringRecordNil = {\n addRecord: function (v) {\n return function (v1) {\n return function (v2) {\n return {};\n };\n };\n },\n mulRecord: function (v) {\n return function (v1) {\n return function (v2) {\n return {};\n };\n };\n },\n oneRecord: function (v) {\n return function (v1) {\n return {};\n };\n },\n zeroRecord: function (v) {\n return function (v1) {\n return {};\n };\n }\n};\nvar semiringProxy = /* #__PURE__ */ (function () {\n return {\n add: function (v) {\n return function (v1) {\n return Type_Proxy[\"Proxy\"].value;\n };\n },\n mul: function (v) {\n return function (v1) {\n return Type_Proxy[\"Proxy\"].value;\n };\n },\n one: Type_Proxy[\"Proxy\"].value,\n zero: Type_Proxy[\"Proxy\"].value\n };\n})();\nvar semiringNumber = {\n add: $foreign.numAdd,\n zero: 0.0,\n mul: $foreign.numMul,\n one: 1.0\n};\nvar semiringInt = {\n add: $foreign.intAdd,\n zero: 0,\n mul: $foreign.intMul,\n one: 1\n};\nvar oneRecord = function (dict) {\n return dict.oneRecord;\n};\nvar one = function (dict) {\n return dict.one;\n};\nvar mulRecord = function (dict) {\n return dict.mulRecord;\n};\nvar mul = function (dict) {\n return dict.mul;\n};\nvar addRecord = function (dict) {\n return dict.addRecord;\n};\nvar semiringRecord = function () {\n return function (dictSemiringRecord) {\n return {\n add: addRecord(dictSemiringRecord)(Type_Proxy[\"Proxy\"].value),\n mul: mulRecord(dictSemiringRecord)(Type_Proxy[\"Proxy\"].value),\n one: oneRecord(dictSemiringRecord)(Type_Proxy[\"Proxy\"].value)(Type_Proxy[\"Proxy\"].value),\n zero: zeroRecord(dictSemiringRecord)(Type_Proxy[\"Proxy\"].value)(Type_Proxy[\"Proxy\"].value)\n };\n };\n};\nvar add = function (dict) {\n return dict.add;\n};\nvar semiringFn = function (dictSemiring) {\n var add1 = add(dictSemiring);\n var zero1 = zero(dictSemiring);\n var mul1 = mul(dictSemiring);\n var one1 = one(dictSemiring);\n return {\n add: function (f) {\n return function (g) {\n return function (x) {\n return add1(f(x))(g(x));\n };\n };\n },\n zero: function (v) {\n return zero1;\n },\n mul: function (f) {\n return function (g) {\n return function (x) {\n return mul1(f(x))(g(x));\n };\n };\n },\n one: function (v) {\n return one1;\n }\n };\n};\nvar semiringRecordCons = function (dictIsSymbol) {\n var reflectSymbol = Data_Symbol.reflectSymbol(dictIsSymbol);\n return function () {\n return function (dictSemiringRecord) {\n var addRecord1 = addRecord(dictSemiringRecord);\n var mulRecord1 = mulRecord(dictSemiringRecord);\n var oneRecord1 = oneRecord(dictSemiringRecord);\n var zeroRecord1 = zeroRecord(dictSemiringRecord);\n return function (dictSemiring) {\n var add1 = add(dictSemiring);\n var mul1 = mul(dictSemiring);\n var one1 = one(dictSemiring);\n var zero1 = zero(dictSemiring);\n return {\n addRecord: function (v) {\n return function (ra) {\n return function (rb) {\n var tail = addRecord1(Type_Proxy[\"Proxy\"].value)(ra)(rb);\n var key = reflectSymbol(Type_Proxy[\"Proxy\"].value);\n var insert = Record_Unsafe.unsafeSet(key);\n var get = Record_Unsafe.unsafeGet(key);\n return insert(add1(get(ra))(get(rb)))(tail);\n };\n };\n },\n mulRecord: function (v) {\n return function (ra) {\n return function (rb) {\n var tail = mulRecord1(Type_Proxy[\"Proxy\"].value)(ra)(rb);\n var key = reflectSymbol(Type_Proxy[\"Proxy\"].value);\n var insert = Record_Unsafe.unsafeSet(key);\n var get = Record_Unsafe.unsafeGet(key);\n return insert(mul1(get(ra))(get(rb)))(tail);\n };\n };\n },\n oneRecord: function (v) {\n return function (v1) {\n var tail = oneRecord1(Type_Proxy[\"Proxy\"].value)(Type_Proxy[\"Proxy\"].value);\n var key = reflectSymbol(Type_Proxy[\"Proxy\"].value);\n var insert = Record_Unsafe.unsafeSet(key);\n return insert(one1)(tail);\n };\n },\n zeroRecord: function (v) {\n return function (v1) {\n var tail = zeroRecord1(Type_Proxy[\"Proxy\"].value)(Type_Proxy[\"Proxy\"].value);\n var key = reflectSymbol(Type_Proxy[\"Proxy\"].value);\n var insert = Record_Unsafe.unsafeSet(key);\n return insert(zero1)(tail);\n };\n }\n };\n };\n };\n };\n};\nexport {\n add,\n zero,\n mul,\n one,\n addRecord,\n mulRecord,\n oneRecord,\n zeroRecord,\n semiringInt,\n semiringNumber,\n semiringFn,\n semiringUnit,\n semiringProxy,\n semiringRecord,\n semiringRecordNil,\n semiringRecordCons\n};\n","export const intAdd = function (x) {\n return function (y) {\n /* jshint bitwise: false */\n return x + y | 0;\n };\n};\n\nexport const intMul = function (x) {\n return function (y) {\n /* jshint bitwise: false */\n return x * y | 0;\n };\n};\n\nexport const numAdd = function (n1) {\n return function (n2) {\n return n1 + n2;\n };\n};\n\nexport const numMul = function (n1) {\n return function (n2) {\n return n1 * n2;\n };\n};\n","// Generated by purs version 0.15.7\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Semiring from \"../Data.Semiring/index.js\";\nimport * as Data_Symbol from \"../Data.Symbol/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nimport * as Record_Unsafe from \"../Record.Unsafe/index.js\";\nimport * as Type_Proxy from \"../Type.Proxy/index.js\";\nvar semiringRecord = /* #__PURE__ */ Data_Semiring.semiringRecord();\nvar subRecord = function (dict) {\n return dict.subRecord;\n};\nvar sub = function (dict) {\n return dict.sub;\n};\nvar ringUnit = {\n sub: function (v) {\n return function (v1) {\n return Data_Unit.unit;\n };\n },\n Semiring0: function () {\n return Data_Semiring.semiringUnit;\n }\n};\nvar ringRecordNil = {\n subRecord: function (v) {\n return function (v1) {\n return function (v2) {\n return {};\n };\n };\n },\n SemiringRecord0: function () {\n return Data_Semiring.semiringRecordNil;\n }\n};\nvar ringRecordCons = function (dictIsSymbol) {\n var reflectSymbol = Data_Symbol.reflectSymbol(dictIsSymbol);\n var semiringRecordCons = Data_Semiring.semiringRecordCons(dictIsSymbol)();\n return function () {\n return function (dictRingRecord) {\n var subRecord1 = subRecord(dictRingRecord);\n var semiringRecordCons1 = semiringRecordCons(dictRingRecord.SemiringRecord0());\n return function (dictRing) {\n var sub1 = sub(dictRing);\n var semiringRecordCons2 = semiringRecordCons1(dictRing.Semiring0());\n return {\n subRecord: function (v) {\n return function (ra) {\n return function (rb) {\n var tail = subRecord1(Type_Proxy[\"Proxy\"].value)(ra)(rb);\n var key = reflectSymbol(Type_Proxy[\"Proxy\"].value);\n var insert = Record_Unsafe.unsafeSet(key);\n var get = Record_Unsafe.unsafeGet(key);\n return insert(sub1(get(ra))(get(rb)))(tail);\n };\n };\n },\n SemiringRecord0: function () {\n return semiringRecordCons2;\n }\n };\n };\n };\n };\n};\nvar ringRecord = function () {\n return function (dictRingRecord) {\n var semiringRecord1 = semiringRecord(dictRingRecord.SemiringRecord0());\n return {\n sub: subRecord(dictRingRecord)(Type_Proxy[\"Proxy\"].value),\n Semiring0: function () {\n return semiringRecord1;\n }\n };\n };\n};\nvar ringProxy = {\n sub: function (v) {\n return function (v1) {\n return Type_Proxy[\"Proxy\"].value;\n };\n },\n Semiring0: function () {\n return Data_Semiring.semiringProxy;\n }\n};\nvar ringNumber = {\n sub: $foreign.numSub,\n Semiring0: function () {\n return Data_Semiring.semiringNumber;\n }\n};\nvar ringInt = {\n sub: $foreign.intSub,\n Semiring0: function () {\n return Data_Semiring.semiringInt;\n }\n};\nvar ringFn = function (dictRing) {\n var sub1 = sub(dictRing);\n var semiringFn = Data_Semiring.semiringFn(dictRing.Semiring0());\n return {\n sub: function (f) {\n return function (g) {\n return function (x) {\n return sub1(f(x))(g(x));\n };\n };\n },\n Semiring0: function () {\n return semiringFn;\n }\n };\n};\nvar negate = function (dictRing) {\n var sub1 = sub(dictRing);\n var zero = Data_Semiring.zero(dictRing.Semiring0());\n return function (a) {\n return sub1(zero)(a);\n };\n};\nexport {\n sub,\n negate,\n subRecord,\n ringInt,\n ringNumber,\n ringUnit,\n ringFn,\n ringProxy,\n ringRecord,\n ringRecordNil,\n ringRecordCons\n};\nexport {\n add,\n mul,\n one,\n zero\n} from \"../Data.Semiring/index.js\";\n","export const intSub = function (x) {\n return function (y) {\n /* jshint bitwise: false */\n return x - y | 0;\n };\n};\n\nexport const numSub = function (n1) {\n return function (n2) {\n return n1 - n2;\n };\n};\n","// Generated by purs version 0.15.7\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Ordering from \"../Data.Ordering/index.js\";\nimport * as Data_Ring from \"../Data.Ring/index.js\";\nimport * as Data_Semiring from \"../Data.Semiring/index.js\";\nimport * as Data_Symbol from \"../Data.Symbol/index.js\";\nimport * as Record_Unsafe from \"../Record.Unsafe/index.js\";\nimport * as Type_Proxy from \"../Type.Proxy/index.js\";\nvar eqRec = /* #__PURE__ */ Data_Eq.eqRec();\nvar notEq = /* #__PURE__ */ Data_Eq.notEq(Data_Ordering.eqOrdering);\nvar ordVoid = {\n compare: function (v) {\n return function (v1) {\n return Data_Ordering.EQ.value;\n };\n },\n Eq0: function () {\n return Data_Eq.eqVoid;\n }\n};\nvar ordUnit = {\n compare: function (v) {\n return function (v1) {\n return Data_Ordering.EQ.value;\n };\n },\n Eq0: function () {\n return Data_Eq.eqUnit;\n }\n};\nvar ordString = /* #__PURE__ */ (function () {\n return {\n compare: $foreign.ordStringImpl(Data_Ordering.LT.value)(Data_Ordering.EQ.value)(Data_Ordering.GT.value),\n Eq0: function () {\n return Data_Eq.eqString;\n }\n };\n})();\nvar ordRecordNil = {\n compareRecord: function (v) {\n return function (v1) {\n return function (v2) {\n return Data_Ordering.EQ.value;\n };\n };\n },\n EqRecord0: function () {\n return Data_Eq.eqRowNil;\n }\n};\nvar ordProxy = {\n compare: function (v) {\n return function (v1) {\n return Data_Ordering.EQ.value;\n };\n },\n Eq0: function () {\n return Data_Eq.eqProxy;\n }\n};\nvar ordOrdering = {\n compare: function (v) {\n return function (v1) {\n if (v instanceof Data_Ordering.LT && v1 instanceof Data_Ordering.LT) {\n return Data_Ordering.EQ.value;\n };\n if (v instanceof Data_Ordering.EQ && v1 instanceof Data_Ordering.EQ) {\n return Data_Ordering.EQ.value;\n };\n if (v instanceof Data_Ordering.GT && v1 instanceof Data_Ordering.GT) {\n return Data_Ordering.EQ.value;\n };\n if (v instanceof Data_Ordering.LT) {\n return Data_Ordering.LT.value;\n };\n if (v instanceof Data_Ordering.EQ && v1 instanceof Data_Ordering.LT) {\n return Data_Ordering.GT.value;\n };\n if (v instanceof Data_Ordering.EQ && v1 instanceof Data_Ordering.GT) {\n return Data_Ordering.LT.value;\n };\n if (v instanceof Data_Ordering.GT) {\n return Data_Ordering.GT.value;\n };\n throw new Error(\"Failed pattern match at Data.Ord (line 126, column 1 - line 133, column 20): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n },\n Eq0: function () {\n return Data_Ordering.eqOrdering;\n }\n};\nvar ordNumber = /* #__PURE__ */ (function () {\n return {\n compare: $foreign.ordNumberImpl(Data_Ordering.LT.value)(Data_Ordering.EQ.value)(Data_Ordering.GT.value),\n Eq0: function () {\n return Data_Eq.eqNumber;\n }\n };\n})();\nvar ordInt = /* #__PURE__ */ (function () {\n return {\n compare: $foreign.ordIntImpl(Data_Ordering.LT.value)(Data_Ordering.EQ.value)(Data_Ordering.GT.value),\n Eq0: function () {\n return Data_Eq.eqInt;\n }\n };\n})();\nvar ordChar = /* #__PURE__ */ (function () {\n return {\n compare: $foreign.ordCharImpl(Data_Ordering.LT.value)(Data_Ordering.EQ.value)(Data_Ordering.GT.value),\n Eq0: function () {\n return Data_Eq.eqChar;\n }\n };\n})();\nvar ordBoolean = /* #__PURE__ */ (function () {\n return {\n compare: $foreign.ordBooleanImpl(Data_Ordering.LT.value)(Data_Ordering.EQ.value)(Data_Ordering.GT.value),\n Eq0: function () {\n return Data_Eq.eqBoolean;\n }\n };\n})();\nvar compareRecord = function (dict) {\n return dict.compareRecord;\n};\nvar ordRecord = function () {\n return function (dictOrdRecord) {\n var eqRec1 = eqRec(dictOrdRecord.EqRecord0());\n return {\n compare: compareRecord(dictOrdRecord)(Type_Proxy[\"Proxy\"].value),\n Eq0: function () {\n return eqRec1;\n }\n };\n };\n};\nvar compare1 = function (dict) {\n return dict.compare1;\n};\nvar compare = function (dict) {\n return dict.compare;\n};\nvar compare2 = /* #__PURE__ */ compare(ordInt);\nvar comparing = function (dictOrd) {\n var compare3 = compare(dictOrd);\n return function (f) {\n return function (x) {\n return function (y) {\n return compare3(f(x))(f(y));\n };\n };\n };\n};\nvar greaterThan = function (dictOrd) {\n var compare3 = compare(dictOrd);\n return function (a1) {\n return function (a2) {\n var v = compare3(a1)(a2);\n if (v instanceof Data_Ordering.GT) {\n return true;\n };\n return false;\n };\n };\n};\nvar greaterThanOrEq = function (dictOrd) {\n var compare3 = compare(dictOrd);\n return function (a1) {\n return function (a2) {\n var v = compare3(a1)(a2);\n if (v instanceof Data_Ordering.LT) {\n return false;\n };\n return true;\n };\n };\n};\nvar lessThan = function (dictOrd) {\n var compare3 = compare(dictOrd);\n return function (a1) {\n return function (a2) {\n var v = compare3(a1)(a2);\n if (v instanceof Data_Ordering.LT) {\n return true;\n };\n return false;\n };\n };\n};\nvar signum = function (dictOrd) {\n var lessThan1 = lessThan(dictOrd);\n var greaterThan1 = greaterThan(dictOrd);\n return function (dictRing) {\n var Semiring0 = dictRing.Semiring0();\n var zero = Data_Semiring.zero(Semiring0);\n var negate1 = Data_Ring.negate(dictRing);\n var one = Data_Semiring.one(Semiring0);\n return function (x) {\n var $89 = lessThan1(x)(zero);\n if ($89) {\n return negate1(one);\n };\n var $90 = greaterThan1(x)(zero);\n if ($90) {\n return one;\n };\n return x;\n };\n };\n};\nvar lessThanOrEq = function (dictOrd) {\n var compare3 = compare(dictOrd);\n return function (a1) {\n return function (a2) {\n var v = compare3(a1)(a2);\n if (v instanceof Data_Ordering.GT) {\n return false;\n };\n return true;\n };\n };\n};\nvar max = function (dictOrd) {\n var compare3 = compare(dictOrd);\n return function (x) {\n return function (y) {\n var v = compare3(x)(y);\n if (v instanceof Data_Ordering.LT) {\n return y;\n };\n if (v instanceof Data_Ordering.EQ) {\n return x;\n };\n if (v instanceof Data_Ordering.GT) {\n return x;\n };\n throw new Error(\"Failed pattern match at Data.Ord (line 181, column 3 - line 184, column 12): \" + [ v.constructor.name ]);\n };\n };\n};\nvar min = function (dictOrd) {\n var compare3 = compare(dictOrd);\n return function (x) {\n return function (y) {\n var v = compare3(x)(y);\n if (v instanceof Data_Ordering.LT) {\n return x;\n };\n if (v instanceof Data_Ordering.EQ) {\n return x;\n };\n if (v instanceof Data_Ordering.GT) {\n return y;\n };\n throw new Error(\"Failed pattern match at Data.Ord (line 172, column 3 - line 175, column 12): \" + [ v.constructor.name ]);\n };\n };\n};\nvar ordArray = function (dictOrd) {\n var compare3 = compare(dictOrd);\n var eqArray = Data_Eq.eqArray(dictOrd.Eq0());\n return {\n compare: (function () {\n var toDelta = function (x) {\n return function (y) {\n var v = compare3(x)(y);\n if (v instanceof Data_Ordering.EQ) {\n return 0;\n };\n if (v instanceof Data_Ordering.LT) {\n return 1;\n };\n if (v instanceof Data_Ordering.GT) {\n return -1 | 0;\n };\n throw new Error(\"Failed pattern match at Data.Ord (line 79, column 7 - line 82, column 17): \" + [ v.constructor.name ]);\n };\n };\n return function (xs) {\n return function (ys) {\n return compare2(0)($foreign.ordArrayImpl(toDelta)(xs)(ys));\n };\n };\n })(),\n Eq0: function () {\n return eqArray;\n }\n };\n};\nvar ord1Array = {\n compare1: function (dictOrd) {\n return compare(ordArray(dictOrd));\n },\n Eq10: function () {\n return Data_Eq.eq1Array;\n }\n};\nvar ordRecordCons = function (dictOrdRecord) {\n var compareRecord1 = compareRecord(dictOrdRecord);\n var eqRowCons = Data_Eq.eqRowCons(dictOrdRecord.EqRecord0())();\n return function () {\n return function (dictIsSymbol) {\n var reflectSymbol = Data_Symbol.reflectSymbol(dictIsSymbol);\n var eqRowCons1 = eqRowCons(dictIsSymbol);\n return function (dictOrd) {\n var compare3 = compare(dictOrd);\n var eqRowCons2 = eqRowCons1(dictOrd.Eq0());\n return {\n compareRecord: function (v) {\n return function (ra) {\n return function (rb) {\n var key = reflectSymbol(Type_Proxy[\"Proxy\"].value);\n var left = compare3(Record_Unsafe.unsafeGet(key)(ra))(Record_Unsafe.unsafeGet(key)(rb));\n var $95 = notEq(left)(Data_Ordering.EQ.value);\n if ($95) {\n return left;\n };\n return compareRecord1(Type_Proxy[\"Proxy\"].value)(ra)(rb);\n };\n };\n },\n EqRecord0: function () {\n return eqRowCons2;\n }\n };\n };\n };\n };\n};\nvar clamp = function (dictOrd) {\n var min1 = min(dictOrd);\n var max1 = max(dictOrd);\n return function (low) {\n return function (hi) {\n return function (x) {\n return min1(hi)(max1(low)(x));\n };\n };\n };\n};\nvar between = function (dictOrd) {\n var lessThan1 = lessThan(dictOrd);\n var greaterThan1 = greaterThan(dictOrd);\n return function (low) {\n return function (hi) {\n return function (x) {\n if (lessThan1(x)(low)) {\n return false;\n };\n if (greaterThan1(x)(hi)) {\n return false;\n };\n return true;\n };\n };\n };\n};\nvar abs = function (dictOrd) {\n var greaterThanOrEq1 = greaterThanOrEq(dictOrd);\n return function (dictRing) {\n var zero = Data_Semiring.zero(dictRing.Semiring0());\n var negate1 = Data_Ring.negate(dictRing);\n return function (x) {\n var $99 = greaterThanOrEq1(x)(zero);\n if ($99) {\n return x;\n };\n return negate1(x);\n };\n };\n};\nexport {\n compare,\n compare1,\n lessThan,\n lessThanOrEq,\n greaterThan,\n greaterThanOrEq,\n comparing,\n min,\n max,\n clamp,\n between,\n abs,\n signum,\n compareRecord,\n ordBoolean,\n ordInt,\n ordNumber,\n ordString,\n ordChar,\n ordUnit,\n ordVoid,\n ordProxy,\n ordArray,\n ordOrdering,\n ord1Array,\n ordRecordNil,\n ordRecordCons,\n ordRecord\n};\nexport {\n EQ,\n GT,\n LT\n} from \"../Data.Ordering/index.js\";\n","// Generated by purs version 0.15.7\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Data_Ordering from \"../Data.Ordering/index.js\";\nimport * as Data_Symbol from \"../Data.Symbol/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nimport * as Record_Unsafe from \"../Record.Unsafe/index.js\";\nimport * as Type_Proxy from \"../Type.Proxy/index.js\";\nvar ordRecord = /* #__PURE__ */ Data_Ord.ordRecord();\nvar topRecord = function (dict) {\n return dict.topRecord;\n};\nvar top = function (dict) {\n return dict.top;\n};\nvar boundedUnit = {\n top: Data_Unit.unit,\n bottom: Data_Unit.unit,\n Ord0: function () {\n return Data_Ord.ordUnit;\n }\n};\nvar boundedRecordNil = {\n topRecord: function (v) {\n return function (v1) {\n return {};\n };\n },\n bottomRecord: function (v) {\n return function (v1) {\n return {};\n };\n },\n OrdRecord0: function () {\n return Data_Ord.ordRecordNil;\n }\n};\nvar boundedProxy = /* #__PURE__ */ (function () {\n return {\n bottom: Type_Proxy[\"Proxy\"].value,\n top: Type_Proxy[\"Proxy\"].value,\n Ord0: function () {\n return Data_Ord.ordProxy;\n }\n };\n})();\nvar boundedOrdering = /* #__PURE__ */ (function () {\n return {\n top: Data_Ordering.GT.value,\n bottom: Data_Ordering.LT.value,\n Ord0: function () {\n return Data_Ord.ordOrdering;\n }\n };\n})();\nvar boundedNumber = {\n top: $foreign.topNumber,\n bottom: $foreign.bottomNumber,\n Ord0: function () {\n return Data_Ord.ordNumber;\n }\n};\nvar boundedInt = {\n top: $foreign.topInt,\n bottom: $foreign.bottomInt,\n Ord0: function () {\n return Data_Ord.ordInt;\n }\n};\nvar boundedChar = {\n top: $foreign.topChar,\n bottom: $foreign.bottomChar,\n Ord0: function () {\n return Data_Ord.ordChar;\n }\n};\nvar boundedBoolean = {\n top: true,\n bottom: false,\n Ord0: function () {\n return Data_Ord.ordBoolean;\n }\n};\nvar bottomRecord = function (dict) {\n return dict.bottomRecord;\n};\nvar boundedRecord = function () {\n return function (dictBoundedRecord) {\n var ordRecord1 = ordRecord(dictBoundedRecord.OrdRecord0());\n return {\n top: topRecord(dictBoundedRecord)(Type_Proxy[\"Proxy\"].value)(Type_Proxy[\"Proxy\"].value),\n bottom: bottomRecord(dictBoundedRecord)(Type_Proxy[\"Proxy\"].value)(Type_Proxy[\"Proxy\"].value),\n Ord0: function () {\n return ordRecord1;\n }\n };\n };\n};\nvar bottom = function (dict) {\n return dict.bottom;\n};\nvar boundedRecordCons = function (dictIsSymbol) {\n var reflectSymbol = Data_Symbol.reflectSymbol(dictIsSymbol);\n return function (dictBounded) {\n var top1 = top(dictBounded);\n var bottom1 = bottom(dictBounded);\n var Ord0 = dictBounded.Ord0();\n return function () {\n return function () {\n return function (dictBoundedRecord) {\n var topRecord1 = topRecord(dictBoundedRecord);\n var bottomRecord1 = bottomRecord(dictBoundedRecord);\n var ordRecordCons = Data_Ord.ordRecordCons(dictBoundedRecord.OrdRecord0())()(dictIsSymbol)(Ord0);\n return {\n topRecord: function (v) {\n return function (rowProxy) {\n var tail = topRecord1(Type_Proxy[\"Proxy\"].value)(rowProxy);\n var key = reflectSymbol(Type_Proxy[\"Proxy\"].value);\n var insert = Record_Unsafe.unsafeSet(key);\n return insert(top1)(tail);\n };\n },\n bottomRecord: function (v) {\n return function (rowProxy) {\n var tail = bottomRecord1(Type_Proxy[\"Proxy\"].value)(rowProxy);\n var key = reflectSymbol(Type_Proxy[\"Proxy\"].value);\n var insert = Record_Unsafe.unsafeSet(key);\n return insert(bottom1)(tail);\n };\n },\n OrdRecord0: function () {\n return ordRecordCons;\n }\n };\n };\n };\n };\n };\n};\nexport {\n bottom,\n top,\n bottomRecord,\n topRecord,\n boundedBoolean,\n boundedInt,\n boundedChar,\n boundedOrdering,\n boundedUnit,\n boundedNumber,\n boundedProxy,\n boundedRecordNil,\n boundedRecordCons,\n boundedRecord\n};\nexport {\n EQ,\n GT,\n LT,\n compare\n} from \"../Data.Ord/index.js\";\n","// Generated by purs version 0.15.7\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Symbol from \"../Data.Symbol/index.js\";\nimport * as Record_Unsafe from \"../Record.Unsafe/index.js\";\nimport * as Type_Proxy from \"../Type.Proxy/index.js\";\nvar showString = {\n show: $foreign.showStringImpl\n};\nvar showRecordFieldsNil = {\n showRecordFields: function (v) {\n return function (v1) {\n return [ ];\n };\n }\n};\nvar showRecordFields = function (dict) {\n return dict.showRecordFields;\n};\nvar showRecord = function () {\n return function () {\n return function (dictShowRecordFields) {\n var showRecordFields1 = showRecordFields(dictShowRecordFields);\n return {\n show: function (record) {\n var v = showRecordFields1(Type_Proxy[\"Proxy\"].value)(record);\n if (v.length === 0) {\n return \"{}\";\n };\n return $foreign.intercalate(\" \")([ \"{\", $foreign.intercalate(\", \")(v), \"}\" ]);\n }\n };\n };\n };\n};\nvar showProxy = {\n show: function (v) {\n return \"Proxy\";\n }\n};\nvar showNumber = {\n show: $foreign.showNumberImpl\n};\nvar showInt = {\n show: $foreign.showIntImpl\n};\nvar showChar = {\n show: $foreign.showCharImpl\n};\nvar showBoolean = {\n show: function (v) {\n if (v) {\n return \"true\";\n };\n if (!v) {\n return \"false\";\n };\n throw new Error(\"Failed pattern match at Data.Show (line 23, column 1 - line 25, column 23): \" + [ v.constructor.name ]);\n }\n};\nvar show = function (dict) {\n return dict.show;\n};\nvar showArray = function (dictShow) {\n return {\n show: $foreign.showArrayImpl(show(dictShow))\n };\n};\nvar showRecordFieldsCons = function (dictIsSymbol) {\n var reflectSymbol = Data_Symbol.reflectSymbol(dictIsSymbol);\n return function (dictShowRecordFields) {\n var showRecordFields1 = showRecordFields(dictShowRecordFields);\n return function (dictShow) {\n var show1 = show(dictShow);\n return {\n showRecordFields: function (v) {\n return function (record) {\n var tail = showRecordFields1(Type_Proxy[\"Proxy\"].value)(record);\n var key = reflectSymbol(Type_Proxy[\"Proxy\"].value);\n var focus = Record_Unsafe.unsafeGet(key)(record);\n return $foreign.cons($foreign.intercalate(\": \")([ key, show1(focus) ]))(tail);\n };\n }\n };\n };\n };\n};\nexport {\n show,\n showRecordFields,\n showBoolean,\n showInt,\n showNumber,\n showChar,\n showString,\n showArray,\n showProxy,\n showRecord,\n showRecordFieldsNil,\n showRecordFieldsCons\n};\n","export const showIntImpl = function (n) {\n return n.toString();\n};\n\nexport const showNumberImpl = function (n) {\n var str = n.toString();\n return isNaN(str + \".0\") ? str : str + \".0\";\n};\n\nexport const showCharImpl = function (c) {\n var code = c.charCodeAt(0);\n if (code < 0x20 || code === 0x7F) {\n switch (c) {\n case \"\\x07\": return \"'\\\\a'\";\n case \"\\b\": return \"'\\\\b'\";\n case \"\\f\": return \"'\\\\f'\";\n case \"\\n\": return \"'\\\\n'\";\n case \"\\r\": return \"'\\\\r'\";\n case \"\\t\": return \"'\\\\t'\";\n case \"\\v\": return \"'\\\\v'\";\n }\n return \"'\\\\\" + code.toString(10) + \"'\";\n }\n return c === \"'\" || c === \"\\\\\" ? \"'\\\\\" + c + \"'\" : \"'\" + c + \"'\";\n};\n\nexport const showStringImpl = function (s) {\n var l = s.length;\n return \"\\\"\" + s.replace(\n /[\\0-\\x1F\\x7F\"\\\\]/g, // eslint-disable-line no-control-regex\n function (c, i) {\n switch (c) {\n case \"\\\"\":\n case \"\\\\\":\n return \"\\\\\" + c;\n case \"\\x07\": return \"\\\\a\";\n case \"\\b\": return \"\\\\b\";\n case \"\\f\": return \"\\\\f\";\n case \"\\n\": return \"\\\\n\";\n case \"\\r\": return \"\\\\r\";\n case \"\\t\": return \"\\\\t\";\n case \"\\v\": return \"\\\\v\";\n }\n var k = i + 1;\n var empty = k < l && s[k] >= \"0\" && s[k] <= \"9\" ? \"\\\\&\" : \"\";\n return \"\\\\\" + c.charCodeAt(0).toString(10) + empty;\n }\n ) + \"\\\"\";\n};\n\nexport const showArrayImpl = function (f) {\n return function (xs) {\n var ss = [];\n for (var i = 0, l = xs.length; i < l; i++) {\n ss[i] = f(xs[i]);\n }\n return \"[\" + ss.join(\",\") + \"]\";\n };\n};\n\nexport const cons = function (head) {\n return function (tail) {\n return [head].concat(tail);\n };\n};\n\nexport const intercalate = function (separator) {\n return function (xs) {\n return xs.join(separator);\n };\n};\n","// Generated by purs version 0.15.7\nimport * as Data_Show from \"../Data.Show/index.js\";\nimport * as Data_Symbol from \"../Data.Symbol/index.js\";\nimport * as Type_Proxy from \"../Type.Proxy/index.js\";\nvar show = /* #__PURE__ */ Data_Show.show(Data_Show.showString);\nvar Inl = /* #__PURE__ */ (function () {\n function Inl(value0) {\n this.value0 = value0;\n };\n Inl.create = function (value0) {\n return new Inl(value0);\n };\n return Inl;\n})();\nvar Inr = /* #__PURE__ */ (function () {\n function Inr(value0) {\n this.value0 = value0;\n };\n Inr.create = function (value0) {\n return new Inr(value0);\n };\n return Inr;\n})();\nvar Product = /* #__PURE__ */ (function () {\n function Product(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n Product.create = function (value0) {\n return function (value1) {\n return new Product(value0, value1);\n };\n };\n return Product;\n})();\nvar NoConstructors = function (x) {\n return x;\n};\nvar NoArguments = /* #__PURE__ */ (function () {\n function NoArguments() {\n\n };\n NoArguments.value = new NoArguments();\n return NoArguments;\n})();\nvar Constructor = function (x) {\n return x;\n};\nvar Argument = function (x) {\n return x;\n};\nvar to = function (dict) {\n return dict.to;\n};\nvar showSum = function (dictShow) {\n var show1 = Data_Show.show(dictShow);\n return function (dictShow1) {\n var show2 = Data_Show.show(dictShow1);\n return {\n show: function (v) {\n if (v instanceof Inl) {\n return \"(Inl \" + (show1(v.value0) + \")\");\n };\n if (v instanceof Inr) {\n return \"(Inr \" + (show2(v.value0) + \")\");\n };\n throw new Error(\"Failed pattern match at Data.Generic.Rep (line 32, column 1 - line 34, column 42): \" + [ v.constructor.name ]);\n }\n };\n };\n};\nvar showProduct = function (dictShow) {\n var show1 = Data_Show.show(dictShow);\n return function (dictShow1) {\n var show2 = Data_Show.show(dictShow1);\n return {\n show: function (v) {\n return \"(Product \" + (show1(v.value0) + (\" \" + (show2(v.value1) + \")\")));\n }\n };\n };\n};\nvar showNoArguments = {\n show: function (v) {\n return \"NoArguments\";\n }\n};\nvar showConstructor = function (dictIsSymbol) {\n var reflectSymbol = Data_Symbol.reflectSymbol(dictIsSymbol);\n return function (dictShow) {\n var show1 = Data_Show.show(dictShow);\n return {\n show: function (v) {\n return \"(Constructor @\" + (show(reflectSymbol(Type_Proxy[\"Proxy\"].value)) + (\" \" + (show1(v) + \")\")));\n }\n };\n };\n};\nvar showArgument = function (dictShow) {\n var show1 = Data_Show.show(dictShow);\n return {\n show: function (v) {\n return \"(Argument \" + (show1(v) + \")\");\n }\n };\n};\nvar repOf = function (dictGeneric) {\n return function (v) {\n return Type_Proxy[\"Proxy\"].value;\n };\n};\nvar from = function (dict) {\n return dict.from;\n};\nexport {\n to,\n from,\n repOf,\n NoArguments,\n Inl,\n Inr,\n Product,\n Constructor,\n Argument,\n showNoArguments,\n showSum,\n showProduct,\n showConstructor,\n showArgument\n};\n","// Generated by purs version 0.15.7\nimport * as Control_Alt from \"../Control.Alt/index.js\";\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Apply from \"../Control.Apply/index.js\";\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Data_Bounded from \"../Data.Bounded/index.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Functor_Invariant from \"../Data.Functor.Invariant/index.js\";\nimport * as Data_Generic_Rep from \"../Data.Generic.Rep/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Data_Ordering from \"../Data.Ordering/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nimport * as Data_Semiring from \"../Data.Semiring/index.js\";\nimport * as Data_Show from \"../Data.Show/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nvar identity = /* #__PURE__ */ Control_Category.identity(Control_Category.categoryFn);\nvar Nothing = /* #__PURE__ */ (function () {\n function Nothing() {\n\n };\n Nothing.value = new Nothing();\n return Nothing;\n})();\nvar Just = /* #__PURE__ */ (function () {\n function Just(value0) {\n this.value0 = value0;\n };\n Just.create = function (value0) {\n return new Just(value0);\n };\n return Just;\n})();\nvar showMaybe = function (dictShow) {\n var show = Data_Show.show(dictShow);\n return {\n show: function (v) {\n if (v instanceof Just) {\n return \"(Just \" + (show(v.value0) + \")\");\n };\n if (v instanceof Nothing) {\n return \"Nothing\";\n };\n throw new Error(\"Failed pattern match at Data.Maybe (line 223, column 1 - line 225, column 28): \" + [ v.constructor.name ]);\n }\n };\n};\nvar semigroupMaybe = function (dictSemigroup) {\n var append1 = Data_Semigroup.append(dictSemigroup);\n return {\n append: function (v) {\n return function (v1) {\n if (v instanceof Nothing) {\n return v1;\n };\n if (v1 instanceof Nothing) {\n return v;\n };\n if (v instanceof Just && v1 instanceof Just) {\n return new Just(append1(v.value0)(v1.value0));\n };\n throw new Error(\"Failed pattern match at Data.Maybe (line 182, column 1 - line 185, column 43): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n }\n };\n};\nvar optional = function (dictAlt) {\n var alt = Control_Alt.alt(dictAlt);\n var map1 = Data_Functor.map(dictAlt.Functor0());\n return function (dictApplicative) {\n var pure = Control_Applicative.pure(dictApplicative);\n return function (a) {\n return alt(map1(Just.create)(a))(pure(Nothing.value));\n };\n };\n};\nvar monoidMaybe = function (dictSemigroup) {\n var semigroupMaybe1 = semigroupMaybe(dictSemigroup);\n return {\n mempty: Nothing.value,\n Semigroup0: function () {\n return semigroupMaybe1;\n }\n };\n};\nvar maybe$prime = function (v) {\n return function (v1) {\n return function (v2) {\n if (v2 instanceof Nothing) {\n return v(Data_Unit.unit);\n };\n if (v2 instanceof Just) {\n return v1(v2.value0);\n };\n throw new Error(\"Failed pattern match at Data.Maybe (line 250, column 1 - line 250, column 62): \" + [ v.constructor.name, v1.constructor.name, v2.constructor.name ]);\n };\n };\n};\nvar maybe = function (v) {\n return function (v1) {\n return function (v2) {\n if (v2 instanceof Nothing) {\n return v;\n };\n if (v2 instanceof Just) {\n return v1(v2.value0);\n };\n throw new Error(\"Failed pattern match at Data.Maybe (line 237, column 1 - line 237, column 51): \" + [ v.constructor.name, v1.constructor.name, v2.constructor.name ]);\n };\n };\n};\nvar isNothing = /* #__PURE__ */ maybe(true)(/* #__PURE__ */ Data_Function[\"const\"](false));\nvar isJust = /* #__PURE__ */ maybe(false)(/* #__PURE__ */ Data_Function[\"const\"](true));\nvar genericMaybe = {\n to: function (x) {\n if (x instanceof Data_Generic_Rep.Inl) {\n return Nothing.value;\n };\n if (x instanceof Data_Generic_Rep.Inr) {\n return new Just(x.value0);\n };\n throw new Error(\"Failed pattern match at Data.Maybe (line 227, column 1 - line 227, column 52): \" + [ x.constructor.name ]);\n },\n from: function (x) {\n if (x instanceof Nothing) {\n return new Data_Generic_Rep.Inl(Data_Generic_Rep.NoArguments.value);\n };\n if (x instanceof Just) {\n return new Data_Generic_Rep.Inr(x.value0);\n };\n throw new Error(\"Failed pattern match at Data.Maybe (line 227, column 1 - line 227, column 52): \" + [ x.constructor.name ]);\n }\n};\nvar functorMaybe = {\n map: function (v) {\n return function (v1) {\n if (v1 instanceof Just) {\n return new Just(v(v1.value0));\n };\n return Nothing.value;\n };\n }\n};\nvar map = /* #__PURE__ */ Data_Functor.map(functorMaybe);\nvar invariantMaybe = {\n imap: /* #__PURE__ */ Data_Functor_Invariant.imapF(functorMaybe)\n};\nvar fromMaybe$prime = function (a) {\n return maybe$prime(a)(identity);\n};\nvar fromMaybe = function (a) {\n return maybe(a)(identity);\n};\nvar fromJust = function () {\n return function (v) {\n if (v instanceof Just) {\n return v.value0;\n };\n throw new Error(\"Failed pattern match at Data.Maybe (line 288, column 1 - line 288, column 46): \" + [ v.constructor.name ]);\n };\n};\nvar extendMaybe = {\n extend: function (v) {\n return function (v1) {\n if (v1 instanceof Nothing) {\n return Nothing.value;\n };\n return new Just(v(v1));\n };\n },\n Functor0: function () {\n return functorMaybe;\n }\n};\nvar eqMaybe = function (dictEq) {\n var eq = Data_Eq.eq(dictEq);\n return {\n eq: function (x) {\n return function (y) {\n if (x instanceof Nothing && y instanceof Nothing) {\n return true;\n };\n if (x instanceof Just && y instanceof Just) {\n return eq(x.value0)(y.value0);\n };\n return false;\n };\n }\n };\n};\nvar ordMaybe = function (dictOrd) {\n var compare = Data_Ord.compare(dictOrd);\n var eqMaybe1 = eqMaybe(dictOrd.Eq0());\n return {\n compare: function (x) {\n return function (y) {\n if (x instanceof Nothing && y instanceof Nothing) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof Nothing) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof Nothing) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof Just && y instanceof Just) {\n return compare(x.value0)(y.value0);\n };\n throw new Error(\"Failed pattern match at Data.Maybe (line 0, column 0 - line 0, column 0): \" + [ x.constructor.name, y.constructor.name ]);\n };\n },\n Eq0: function () {\n return eqMaybe1;\n }\n };\n};\nvar eq1Maybe = {\n eq1: function (dictEq) {\n return Data_Eq.eq(eqMaybe(dictEq));\n }\n};\nvar ord1Maybe = {\n compare1: function (dictOrd) {\n return Data_Ord.compare(ordMaybe(dictOrd));\n },\n Eq10: function () {\n return eq1Maybe;\n }\n};\nvar boundedMaybe = function (dictBounded) {\n var ordMaybe1 = ordMaybe(dictBounded.Ord0());\n return {\n top: new Just(Data_Bounded.top(dictBounded)),\n bottom: Nothing.value,\n Ord0: function () {\n return ordMaybe1;\n }\n };\n};\nvar applyMaybe = {\n apply: function (v) {\n return function (v1) {\n if (v instanceof Just) {\n return map(v.value0)(v1);\n };\n if (v instanceof Nothing) {\n return Nothing.value;\n };\n throw new Error(\"Failed pattern match at Data.Maybe (line 67, column 1 - line 69, column 30): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n },\n Functor0: function () {\n return functorMaybe;\n }\n};\nvar apply = /* #__PURE__ */ Control_Apply.apply(applyMaybe);\nvar bindMaybe = {\n bind: function (v) {\n return function (v1) {\n if (v instanceof Just) {\n return v1(v.value0);\n };\n if (v instanceof Nothing) {\n return Nothing.value;\n };\n throw new Error(\"Failed pattern match at Data.Maybe (line 125, column 1 - line 127, column 28): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n },\n Apply0: function () {\n return applyMaybe;\n }\n};\nvar semiringMaybe = function (dictSemiring) {\n var add = Data_Semiring.add(dictSemiring);\n var mul = Data_Semiring.mul(dictSemiring);\n return {\n zero: Nothing.value,\n one: new Just(Data_Semiring.one(dictSemiring)),\n add: function (v) {\n return function (v1) {\n if (v instanceof Nothing) {\n return v1;\n };\n if (v1 instanceof Nothing) {\n return v;\n };\n if (v instanceof Just && v1 instanceof Just) {\n return new Just(add(v.value0)(v1.value0));\n };\n throw new Error(\"Failed pattern match at Data.Maybe (line 190, column 1 - line 198, column 28): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n },\n mul: function (x) {\n return function (y) {\n return apply(map(mul)(x))(y);\n };\n }\n };\n};\nvar applicativeMaybe = /* #__PURE__ */ (function () {\n return {\n pure: Just.create,\n Apply0: function () {\n return applyMaybe;\n }\n };\n})();\nvar monadMaybe = {\n Applicative0: function () {\n return applicativeMaybe;\n },\n Bind1: function () {\n return bindMaybe;\n }\n};\nvar altMaybe = {\n alt: function (v) {\n return function (v1) {\n if (v instanceof Nothing) {\n return v1;\n };\n return v;\n };\n },\n Functor0: function () {\n return functorMaybe;\n }\n};\nvar plusMaybe = /* #__PURE__ */ (function () {\n return {\n empty: Nothing.value,\n Alt0: function () {\n return altMaybe;\n }\n };\n})();\nvar alternativeMaybe = {\n Applicative0: function () {\n return applicativeMaybe;\n },\n Plus1: function () {\n return plusMaybe;\n }\n};\nexport {\n Nothing,\n Just,\n maybe,\n maybe$prime,\n fromMaybe,\n fromMaybe$prime,\n isJust,\n isNothing,\n fromJust,\n optional,\n functorMaybe,\n applyMaybe,\n applicativeMaybe,\n altMaybe,\n plusMaybe,\n alternativeMaybe,\n bindMaybe,\n monadMaybe,\n extendMaybe,\n invariantMaybe,\n semigroupMaybe,\n monoidMaybe,\n semiringMaybe,\n eqMaybe,\n eq1Maybe,\n ordMaybe,\n ord1Maybe,\n boundedMaybe,\n showMaybe,\n genericMaybe\n};\n","// Generated by purs version 0.15.7\nimport * as Control_Alt from \"../Control.Alt/index.js\";\nimport * as Control_Apply from \"../Control.Apply/index.js\";\nimport * as Data_Bounded from \"../Data.Bounded/index.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Functor_Invariant from \"../Data.Functor.Invariant/index.js\";\nimport * as Data_Generic_Rep from \"../Data.Generic.Rep/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Data_Ordering from \"../Data.Ordering/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nimport * as Data_Show from \"../Data.Show/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nvar Left = /* #__PURE__ */ (function () {\n function Left(value0) {\n this.value0 = value0;\n };\n Left.create = function (value0) {\n return new Left(value0);\n };\n return Left;\n})();\nvar Right = /* #__PURE__ */ (function () {\n function Right(value0) {\n this.value0 = value0;\n };\n Right.create = function (value0) {\n return new Right(value0);\n };\n return Right;\n})();\nvar showEither = function (dictShow) {\n var show = Data_Show.show(dictShow);\n return function (dictShow1) {\n var show1 = Data_Show.show(dictShow1);\n return {\n show: function (v) {\n if (v instanceof Left) {\n return \"(Left \" + (show(v.value0) + \")\");\n };\n if (v instanceof Right) {\n return \"(Right \" + (show1(v.value0) + \")\");\n };\n throw new Error(\"Failed pattern match at Data.Either (line 173, column 1 - line 175, column 46): \" + [ v.constructor.name ]);\n }\n };\n };\n};\nvar note$prime = function (f) {\n return Data_Maybe[\"maybe$prime\"](function ($138) {\n return Left.create(f($138));\n })(Right.create);\n};\nvar note = function (a) {\n return Data_Maybe.maybe(new Left(a))(Right.create);\n};\nvar genericEither = {\n to: function (x) {\n if (x instanceof Data_Generic_Rep.Inl) {\n return new Left(x.value0);\n };\n if (x instanceof Data_Generic_Rep.Inr) {\n return new Right(x.value0);\n };\n throw new Error(\"Failed pattern match at Data.Either (line 33, column 1 - line 33, column 56): \" + [ x.constructor.name ]);\n },\n from: function (x) {\n if (x instanceof Left) {\n return new Data_Generic_Rep.Inl(x.value0);\n };\n if (x instanceof Right) {\n return new Data_Generic_Rep.Inr(x.value0);\n };\n throw new Error(\"Failed pattern match at Data.Either (line 33, column 1 - line 33, column 56): \" + [ x.constructor.name ]);\n }\n};\nvar functorEither = {\n map: function (f) {\n return function (m) {\n if (m instanceof Left) {\n return new Left(m.value0);\n };\n if (m instanceof Right) {\n return new Right(f(m.value0));\n };\n throw new Error(\"Failed pattern match at Data.Either (line 0, column 0 - line 0, column 0): \" + [ m.constructor.name ]);\n };\n }\n};\nvar map = /* #__PURE__ */ Data_Functor.map(functorEither);\nvar invariantEither = {\n imap: /* #__PURE__ */ Data_Functor_Invariant.imapF(functorEither)\n};\nvar fromRight$prime = function (v) {\n return function (v1) {\n if (v1 instanceof Right) {\n return v1.value0;\n };\n return v(Data_Unit.unit);\n };\n};\nvar fromRight = function (v) {\n return function (v1) {\n if (v1 instanceof Right) {\n return v1.value0;\n };\n return v;\n };\n};\nvar fromLeft$prime = function (v) {\n return function (v1) {\n if (v1 instanceof Left) {\n return v1.value0;\n };\n return v(Data_Unit.unit);\n };\n};\nvar fromLeft = function (v) {\n return function (v1) {\n if (v1 instanceof Left) {\n return v1.value0;\n };\n return v;\n };\n};\nvar extendEither = {\n extend: function (v) {\n return function (v1) {\n if (v1 instanceof Left) {\n return new Left(v1.value0);\n };\n return new Right(v(v1));\n };\n },\n Functor0: function () {\n return functorEither;\n }\n};\nvar eqEither = function (dictEq) {\n var eq = Data_Eq.eq(dictEq);\n return function (dictEq1) {\n var eq1 = Data_Eq.eq(dictEq1);\n return {\n eq: function (x) {\n return function (y) {\n if (x instanceof Left && y instanceof Left) {\n return eq(x.value0)(y.value0);\n };\n if (x instanceof Right && y instanceof Right) {\n return eq1(x.value0)(y.value0);\n };\n return false;\n };\n }\n };\n };\n};\nvar ordEither = function (dictOrd) {\n var compare = Data_Ord.compare(dictOrd);\n var eqEither1 = eqEither(dictOrd.Eq0());\n return function (dictOrd1) {\n var compare1 = Data_Ord.compare(dictOrd1);\n var eqEither2 = eqEither1(dictOrd1.Eq0());\n return {\n compare: function (x) {\n return function (y) {\n if (x instanceof Left && y instanceof Left) {\n return compare(x.value0)(y.value0);\n };\n if (x instanceof Left) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof Left) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof Right && y instanceof Right) {\n return compare1(x.value0)(y.value0);\n };\n throw new Error(\"Failed pattern match at Data.Either (line 0, column 0 - line 0, column 0): \" + [ x.constructor.name, y.constructor.name ]);\n };\n },\n Eq0: function () {\n return eqEither2;\n }\n };\n };\n};\nvar eq1Either = function (dictEq) {\n var eqEither1 = eqEither(dictEq);\n return {\n eq1: function (dictEq1) {\n return Data_Eq.eq(eqEither1(dictEq1));\n }\n };\n};\nvar ord1Either = function (dictOrd) {\n var ordEither1 = ordEither(dictOrd);\n var eq1Either1 = eq1Either(dictOrd.Eq0());\n return {\n compare1: function (dictOrd1) {\n return Data_Ord.compare(ordEither1(dictOrd1));\n },\n Eq10: function () {\n return eq1Either1;\n }\n };\n};\nvar either = function (v) {\n return function (v1) {\n return function (v2) {\n if (v2 instanceof Left) {\n return v(v2.value0);\n };\n if (v2 instanceof Right) {\n return v1(v2.value0);\n };\n throw new Error(\"Failed pattern match at Data.Either (line 208, column 1 - line 208, column 64): \" + [ v.constructor.name, v1.constructor.name, v2.constructor.name ]);\n };\n };\n};\nvar hush = /* #__PURE__ */ (function () {\n return either(Data_Function[\"const\"](Data_Maybe.Nothing.value))(Data_Maybe.Just.create);\n})();\nvar isLeft = /* #__PURE__ */ either(/* #__PURE__ */ Data_Function[\"const\"](true))(/* #__PURE__ */ Data_Function[\"const\"](false));\nvar isRight = /* #__PURE__ */ either(/* #__PURE__ */ Data_Function[\"const\"](false))(/* #__PURE__ */ Data_Function[\"const\"](true));\nvar choose = function (dictAlt) {\n var alt = Control_Alt.alt(dictAlt);\n var map1 = Data_Functor.map(dictAlt.Functor0());\n return function (a) {\n return function (b) {\n return alt(map1(Left.create)(a))(map1(Right.create)(b));\n };\n };\n};\nvar boundedEither = function (dictBounded) {\n var bottom = Data_Bounded.bottom(dictBounded);\n var ordEither1 = ordEither(dictBounded.Ord0());\n return function (dictBounded1) {\n var ordEither2 = ordEither1(dictBounded1.Ord0());\n return {\n top: new Right(Data_Bounded.top(dictBounded1)),\n bottom: new Left(bottom),\n Ord0: function () {\n return ordEither2;\n }\n };\n };\n};\nvar blush = /* #__PURE__ */ (function () {\n return either(Data_Maybe.Just.create)(Data_Function[\"const\"](Data_Maybe.Nothing.value));\n})();\nvar applyEither = {\n apply: function (v) {\n return function (v1) {\n if (v instanceof Left) {\n return new Left(v.value0);\n };\n if (v instanceof Right) {\n return map(v.value0)(v1);\n };\n throw new Error(\"Failed pattern match at Data.Either (line 70, column 1 - line 72, column 30): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n },\n Functor0: function () {\n return functorEither;\n }\n};\nvar apply = /* #__PURE__ */ Control_Apply.apply(applyEither);\nvar bindEither = {\n bind: /* #__PURE__ */ either(function (e) {\n return function (v) {\n return new Left(e);\n };\n })(function (a) {\n return function (f) {\n return f(a);\n };\n }),\n Apply0: function () {\n return applyEither;\n }\n};\nvar semigroupEither = function (dictSemigroup) {\n var append1 = Data_Semigroup.append(dictSemigroup);\n return {\n append: function (x) {\n return function (y) {\n return apply(map(append1)(x))(y);\n };\n }\n };\n};\nvar applicativeEither = /* #__PURE__ */ (function () {\n return {\n pure: Right.create,\n Apply0: function () {\n return applyEither;\n }\n };\n})();\nvar monadEither = {\n Applicative0: function () {\n return applicativeEither;\n },\n Bind1: function () {\n return bindEither;\n }\n};\nvar altEither = {\n alt: function (v) {\n return function (v1) {\n if (v instanceof Left) {\n return v1;\n };\n return v;\n };\n },\n Functor0: function () {\n return functorEither;\n }\n};\nexport {\n Left,\n Right,\n either,\n choose,\n isLeft,\n isRight,\n fromLeft,\n fromLeft$prime,\n fromRight,\n fromRight$prime,\n note,\n note$prime,\n hush,\n blush,\n functorEither,\n genericEither,\n invariantEither,\n applyEither,\n applicativeEither,\n altEither,\n bindEither,\n monadEither,\n extendEither,\n showEither,\n eqEither,\n eq1Either,\n ordEither,\n ord1Either,\n boundedEither,\n semigroupEither\n};\n","// Generated by purs version 0.15.7\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Functor_Invariant from \"../Data.Functor.Invariant/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Data_Show from \"../Data.Show/index.js\";\nvar Identity = function (x) {\n return x;\n};\nvar showIdentity = function (dictShow) {\n var show = Data_Show.show(dictShow);\n return {\n show: function (v) {\n return \"(Identity \" + (show(v) + \")\");\n }\n };\n};\nvar semiringIdentity = function (dictSemiring) {\n return dictSemiring;\n};\nvar semigroupIdentity = function (dictSemigroup) {\n return dictSemigroup;\n};\nvar ringIdentity = function (dictRing) {\n return dictRing;\n};\nvar ordIdentity = function (dictOrd) {\n return dictOrd;\n};\nvar newtypeIdentity = {\n Coercible0: function () {\n return undefined;\n }\n};\nvar monoidIdentity = function (dictMonoid) {\n return dictMonoid;\n};\nvar lazyIdentity = function (dictLazy) {\n return dictLazy;\n};\nvar heytingAlgebraIdentity = function (dictHeytingAlgebra) {\n return dictHeytingAlgebra;\n};\nvar functorIdentity = {\n map: function (f) {\n return function (m) {\n return f(m);\n };\n }\n};\nvar invariantIdentity = {\n imap: /* #__PURE__ */ Data_Functor_Invariant.imapF(functorIdentity)\n};\nvar extendIdentity = {\n extend: function (f) {\n return function (m) {\n return f(m);\n };\n },\n Functor0: function () {\n return functorIdentity;\n }\n};\nvar euclideanRingIdentity = function (dictEuclideanRing) {\n return dictEuclideanRing;\n};\nvar eqIdentity = function (dictEq) {\n return dictEq;\n};\nvar eq1Identity = {\n eq1: function (dictEq) {\n return Data_Eq.eq(eqIdentity(dictEq));\n }\n};\nvar ord1Identity = {\n compare1: function (dictOrd) {\n return Data_Ord.compare(ordIdentity(dictOrd));\n },\n Eq10: function () {\n return eq1Identity;\n }\n};\nvar comonadIdentity = {\n extract: function (v) {\n return v;\n },\n Extend0: function () {\n return extendIdentity;\n }\n};\nvar commutativeRingIdentity = function (dictCommutativeRing) {\n return dictCommutativeRing;\n};\nvar boundedIdentity = function (dictBounded) {\n return dictBounded;\n};\nvar booleanAlgebraIdentity = function (dictBooleanAlgebra) {\n return dictBooleanAlgebra;\n};\nvar applyIdentity = {\n apply: function (v) {\n return function (v1) {\n return v(v1);\n };\n },\n Functor0: function () {\n return functorIdentity;\n }\n};\nvar bindIdentity = {\n bind: function (v) {\n return function (f) {\n return f(v);\n };\n },\n Apply0: function () {\n return applyIdentity;\n }\n};\nvar applicativeIdentity = {\n pure: Identity,\n Apply0: function () {\n return applyIdentity;\n }\n};\nvar monadIdentity = {\n Applicative0: function () {\n return applicativeIdentity;\n },\n Bind1: function () {\n return bindIdentity;\n }\n};\nvar altIdentity = {\n alt: function (x) {\n return function (v) {\n return x;\n };\n },\n Functor0: function () {\n return functorIdentity;\n }\n};\nexport {\n Identity,\n newtypeIdentity,\n eqIdentity,\n ordIdentity,\n boundedIdentity,\n heytingAlgebraIdentity,\n booleanAlgebraIdentity,\n semigroupIdentity,\n monoidIdentity,\n semiringIdentity,\n euclideanRingIdentity,\n ringIdentity,\n commutativeRingIdentity,\n lazyIdentity,\n showIdentity,\n eq1Identity,\n ord1Identity,\n functorIdentity,\n invariantIdentity,\n altIdentity,\n applyIdentity,\n applicativeIdentity,\n bindIdentity,\n monadIdentity,\n extendIdentity,\n comonadIdentity\n};\n","// Generated by purs version 0.15.7\nimport * as Data_Ring from \"../Data.Ring/index.js\";\nimport * as Data_Semiring from \"../Data.Semiring/index.js\";\nvar ringRecord = /* #__PURE__ */ Data_Ring.ringRecord();\nvar commutativeRingUnit = {\n Ring0: function () {\n return Data_Ring.ringUnit;\n }\n};\nvar commutativeRingRecordNil = {\n RingRecord0: function () {\n return Data_Ring.ringRecordNil;\n }\n};\nvar commutativeRingRecordCons = function (dictIsSymbol) {\n var ringRecordCons = Data_Ring.ringRecordCons(dictIsSymbol)();\n return function () {\n return function (dictCommutativeRingRecord) {\n var ringRecordCons1 = ringRecordCons(dictCommutativeRingRecord.RingRecord0());\n return function (dictCommutativeRing) {\n var ringRecordCons2 = ringRecordCons1(dictCommutativeRing.Ring0());\n return {\n RingRecord0: function () {\n return ringRecordCons2;\n }\n };\n };\n };\n };\n};\nvar commutativeRingRecord = function () {\n return function (dictCommutativeRingRecord) {\n var ringRecord1 = ringRecord(dictCommutativeRingRecord.RingRecord0());\n return {\n Ring0: function () {\n return ringRecord1;\n }\n };\n };\n};\nvar commutativeRingProxy = {\n Ring0: function () {\n return Data_Ring.ringProxy;\n }\n};\nvar commutativeRingNumber = {\n Ring0: function () {\n return Data_Ring.ringNumber;\n }\n};\nvar commutativeRingInt = {\n Ring0: function () {\n return Data_Ring.ringInt;\n }\n};\nvar commutativeRingFn = function (dictCommutativeRing) {\n var ringFn = Data_Ring.ringFn(dictCommutativeRing.Ring0());\n return {\n Ring0: function () {\n return ringFn;\n }\n };\n};\nexport {\n commutativeRingInt,\n commutativeRingNumber,\n commutativeRingUnit,\n commutativeRingFn,\n commutativeRingRecord,\n commutativeRingProxy,\n commutativeRingRecordNil,\n commutativeRingRecordCons\n};\nexport {\n add,\n mul,\n one,\n zero\n} from \"../Data.Semiring/index.js\";\n","// Generated by purs version 0.15.7\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_CommutativeRing from \"../Data.CommutativeRing/index.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Ring from \"../Data.Ring/index.js\";\nimport * as Data_Semiring from \"../Data.Semiring/index.js\";\nvar mod = function (dict) {\n return dict.mod;\n};\nvar gcd = function (dictEq) {\n var eq = Data_Eq.eq(dictEq);\n return function (dictEuclideanRing) {\n var zero = Data_Semiring.zero(((dictEuclideanRing.CommutativeRing0()).Ring0()).Semiring0());\n var mod1 = mod(dictEuclideanRing);\n return function (a) {\n return function (b) {\n var $24 = eq(b)(zero);\n if ($24) {\n return a;\n };\n return gcd(dictEq)(dictEuclideanRing)(b)(mod1(a)(b));\n };\n };\n };\n};\nvar euclideanRingNumber = {\n degree: function (v) {\n return 1;\n },\n div: $foreign.numDiv,\n mod: function (v) {\n return function (v1) {\n return 0.0;\n };\n },\n CommutativeRing0: function () {\n return Data_CommutativeRing.commutativeRingNumber;\n }\n};\nvar euclideanRingInt = {\n degree: $foreign.intDegree,\n div: $foreign.intDiv,\n mod: $foreign.intMod,\n CommutativeRing0: function () {\n return Data_CommutativeRing.commutativeRingInt;\n }\n};\nvar div = function (dict) {\n return dict.div;\n};\nvar lcm = function (dictEq) {\n var eq = Data_Eq.eq(dictEq);\n var gcd1 = gcd(dictEq);\n return function (dictEuclideanRing) {\n var Semiring0 = ((dictEuclideanRing.CommutativeRing0()).Ring0()).Semiring0();\n var zero = Data_Semiring.zero(Semiring0);\n var div1 = div(dictEuclideanRing);\n var mul = Data_Semiring.mul(Semiring0);\n var gcd2 = gcd1(dictEuclideanRing);\n return function (a) {\n return function (b) {\n var $26 = eq(a)(zero) || eq(b)(zero);\n if ($26) {\n return zero;\n };\n return div1(mul(a)(b))(gcd2(a)(b));\n };\n };\n };\n};\nvar degree = function (dict) {\n return dict.degree;\n};\nexport {\n degree,\n div,\n mod,\n gcd,\n lcm,\n euclideanRingInt,\n euclideanRingNumber\n};\nexport {\n sub\n} from \"../Data.Ring/index.js\";\nexport {\n add,\n mul,\n one,\n zero\n} from \"../Data.Semiring/index.js\";\n","export const intDegree = function (x) {\n return Math.min(Math.abs(x), 2147483647);\n};\n\n// See the Euclidean definition in\n// https://en.m.wikipedia.org/wiki/Modulo_operation.\nexport const intDiv = function (x) {\n return function (y) {\n if (y === 0) return 0;\n return y > 0 ? Math.floor(x / y) : -Math.floor(x / -y);\n };\n};\n\nexport const intMod = function (x) {\n return function (y) {\n if (y === 0) return 0;\n var yy = Math.abs(y);\n return ((x % yy) + yy) % yy;\n };\n};\n\nexport const numDiv = function (n1) {\n return function (n2) {\n return n1 / n2;\n };\n};\n","// Generated by purs version 0.15.7\nimport * as Data_Boolean from \"../Data.Boolean/index.js\";\nimport * as Data_EuclideanRing from \"../Data.EuclideanRing/index.js\";\nimport * as Data_Ordering from \"../Data.Ordering/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nimport * as Data_Symbol from \"../Data.Symbol/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nimport * as Record_Unsafe from \"../Record.Unsafe/index.js\";\nimport * as Type_Proxy from \"../Type.Proxy/index.js\";\nvar semigroupRecord = /* #__PURE__ */ Data_Semigroup.semigroupRecord();\nvar mod = /* #__PURE__ */ Data_EuclideanRing.mod(Data_EuclideanRing.euclideanRingInt);\nvar div = /* #__PURE__ */ Data_EuclideanRing.div(Data_EuclideanRing.euclideanRingInt);\nvar monoidUnit = {\n mempty: Data_Unit.unit,\n Semigroup0: function () {\n return Data_Semigroup.semigroupUnit;\n }\n};\nvar monoidString = {\n mempty: \"\",\n Semigroup0: function () {\n return Data_Semigroup.semigroupString;\n }\n};\nvar monoidRecordNil = {\n memptyRecord: function (v) {\n return {};\n },\n SemigroupRecord0: function () {\n return Data_Semigroup.semigroupRecordNil;\n }\n};\nvar monoidOrdering = /* #__PURE__ */ (function () {\n return {\n mempty: Data_Ordering.EQ.value,\n Semigroup0: function () {\n return Data_Ordering.semigroupOrdering;\n }\n };\n})();\nvar monoidArray = {\n mempty: [ ],\n Semigroup0: function () {\n return Data_Semigroup.semigroupArray;\n }\n};\nvar memptyRecord = function (dict) {\n return dict.memptyRecord;\n};\nvar monoidRecord = function () {\n return function (dictMonoidRecord) {\n var semigroupRecord1 = semigroupRecord(dictMonoidRecord.SemigroupRecord0());\n return {\n mempty: memptyRecord(dictMonoidRecord)(Type_Proxy[\"Proxy\"].value),\n Semigroup0: function () {\n return semigroupRecord1;\n }\n };\n };\n};\nvar mempty = function (dict) {\n return dict.mempty;\n};\nvar monoidFn = function (dictMonoid) {\n var mempty1 = mempty(dictMonoid);\n var semigroupFn = Data_Semigroup.semigroupFn(dictMonoid.Semigroup0());\n return {\n mempty: function (v) {\n return mempty1;\n },\n Semigroup0: function () {\n return semigroupFn;\n }\n };\n};\nvar monoidRecordCons = function (dictIsSymbol) {\n var reflectSymbol = Data_Symbol.reflectSymbol(dictIsSymbol);\n var semigroupRecordCons = Data_Semigroup.semigroupRecordCons(dictIsSymbol)();\n return function (dictMonoid) {\n var mempty1 = mempty(dictMonoid);\n var Semigroup0 = dictMonoid.Semigroup0();\n return function () {\n return function (dictMonoidRecord) {\n var memptyRecord1 = memptyRecord(dictMonoidRecord);\n var semigroupRecordCons1 = semigroupRecordCons(dictMonoidRecord.SemigroupRecord0())(Semigroup0);\n return {\n memptyRecord: function (v) {\n var tail = memptyRecord1(Type_Proxy[\"Proxy\"].value);\n var key = reflectSymbol(Type_Proxy[\"Proxy\"].value);\n var insert = Record_Unsafe.unsafeSet(key);\n return insert(mempty1)(tail);\n },\n SemigroupRecord0: function () {\n return semigroupRecordCons1;\n }\n };\n };\n };\n };\n};\nvar power = function (dictMonoid) {\n var mempty1 = mempty(dictMonoid);\n var append = Data_Semigroup.append(dictMonoid.Semigroup0());\n return function (x) {\n var go = function (p) {\n if (p <= 0) {\n return mempty1;\n };\n if (p === 1) {\n return x;\n };\n if (mod(p)(2) === 0) {\n var x$prime = go(div(p)(2));\n return append(x$prime)(x$prime);\n };\n if (Data_Boolean.otherwise) {\n var x$prime = go(div(p)(2));\n return append(x$prime)(append(x$prime)(x));\n };\n throw new Error(\"Failed pattern match at Data.Monoid (line 88, column 3 - line 88, column 17): \" + [ p.constructor.name ]);\n };\n return go;\n };\n};\nvar guard = function (dictMonoid) {\n var mempty1 = mempty(dictMonoid);\n return function (v) {\n return function (v1) {\n if (v) {\n return v1;\n };\n if (!v) {\n return mempty1;\n };\n throw new Error(\"Failed pattern match at Data.Monoid (line 96, column 1 - line 96, column 49): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n };\n};\nexport {\n mempty,\n power,\n guard,\n memptyRecord,\n monoidUnit,\n monoidOrdering,\n monoidFn,\n monoidString,\n monoidArray,\n monoidRecord,\n monoidRecordNil,\n monoidRecordCons\n};\n","export const pureE = function (a) {\n return function () {\n return a;\n };\n};\n\nexport const bindE = function (a) {\n return function (f) {\n return function () {\n return f(a())();\n };\n };\n};\n\nexport const untilE = function (f) {\n return function () {\n while (!f());\n };\n};\n\nexport const whileE = function (f) {\n return function (a) {\n return function () {\n while (f()) {\n a();\n }\n };\n };\n};\n\nexport const forE = function (lo) {\n return function (hi) {\n return function (f) {\n return function () {\n for (var i = lo; i < hi; i++) {\n f(i)();\n }\n };\n };\n };\n};\n\nexport const foreachE = function (as) {\n return function (f) {\n return function () {\n for (var i = 0, l = as.length; i < l; i++) {\n f(as[i])();\n }\n };\n };\n};\n","// Generated by purs version 0.15.7\nimport * as $foreign from \"./foreign.js\";\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Apply from \"../Control.Apply/index.js\";\nimport * as Control_Monad from \"../Control.Monad/index.js\";\nimport * as Data_Monoid from \"../Data.Monoid/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nvar $runtime_lazy = function (name, moduleName, init) {\n var state = 0;\n var val;\n return function (lineNumber) {\n if (state === 2) return val;\n if (state === 1) throw new ReferenceError(name + \" was needed before it finished initializing (module \" + moduleName + \", line \" + lineNumber + \")\", moduleName, lineNumber);\n state = 1;\n val = init();\n state = 2;\n return val;\n };\n};\nvar monadEffect = {\n Applicative0: function () {\n return applicativeEffect;\n },\n Bind1: function () {\n return bindEffect;\n }\n};\nvar bindEffect = {\n bind: $foreign.bindE,\n Apply0: function () {\n return $lazy_applyEffect(0);\n }\n};\nvar applicativeEffect = {\n pure: $foreign.pureE,\n Apply0: function () {\n return $lazy_applyEffect(0);\n }\n};\nvar $lazy_functorEffect = /* #__PURE__ */ $runtime_lazy(\"functorEffect\", \"Effect\", function () {\n return {\n map: Control_Applicative.liftA1(applicativeEffect)\n };\n});\nvar $lazy_applyEffect = /* #__PURE__ */ $runtime_lazy(\"applyEffect\", \"Effect\", function () {\n return {\n apply: Control_Monad.ap(monadEffect),\n Functor0: function () {\n return $lazy_functorEffect(0);\n }\n };\n});\nvar functorEffect = /* #__PURE__ */ $lazy_functorEffect(20);\nvar applyEffect = /* #__PURE__ */ $lazy_applyEffect(23);\nvar lift2 = /* #__PURE__ */ Control_Apply.lift2(applyEffect);\nvar semigroupEffect = function (dictSemigroup) {\n return {\n append: lift2(Data_Semigroup.append(dictSemigroup))\n };\n};\nvar monoidEffect = function (dictMonoid) {\n var semigroupEffect1 = semigroupEffect(dictMonoid.Semigroup0());\n return {\n mempty: $foreign.pureE(Data_Monoid.mempty(dictMonoid)),\n Semigroup0: function () {\n return semigroupEffect1;\n }\n };\n};\nexport {\n untilE,\n whileE,\n forE,\n foreachE\n} from \"./foreign.js\";\nexport {\n functorEffect,\n applyEffect,\n applicativeEffect,\n bindEffect,\n monadEffect,\n semigroupEffect,\n monoidEffect\n};\n","export const _new = function (val) {\n return function () {\n return { value: val };\n };\n};\n\nexport const newWithSelf = function (f) {\n return function () {\n var ref = { value: null };\n ref.value = f(ref);\n return ref;\n };\n};\n\nexport const read = function (ref) {\n return function () {\n return ref.value;\n };\n};\n\nexport const modifyImpl = function (f) {\n return function (ref) {\n return function () {\n var t = f(ref.value);\n ref.value = t.state;\n return t.value;\n };\n };\n};\n\nexport const write = function (val) {\n return function (ref) {\n return function () {\n ref.value = val;\n };\n };\n};\n","// Generated by purs version 0.15.7\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Effect from \"../Effect/index.js\";\nvar $$void = /* #__PURE__ */ Data_Functor[\"void\"](Effect.functorEffect);\nvar $$new = $foreign[\"_new\"];\nvar modify$prime = $foreign.modifyImpl;\nvar modify = function (f) {\n return modify$prime(function (s) {\n var s$prime = f(s);\n return {\n state: s$prime,\n value: s$prime\n };\n });\n};\nvar modify_ = function (f) {\n return function (s) {\n return $$void(modify(f)(s));\n };\n};\nexport {\n newWithSelf,\n read,\n write\n} from \"./foreign.js\";\nexport {\n $$new as new,\n modify$prime,\n modify,\n modify_\n};\n","// Generated by purs version 0.15.7\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Control_Monad from \"../Control.Monad/index.js\";\nimport * as Data_Either from \"../Data.Either/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Identity from \"../Data.Identity/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Monoid from \"../Data.Monoid/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nimport * as Effect from \"../Effect/index.js\";\nimport * as Effect_Ref from \"../Effect.Ref/index.js\";\nvar bindFlipped = /* #__PURE__ */ Control_Bind.bindFlipped(Effect.bindEffect);\nvar map = /* #__PURE__ */ Data_Functor.map(Effect.functorEffect);\nvar Loop = /* #__PURE__ */ (function () {\n function Loop(value0) {\n this.value0 = value0;\n };\n Loop.create = function (value0) {\n return new Loop(value0);\n };\n return Loop;\n})();\nvar Done = /* #__PURE__ */ (function () {\n function Done(value0) {\n this.value0 = value0;\n };\n Done.create = function (value0) {\n return new Done(value0);\n };\n return Done;\n})();\nvar tailRecM = function (dict) {\n return dict.tailRecM;\n};\nvar tailRecM2 = function (dictMonadRec) {\n var tailRecM1 = tailRecM(dictMonadRec);\n return function (f) {\n return function (a) {\n return function (b) {\n return tailRecM1(function (o) {\n return f(o.a)(o.b);\n })({\n a: a,\n b: b\n });\n };\n };\n };\n};\nvar tailRecM3 = function (dictMonadRec) {\n var tailRecM1 = tailRecM(dictMonadRec);\n return function (f) {\n return function (a) {\n return function (b) {\n return function (c) {\n return tailRecM1(function (o) {\n return f(o.a)(o.b)(o.c);\n })({\n a: a,\n b: b,\n c: c\n });\n };\n };\n };\n };\n};\nvar untilJust = function (dictMonadRec) {\n var tailRecM1 = tailRecM(dictMonadRec);\n var mapFlipped = Data_Functor.mapFlipped((((dictMonadRec.Monad0()).Bind1()).Apply0()).Functor0());\n return function (m) {\n return tailRecM1(function (v) {\n return mapFlipped(m)(function (v1) {\n if (v1 instanceof Data_Maybe.Nothing) {\n return new Loop(Data_Unit.unit);\n };\n if (v1 instanceof Data_Maybe.Just) {\n return new Done(v1.value0);\n };\n throw new Error(\"Failed pattern match at Control.Monad.Rec.Class (line 155, column 43 - line 157, column 19): \" + [ v1.constructor.name ]);\n });\n })(Data_Unit.unit);\n };\n};\nvar whileJust = function (dictMonoid) {\n var append = Data_Semigroup.append(dictMonoid.Semigroup0());\n var mempty = Data_Monoid.mempty(dictMonoid);\n return function (dictMonadRec) {\n var tailRecM1 = tailRecM(dictMonadRec);\n var mapFlipped = Data_Functor.mapFlipped((((dictMonadRec.Monad0()).Bind1()).Apply0()).Functor0());\n return function (m) {\n return tailRecM1(function (v) {\n return mapFlipped(m)(function (v1) {\n if (v1 instanceof Data_Maybe.Nothing) {\n return new Done(v);\n };\n if (v1 instanceof Data_Maybe.Just) {\n return new Loop(append(v)(v1.value0));\n };\n throw new Error(\"Failed pattern match at Control.Monad.Rec.Class (line 148, column 45 - line 150, column 26): \" + [ v1.constructor.name ]);\n });\n })(mempty);\n };\n };\n};\nvar tailRec = function (f) {\n var go = function ($copy_v) {\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(v) {\n if (v instanceof Loop) {\n $copy_v = f(v.value0);\n return;\n };\n if (v instanceof Done) {\n $tco_done = true;\n return v.value0;\n };\n throw new Error(\"Failed pattern match at Control.Monad.Rec.Class (line 93, column 3 - line 93, column 25): \" + [ v.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($copy_v);\n };\n return $tco_result;\n };\n return function ($85) {\n return go(f($85));\n };\n};\nvar monadRecMaybe = {\n tailRecM: function (f) {\n return function (a0) {\n var g = function (v) {\n if (v instanceof Data_Maybe.Nothing) {\n return new Done(Data_Maybe.Nothing.value);\n };\n if (v instanceof Data_Maybe.Just && v.value0 instanceof Loop) {\n return new Loop(f(v.value0.value0));\n };\n if (v instanceof Data_Maybe.Just && v.value0 instanceof Done) {\n return new Done(new Data_Maybe.Just(v.value0.value0));\n };\n throw new Error(\"Failed pattern match at Control.Monad.Rec.Class (line 129, column 7 - line 129, column 31): \" + [ v.constructor.name ]);\n };\n return tailRec(g)(f(a0));\n };\n },\n Monad0: function () {\n return Data_Maybe.monadMaybe;\n }\n};\nvar monadRecIdentity = {\n tailRecM: function (f) {\n var runIdentity = function (v) {\n return v;\n };\n var $86 = tailRec(function ($88) {\n return runIdentity(f($88));\n });\n return function ($87) {\n return Data_Identity.Identity($86($87));\n };\n },\n Monad0: function () {\n return Data_Identity.monadIdentity;\n }\n};\nvar monadRecFunction = {\n tailRecM: function (f) {\n return function (a0) {\n return function (e) {\n return tailRec(function (a) {\n return f(a)(e);\n })(a0);\n };\n };\n },\n Monad0: function () {\n return Control_Monad.monadFn;\n }\n};\nvar monadRecEither = {\n tailRecM: function (f) {\n return function (a0) {\n var g = function (v) {\n if (v instanceof Data_Either.Left) {\n return new Done(new Data_Either.Left(v.value0));\n };\n if (v instanceof Data_Either.Right && v.value0 instanceof Loop) {\n return new Loop(f(v.value0.value0));\n };\n if (v instanceof Data_Either.Right && v.value0 instanceof Done) {\n return new Done(new Data_Either.Right(v.value0.value0));\n };\n throw new Error(\"Failed pattern match at Control.Monad.Rec.Class (line 121, column 7 - line 121, column 33): \" + [ v.constructor.name ]);\n };\n return tailRec(g)(f(a0));\n };\n },\n Monad0: function () {\n return Data_Either.monadEither;\n }\n};\nvar monadRecEffect = {\n tailRecM: function (f) {\n return function (a) {\n var fromDone = function (v) {\n if (v instanceof Done) {\n return v.value0;\n };\n throw new Error(\"Failed pattern match at Control.Monad.Rec.Class (line 113, column 30 - line 113, column 44): \" + [ v.constructor.name ]);\n };\n return function __do() {\n var r = bindFlipped(Effect_Ref[\"new\"])(f(a))();\n (function () {\n while (!(function __do() {\n var v = Effect_Ref.read(r)();\n if (v instanceof Loop) {\n var e = f(v.value0)();\n Effect_Ref.write(e)(r)();\n return false;\n };\n if (v instanceof Done) {\n return true;\n };\n throw new Error(\"Failed pattern match at Control.Monad.Rec.Class (line 104, column 22 - line 109, column 28): \" + [ v.constructor.name ]);\n })()) {\n\n };\n return {};\n })();\n return map(fromDone)(Effect_Ref.read(r))();\n };\n };\n },\n Monad0: function () {\n return Effect.monadEffect;\n }\n};\nvar functorStep = {\n map: function (f) {\n return function (m) {\n if (m instanceof Loop) {\n return new Loop(m.value0);\n };\n if (m instanceof Done) {\n return new Done(f(m.value0));\n };\n throw new Error(\"Failed pattern match at Control.Monad.Rec.Class (line 0, column 0 - line 0, column 0): \" + [ m.constructor.name ]);\n };\n }\n};\nvar forever = function (dictMonadRec) {\n var tailRecM1 = tailRecM(dictMonadRec);\n var voidRight = Data_Functor.voidRight((((dictMonadRec.Monad0()).Bind1()).Apply0()).Functor0());\n return function (ma) {\n return tailRecM1(function (u) {\n return voidRight(new Loop(u))(ma);\n })(Data_Unit.unit);\n };\n};\nvar bifunctorStep = {\n bimap: function (v) {\n return function (v1) {\n return function (v2) {\n if (v2 instanceof Loop) {\n return new Loop(v(v2.value0));\n };\n if (v2 instanceof Done) {\n return new Done(v1(v2.value0));\n };\n throw new Error(\"Failed pattern match at Control.Monad.Rec.Class (line 29, column 1 - line 31, column 34): \" + [ v.constructor.name, v1.constructor.name, v2.constructor.name ]);\n };\n };\n }\n};\nexport {\n Loop,\n Done,\n tailRec,\n tailRecM,\n tailRecM2,\n tailRecM3,\n forever,\n whileJust,\n untilJust,\n functorStep,\n bifunctorStep,\n monadRecIdentity,\n monadRecEffect,\n monadRecFunction,\n monadRecEither,\n monadRecMaybe\n};\n","export const map_ = function (f) {\n return function (a) {\n return function () {\n return f(a());\n };\n };\n};\n\nexport const pure_ = function (a) {\n return function () {\n return a;\n };\n};\n\nexport const bind_ = function (a) {\n return function (f) {\n return function () {\n return f(a())();\n };\n };\n};\n\nexport const run = function (f) {\n return f();\n};\n\nfunction whileST(f) {\n return function (a) {\n return function () {\n while (f()) {\n a();\n }\n };\n };\n}\nexport { whileST as while };\n\nfunction forST(lo) {\n return function (hi) {\n return function (f) {\n return function () {\n for (var i = lo; i < hi; i++) {\n f(i)();\n }\n };\n };\n };\n}\nexport { forST as for };\n\nexport const foreach = function (as) {\n return function (f) {\n return function () {\n for (var i = 0, l = as.length; i < l; i++) {\n f(as[i])();\n }\n };\n };\n};\n\nfunction newSTRef(val) {\n return function () {\n return { value: val };\n };\n}\nexport { newSTRef as new };\n\nexport const read = function (ref) {\n return function () {\n return ref.value;\n };\n};\n\nexport const modifyImpl = function (f) {\n return function (ref) {\n return function () {\n var t = f(ref.value);\n ref.value = t.state;\n return t.value;\n };\n };\n};\n\nexport const write = function (a) {\n return function (ref) {\n return function () {\n return ref.value = a; // eslint-disable-line no-return-assign\n };\n };\n};\n","// Generated by purs version 0.15.7\nimport * as $foreign from \"./foreign.js\";\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Control_Monad from \"../Control.Monad/index.js\";\nimport * as Control_Monad_Rec_Class from \"../Control.Monad.Rec.Class/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nvar $runtime_lazy = function (name, moduleName, init) {\n var state = 0;\n var val;\n return function (lineNumber) {\n if (state === 2) return val;\n if (state === 1) throw new ReferenceError(name + \" was needed before it finished initializing (module \" + moduleName + \", line \" + lineNumber + \")\", moduleName, lineNumber);\n state = 1;\n val = init();\n state = 2;\n return val;\n };\n};\nvar modify$prime = $foreign.modifyImpl;\nvar modify = function (f) {\n return modify$prime(function (s) {\n var s$prime = f(s);\n return {\n state: s$prime,\n value: s$prime\n };\n });\n};\nvar functorST = {\n map: $foreign.map_\n};\nvar map = /* #__PURE__ */ Data_Functor.map(functorST);\nvar $$void = /* #__PURE__ */ Data_Functor[\"void\"](functorST);\nvar monadST = {\n Applicative0: function () {\n return applicativeST;\n },\n Bind1: function () {\n return bindST;\n }\n};\nvar bindST = {\n bind: $foreign.bind_,\n Apply0: function () {\n return $lazy_applyST(0);\n }\n};\nvar applicativeST = {\n pure: $foreign.pure_,\n Apply0: function () {\n return $lazy_applyST(0);\n }\n};\nvar $lazy_applyST = /* #__PURE__ */ $runtime_lazy(\"applyST\", \"Control.Monad.ST.Internal\", function () {\n return {\n apply: Control_Monad.ap(monadST),\n Functor0: function () {\n return functorST;\n }\n };\n});\nvar applyST = /* #__PURE__ */ $lazy_applyST(46);\nvar bind = /* #__PURE__ */ Control_Bind.bind(bindST);\nvar bindFlipped = /* #__PURE__ */ Control_Bind.bindFlipped(bindST);\nvar discard = /* #__PURE__ */ Control_Bind.discard(Control_Bind.discardUnit)(bindST);\nvar pure = /* #__PURE__ */ Control_Applicative.pure(applicativeST);\nvar monadRecST = {\n tailRecM: function (f) {\n return function (a) {\n var isLooping = function (v) {\n if (v instanceof Control_Monad_Rec_Class.Loop) {\n return true;\n };\n return false;\n };\n var fromDone = function (v) {\n if (v instanceof Control_Monad_Rec_Class.Done) {\n return v.value0;\n };\n throw new Error(\"Failed pattern match at Control.Monad.ST.Internal (line 69, column 32 - line 69, column 46): \" + [ v.constructor.name ]);\n };\n return bind(bindFlipped($foreign[\"new\"])(f(a)))(function (r) {\n return discard($foreign[\"while\"](map(isLooping)($foreign.read(r)))(bind($foreign.read(r))(function (v) {\n if (v instanceof Control_Monad_Rec_Class.Loop) {\n return bind(f(v.value0))(function (e) {\n return $$void($foreign.write(e)(r));\n });\n };\n if (v instanceof Control_Monad_Rec_Class.Done) {\n return pure(Data_Unit.unit);\n };\n throw new Error(\"Failed pattern match at Control.Monad.ST.Internal (line 61, column 18 - line 65, column 28): \" + [ v.constructor.name ]);\n })))(function () {\n return map(fromDone)($foreign.read(r));\n });\n });\n };\n },\n Monad0: function () {\n return monadST;\n }\n};\nexport {\n run,\n while,\n for,\n foreach,\n new,\n read,\n write\n} from \"./foreign.js\";\nexport {\n modify$prime,\n modify,\n functorST,\n applyST,\n applicativeST,\n bindST,\n monadST,\n monadRecST\n};\n","function newSTArray () {\n return [];\n}\nexport { newSTArray as new };\n\nexport const peekImpl = function (just) {\n return function (nothing) {\n return function (i) {\n return function (xs) {\n return function () {\n return i >= 0 && i < xs.length ? just(xs[i]) : nothing;\n };\n };\n };\n };\n};\n\nexport const poke = function (i) {\n return function (a) {\n return function (xs) {\n return function () {\n var ret = i >= 0 && i < xs.length;\n if (ret) xs[i] = a;\n return ret;\n };\n };\n };\n};\n\nexport const popImpl = function (just) {\n return function (nothing) {\n return function (xs) {\n return function () {\n return xs.length > 0 ? just(xs.pop()) : nothing;\n };\n };\n };\n};\n\nexport const pushAll = function (as) {\n return function (xs) {\n return function () {\n return xs.push.apply(xs, as);\n };\n };\n};\n\nexport const shiftImpl = function (just) {\n return function (nothing) {\n return function (xs) {\n return function () {\n return xs.length > 0 ? just(xs.shift()) : nothing;\n };\n };\n };\n};\n\nexport const unshiftAll = function (as) {\n return function (xs) {\n return function () {\n return xs.unshift.apply(xs, as);\n };\n };\n};\n\nexport const splice = function (i) {\n return function (howMany) {\n return function (bs) {\n return function (xs) {\n return function () {\n return xs.splice.apply(xs, [i, howMany].concat(bs));\n };\n };\n };\n };\n};\n\nexport const unsafeFreeze = function (xs) {\n return function () {\n return xs;\n };\n};\n\nexport const unsafeThaw = function (xs) {\n return function () {\n return xs;\n };\n};\n\nfunction copyImpl(xs) {\n return function () {\n return xs.slice();\n };\n}\n\nexport const freeze = copyImpl;\n\nexport const thaw = copyImpl;\n\nexport const sortByImpl = (function () {\n function mergeFromTo(compare, fromOrdering, xs1, xs2, from, to) {\n var mid;\n var i;\n var j;\n var k;\n var x;\n var y;\n var c;\n\n mid = from + ((to - from) >> 1);\n if (mid - from > 1) mergeFromTo(compare, fromOrdering, xs2, xs1, from, mid);\n if (to - mid > 1) mergeFromTo(compare, fromOrdering, xs2, xs1, mid, to);\n\n i = from;\n j = mid;\n k = from;\n while (i < mid && j < to) {\n x = xs2[i];\n y = xs2[j];\n c = fromOrdering(compare(x)(y));\n if (c > 0) {\n xs1[k++] = y;\n ++j;\n }\n else {\n xs1[k++] = x;\n ++i;\n }\n }\n while (i < mid) {\n xs1[k++] = xs2[i++];\n }\n while (j < to) {\n xs1[k++] = xs2[j++];\n }\n }\n\n return function (compare) {\n return function (fromOrdering) {\n return function (xs) {\n return function () {\n if (xs.length < 2) return xs;\n\n mergeFromTo(compare, fromOrdering, xs, xs.slice(0), 0, xs.length);\n\n return xs;\n };\n };\n };\n };\n})();\n\nexport const toAssocArray = function (xs) {\n return function () {\n var n = xs.length;\n var as = new Array(n);\n for (var i = 0; i < n; i++) as[i] = { value: xs[i], index: i };\n return as;\n };\n};\n","// Generated by purs version 0.15.7\nimport * as $foreign from \"./foreign.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Control_Monad_ST_Internal from \"../Control.Monad.ST.Internal/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Data_Ordering from \"../Data.Ordering/index.js\";\nvar bind = /* #__PURE__ */ Control_Bind.bind(Control_Monad_ST_Internal.bindST);\nvar withArray = function (f) {\n return function (xs) {\n return function __do() {\n var result = $foreign.thaw(xs)();\n f(result)();\n return $foreign.unsafeFreeze(result)();\n };\n };\n};\nvar unshift = function (a) {\n return $foreign.unshiftAll([ a ]);\n};\nvar sortBy = function (comp) {\n return $foreign.sortByImpl(comp)(function (v) {\n if (v instanceof Data_Ordering.GT) {\n return 1;\n };\n if (v instanceof Data_Ordering.EQ) {\n return 0;\n };\n if (v instanceof Data_Ordering.LT) {\n return -1 | 0;\n };\n throw new Error(\"Failed pattern match at Data.Array.ST (line 108, column 31 - line 111, column 11): \" + [ v.constructor.name ]);\n });\n};\nvar sortWith = function (dictOrd) {\n var comparing = Data_Ord.comparing(dictOrd);\n return function (f) {\n return sortBy(comparing(f));\n };\n};\nvar sort = function (dictOrd) {\n return sortBy(Data_Ord.compare(dictOrd));\n};\nvar shift = /* #__PURE__ */ (function () {\n return $foreign.shiftImpl(Data_Maybe.Just.create)(Data_Maybe.Nothing.value);\n})();\nvar run = function (st) {\n return bind(st)($foreign.unsafeFreeze)();\n};\nvar push = function (a) {\n return $foreign.pushAll([ a ]);\n};\nvar pop = /* #__PURE__ */ (function () {\n return $foreign.popImpl(Data_Maybe.Just.create)(Data_Maybe.Nothing.value);\n})();\nvar peek = /* #__PURE__ */ (function () {\n return $foreign.peekImpl(Data_Maybe.Just.create)(Data_Maybe.Nothing.value);\n})();\nvar modify = function (i) {\n return function (f) {\n return function (xs) {\n return function __do() {\n var entry = peek(i)(xs)();\n if (entry instanceof Data_Maybe.Just) {\n return $foreign.poke(i)(f(entry.value0))(xs)();\n };\n if (entry instanceof Data_Maybe.Nothing) {\n return false;\n };\n throw new Error(\"Failed pattern match at Data.Array.ST (line 193, column 3 - line 195, column 26): \" + [ entry.constructor.name ]);\n };\n };\n };\n};\nexport {\n new,\n poke,\n pushAll,\n unshiftAll,\n splice,\n freeze,\n thaw,\n unsafeFreeze,\n unsafeThaw,\n toAssocArray\n} from \"./foreign.js\";\nexport {\n run,\n withArray,\n peek,\n modify,\n pop,\n push,\n shift,\n unshift,\n sort,\n sortBy,\n sortWith\n};\n","// Generated by purs version 0.15.7\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Symbol from \"../Data.Symbol/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nimport * as Record_Unsafe from \"../Record.Unsafe/index.js\";\nimport * as Type_Proxy from \"../Type.Proxy/index.js\";\nvar ttRecord = function (dict) {\n return dict.ttRecord;\n};\nvar tt = function (dict) {\n return dict.tt;\n};\nvar notRecord = function (dict) {\n return dict.notRecord;\n};\nvar not = function (dict) {\n return dict.not;\n};\nvar impliesRecord = function (dict) {\n return dict.impliesRecord;\n};\nvar implies = function (dict) {\n return dict.implies;\n};\nvar heytingAlgebraUnit = {\n ff: Data_Unit.unit,\n tt: Data_Unit.unit,\n implies: function (v) {\n return function (v1) {\n return Data_Unit.unit;\n };\n },\n conj: function (v) {\n return function (v1) {\n return Data_Unit.unit;\n };\n },\n disj: function (v) {\n return function (v1) {\n return Data_Unit.unit;\n };\n },\n not: function (v) {\n return Data_Unit.unit;\n }\n};\nvar heytingAlgebraRecordNil = {\n conjRecord: function (v) {\n return function (v1) {\n return function (v2) {\n return {};\n };\n };\n },\n disjRecord: function (v) {\n return function (v1) {\n return function (v2) {\n return {};\n };\n };\n },\n ffRecord: function (v) {\n return function (v1) {\n return {};\n };\n },\n impliesRecord: function (v) {\n return function (v1) {\n return function (v2) {\n return {};\n };\n };\n },\n notRecord: function (v) {\n return function (v1) {\n return {};\n };\n },\n ttRecord: function (v) {\n return function (v1) {\n return {};\n };\n }\n};\nvar heytingAlgebraProxy = /* #__PURE__ */ (function () {\n return {\n conj: function (v) {\n return function (v1) {\n return Type_Proxy[\"Proxy\"].value;\n };\n },\n disj: function (v) {\n return function (v1) {\n return Type_Proxy[\"Proxy\"].value;\n };\n },\n implies: function (v) {\n return function (v1) {\n return Type_Proxy[\"Proxy\"].value;\n };\n },\n ff: Type_Proxy[\"Proxy\"].value,\n not: function (v) {\n return Type_Proxy[\"Proxy\"].value;\n },\n tt: Type_Proxy[\"Proxy\"].value\n };\n})();\nvar ffRecord = function (dict) {\n return dict.ffRecord;\n};\nvar ff = function (dict) {\n return dict.ff;\n};\nvar disjRecord = function (dict) {\n return dict.disjRecord;\n};\nvar disj = function (dict) {\n return dict.disj;\n};\nvar heytingAlgebraBoolean = {\n ff: false,\n tt: true,\n implies: function (a) {\n return function (b) {\n return disj(heytingAlgebraBoolean)(not(heytingAlgebraBoolean)(a))(b);\n };\n },\n conj: $foreign.boolConj,\n disj: $foreign.boolDisj,\n not: $foreign.boolNot\n};\nvar conjRecord = function (dict) {\n return dict.conjRecord;\n};\nvar heytingAlgebraRecord = function () {\n return function (dictHeytingAlgebraRecord) {\n return {\n ff: ffRecord(dictHeytingAlgebraRecord)(Type_Proxy[\"Proxy\"].value)(Type_Proxy[\"Proxy\"].value),\n tt: ttRecord(dictHeytingAlgebraRecord)(Type_Proxy[\"Proxy\"].value)(Type_Proxy[\"Proxy\"].value),\n conj: conjRecord(dictHeytingAlgebraRecord)(Type_Proxy[\"Proxy\"].value),\n disj: disjRecord(dictHeytingAlgebraRecord)(Type_Proxy[\"Proxy\"].value),\n implies: impliesRecord(dictHeytingAlgebraRecord)(Type_Proxy[\"Proxy\"].value),\n not: notRecord(dictHeytingAlgebraRecord)(Type_Proxy[\"Proxy\"].value)\n };\n };\n};\nvar conj = function (dict) {\n return dict.conj;\n};\nvar heytingAlgebraFunction = function (dictHeytingAlgebra) {\n var ff1 = ff(dictHeytingAlgebra);\n var tt1 = tt(dictHeytingAlgebra);\n var implies1 = implies(dictHeytingAlgebra);\n var conj1 = conj(dictHeytingAlgebra);\n var disj1 = disj(dictHeytingAlgebra);\n var not1 = not(dictHeytingAlgebra);\n return {\n ff: function (v) {\n return ff1;\n },\n tt: function (v) {\n return tt1;\n },\n implies: function (f) {\n return function (g) {\n return function (a) {\n return implies1(f(a))(g(a));\n };\n };\n },\n conj: function (f) {\n return function (g) {\n return function (a) {\n return conj1(f(a))(g(a));\n };\n };\n },\n disj: function (f) {\n return function (g) {\n return function (a) {\n return disj1(f(a))(g(a));\n };\n };\n },\n not: function (f) {\n return function (a) {\n return not1(f(a));\n };\n }\n };\n};\nvar heytingAlgebraRecordCons = function (dictIsSymbol) {\n var reflectSymbol = Data_Symbol.reflectSymbol(dictIsSymbol);\n return function () {\n return function (dictHeytingAlgebraRecord) {\n var conjRecord1 = conjRecord(dictHeytingAlgebraRecord);\n var disjRecord1 = disjRecord(dictHeytingAlgebraRecord);\n var impliesRecord1 = impliesRecord(dictHeytingAlgebraRecord);\n var ffRecord1 = ffRecord(dictHeytingAlgebraRecord);\n var notRecord1 = notRecord(dictHeytingAlgebraRecord);\n var ttRecord1 = ttRecord(dictHeytingAlgebraRecord);\n return function (dictHeytingAlgebra) {\n var conj1 = conj(dictHeytingAlgebra);\n var disj1 = disj(dictHeytingAlgebra);\n var implies1 = implies(dictHeytingAlgebra);\n var ff1 = ff(dictHeytingAlgebra);\n var not1 = not(dictHeytingAlgebra);\n var tt1 = tt(dictHeytingAlgebra);\n return {\n conjRecord: function (v) {\n return function (ra) {\n return function (rb) {\n var tail = conjRecord1(Type_Proxy[\"Proxy\"].value)(ra)(rb);\n var key = reflectSymbol(Type_Proxy[\"Proxy\"].value);\n var insert = Record_Unsafe.unsafeSet(key);\n var get = Record_Unsafe.unsafeGet(key);\n return insert(conj1(get(ra))(get(rb)))(tail);\n };\n };\n },\n disjRecord: function (v) {\n return function (ra) {\n return function (rb) {\n var tail = disjRecord1(Type_Proxy[\"Proxy\"].value)(ra)(rb);\n var key = reflectSymbol(Type_Proxy[\"Proxy\"].value);\n var insert = Record_Unsafe.unsafeSet(key);\n var get = Record_Unsafe.unsafeGet(key);\n return insert(disj1(get(ra))(get(rb)))(tail);\n };\n };\n },\n impliesRecord: function (v) {\n return function (ra) {\n return function (rb) {\n var tail = impliesRecord1(Type_Proxy[\"Proxy\"].value)(ra)(rb);\n var key = reflectSymbol(Type_Proxy[\"Proxy\"].value);\n var insert = Record_Unsafe.unsafeSet(key);\n var get = Record_Unsafe.unsafeGet(key);\n return insert(implies1(get(ra))(get(rb)))(tail);\n };\n };\n },\n ffRecord: function (v) {\n return function (row) {\n var tail = ffRecord1(Type_Proxy[\"Proxy\"].value)(row);\n var key = reflectSymbol(Type_Proxy[\"Proxy\"].value);\n var insert = Record_Unsafe.unsafeSet(key);\n return insert(ff1)(tail);\n };\n },\n notRecord: function (v) {\n return function (row) {\n var tail = notRecord1(Type_Proxy[\"Proxy\"].value)(row);\n var key = reflectSymbol(Type_Proxy[\"Proxy\"].value);\n var insert = Record_Unsafe.unsafeSet(key);\n var get = Record_Unsafe.unsafeGet(key);\n return insert(not1(get(row)))(tail);\n };\n },\n ttRecord: function (v) {\n return function (row) {\n var tail = ttRecord1(Type_Proxy[\"Proxy\"].value)(row);\n var key = reflectSymbol(Type_Proxy[\"Proxy\"].value);\n var insert = Record_Unsafe.unsafeSet(key);\n return insert(tt1)(tail);\n };\n }\n };\n };\n };\n };\n};\nexport {\n tt,\n ff,\n implies,\n conj,\n disj,\n not,\n ffRecord,\n ttRecord,\n impliesRecord,\n conjRecord,\n disjRecord,\n notRecord,\n heytingAlgebraBoolean,\n heytingAlgebraUnit,\n heytingAlgebraFunction,\n heytingAlgebraProxy,\n heytingAlgebraRecord,\n heytingAlgebraRecordNil,\n heytingAlgebraRecordCons\n};\n","export const boolConj = function (b1) {\n return function (b2) {\n return b1 && b2;\n };\n};\n\nexport const boolDisj = function (b1) {\n return function (b2) {\n return b1 || b2;\n };\n};\n\nexport const boolNot = function (b) {\n return !b;\n};\n","// Generated by purs version 0.15.7\nimport * as Control_Monad_ST_Internal from \"../Control.Monad.ST.Internal/index.js\";\nimport * as Data_Array_ST from \"../Data.Array.ST/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_HeytingAlgebra from \"../Data.HeytingAlgebra/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nvar map = /* #__PURE__ */ Data_Functor.map(Control_Monad_ST_Internal.functorST);\nvar not = /* #__PURE__ */ Data_HeytingAlgebra.not(Data_HeytingAlgebra.heytingAlgebraBoolean);\nvar $$void = /* #__PURE__ */ Data_Functor[\"void\"](Control_Monad_ST_Internal.functorST);\nvar Iterator = /* #__PURE__ */ (function () {\n function Iterator(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n Iterator.create = function (value0) {\n return function (value1) {\n return new Iterator(value0, value1);\n };\n };\n return Iterator;\n})();\nvar peek = function (v) {\n return function __do() {\n var i = Control_Monad_ST_Internal.read(v.value1)();\n return v.value0(i);\n };\n};\nvar next = function (v) {\n return function __do() {\n var i = Control_Monad_ST_Internal.read(v.value1)();\n Control_Monad_ST_Internal.modify(function (v1) {\n return v1 + 1 | 0;\n })(v.value1)();\n return v.value0(i);\n };\n};\nvar pushWhile = function (p) {\n return function (iter) {\n return function (array) {\n return function __do() {\n var $$break = Control_Monad_ST_Internal[\"new\"](false)();\n while (map(not)(Control_Monad_ST_Internal.read($$break))()) {\n (function __do() {\n var mx = peek(iter)();\n if (mx instanceof Data_Maybe.Just && p(mx.value0)) {\n Data_Array_ST.push(mx.value0)(array)();\n return $$void(next(iter))();\n };\n return $$void(Control_Monad_ST_Internal.write(true)($$break))();\n })();\n };\n return {};\n };\n };\n };\n};\nvar pushAll = /* #__PURE__ */ pushWhile(/* #__PURE__ */ Data_Function[\"const\"](true));\nvar iterator = function (f) {\n return map(Iterator.create(f))(Control_Monad_ST_Internal[\"new\"](0));\n};\nvar iterate = function (iter) {\n return function (f) {\n return function __do() {\n var $$break = Control_Monad_ST_Internal[\"new\"](false)();\n while (map(not)(Control_Monad_ST_Internal.read($$break))()) {\n (function __do() {\n var mx = next(iter)();\n if (mx instanceof Data_Maybe.Just) {\n return f(mx.value0)();\n };\n if (mx instanceof Data_Maybe.Nothing) {\n return $$void(Control_Monad_ST_Internal.write(true)($$break))();\n };\n throw new Error(\"Failed pattern match at Data.Array.ST.Iterator (line 42, column 5 - line 44, column 47): \" + [ mx.constructor.name ]);\n })();\n };\n return {};\n };\n };\n};\nvar exhausted = /* #__PURE__ */ (function () {\n var $20 = map(Data_Maybe.isNothing);\n return function ($21) {\n return $20(peek($21));\n };\n})();\nexport {\n iterator,\n iterate,\n next,\n peek,\n exhausted,\n pushWhile,\n pushAll\n};\n","// Generated by purs version 0.15.7\nimport * as Control_Alt from \"../Control.Alt/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nvar plusArray = {\n empty: [ ],\n Alt0: function () {\n return Control_Alt.altArray;\n }\n};\nvar empty = function (dict) {\n return dict.empty;\n};\nexport {\n empty,\n plusArray\n};\nexport {\n alt\n} from \"../Control.Alt/index.js\";\nexport {\n map,\n void\n} from \"../Data.Functor/index.js\";\n","// Generated by purs version 0.15.7\nimport * as $foreign from \"./foreign.js\";\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nvar identity = /* #__PURE__ */ Control_Category.identity(Control_Category.categoryFn);\nvar extendFn = function (dictSemigroup) {\n var append = Data_Semigroup.append(dictSemigroup);\n return {\n extend: function (f) {\n return function (g) {\n return function (w) {\n return f(function (w$prime) {\n return g(append(w)(w$prime));\n });\n };\n };\n },\n Functor0: function () {\n return Data_Functor.functorFn;\n }\n };\n};\nvar extendArray = {\n extend: $foreign.arrayExtend,\n Functor0: function () {\n return Data_Functor.functorArray;\n }\n};\nvar extend = function (dict) {\n return dict.extend;\n};\nvar extendFlipped = function (dictExtend) {\n var extend1 = extend(dictExtend);\n return function (w) {\n return function (f) {\n return extend1(f)(w);\n };\n };\n};\nvar duplicate = function (dictExtend) {\n return extend(dictExtend)(identity);\n};\nvar composeCoKleisliFlipped = function (dictExtend) {\n var extend1 = extend(dictExtend);\n return function (f) {\n return function (g) {\n return function (w) {\n return f(extend1(g)(w));\n };\n };\n };\n};\nvar composeCoKleisli = function (dictExtend) {\n var extend1 = extend(dictExtend);\n return function (f) {\n return function (g) {\n return function (w) {\n return g(extend1(f)(w));\n };\n };\n };\n};\nexport {\n extend,\n extendFlipped,\n composeCoKleisli,\n composeCoKleisliFlipped,\n duplicate,\n extendFn,\n extendArray\n};\nexport {\n map,\n void\n} from \"../Data.Functor/index.js\";\n","// Generated by purs version 0.15.7\nimport * as Control_Lazy from \"../Control.Lazy/index.js\";\nimport * as Data_Bounded from \"../Data.Bounded/index.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Functor_Invariant from \"../Data.Functor.Invariant/index.js\";\nimport * as Data_Generic_Rep from \"../Data.Generic.Rep/index.js\";\nimport * as Data_HeytingAlgebra from \"../Data.HeytingAlgebra/index.js\";\nimport * as Data_Monoid from \"../Data.Monoid/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Data_Ordering from \"../Data.Ordering/index.js\";\nimport * as Data_Ring from \"../Data.Ring/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nimport * as Data_Semiring from \"../Data.Semiring/index.js\";\nimport * as Data_Show from \"../Data.Show/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nvar Tuple = /* #__PURE__ */ (function () {\n function Tuple(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n Tuple.create = function (value0) {\n return function (value1) {\n return new Tuple(value0, value1);\n };\n };\n return Tuple;\n})();\nvar uncurry = function (f) {\n return function (v) {\n return f(v.value0)(v.value1);\n };\n};\nvar swap = function (v) {\n return new Tuple(v.value1, v.value0);\n};\nvar snd = function (v) {\n return v.value1;\n};\nvar showTuple = function (dictShow) {\n var show = Data_Show.show(dictShow);\n return function (dictShow1) {\n var show1 = Data_Show.show(dictShow1);\n return {\n show: function (v) {\n return \"(Tuple \" + (show(v.value0) + (\" \" + (show1(v.value1) + \")\")));\n }\n };\n };\n};\nvar semiringTuple = function (dictSemiring) {\n var add = Data_Semiring.add(dictSemiring);\n var one = Data_Semiring.one(dictSemiring);\n var mul = Data_Semiring.mul(dictSemiring);\n var zero = Data_Semiring.zero(dictSemiring);\n return function (dictSemiring1) {\n var add1 = Data_Semiring.add(dictSemiring1);\n var mul1 = Data_Semiring.mul(dictSemiring1);\n return {\n add: function (v) {\n return function (v1) {\n return new Tuple(add(v.value0)(v1.value0), add1(v.value1)(v1.value1));\n };\n },\n one: new Tuple(one, Data_Semiring.one(dictSemiring1)),\n mul: function (v) {\n return function (v1) {\n return new Tuple(mul(v.value0)(v1.value0), mul1(v.value1)(v1.value1));\n };\n },\n zero: new Tuple(zero, Data_Semiring.zero(dictSemiring1))\n };\n };\n};\nvar semigroupoidTuple = {\n compose: function (v) {\n return function (v1) {\n return new Tuple(v1.value0, v.value1);\n };\n }\n};\nvar semigroupTuple = function (dictSemigroup) {\n var append1 = Data_Semigroup.append(dictSemigroup);\n return function (dictSemigroup1) {\n var append2 = Data_Semigroup.append(dictSemigroup1);\n return {\n append: function (v) {\n return function (v1) {\n return new Tuple(append1(v.value0)(v1.value0), append2(v.value1)(v1.value1));\n };\n }\n };\n };\n};\nvar ringTuple = function (dictRing) {\n var sub = Data_Ring.sub(dictRing);\n var semiringTuple1 = semiringTuple(dictRing.Semiring0());\n return function (dictRing1) {\n var sub1 = Data_Ring.sub(dictRing1);\n var semiringTuple2 = semiringTuple1(dictRing1.Semiring0());\n return {\n sub: function (v) {\n return function (v1) {\n return new Tuple(sub(v.value0)(v1.value0), sub1(v.value1)(v1.value1));\n };\n },\n Semiring0: function () {\n return semiringTuple2;\n }\n };\n };\n};\nvar monoidTuple = function (dictMonoid) {\n var mempty = Data_Monoid.mempty(dictMonoid);\n var semigroupTuple1 = semigroupTuple(dictMonoid.Semigroup0());\n return function (dictMonoid1) {\n var semigroupTuple2 = semigroupTuple1(dictMonoid1.Semigroup0());\n return {\n mempty: new Tuple(mempty, Data_Monoid.mempty(dictMonoid1)),\n Semigroup0: function () {\n return semigroupTuple2;\n }\n };\n };\n};\nvar heytingAlgebraTuple = function (dictHeytingAlgebra) {\n var tt = Data_HeytingAlgebra.tt(dictHeytingAlgebra);\n var ff = Data_HeytingAlgebra.ff(dictHeytingAlgebra);\n var implies = Data_HeytingAlgebra.implies(dictHeytingAlgebra);\n var conj1 = Data_HeytingAlgebra.conj(dictHeytingAlgebra);\n var disj = Data_HeytingAlgebra.disj(dictHeytingAlgebra);\n var not = Data_HeytingAlgebra.not(dictHeytingAlgebra);\n return function (dictHeytingAlgebra1) {\n var implies1 = Data_HeytingAlgebra.implies(dictHeytingAlgebra1);\n var conj2 = Data_HeytingAlgebra.conj(dictHeytingAlgebra1);\n var disj1 = Data_HeytingAlgebra.disj(dictHeytingAlgebra1);\n var not1 = Data_HeytingAlgebra.not(dictHeytingAlgebra1);\n return {\n tt: new Tuple(tt, Data_HeytingAlgebra.tt(dictHeytingAlgebra1)),\n ff: new Tuple(ff, Data_HeytingAlgebra.ff(dictHeytingAlgebra1)),\n implies: function (v) {\n return function (v1) {\n return new Tuple(implies(v.value0)(v1.value0), implies1(v.value1)(v1.value1));\n };\n },\n conj: function (v) {\n return function (v1) {\n return new Tuple(conj1(v.value0)(v1.value0), conj2(v.value1)(v1.value1));\n };\n },\n disj: function (v) {\n return function (v1) {\n return new Tuple(disj(v.value0)(v1.value0), disj1(v.value1)(v1.value1));\n };\n },\n not: function (v) {\n return new Tuple(not(v.value0), not1(v.value1));\n }\n };\n };\n};\nvar genericTuple = {\n to: function (x) {\n return new Tuple(x.value0, x.value1);\n },\n from: function (x) {\n return new Data_Generic_Rep.Product(x.value0, x.value1);\n }\n};\nvar functorTuple = {\n map: function (f) {\n return function (m) {\n return new Tuple(m.value0, f(m.value1));\n };\n }\n};\nvar invariantTuple = {\n imap: /* #__PURE__ */ Data_Functor_Invariant.imapF(functorTuple)\n};\nvar fst = function (v) {\n return v.value0;\n};\nvar lazyTuple = function (dictLazy) {\n var defer = Control_Lazy.defer(dictLazy);\n return function (dictLazy1) {\n var defer1 = Control_Lazy.defer(dictLazy1);\n return {\n defer: function (f) {\n return new Tuple(defer(function (v) {\n return fst(f(Data_Unit.unit));\n }), defer1(function (v) {\n return snd(f(Data_Unit.unit));\n }));\n }\n };\n };\n};\nvar extendTuple = {\n extend: function (f) {\n return function (v) {\n return new Tuple(v.value0, f(v));\n };\n },\n Functor0: function () {\n return functorTuple;\n }\n};\nvar eqTuple = function (dictEq) {\n var eq = Data_Eq.eq(dictEq);\n return function (dictEq1) {\n var eq1 = Data_Eq.eq(dictEq1);\n return {\n eq: function (x) {\n return function (y) {\n return eq(x.value0)(y.value0) && eq1(x.value1)(y.value1);\n };\n }\n };\n };\n};\nvar ordTuple = function (dictOrd) {\n var compare = Data_Ord.compare(dictOrd);\n var eqTuple1 = eqTuple(dictOrd.Eq0());\n return function (dictOrd1) {\n var compare1 = Data_Ord.compare(dictOrd1);\n var eqTuple2 = eqTuple1(dictOrd1.Eq0());\n return {\n compare: function (x) {\n return function (y) {\n var v = compare(x.value0)(y.value0);\n if (v instanceof Data_Ordering.LT) {\n return Data_Ordering.LT.value;\n };\n if (v instanceof Data_Ordering.GT) {\n return Data_Ordering.GT.value;\n };\n return compare1(x.value1)(y.value1);\n };\n },\n Eq0: function () {\n return eqTuple2;\n }\n };\n };\n};\nvar eq1Tuple = function (dictEq) {\n var eqTuple1 = eqTuple(dictEq);\n return {\n eq1: function (dictEq1) {\n return Data_Eq.eq(eqTuple1(dictEq1));\n }\n };\n};\nvar ord1Tuple = function (dictOrd) {\n var ordTuple1 = ordTuple(dictOrd);\n var eq1Tuple1 = eq1Tuple(dictOrd.Eq0());\n return {\n compare1: function (dictOrd1) {\n return Data_Ord.compare(ordTuple1(dictOrd1));\n },\n Eq10: function () {\n return eq1Tuple1;\n }\n };\n};\nvar curry = function (f) {\n return function (a) {\n return function (b) {\n return f(new Tuple(a, b));\n };\n };\n};\nvar comonadTuple = {\n extract: snd,\n Extend0: function () {\n return extendTuple;\n }\n};\nvar commutativeRingTuple = function (dictCommutativeRing) {\n var ringTuple1 = ringTuple(dictCommutativeRing.Ring0());\n return function (dictCommutativeRing1) {\n var ringTuple2 = ringTuple1(dictCommutativeRing1.Ring0());\n return {\n Ring0: function () {\n return ringTuple2;\n }\n };\n };\n};\nvar boundedTuple = function (dictBounded) {\n var top = Data_Bounded.top(dictBounded);\n var bottom = Data_Bounded.bottom(dictBounded);\n var ordTuple1 = ordTuple(dictBounded.Ord0());\n return function (dictBounded1) {\n var ordTuple2 = ordTuple1(dictBounded1.Ord0());\n return {\n top: new Tuple(top, Data_Bounded.top(dictBounded1)),\n bottom: new Tuple(bottom, Data_Bounded.bottom(dictBounded1)),\n Ord0: function () {\n return ordTuple2;\n }\n };\n };\n};\nvar booleanAlgebraTuple = function (dictBooleanAlgebra) {\n var heytingAlgebraTuple1 = heytingAlgebraTuple(dictBooleanAlgebra.HeytingAlgebra0());\n return function (dictBooleanAlgebra1) {\n var heytingAlgebraTuple2 = heytingAlgebraTuple1(dictBooleanAlgebra1.HeytingAlgebra0());\n return {\n HeytingAlgebra0: function () {\n return heytingAlgebraTuple2;\n }\n };\n };\n};\nvar applyTuple = function (dictSemigroup) {\n var append1 = Data_Semigroup.append(dictSemigroup);\n return {\n apply: function (v) {\n return function (v1) {\n return new Tuple(append1(v.value0)(v1.value0), v.value1(v1.value1));\n };\n },\n Functor0: function () {\n return functorTuple;\n }\n };\n};\nvar bindTuple = function (dictSemigroup) {\n var append1 = Data_Semigroup.append(dictSemigroup);\n var applyTuple1 = applyTuple(dictSemigroup);\n return {\n bind: function (v) {\n return function (f) {\n var v1 = f(v.value1);\n return new Tuple(append1(v.value0)(v1.value0), v1.value1);\n };\n },\n Apply0: function () {\n return applyTuple1;\n }\n };\n};\nvar applicativeTuple = function (dictMonoid) {\n var applyTuple1 = applyTuple(dictMonoid.Semigroup0());\n return {\n pure: Tuple.create(Data_Monoid.mempty(dictMonoid)),\n Apply0: function () {\n return applyTuple1;\n }\n };\n};\nvar monadTuple = function (dictMonoid) {\n var applicativeTuple1 = applicativeTuple(dictMonoid);\n var bindTuple1 = bindTuple(dictMonoid.Semigroup0());\n return {\n Applicative0: function () {\n return applicativeTuple1;\n },\n Bind1: function () {\n return bindTuple1;\n }\n };\n};\nexport {\n Tuple,\n fst,\n snd,\n curry,\n uncurry,\n swap,\n showTuple,\n eqTuple,\n eq1Tuple,\n ordTuple,\n ord1Tuple,\n boundedTuple,\n semigroupoidTuple,\n semigroupTuple,\n monoidTuple,\n semiringTuple,\n ringTuple,\n commutativeRingTuple,\n heytingAlgebraTuple,\n booleanAlgebraTuple,\n functorTuple,\n genericTuple,\n invariantTuple,\n applyTuple,\n applicativeTuple,\n bindTuple,\n monadTuple,\n extendTuple,\n comonadTuple,\n lazyTuple\n};\n","// Generated by purs version 0.15.7\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Data_Either from \"../Data.Either/index.js\";\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nvar identity = /* #__PURE__ */ Control_Category.identity(Control_Category.categoryFn);\nvar bimap = function (dict) {\n return dict.bimap;\n};\nvar lmap = function (dictBifunctor) {\n var bimap1 = bimap(dictBifunctor);\n return function (f) {\n return bimap1(f)(identity);\n };\n};\nvar rmap = function (dictBifunctor) {\n return bimap(dictBifunctor)(identity);\n};\nvar bifunctorTuple = {\n bimap: function (f) {\n return function (g) {\n return function (v) {\n return new Data_Tuple.Tuple(f(v.value0), g(v.value1));\n };\n };\n }\n};\nvar bifunctorEither = {\n bimap: function (v) {\n return function (v1) {\n return function (v2) {\n if (v2 instanceof Data_Either.Left) {\n return new Data_Either.Left(v(v2.value0));\n };\n if (v2 instanceof Data_Either.Right) {\n return new Data_Either.Right(v1(v2.value0));\n };\n throw new Error(\"Failed pattern match at Data.Bifunctor (line 32, column 1 - line 34, column 36): \" + [ v.constructor.name, v1.constructor.name, v2.constructor.name ]);\n };\n };\n }\n};\nvar bifunctorConst = {\n bimap: function (f) {\n return function (v) {\n return function (v1) {\n return f(v1);\n };\n };\n }\n};\nexport {\n bimap,\n lmap,\n rmap,\n bifunctorEither,\n bifunctorTuple,\n bifunctorConst\n};\n","// Generated by purs version 0.15.7\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_HeytingAlgebra from \"../Data.HeytingAlgebra/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Data_Show from \"../Data.Show/index.js\";\nvar Disj = function (x) {\n return x;\n};\nvar showDisj = function (dictShow) {\n var show = Data_Show.show(dictShow);\n return {\n show: function (v) {\n return \"(Disj \" + (show(v) + \")\");\n }\n };\n};\nvar semiringDisj = function (dictHeytingAlgebra) {\n var disj = Data_HeytingAlgebra.disj(dictHeytingAlgebra);\n var conj = Data_HeytingAlgebra.conj(dictHeytingAlgebra);\n return {\n zero: Data_HeytingAlgebra.ff(dictHeytingAlgebra),\n one: Data_HeytingAlgebra.tt(dictHeytingAlgebra),\n add: function (v) {\n return function (v1) {\n return disj(v)(v1);\n };\n },\n mul: function (v) {\n return function (v1) {\n return conj(v)(v1);\n };\n }\n };\n};\nvar semigroupDisj = function (dictHeytingAlgebra) {\n var disj = Data_HeytingAlgebra.disj(dictHeytingAlgebra);\n return {\n append: function (v) {\n return function (v1) {\n return disj(v)(v1);\n };\n }\n };\n};\nvar ordDisj = function (dictOrd) {\n return dictOrd;\n};\nvar monoidDisj = function (dictHeytingAlgebra) {\n var semigroupDisj1 = semigroupDisj(dictHeytingAlgebra);\n return {\n mempty: Data_HeytingAlgebra.ff(dictHeytingAlgebra),\n Semigroup0: function () {\n return semigroupDisj1;\n }\n };\n};\nvar functorDisj = {\n map: function (f) {\n return function (m) {\n return f(m);\n };\n }\n};\nvar eqDisj = function (dictEq) {\n return dictEq;\n};\nvar eq1Disj = {\n eq1: function (dictEq) {\n return Data_Eq.eq(eqDisj(dictEq));\n }\n};\nvar ord1Disj = {\n compare1: function (dictOrd) {\n return Data_Ord.compare(ordDisj(dictOrd));\n },\n Eq10: function () {\n return eq1Disj;\n }\n};\nvar boundedDisj = function (dictBounded) {\n return dictBounded;\n};\nvar applyDisj = {\n apply: function (v) {\n return function (v1) {\n return v(v1);\n };\n },\n Functor0: function () {\n return functorDisj;\n }\n};\nvar bindDisj = {\n bind: function (v) {\n return function (f) {\n return f(v);\n };\n },\n Apply0: function () {\n return applyDisj;\n }\n};\nvar applicativeDisj = {\n pure: Disj,\n Apply0: function () {\n return applyDisj;\n }\n};\nvar monadDisj = {\n Applicative0: function () {\n return applicativeDisj;\n },\n Bind1: function () {\n return bindDisj;\n }\n};\nexport {\n Disj,\n eqDisj,\n eq1Disj,\n ordDisj,\n ord1Disj,\n boundedDisj,\n showDisj,\n functorDisj,\n applyDisj,\n applicativeDisj,\n bindDisj,\n monadDisj,\n semigroupDisj,\n monoidDisj,\n semiringDisj\n};\n","// Generated by purs version 0.15.7\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Control_Semigroupoid from \"../Control.Semigroupoid/index.js\";\nimport * as Data_Show from \"../Data.Show/index.js\";\nvar Endo = function (x) {\n return x;\n};\nvar showEndo = function (dictShow) {\n var show = Data_Show.show(dictShow);\n return {\n show: function (v) {\n return \"(Endo \" + (show(v) + \")\");\n }\n };\n};\nvar semigroupEndo = function (dictSemigroupoid) {\n var compose = Control_Semigroupoid.compose(dictSemigroupoid);\n return {\n append: function (v) {\n return function (v1) {\n return compose(v)(v1);\n };\n }\n };\n};\nvar ordEndo = function (dictOrd) {\n return dictOrd;\n};\nvar monoidEndo = function (dictCategory) {\n var semigroupEndo1 = semigroupEndo(dictCategory.Semigroupoid0());\n return {\n mempty: Control_Category.identity(dictCategory),\n Semigroup0: function () {\n return semigroupEndo1;\n }\n };\n};\nvar eqEndo = function (dictEq) {\n return dictEq;\n};\nvar boundedEndo = function (dictBounded) {\n return dictBounded;\n};\nexport {\n Endo,\n eqEndo,\n ordEndo,\n boundedEndo,\n showEndo,\n semigroupEndo,\n monoidEndo\n};\n","// module Unsafe.Coerce\n\nexport const unsafeCoerce = function (x) {\n return x;\n};\n","// Generated by purs version 0.15.7\nimport * as Unsafe_Coerce from \"../Unsafe.Coerce/index.js\";\nvar coerce = function () {\n return Unsafe_Coerce.unsafeCoerce;\n};\nexport {\n coerce\n};\n","// Generated by purs version 0.15.7\nimport * as Safe_Coerce from \"../Safe.Coerce/index.js\";\nvar coerce = /* #__PURE__ */ Safe_Coerce.coerce();\nvar wrap = function () {\n return coerce;\n};\nvar wrap1 = /* #__PURE__ */ wrap();\nvar unwrap = function () {\n return coerce;\n};\nvar unwrap1 = /* #__PURE__ */ unwrap();\nvar underF2 = function () {\n return function () {\n return function () {\n return function () {\n return function (v) {\n return coerce;\n };\n };\n };\n };\n};\nvar underF = function () {\n return function () {\n return function () {\n return function () {\n return function (v) {\n return coerce;\n };\n };\n };\n };\n};\nvar under2 = function () {\n return function () {\n return function (v) {\n return coerce;\n };\n };\n};\nvar under = function () {\n return function () {\n return function (v) {\n return coerce;\n };\n };\n};\nvar un = function () {\n return function (v) {\n return unwrap1;\n };\n};\nvar traverse = function () {\n return function () {\n return function (v) {\n return coerce;\n };\n };\n};\nvar overF2 = function () {\n return function () {\n return function () {\n return function () {\n return function (v) {\n return coerce;\n };\n };\n };\n };\n};\nvar overF = function () {\n return function () {\n return function () {\n return function () {\n return function (v) {\n return coerce;\n };\n };\n };\n };\n};\nvar over2 = function () {\n return function () {\n return function (v) {\n return coerce;\n };\n };\n};\nvar over = function () {\n return function () {\n return function (v) {\n return coerce;\n };\n };\n};\nvar newtypeMultiplicative = {\n Coercible0: function () {\n return undefined;\n }\n};\nvar newtypeLast = {\n Coercible0: function () {\n return undefined;\n }\n};\nvar newtypeFirst = {\n Coercible0: function () {\n return undefined;\n }\n};\nvar newtypeEndo = {\n Coercible0: function () {\n return undefined;\n }\n};\nvar newtypeDual = {\n Coercible0: function () {\n return undefined;\n }\n};\nvar newtypeDisj = {\n Coercible0: function () {\n return undefined;\n }\n};\nvar newtypeConj = {\n Coercible0: function () {\n return undefined;\n }\n};\nvar newtypeAdditive = {\n Coercible0: function () {\n return undefined;\n }\n};\nvar modify = function () {\n return function (fn) {\n return function (t) {\n return wrap1(fn(unwrap1(t)));\n };\n };\n};\nvar collect = function () {\n return function () {\n return function (v) {\n return coerce;\n };\n };\n};\nvar alaF = function () {\n return function () {\n return function () {\n return function () {\n return function (v) {\n return coerce;\n };\n };\n };\n };\n};\nvar ala = function () {\n return function () {\n return function () {\n return function (v) {\n return function (f) {\n return coerce(f(wrap1));\n };\n };\n };\n };\n};\nexport {\n wrap,\n unwrap,\n un,\n modify,\n ala,\n alaF,\n over,\n overF,\n under,\n underF,\n over2,\n overF2,\n under2,\n underF2,\n traverse,\n collect,\n newtypeAdditive,\n newtypeMultiplicative,\n newtypeConj,\n newtypeDisj,\n newtypeDual,\n newtypeEndo,\n newtypeFirst,\n newtypeLast\n};\n","// Generated by purs version 0.15.7\nimport * as $foreign from \"./foreign.js\";\nimport * as Control_Alt from \"../Control.Alt/index.js\";\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Apply from \"../Control.Apply/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Control_Plus from \"../Control.Plus/index.js\";\nimport * as Data_Either from \"../Data.Either/index.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor_Coproduct from \"../Data.Functor.Coproduct/index.js\";\nimport * as Data_HeytingAlgebra from \"../Data.HeytingAlgebra/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Maybe_First from \"../Data.Maybe.First/index.js\";\nimport * as Data_Monoid from \"../Data.Monoid/index.js\";\nimport * as Data_Monoid_Conj from \"../Data.Monoid.Conj/index.js\";\nimport * as Data_Monoid_Disj from \"../Data.Monoid.Disj/index.js\";\nimport * as Data_Monoid_Dual from \"../Data.Monoid.Dual/index.js\";\nimport * as Data_Monoid_Endo from \"../Data.Monoid.Endo/index.js\";\nimport * as Data_Newtype from \"../Data.Newtype/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Data_Ordering from \"../Data.Ordering/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nimport * as Data_Semiring from \"../Data.Semiring/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nvar identity = /* #__PURE__ */ Control_Category.identity(Control_Category.categoryFn);\nvar eq1 = /* #__PURE__ */ Data_Eq.eq(Data_Ordering.eqOrdering);\nvar unwrap = /* #__PURE__ */ Data_Newtype.unwrap();\nvar monoidEndo = /* #__PURE__ */ Data_Monoid_Endo.monoidEndo(Control_Category.categoryFn);\nvar monoidDual = /* #__PURE__ */ Data_Monoid_Dual.monoidDual(monoidEndo);\nvar alaF = /* #__PURE__ */ Data_Newtype.alaF()()()();\nvar foldr = function (dict) {\n return dict.foldr;\n};\nvar indexr = function (dictFoldable) {\n var foldr2 = foldr(dictFoldable);\n return function (idx) {\n var go = function (a) {\n return function (cursor) {\n if (cursor.elem instanceof Data_Maybe.Just) {\n return cursor;\n };\n var $292 = cursor.pos === idx;\n if ($292) {\n return {\n elem: new Data_Maybe.Just(a),\n pos: cursor.pos\n };\n };\n return {\n pos: cursor.pos + 1 | 0,\n elem: cursor.elem\n };\n };\n };\n var $451 = foldr2(go)({\n elem: Data_Maybe.Nothing.value,\n pos: 0\n });\n return function ($452) {\n return (function (v) {\n return v.elem;\n })($451($452));\n };\n };\n};\nvar $$null = function (dictFoldable) {\n return foldr(dictFoldable)(function (v) {\n return function (v1) {\n return false;\n };\n })(true);\n};\nvar oneOf = function (dictFoldable) {\n var foldr2 = foldr(dictFoldable);\n return function (dictPlus) {\n return foldr2(Control_Alt.alt(dictPlus.Alt0()))(Control_Plus.empty(dictPlus));\n };\n};\nvar oneOfMap = function (dictFoldable) {\n var foldr2 = foldr(dictFoldable);\n return function (dictPlus) {\n var alt = Control_Alt.alt(dictPlus.Alt0());\n var empty = Control_Plus.empty(dictPlus);\n return function (f) {\n return foldr2(function ($453) {\n return alt(f($453));\n })(empty);\n };\n };\n};\nvar traverse_ = function (dictApplicative) {\n var applySecond = Control_Apply.applySecond(dictApplicative.Apply0());\n var pure = Control_Applicative.pure(dictApplicative);\n return function (dictFoldable) {\n var foldr2 = foldr(dictFoldable);\n return function (f) {\n return foldr2(function ($454) {\n return applySecond(f($454));\n })(pure(Data_Unit.unit));\n };\n };\n};\nvar for_ = function (dictApplicative) {\n var traverse_1 = traverse_(dictApplicative);\n return function (dictFoldable) {\n return Data_Function.flip(traverse_1(dictFoldable));\n };\n};\nvar sequence_ = function (dictApplicative) {\n var traverse_1 = traverse_(dictApplicative);\n return function (dictFoldable) {\n return traverse_1(dictFoldable)(identity);\n };\n};\nvar foldl = function (dict) {\n return dict.foldl;\n};\nvar indexl = function (dictFoldable) {\n var foldl2 = foldl(dictFoldable);\n return function (idx) {\n var go = function (cursor) {\n return function (a) {\n if (cursor.elem instanceof Data_Maybe.Just) {\n return cursor;\n };\n var $296 = cursor.pos === idx;\n if ($296) {\n return {\n elem: new Data_Maybe.Just(a),\n pos: cursor.pos\n };\n };\n return {\n pos: cursor.pos + 1 | 0,\n elem: cursor.elem\n };\n };\n };\n var $455 = foldl2(go)({\n elem: Data_Maybe.Nothing.value,\n pos: 0\n });\n return function ($456) {\n return (function (v) {\n return v.elem;\n })($455($456));\n };\n };\n};\nvar intercalate = function (dictFoldable) {\n var foldl2 = foldl(dictFoldable);\n return function (dictMonoid) {\n var append = Data_Semigroup.append(dictMonoid.Semigroup0());\n var mempty = Data_Monoid.mempty(dictMonoid);\n return function (sep) {\n return function (xs) {\n var go = function (v) {\n return function (v1) {\n if (v.init) {\n return {\n init: false,\n acc: v1\n };\n };\n return {\n init: false,\n acc: append(v.acc)(append(sep)(v1))\n };\n };\n };\n return (foldl2(go)({\n init: true,\n acc: mempty\n })(xs)).acc;\n };\n };\n };\n};\nvar length = function (dictFoldable) {\n var foldl2 = foldl(dictFoldable);\n return function (dictSemiring) {\n var add1 = Data_Semiring.add(dictSemiring);\n var one = Data_Semiring.one(dictSemiring);\n return foldl2(function (c) {\n return function (v) {\n return add1(one)(c);\n };\n })(Data_Semiring.zero(dictSemiring));\n };\n};\nvar maximumBy = function (dictFoldable) {\n var foldl2 = foldl(dictFoldable);\n return function (cmp) {\n var max$prime = function (v) {\n return function (v1) {\n if (v instanceof Data_Maybe.Nothing) {\n return new Data_Maybe.Just(v1);\n };\n if (v instanceof Data_Maybe.Just) {\n return new Data_Maybe.Just((function () {\n var $303 = eq1(cmp(v.value0)(v1))(Data_Ordering.GT.value);\n if ($303) {\n return v.value0;\n };\n return v1;\n })());\n };\n throw new Error(\"Failed pattern match at Data.Foldable (line 441, column 3 - line 441, column 27): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n };\n return foldl2(max$prime)(Data_Maybe.Nothing.value);\n };\n};\nvar maximum = function (dictOrd) {\n var compare = Data_Ord.compare(dictOrd);\n return function (dictFoldable) {\n return maximumBy(dictFoldable)(compare);\n };\n};\nvar minimumBy = function (dictFoldable) {\n var foldl2 = foldl(dictFoldable);\n return function (cmp) {\n var min$prime = function (v) {\n return function (v1) {\n if (v instanceof Data_Maybe.Nothing) {\n return new Data_Maybe.Just(v1);\n };\n if (v instanceof Data_Maybe.Just) {\n return new Data_Maybe.Just((function () {\n var $307 = eq1(cmp(v.value0)(v1))(Data_Ordering.LT.value);\n if ($307) {\n return v.value0;\n };\n return v1;\n })());\n };\n throw new Error(\"Failed pattern match at Data.Foldable (line 454, column 3 - line 454, column 27): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n };\n return foldl2(min$prime)(Data_Maybe.Nothing.value);\n };\n};\nvar minimum = function (dictOrd) {\n var compare = Data_Ord.compare(dictOrd);\n return function (dictFoldable) {\n return minimumBy(dictFoldable)(compare);\n };\n};\nvar product = function (dictFoldable) {\n var foldl2 = foldl(dictFoldable);\n return function (dictSemiring) {\n return foldl2(Data_Semiring.mul(dictSemiring))(Data_Semiring.one(dictSemiring));\n };\n};\nvar sum = function (dictFoldable) {\n var foldl2 = foldl(dictFoldable);\n return function (dictSemiring) {\n return foldl2(Data_Semiring.add(dictSemiring))(Data_Semiring.zero(dictSemiring));\n };\n};\nvar foldableTuple = {\n foldr: function (f) {\n return function (z) {\n return function (v) {\n return f(v.value1)(z);\n };\n };\n },\n foldl: function (f) {\n return function (z) {\n return function (v) {\n return f(z)(v.value1);\n };\n };\n },\n foldMap: function (dictMonoid) {\n return function (f) {\n return function (v) {\n return f(v.value1);\n };\n };\n }\n};\nvar foldableMultiplicative = {\n foldr: function (f) {\n return function (z) {\n return function (v) {\n return f(v)(z);\n };\n };\n },\n foldl: function (f) {\n return function (z) {\n return function (v) {\n return f(z)(v);\n };\n };\n },\n foldMap: function (dictMonoid) {\n return function (f) {\n return function (v) {\n return f(v);\n };\n };\n }\n};\nvar foldableMaybe = {\n foldr: function (v) {\n return function (v1) {\n return function (v2) {\n if (v2 instanceof Data_Maybe.Nothing) {\n return v1;\n };\n if (v2 instanceof Data_Maybe.Just) {\n return v(v2.value0)(v1);\n };\n throw new Error(\"Failed pattern match at Data.Foldable (line 138, column 1 - line 144, column 27): \" + [ v.constructor.name, v1.constructor.name, v2.constructor.name ]);\n };\n };\n },\n foldl: function (v) {\n return function (v1) {\n return function (v2) {\n if (v2 instanceof Data_Maybe.Nothing) {\n return v1;\n };\n if (v2 instanceof Data_Maybe.Just) {\n return v(v1)(v2.value0);\n };\n throw new Error(\"Failed pattern match at Data.Foldable (line 138, column 1 - line 144, column 27): \" + [ v.constructor.name, v1.constructor.name, v2.constructor.name ]);\n };\n };\n },\n foldMap: function (dictMonoid) {\n var mempty = Data_Monoid.mempty(dictMonoid);\n return function (v) {\n return function (v1) {\n if (v1 instanceof Data_Maybe.Nothing) {\n return mempty;\n };\n if (v1 instanceof Data_Maybe.Just) {\n return v(v1.value0);\n };\n throw new Error(\"Failed pattern match at Data.Foldable (line 138, column 1 - line 144, column 27): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n };\n }\n};\nvar foldr1 = /* #__PURE__ */ foldr(foldableMaybe);\nvar foldl1 = /* #__PURE__ */ foldl(foldableMaybe);\nvar foldableIdentity = {\n foldr: function (f) {\n return function (z) {\n return function (v) {\n return f(v)(z);\n };\n };\n },\n foldl: function (f) {\n return function (z) {\n return function (v) {\n return f(z)(v);\n };\n };\n },\n foldMap: function (dictMonoid) {\n return function (f) {\n return function (v) {\n return f(v);\n };\n };\n }\n};\nvar foldableEither = {\n foldr: function (v) {\n return function (v1) {\n return function (v2) {\n if (v2 instanceof Data_Either.Left) {\n return v1;\n };\n if (v2 instanceof Data_Either.Right) {\n return v(v2.value0)(v1);\n };\n throw new Error(\"Failed pattern match at Data.Foldable (line 181, column 1 - line 187, column 28): \" + [ v.constructor.name, v1.constructor.name, v2.constructor.name ]);\n };\n };\n },\n foldl: function (v) {\n return function (v1) {\n return function (v2) {\n if (v2 instanceof Data_Either.Left) {\n return v1;\n };\n if (v2 instanceof Data_Either.Right) {\n return v(v1)(v2.value0);\n };\n throw new Error(\"Failed pattern match at Data.Foldable (line 181, column 1 - line 187, column 28): \" + [ v.constructor.name, v1.constructor.name, v2.constructor.name ]);\n };\n };\n },\n foldMap: function (dictMonoid) {\n var mempty = Data_Monoid.mempty(dictMonoid);\n return function (v) {\n return function (v1) {\n if (v1 instanceof Data_Either.Left) {\n return mempty;\n };\n if (v1 instanceof Data_Either.Right) {\n return v(v1.value0);\n };\n throw new Error(\"Failed pattern match at Data.Foldable (line 181, column 1 - line 187, column 28): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n };\n }\n};\nvar foldableDual = {\n foldr: function (f) {\n return function (z) {\n return function (v) {\n return f(v)(z);\n };\n };\n },\n foldl: function (f) {\n return function (z) {\n return function (v) {\n return f(z)(v);\n };\n };\n },\n foldMap: function (dictMonoid) {\n return function (f) {\n return function (v) {\n return f(v);\n };\n };\n }\n};\nvar foldableDisj = {\n foldr: function (f) {\n return function (z) {\n return function (v) {\n return f(v)(z);\n };\n };\n },\n foldl: function (f) {\n return function (z) {\n return function (v) {\n return f(z)(v);\n };\n };\n },\n foldMap: function (dictMonoid) {\n return function (f) {\n return function (v) {\n return f(v);\n };\n };\n }\n};\nvar foldableConst = {\n foldr: function (v) {\n return function (z) {\n return function (v1) {\n return z;\n };\n };\n },\n foldl: function (v) {\n return function (z) {\n return function (v1) {\n return z;\n };\n };\n },\n foldMap: function (dictMonoid) {\n var mempty = Data_Monoid.mempty(dictMonoid);\n return function (v) {\n return function (v1) {\n return mempty;\n };\n };\n }\n};\nvar foldableConj = {\n foldr: function (f) {\n return function (z) {\n return function (v) {\n return f(v)(z);\n };\n };\n },\n foldl: function (f) {\n return function (z) {\n return function (v) {\n return f(z)(v);\n };\n };\n },\n foldMap: function (dictMonoid) {\n return function (f) {\n return function (v) {\n return f(v);\n };\n };\n }\n};\nvar foldableAdditive = {\n foldr: function (f) {\n return function (z) {\n return function (v) {\n return f(v)(z);\n };\n };\n },\n foldl: function (f) {\n return function (z) {\n return function (v) {\n return f(z)(v);\n };\n };\n },\n foldMap: function (dictMonoid) {\n return function (f) {\n return function (v) {\n return f(v);\n };\n };\n }\n};\nvar foldMapDefaultR = function (dictFoldable) {\n var foldr2 = foldr(dictFoldable);\n return function (dictMonoid) {\n var append = Data_Semigroup.append(dictMonoid.Semigroup0());\n var mempty = Data_Monoid.mempty(dictMonoid);\n return function (f) {\n return foldr2(function (x) {\n return function (acc) {\n return append(f(x))(acc);\n };\n })(mempty);\n };\n };\n};\nvar foldableArray = {\n foldr: $foreign.foldrArray,\n foldl: $foreign.foldlArray,\n foldMap: function (dictMonoid) {\n return foldMapDefaultR(foldableArray)(dictMonoid);\n }\n};\nvar foldMapDefaultL = function (dictFoldable) {\n var foldl2 = foldl(dictFoldable);\n return function (dictMonoid) {\n var append = Data_Semigroup.append(dictMonoid.Semigroup0());\n var mempty = Data_Monoid.mempty(dictMonoid);\n return function (f) {\n return foldl2(function (acc) {\n return function (x) {\n return append(acc)(f(x));\n };\n })(mempty);\n };\n };\n};\nvar foldMap = function (dict) {\n return dict.foldMap;\n};\nvar foldMap1 = /* #__PURE__ */ foldMap(foldableMaybe);\nvar foldableApp = function (dictFoldable) {\n var foldr2 = foldr(dictFoldable);\n var foldl2 = foldl(dictFoldable);\n var foldMap2 = foldMap(dictFoldable);\n return {\n foldr: function (f) {\n return function (i) {\n return function (v) {\n return foldr2(f)(i)(v);\n };\n };\n },\n foldl: function (f) {\n return function (i) {\n return function (v) {\n return foldl2(f)(i)(v);\n };\n };\n },\n foldMap: function (dictMonoid) {\n var foldMap3 = foldMap2(dictMonoid);\n return function (f) {\n return function (v) {\n return foldMap3(f)(v);\n };\n };\n }\n };\n};\nvar foldableCompose = function (dictFoldable) {\n var foldr2 = foldr(dictFoldable);\n var foldl2 = foldl(dictFoldable);\n var foldMap2 = foldMap(dictFoldable);\n return function (dictFoldable1) {\n var foldr3 = foldr(dictFoldable1);\n var foldl3 = foldl(dictFoldable1);\n var foldMap3 = foldMap(dictFoldable1);\n return {\n foldr: function (f) {\n return function (i) {\n return function (v) {\n return foldr2(Data_Function.flip(foldr3(f)))(i)(v);\n };\n };\n },\n foldl: function (f) {\n return function (i) {\n return function (v) {\n return foldl2(foldl3(f))(i)(v);\n };\n };\n },\n foldMap: function (dictMonoid) {\n var foldMap4 = foldMap2(dictMonoid);\n var foldMap5 = foldMap3(dictMonoid);\n return function (f) {\n return function (v) {\n return foldMap4(foldMap5(f))(v);\n };\n };\n }\n };\n };\n};\nvar foldableCoproduct = function (dictFoldable) {\n var foldr2 = foldr(dictFoldable);\n var foldl2 = foldl(dictFoldable);\n var foldMap2 = foldMap(dictFoldable);\n return function (dictFoldable1) {\n var foldr3 = foldr(dictFoldable1);\n var foldl3 = foldl(dictFoldable1);\n var foldMap3 = foldMap(dictFoldable1);\n return {\n foldr: function (f) {\n return function (z) {\n return Data_Functor_Coproduct.coproduct(foldr2(f)(z))(foldr3(f)(z));\n };\n },\n foldl: function (f) {\n return function (z) {\n return Data_Functor_Coproduct.coproduct(foldl2(f)(z))(foldl3(f)(z));\n };\n },\n foldMap: function (dictMonoid) {\n var foldMap4 = foldMap2(dictMonoid);\n var foldMap5 = foldMap3(dictMonoid);\n return function (f) {\n return Data_Functor_Coproduct.coproduct(foldMap4(f))(foldMap5(f));\n };\n }\n };\n };\n};\nvar foldableFirst = {\n foldr: function (f) {\n return function (z) {\n return function (v) {\n return foldr1(f)(z)(v);\n };\n };\n },\n foldl: function (f) {\n return function (z) {\n return function (v) {\n return foldl1(f)(z)(v);\n };\n };\n },\n foldMap: function (dictMonoid) {\n var foldMap2 = foldMap1(dictMonoid);\n return function (f) {\n return function (v) {\n return foldMap2(f)(v);\n };\n };\n }\n};\nvar foldableLast = {\n foldr: function (f) {\n return function (z) {\n return function (v) {\n return foldr1(f)(z)(v);\n };\n };\n },\n foldl: function (f) {\n return function (z) {\n return function (v) {\n return foldl1(f)(z)(v);\n };\n };\n },\n foldMap: function (dictMonoid) {\n var foldMap2 = foldMap1(dictMonoid);\n return function (f) {\n return function (v) {\n return foldMap2(f)(v);\n };\n };\n }\n};\nvar foldableProduct = function (dictFoldable) {\n var foldr2 = foldr(dictFoldable);\n var foldl2 = foldl(dictFoldable);\n var foldMap2 = foldMap(dictFoldable);\n return function (dictFoldable1) {\n var foldr3 = foldr(dictFoldable1);\n var foldl3 = foldl(dictFoldable1);\n var foldMap3 = foldMap(dictFoldable1);\n return {\n foldr: function (f) {\n return function (z) {\n return function (v) {\n return foldr2(f)(foldr3(f)(z)(v.value1))(v.value0);\n };\n };\n },\n foldl: function (f) {\n return function (z) {\n return function (v) {\n return foldl3(f)(foldl2(f)(z)(v.value0))(v.value1);\n };\n };\n },\n foldMap: function (dictMonoid) {\n var append = Data_Semigroup.append(dictMonoid.Semigroup0());\n var foldMap4 = foldMap2(dictMonoid);\n var foldMap5 = foldMap3(dictMonoid);\n return function (f) {\n return function (v) {\n return append(foldMap4(f)(v.value0))(foldMap5(f)(v.value1));\n };\n };\n }\n };\n };\n};\nvar foldlDefault = function (dictFoldable) {\n var foldMap2 = foldMap(dictFoldable)(monoidDual);\n return function (c) {\n return function (u) {\n return function (xs) {\n return unwrap(unwrap(foldMap2((function () {\n var $457 = Data_Function.flip(c);\n return function ($458) {\n return Data_Monoid_Dual.Dual(Data_Monoid_Endo.Endo($457($458)));\n };\n })())(xs)))(u);\n };\n };\n };\n};\nvar foldrDefault = function (dictFoldable) {\n var foldMap2 = foldMap(dictFoldable)(monoidEndo);\n return function (c) {\n return function (u) {\n return function (xs) {\n return unwrap(foldMap2(function ($459) {\n return Data_Monoid_Endo.Endo(c($459));\n })(xs))(u);\n };\n };\n };\n};\nvar lookup = function (dictFoldable) {\n var foldMap2 = foldMap(dictFoldable)(Data_Maybe_First.monoidFirst);\n return function (dictEq) {\n var eq2 = Data_Eq.eq(dictEq);\n return function (a) {\n var $460 = foldMap2(function (v) {\n var $444 = eq2(a)(v.value0);\n if ($444) {\n return new Data_Maybe.Just(v.value1);\n };\n return Data_Maybe.Nothing.value;\n });\n return function ($461) {\n return unwrap($460($461));\n };\n };\n };\n};\nvar surroundMap = function (dictFoldable) {\n var foldMap2 = foldMap(dictFoldable)(monoidEndo);\n return function (dictSemigroup) {\n var append = Data_Semigroup.append(dictSemigroup);\n return function (d) {\n return function (t) {\n return function (f) {\n var joined = function (a) {\n return function (m) {\n return append(d)(append(t(a))(m));\n };\n };\n return unwrap(foldMap2(joined)(f))(d);\n };\n };\n };\n };\n};\nvar surround = function (dictFoldable) {\n var surroundMap1 = surroundMap(dictFoldable);\n return function (dictSemigroup) {\n var surroundMap2 = surroundMap1(dictSemigroup);\n return function (d) {\n return surroundMap2(d)(identity);\n };\n };\n};\nvar foldM = function (dictFoldable) {\n var foldl2 = foldl(dictFoldable);\n return function (dictMonad) {\n var bind = Control_Bind.bind(dictMonad.Bind1());\n var pure = Control_Applicative.pure(dictMonad.Applicative0());\n return function (f) {\n return function (b0) {\n return foldl2(function (b) {\n return function (a) {\n return bind(b)(Data_Function.flip(f)(a));\n };\n })(pure(b0));\n };\n };\n };\n};\nvar fold = function (dictFoldable) {\n var foldMap2 = foldMap(dictFoldable);\n return function (dictMonoid) {\n return foldMap2(dictMonoid)(identity);\n };\n};\nvar findMap = function (dictFoldable) {\n var foldl2 = foldl(dictFoldable);\n return function (p) {\n var go = function (v) {\n return function (v1) {\n if (v instanceof Data_Maybe.Nothing) {\n return p(v1);\n };\n return v;\n };\n };\n return foldl2(go)(Data_Maybe.Nothing.value);\n };\n};\nvar find = function (dictFoldable) {\n var foldl2 = foldl(dictFoldable);\n return function (p) {\n var go = function (v) {\n return function (v1) {\n if (v instanceof Data_Maybe.Nothing && p(v1)) {\n return new Data_Maybe.Just(v1);\n };\n return v;\n };\n };\n return foldl2(go)(Data_Maybe.Nothing.value);\n };\n};\nvar any = function (dictFoldable) {\n var foldMap2 = foldMap(dictFoldable);\n return function (dictHeytingAlgebra) {\n return alaF(Data_Monoid_Disj.Disj)(foldMap2(Data_Monoid_Disj.monoidDisj(dictHeytingAlgebra)));\n };\n};\nvar elem = function (dictFoldable) {\n var any1 = any(dictFoldable)(Data_HeytingAlgebra.heytingAlgebraBoolean);\n return function (dictEq) {\n var $462 = Data_Eq.eq(dictEq);\n return function ($463) {\n return any1($462($463));\n };\n };\n};\nvar notElem = function (dictFoldable) {\n var elem1 = elem(dictFoldable);\n return function (dictEq) {\n var elem2 = elem1(dictEq);\n return function (x) {\n var $464 = elem2(x);\n return function ($465) {\n return !$464($465);\n };\n };\n };\n};\nvar or = function (dictFoldable) {\n var any1 = any(dictFoldable);\n return function (dictHeytingAlgebra) {\n return any1(dictHeytingAlgebra)(identity);\n };\n};\nvar all = function (dictFoldable) {\n var foldMap2 = foldMap(dictFoldable);\n return function (dictHeytingAlgebra) {\n return alaF(Data_Monoid_Conj.Conj)(foldMap2(Data_Monoid_Conj.monoidConj(dictHeytingAlgebra)));\n };\n};\nvar and = function (dictFoldable) {\n var all1 = all(dictFoldable);\n return function (dictHeytingAlgebra) {\n return all1(dictHeytingAlgebra)(identity);\n };\n};\nexport {\n foldr,\n foldl,\n foldMap,\n foldrDefault,\n foldlDefault,\n foldMapDefaultL,\n foldMapDefaultR,\n fold,\n foldM,\n traverse_,\n for_,\n sequence_,\n oneOf,\n oneOfMap,\n intercalate,\n surroundMap,\n surround,\n and,\n or,\n all,\n any,\n sum,\n product,\n elem,\n notElem,\n indexl,\n indexr,\n find,\n findMap,\n maximum,\n maximumBy,\n minimum,\n minimumBy,\n $$null as null,\n length,\n lookup,\n foldableArray,\n foldableMaybe,\n foldableFirst,\n foldableLast,\n foldableAdditive,\n foldableDual,\n foldableDisj,\n foldableConj,\n foldableMultiplicative,\n foldableEither,\n foldableTuple,\n foldableIdentity,\n foldableConst,\n foldableProduct,\n foldableCoproduct,\n foldableCompose,\n foldableApp\n};\n","export const foldrArray = function (f) {\n return function (init) {\n return function (xs) {\n var acc = init;\n var len = xs.length;\n for (var i = len - 1; i >= 0; i--) {\n acc = f(xs[i])(acc);\n }\n return acc;\n };\n };\n};\n\nexport const foldlArray = function (f) {\n return function (init) {\n return function (xs) {\n var acc = init;\n var len = xs.length;\n for (var i = 0; i < len; i++) {\n acc = f(acc)(xs[i]);\n }\n return acc;\n };\n };\n};\n","// jshint maxparams: 3\n\nexport const traverseArrayImpl = (function () {\n function array1(a) {\n return [a];\n }\n\n function array2(a) {\n return function (b) {\n return [a, b];\n };\n }\n\n function array3(a) {\n return function (b) {\n return function (c) {\n return [a, b, c];\n };\n };\n }\n\n function concat2(xs) {\n return function (ys) {\n return xs.concat(ys);\n };\n }\n\n return function (apply) {\n return function (map) {\n return function (pure) {\n return function (f) {\n return function (array) {\n function go(bot, top) {\n switch (top - bot) {\n case 0: return pure([]);\n case 1: return map(array1)(f(array[bot]));\n case 2: return apply(map(array2)(f(array[bot])))(f(array[bot + 1]));\n case 3: return apply(apply(map(array3)(f(array[bot])))(f(array[bot + 1])))(f(array[bot + 2]));\n default:\n // This slightly tricky pivot selection aims to produce two\n // even-length partitions where possible.\n var pivot = bot + Math.floor((top - bot) / 4) * 2;\n return apply(map(concat2)(go(bot, pivot)))(go(pivot, top));\n }\n }\n return go(0, array.length);\n };\n };\n };\n };\n };\n})();\n","// Generated by purs version 0.15.7\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Functor_Invariant from \"../Data.Functor.Invariant/index.js\";\nimport * as Data_Monoid from \"../Data.Monoid/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nimport * as Data_Show from \"../Data.Show/index.js\";\nvar Const = function (x) {\n return x;\n};\nvar showConst = function (dictShow) {\n var show = Data_Show.show(dictShow);\n return {\n show: function (v) {\n return \"(Const \" + (show(v) + \")\");\n }\n };\n};\nvar semiringConst = function (dictSemiring) {\n return dictSemiring;\n};\nvar semigroupoidConst = {\n compose: function (v) {\n return function (v1) {\n return v1;\n };\n }\n};\nvar semigroupConst = function (dictSemigroup) {\n return dictSemigroup;\n};\nvar ringConst = function (dictRing) {\n return dictRing;\n};\nvar ordConst = function (dictOrd) {\n return dictOrd;\n};\nvar newtypeConst = {\n Coercible0: function () {\n return undefined;\n }\n};\nvar monoidConst = function (dictMonoid) {\n return dictMonoid;\n};\nvar heytingAlgebraConst = function (dictHeytingAlgebra) {\n return dictHeytingAlgebra;\n};\nvar functorConst = {\n map: function (f) {\n return function (m) {\n return m;\n };\n }\n};\nvar invariantConst = {\n imap: /* #__PURE__ */ Data_Functor_Invariant.imapF(functorConst)\n};\nvar euclideanRingConst = function (dictEuclideanRing) {\n return dictEuclideanRing;\n};\nvar eqConst = function (dictEq) {\n return dictEq;\n};\nvar eq1Const = function (dictEq) {\n var eq = Data_Eq.eq(eqConst(dictEq));\n return {\n eq1: function (dictEq1) {\n return eq;\n }\n };\n};\nvar ord1Const = function (dictOrd) {\n var compare = Data_Ord.compare(ordConst(dictOrd));\n var eq1Const1 = eq1Const(dictOrd.Eq0());\n return {\n compare1: function (dictOrd1) {\n return compare;\n },\n Eq10: function () {\n return eq1Const1;\n }\n };\n};\nvar commutativeRingConst = function (dictCommutativeRing) {\n return dictCommutativeRing;\n};\nvar boundedConst = function (dictBounded) {\n return dictBounded;\n};\nvar booleanAlgebraConst = function (dictBooleanAlgebra) {\n return dictBooleanAlgebra;\n};\nvar applyConst = function (dictSemigroup) {\n var append1 = Data_Semigroup.append(dictSemigroup);\n return {\n apply: function (v) {\n return function (v1) {\n return append1(v)(v1);\n };\n },\n Functor0: function () {\n return functorConst;\n }\n };\n};\nvar applicativeConst = function (dictMonoid) {\n var mempty = Data_Monoid.mempty(dictMonoid);\n var applyConst1 = applyConst(dictMonoid.Semigroup0());\n return {\n pure: function (v) {\n return mempty;\n },\n Apply0: function () {\n return applyConst1;\n }\n };\n};\nexport {\n Const,\n newtypeConst,\n eqConst,\n eq1Const,\n ordConst,\n ord1Const,\n boundedConst,\n showConst,\n semigroupoidConst,\n semigroupConst,\n monoidConst,\n semiringConst,\n ringConst,\n euclideanRingConst,\n commutativeRingConst,\n heytingAlgebraConst,\n booleanAlgebraConst,\n functorConst,\n invariantConst,\n applyConst,\n applicativeConst\n};\n","// Generated by purs version 0.15.7\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Data_Semiring from \"../Data.Semiring/index.js\";\nimport * as Data_Show from \"../Data.Show/index.js\";\nvar Additive = function (x) {\n return x;\n};\nvar showAdditive = function (dictShow) {\n var show = Data_Show.show(dictShow);\n return {\n show: function (v) {\n return \"(Additive \" + (show(v) + \")\");\n }\n };\n};\nvar semigroupAdditive = function (dictSemiring) {\n var add = Data_Semiring.add(dictSemiring);\n return {\n append: function (v) {\n return function (v1) {\n return add(v)(v1);\n };\n }\n };\n};\nvar ordAdditive = function (dictOrd) {\n return dictOrd;\n};\nvar monoidAdditive = function (dictSemiring) {\n var semigroupAdditive1 = semigroupAdditive(dictSemiring);\n return {\n mempty: Data_Semiring.zero(dictSemiring),\n Semigroup0: function () {\n return semigroupAdditive1;\n }\n };\n};\nvar functorAdditive = {\n map: function (f) {\n return function (m) {\n return f(m);\n };\n }\n};\nvar eqAdditive = function (dictEq) {\n return dictEq;\n};\nvar eq1Additive = {\n eq1: function (dictEq) {\n return Data_Eq.eq(eqAdditive(dictEq));\n }\n};\nvar ord1Additive = {\n compare1: function (dictOrd) {\n return Data_Ord.compare(ordAdditive(dictOrd));\n },\n Eq10: function () {\n return eq1Additive;\n }\n};\nvar boundedAdditive = function (dictBounded) {\n return dictBounded;\n};\nvar applyAdditive = {\n apply: function (v) {\n return function (v1) {\n return v(v1);\n };\n },\n Functor0: function () {\n return functorAdditive;\n }\n};\nvar bindAdditive = {\n bind: function (v) {\n return function (f) {\n return f(v);\n };\n },\n Apply0: function () {\n return applyAdditive;\n }\n};\nvar applicativeAdditive = {\n pure: Additive,\n Apply0: function () {\n return applyAdditive;\n }\n};\nvar monadAdditive = {\n Applicative0: function () {\n return applicativeAdditive;\n },\n Bind1: function () {\n return bindAdditive;\n }\n};\nexport {\n Additive,\n eqAdditive,\n eq1Additive,\n ordAdditive,\n ord1Additive,\n boundedAdditive,\n showAdditive,\n functorAdditive,\n applyAdditive,\n applicativeAdditive,\n bindAdditive,\n monadAdditive,\n semigroupAdditive,\n monoidAdditive\n};\n","// Generated by purs version 0.15.7\nimport * as $foreign from \"./foreign.js\";\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Apply from \"../Control.Apply/index.js\";\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Data_Const from \"../Data.Const/index.js\";\nimport * as Data_Either from \"../Data.Either/index.js\";\nimport * as Data_Foldable from \"../Data.Foldable/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Functor_App from \"../Data.Functor.App/index.js\";\nimport * as Data_Functor_Compose from \"../Data.Functor.Compose/index.js\";\nimport * as Data_Functor_Coproduct from \"../Data.Functor.Coproduct/index.js\";\nimport * as Data_Functor_Product from \"../Data.Functor.Product/index.js\";\nimport * as Data_Identity from \"../Data.Identity/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Maybe_First from \"../Data.Maybe.First/index.js\";\nimport * as Data_Maybe_Last from \"../Data.Maybe.Last/index.js\";\nimport * as Data_Monoid_Additive from \"../Data.Monoid.Additive/index.js\";\nimport * as Data_Monoid_Conj from \"../Data.Monoid.Conj/index.js\";\nimport * as Data_Monoid_Disj from \"../Data.Monoid.Disj/index.js\";\nimport * as Data_Monoid_Dual from \"../Data.Monoid.Dual/index.js\";\nimport * as Data_Monoid_Multiplicative from \"../Data.Monoid.Multiplicative/index.js\";\nimport * as Data_Traversable_Accum from \"../Data.Traversable.Accum/index.js\";\nimport * as Data_Traversable_Accum_Internal from \"../Data.Traversable.Accum.Internal/index.js\";\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nvar identity = /* #__PURE__ */ Control_Category.identity(Control_Category.categoryFn);\nvar traverse = function (dict) {\n return dict.traverse;\n};\nvar traversableTuple = {\n traverse: function (dictApplicative) {\n var map = Data_Functor.map((dictApplicative.Apply0()).Functor0());\n return function (f) {\n return function (v) {\n return map(Data_Tuple.Tuple.create(v.value0))(f(v.value1));\n };\n };\n },\n sequence: function (dictApplicative) {\n var map = Data_Functor.map((dictApplicative.Apply0()).Functor0());\n return function (v) {\n return map(Data_Tuple.Tuple.create(v.value0))(v.value1);\n };\n },\n Functor0: function () {\n return Data_Tuple.functorTuple;\n },\n Foldable1: function () {\n return Data_Foldable.foldableTuple;\n }\n};\nvar traversableMultiplicative = {\n traverse: function (dictApplicative) {\n var map = Data_Functor.map((dictApplicative.Apply0()).Functor0());\n return function (f) {\n return function (v) {\n return map(Data_Monoid_Multiplicative.Multiplicative)(f(v));\n };\n };\n },\n sequence: function (dictApplicative) {\n var map = Data_Functor.map((dictApplicative.Apply0()).Functor0());\n return function (v) {\n return map(Data_Monoid_Multiplicative.Multiplicative)(v);\n };\n },\n Functor0: function () {\n return Data_Monoid_Multiplicative.functorMultiplicative;\n },\n Foldable1: function () {\n return Data_Foldable.foldableMultiplicative;\n }\n};\nvar traversableMaybe = {\n traverse: function (dictApplicative) {\n var pure = Control_Applicative.pure(dictApplicative);\n var map = Data_Functor.map((dictApplicative.Apply0()).Functor0());\n return function (v) {\n return function (v1) {\n if (v1 instanceof Data_Maybe.Nothing) {\n return pure(Data_Maybe.Nothing.value);\n };\n if (v1 instanceof Data_Maybe.Just) {\n return map(Data_Maybe.Just.create)(v(v1.value0));\n };\n throw new Error(\"Failed pattern match at Data.Traversable (line 115, column 1 - line 119, column 33): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n };\n },\n sequence: function (dictApplicative) {\n var pure = Control_Applicative.pure(dictApplicative);\n var map = Data_Functor.map((dictApplicative.Apply0()).Functor0());\n return function (v) {\n if (v instanceof Data_Maybe.Nothing) {\n return pure(Data_Maybe.Nothing.value);\n };\n if (v instanceof Data_Maybe.Just) {\n return map(Data_Maybe.Just.create)(v.value0);\n };\n throw new Error(\"Failed pattern match at Data.Traversable (line 115, column 1 - line 119, column 33): \" + [ v.constructor.name ]);\n };\n },\n Functor0: function () {\n return Data_Maybe.functorMaybe;\n },\n Foldable1: function () {\n return Data_Foldable.foldableMaybe;\n }\n};\nvar traverse1 = /* #__PURE__ */ traverse(traversableMaybe);\nvar traversableIdentity = {\n traverse: function (dictApplicative) {\n var map = Data_Functor.map((dictApplicative.Apply0()).Functor0());\n return function (f) {\n return function (v) {\n return map(Data_Identity.Identity)(f(v));\n };\n };\n },\n sequence: function (dictApplicative) {\n var map = Data_Functor.map((dictApplicative.Apply0()).Functor0());\n return function (v) {\n return map(Data_Identity.Identity)(v);\n };\n },\n Functor0: function () {\n return Data_Identity.functorIdentity;\n },\n Foldable1: function () {\n return Data_Foldable.foldableIdentity;\n }\n};\nvar traversableEither = {\n traverse: function (dictApplicative) {\n var pure = Control_Applicative.pure(dictApplicative);\n var map = Data_Functor.map((dictApplicative.Apply0()).Functor0());\n return function (v) {\n return function (v1) {\n if (v1 instanceof Data_Either.Left) {\n return pure(new Data_Either.Left(v1.value0));\n };\n if (v1 instanceof Data_Either.Right) {\n return map(Data_Either.Right.create)(v(v1.value0));\n };\n throw new Error(\"Failed pattern match at Data.Traversable (line 149, column 1 - line 153, column 36): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n };\n },\n sequence: function (dictApplicative) {\n var pure = Control_Applicative.pure(dictApplicative);\n var map = Data_Functor.map((dictApplicative.Apply0()).Functor0());\n return function (v) {\n if (v instanceof Data_Either.Left) {\n return pure(new Data_Either.Left(v.value0));\n };\n if (v instanceof Data_Either.Right) {\n return map(Data_Either.Right.create)(v.value0);\n };\n throw new Error(\"Failed pattern match at Data.Traversable (line 149, column 1 - line 153, column 36): \" + [ v.constructor.name ]);\n };\n },\n Functor0: function () {\n return Data_Either.functorEither;\n },\n Foldable1: function () {\n return Data_Foldable.foldableEither;\n }\n};\nvar traversableDual = {\n traverse: function (dictApplicative) {\n var map = Data_Functor.map((dictApplicative.Apply0()).Functor0());\n return function (f) {\n return function (v) {\n return map(Data_Monoid_Dual.Dual)(f(v));\n };\n };\n },\n sequence: function (dictApplicative) {\n var map = Data_Functor.map((dictApplicative.Apply0()).Functor0());\n return function (v) {\n return map(Data_Monoid_Dual.Dual)(v);\n };\n },\n Functor0: function () {\n return Data_Monoid_Dual.functorDual;\n },\n Foldable1: function () {\n return Data_Foldable.foldableDual;\n }\n};\nvar traversableDisj = {\n traverse: function (dictApplicative) {\n var map = Data_Functor.map((dictApplicative.Apply0()).Functor0());\n return function (f) {\n return function (v) {\n return map(Data_Monoid_Disj.Disj)(f(v));\n };\n };\n },\n sequence: function (dictApplicative) {\n var map = Data_Functor.map((dictApplicative.Apply0()).Functor0());\n return function (v) {\n return map(Data_Monoid_Disj.Disj)(v);\n };\n },\n Functor0: function () {\n return Data_Monoid_Disj.functorDisj;\n },\n Foldable1: function () {\n return Data_Foldable.foldableDisj;\n }\n};\nvar traversableConst = {\n traverse: function (dictApplicative) {\n var pure = Control_Applicative.pure(dictApplicative);\n return function (v) {\n return function (v1) {\n return pure(v1);\n };\n };\n },\n sequence: function (dictApplicative) {\n var pure = Control_Applicative.pure(dictApplicative);\n return function (v) {\n return pure(v);\n };\n },\n Functor0: function () {\n return Data_Const.functorConst;\n },\n Foldable1: function () {\n return Data_Foldable.foldableConst;\n }\n};\nvar traversableConj = {\n traverse: function (dictApplicative) {\n var map = Data_Functor.map((dictApplicative.Apply0()).Functor0());\n return function (f) {\n return function (v) {\n return map(Data_Monoid_Conj.Conj)(f(v));\n };\n };\n },\n sequence: function (dictApplicative) {\n var map = Data_Functor.map((dictApplicative.Apply0()).Functor0());\n return function (v) {\n return map(Data_Monoid_Conj.Conj)(v);\n };\n },\n Functor0: function () {\n return Data_Monoid_Conj.functorConj;\n },\n Foldable1: function () {\n return Data_Foldable.foldableConj;\n }\n};\nvar traversableCompose = function (dictTraversable) {\n var traverse2 = traverse(dictTraversable);\n var functorCompose = Data_Functor_Compose.functorCompose(dictTraversable.Functor0());\n var foldableCompose = Data_Foldable.foldableCompose(dictTraversable.Foldable1());\n return function (dictTraversable1) {\n var traverse3 = traverse(dictTraversable1);\n var functorCompose1 = functorCompose(dictTraversable1.Functor0());\n var foldableCompose1 = foldableCompose(dictTraversable1.Foldable1());\n return {\n traverse: function (dictApplicative) {\n var map = Data_Functor.map((dictApplicative.Apply0()).Functor0());\n var traverse4 = traverse2(dictApplicative);\n var traverse5 = traverse3(dictApplicative);\n return function (f) {\n return function (v) {\n return map(Data_Functor_Compose.Compose)(traverse4(traverse5(f))(v));\n };\n };\n },\n sequence: function (dictApplicative) {\n return traverse(traversableCompose(dictTraversable)(dictTraversable1))(dictApplicative)(identity);\n },\n Functor0: function () {\n return functorCompose1;\n },\n Foldable1: function () {\n return foldableCompose1;\n }\n };\n };\n};\nvar traversableAdditive = {\n traverse: function (dictApplicative) {\n var map = Data_Functor.map((dictApplicative.Apply0()).Functor0());\n return function (f) {\n return function (v) {\n return map(Data_Monoid_Additive.Additive)(f(v));\n };\n };\n },\n sequence: function (dictApplicative) {\n var map = Data_Functor.map((dictApplicative.Apply0()).Functor0());\n return function (v) {\n return map(Data_Monoid_Additive.Additive)(v);\n };\n },\n Functor0: function () {\n return Data_Monoid_Additive.functorAdditive;\n },\n Foldable1: function () {\n return Data_Foldable.foldableAdditive;\n }\n};\nvar sequenceDefault = function (dictTraversable) {\n var traverse2 = traverse(dictTraversable);\n return function (dictApplicative) {\n return traverse2(dictApplicative)(identity);\n };\n};\nvar traversableArray = {\n traverse: function (dictApplicative) {\n var Apply0 = dictApplicative.Apply0();\n return $foreign.traverseArrayImpl(Control_Apply.apply(Apply0))(Data_Functor.map(Apply0.Functor0()))(Control_Applicative.pure(dictApplicative));\n },\n sequence: function (dictApplicative) {\n return sequenceDefault(traversableArray)(dictApplicative);\n },\n Functor0: function () {\n return Data_Functor.functorArray;\n },\n Foldable1: function () {\n return Data_Foldable.foldableArray;\n }\n};\nvar sequence = function (dict) {\n return dict.sequence;\n};\nvar sequence1 = /* #__PURE__ */ sequence(traversableMaybe);\nvar traversableApp = function (dictTraversable) {\n var traverse2 = traverse(dictTraversable);\n var sequence2 = sequence(dictTraversable);\n var functorApp = Data_Functor_App.functorApp(dictTraversable.Functor0());\n var foldableApp = Data_Foldable.foldableApp(dictTraversable.Foldable1());\n return {\n traverse: function (dictApplicative) {\n var map = Data_Functor.map((dictApplicative.Apply0()).Functor0());\n var traverse3 = traverse2(dictApplicative);\n return function (f) {\n return function (v) {\n return map(Data_Functor_App.App)(traverse3(f)(v));\n };\n };\n },\n sequence: function (dictApplicative) {\n var map = Data_Functor.map((dictApplicative.Apply0()).Functor0());\n var sequence3 = sequence2(dictApplicative);\n return function (v) {\n return map(Data_Functor_App.App)(sequence3(v));\n };\n },\n Functor0: function () {\n return functorApp;\n },\n Foldable1: function () {\n return foldableApp;\n }\n };\n};\nvar traversableCoproduct = function (dictTraversable) {\n var traverse2 = traverse(dictTraversable);\n var sequence2 = sequence(dictTraversable);\n var functorCoproduct = Data_Functor_Coproduct.functorCoproduct(dictTraversable.Functor0());\n var foldableCoproduct = Data_Foldable.foldableCoproduct(dictTraversable.Foldable1());\n return function (dictTraversable1) {\n var traverse3 = traverse(dictTraversable1);\n var sequence3 = sequence(dictTraversable1);\n var functorCoproduct1 = functorCoproduct(dictTraversable1.Functor0());\n var foldableCoproduct1 = foldableCoproduct(dictTraversable1.Foldable1());\n return {\n traverse: function (dictApplicative) {\n var map = Data_Functor.map((dictApplicative.Apply0()).Functor0());\n var traverse4 = traverse2(dictApplicative);\n var traverse5 = traverse3(dictApplicative);\n return function (f) {\n return Data_Functor_Coproduct.coproduct((function () {\n var $313 = map(function ($316) {\n return Data_Functor_Coproduct.Coproduct(Data_Either.Left.create($316));\n });\n var $314 = traverse4(f);\n return function ($315) {\n return $313($314($315));\n };\n })())((function () {\n var $317 = map(function ($320) {\n return Data_Functor_Coproduct.Coproduct(Data_Either.Right.create($320));\n });\n var $318 = traverse5(f);\n return function ($319) {\n return $317($318($319));\n };\n })());\n };\n },\n sequence: function (dictApplicative) {\n var map = Data_Functor.map((dictApplicative.Apply0()).Functor0());\n return Data_Functor_Coproduct.coproduct((function () {\n var $321 = map(function ($324) {\n return Data_Functor_Coproduct.Coproduct(Data_Either.Left.create($324));\n });\n var $322 = sequence2(dictApplicative);\n return function ($323) {\n return $321($322($323));\n };\n })())((function () {\n var $325 = map(function ($328) {\n return Data_Functor_Coproduct.Coproduct(Data_Either.Right.create($328));\n });\n var $326 = sequence3(dictApplicative);\n return function ($327) {\n return $325($326($327));\n };\n })());\n },\n Functor0: function () {\n return functorCoproduct1;\n },\n Foldable1: function () {\n return foldableCoproduct1;\n }\n };\n };\n};\nvar traversableFirst = {\n traverse: function (dictApplicative) {\n var map = Data_Functor.map((dictApplicative.Apply0()).Functor0());\n var traverse2 = traverse1(dictApplicative);\n return function (f) {\n return function (v) {\n return map(Data_Maybe_First.First)(traverse2(f)(v));\n };\n };\n },\n sequence: function (dictApplicative) {\n var map = Data_Functor.map((dictApplicative.Apply0()).Functor0());\n var sequence2 = sequence1(dictApplicative);\n return function (v) {\n return map(Data_Maybe_First.First)(sequence2(v));\n };\n },\n Functor0: function () {\n return Data_Maybe_First.functorFirst;\n },\n Foldable1: function () {\n return Data_Foldable.foldableFirst;\n }\n};\nvar traversableLast = {\n traverse: function (dictApplicative) {\n var map = Data_Functor.map((dictApplicative.Apply0()).Functor0());\n var traverse2 = traverse1(dictApplicative);\n return function (f) {\n return function (v) {\n return map(Data_Maybe_Last.Last)(traverse2(f)(v));\n };\n };\n },\n sequence: function (dictApplicative) {\n var map = Data_Functor.map((dictApplicative.Apply0()).Functor0());\n var sequence2 = sequence1(dictApplicative);\n return function (v) {\n return map(Data_Maybe_Last.Last)(sequence2(v));\n };\n },\n Functor0: function () {\n return Data_Maybe_Last.functorLast;\n },\n Foldable1: function () {\n return Data_Foldable.foldableLast;\n }\n};\nvar traversableProduct = function (dictTraversable) {\n var traverse2 = traverse(dictTraversable);\n var sequence2 = sequence(dictTraversable);\n var functorProduct = Data_Functor_Product.functorProduct(dictTraversable.Functor0());\n var foldableProduct = Data_Foldable.foldableProduct(dictTraversable.Foldable1());\n return function (dictTraversable1) {\n var traverse3 = traverse(dictTraversable1);\n var sequence3 = sequence(dictTraversable1);\n var functorProduct1 = functorProduct(dictTraversable1.Functor0());\n var foldableProduct1 = foldableProduct(dictTraversable1.Foldable1());\n return {\n traverse: function (dictApplicative) {\n var lift2 = Control_Apply.lift2(dictApplicative.Apply0());\n var traverse4 = traverse2(dictApplicative);\n var traverse5 = traverse3(dictApplicative);\n return function (f) {\n return function (v) {\n return lift2(Data_Functor_Product.product)(traverse4(f)(v.value0))(traverse5(f)(v.value1));\n };\n };\n },\n sequence: function (dictApplicative) {\n var lift2 = Control_Apply.lift2(dictApplicative.Apply0());\n var sequence4 = sequence2(dictApplicative);\n var sequence5 = sequence3(dictApplicative);\n return function (v) {\n return lift2(Data_Functor_Product.product)(sequence4(v.value0))(sequence5(v.value1));\n };\n },\n Functor0: function () {\n return functorProduct1;\n },\n Foldable1: function () {\n return foldableProduct1;\n }\n };\n };\n};\nvar traverseDefault = function (dictTraversable) {\n var sequence2 = sequence(dictTraversable);\n var map = Data_Functor.map(dictTraversable.Functor0());\n return function (dictApplicative) {\n var sequence3 = sequence2(dictApplicative);\n return function (f) {\n return function (ta) {\n return sequence3(map(f)(ta));\n };\n };\n };\n};\nvar mapAccumR = function (dictTraversable) {\n var traverse2 = traverse(dictTraversable)(Data_Traversable_Accum_Internal.applicativeStateR);\n return function (f) {\n return function (s0) {\n return function (xs) {\n return Data_Traversable_Accum_Internal.stateR(traverse2(function (a) {\n return function (s) {\n return f(s)(a);\n };\n })(xs))(s0);\n };\n };\n };\n};\nvar scanr = function (dictTraversable) {\n var mapAccumR1 = mapAccumR(dictTraversable);\n return function (f) {\n return function (b0) {\n return function (xs) {\n return (mapAccumR1(function (b) {\n return function (a) {\n var b$prime = f(a)(b);\n return {\n accum: b$prime,\n value: b$prime\n };\n };\n })(b0)(xs)).value;\n };\n };\n };\n};\nvar mapAccumL = function (dictTraversable) {\n var traverse2 = traverse(dictTraversable)(Data_Traversable_Accum_Internal.applicativeStateL);\n return function (f) {\n return function (s0) {\n return function (xs) {\n return Data_Traversable_Accum_Internal.stateL(traverse2(function (a) {\n return function (s) {\n return f(s)(a);\n };\n })(xs))(s0);\n };\n };\n };\n};\nvar scanl = function (dictTraversable) {\n var mapAccumL1 = mapAccumL(dictTraversable);\n return function (f) {\n return function (b0) {\n return function (xs) {\n return (mapAccumL1(function (b) {\n return function (a) {\n var b$prime = f(b)(a);\n return {\n accum: b$prime,\n value: b$prime\n };\n };\n })(b0)(xs)).value;\n };\n };\n };\n};\nvar $$for = function (dictApplicative) {\n return function (dictTraversable) {\n var traverse2 = traverse(dictTraversable)(dictApplicative);\n return function (x) {\n return function (f) {\n return traverse2(f)(x);\n };\n };\n };\n};\nexport {\n traverse,\n sequence,\n traverseDefault,\n sequenceDefault,\n $$for as for,\n scanl,\n scanr,\n mapAccumL,\n mapAccumR,\n traversableArray,\n traversableMaybe,\n traversableFirst,\n traversableLast,\n traversableAdditive,\n traversableDual,\n traversableConj,\n traversableDisj,\n traversableMultiplicative,\n traversableEither,\n traversableTuple,\n traversableIdentity,\n traversableConst,\n traversableProduct,\n traversableCoproduct,\n traversableCompose,\n traversableApp\n};\nexport {\n all,\n and,\n any,\n elem,\n find,\n fold,\n foldMap,\n foldMapDefaultL,\n foldMapDefaultR,\n foldl,\n foldlDefault,\n foldr,\n foldrDefault,\n for_,\n intercalate,\n maximum,\n maximumBy,\n minimum,\n minimumBy,\n notElem,\n oneOf,\n or,\n sequence_,\n sum,\n traverse_\n} from \"../Data.Foldable/index.js\";\n","export const unfoldrArrayImpl = function (isNothing) {\n return function (fromJust) {\n return function (fst) {\n return function (snd) {\n return function (f) {\n return function (b) {\n var result = [];\n var value = b;\n while (true) { // eslint-disable-line no-constant-condition\n var maybe = f(value);\n if (isNothing(maybe)) return result;\n var tuple = fromJust(maybe);\n result.push(fst(tuple));\n value = snd(tuple);\n }\n };\n };\n };\n };\n };\n};\n","export const unfoldr1ArrayImpl = function (isNothing) {\n return function (fromJust) {\n return function (fst) {\n return function (snd) {\n return function (f) {\n return function (b) {\n var result = [];\n var value = b;\n while (true) { // eslint-disable-line no-constant-condition\n var tuple = f(value);\n result.push(fst(tuple));\n var maybe = snd(tuple);\n if (isNothing(maybe)) return result;\n value = fromJust(maybe);\n }\n };\n };\n };\n };\n };\n};\n","// Generated by purs version 0.15.7\nimport * as Data_Bounded from \"../Data.Bounded/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Data_Show from \"../Data.Show/index.js\";\nvar Max = function (x) {\n return x;\n};\nvar showMax = function (dictShow) {\n var show = Data_Show.show(dictShow);\n return {\n show: function (v) {\n return \"(Max \" + (show(v) + \")\");\n }\n };\n};\nvar semigroupMax = function (dictOrd) {\n var max = Data_Ord.max(dictOrd);\n return {\n append: function (v) {\n return function (v1) {\n return max(v)(v1);\n };\n }\n };\n};\nvar newtypeMax = {\n Coercible0: function () {\n return undefined;\n }\n};\nvar monoidMax = function (dictBounded) {\n var semigroupMax1 = semigroupMax(dictBounded.Ord0());\n return {\n mempty: Data_Bounded.bottom(dictBounded),\n Semigroup0: function () {\n return semigroupMax1;\n }\n };\n};\nvar eqMax = function (dictEq) {\n return dictEq;\n};\nvar ordMax = function (dictOrd) {\n var compare = Data_Ord.compare(dictOrd);\n var eqMax1 = eqMax(dictOrd.Eq0());\n return {\n compare: function (v) {\n return function (v1) {\n return compare(v)(v1);\n };\n },\n Eq0: function () {\n return eqMax1;\n }\n };\n};\nexport {\n Max,\n newtypeMax,\n eqMax,\n ordMax,\n semigroupMax,\n monoidMax,\n showMax\n};\n","// Generated by purs version 0.15.7\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Boolean from \"../Data.Boolean/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Semigroup_Traversable from \"../Data.Semigroup.Traversable/index.js\";\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nvar fromJust = /* #__PURE__ */ Data_Maybe.fromJust();\nvar unfoldr1 = function (dict) {\n return dict.unfoldr1;\n};\nvar unfoldable1Maybe = {\n unfoldr1: function (f) {\n return function (b) {\n return new Data_Maybe.Just(Data_Tuple.fst(f(b)));\n };\n }\n};\nvar unfoldable1Array = {\n unfoldr1: /* #__PURE__ */ $foreign.unfoldr1ArrayImpl(Data_Maybe.isNothing)(fromJust)(Data_Tuple.fst)(Data_Tuple.snd)\n};\nvar replicate1 = function (dictUnfoldable1) {\n var unfoldr11 = unfoldr1(dictUnfoldable1);\n return function (n) {\n return function (v) {\n var step = function (i) {\n if (i <= 0) {\n return new Data_Tuple.Tuple(v, Data_Maybe.Nothing.value);\n };\n if (Data_Boolean.otherwise) {\n return new Data_Tuple.Tuple(v, new Data_Maybe.Just(i - 1 | 0));\n };\n throw new Error(\"Failed pattern match at Data.Unfoldable1 (line 68, column 5 - line 68, column 39): \" + [ i.constructor.name ]);\n };\n return unfoldr11(step)(n - 1 | 0);\n };\n };\n};\nvar replicate1A = function (dictApply) {\n return function (dictUnfoldable1) {\n var replicate11 = replicate1(dictUnfoldable1);\n return function (dictTraversable1) {\n var sequence1 = Data_Semigroup_Traversable.sequence1(dictTraversable1)(dictApply);\n return function (n) {\n return function (m) {\n return sequence1(replicate11(n)(m));\n };\n };\n };\n };\n};\nvar singleton = function (dictUnfoldable1) {\n return replicate1(dictUnfoldable1)(1);\n};\nvar range = function (dictUnfoldable1) {\n var unfoldr11 = unfoldr1(dictUnfoldable1);\n return function (start) {\n return function (end) {\n var go = function (delta) {\n return function (i) {\n var i$prime = i + delta | 0;\n return new Data_Tuple.Tuple(i, (function () {\n var $25 = i === end;\n if ($25) {\n return Data_Maybe.Nothing.value;\n };\n return new Data_Maybe.Just(i$prime);\n })());\n };\n };\n var delta = (function () {\n var $26 = end >= start;\n if ($26) {\n return 1;\n };\n return -1 | 0;\n })();\n return unfoldr11(go(delta))(start);\n };\n };\n};\nvar iterateN = function (dictUnfoldable1) {\n var unfoldr11 = unfoldr1(dictUnfoldable1);\n return function (n) {\n return function (f) {\n return function (s) {\n var go = function (v) {\n return new Data_Tuple.Tuple(v.value0, (function () {\n var $28 = v.value1 > 0;\n if ($28) {\n return new Data_Maybe.Just(new Data_Tuple.Tuple(f(v.value0), v.value1 - 1 | 0));\n };\n return Data_Maybe.Nothing.value;\n })());\n };\n return unfoldr11(go)(new Data_Tuple.Tuple(s, n - 1 | 0));\n };\n };\n };\n};\nexport {\n unfoldr1,\n replicate1,\n replicate1A,\n singleton,\n range,\n iterateN,\n unfoldable1Array,\n unfoldable1Maybe\n};\n","// Generated by purs version 0.15.7\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Traversable from \"../Data.Traversable/index.js\";\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nimport * as Data_Unfoldable1 from \"../Data.Unfoldable1/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nvar map = /* #__PURE__ */ Data_Functor.map(Data_Maybe.functorMaybe);\nvar fromJust = /* #__PURE__ */ Data_Maybe.fromJust();\nvar unfoldr = function (dict) {\n return dict.unfoldr;\n};\nvar unfoldableMaybe = {\n unfoldr: function (f) {\n return function (b) {\n return map(Data_Tuple.fst)(f(b));\n };\n },\n Unfoldable10: function () {\n return Data_Unfoldable1.unfoldable1Maybe;\n }\n};\nvar unfoldableArray = {\n unfoldr: /* #__PURE__ */ $foreign.unfoldrArrayImpl(Data_Maybe.isNothing)(fromJust)(Data_Tuple.fst)(Data_Tuple.snd),\n Unfoldable10: function () {\n return Data_Unfoldable1.unfoldable1Array;\n }\n};\nvar replicate = function (dictUnfoldable) {\n var unfoldr1 = unfoldr(dictUnfoldable);\n return function (n) {\n return function (v) {\n var step = function (i) {\n var $17 = i <= 0;\n if ($17) {\n return Data_Maybe.Nothing.value;\n };\n return new Data_Maybe.Just(new Data_Tuple.Tuple(v, i - 1 | 0));\n };\n return unfoldr1(step)(n);\n };\n };\n};\nvar replicateA = function (dictApplicative) {\n return function (dictUnfoldable) {\n var replicate1 = replicate(dictUnfoldable);\n return function (dictTraversable) {\n var sequence = Data_Traversable.sequence(dictTraversable)(dictApplicative);\n return function (n) {\n return function (m) {\n return sequence(replicate1(n)(m));\n };\n };\n };\n };\n};\nvar none = function (dictUnfoldable) {\n return unfoldr(dictUnfoldable)(Data_Function[\"const\"](Data_Maybe.Nothing.value))(Data_Unit.unit);\n};\nvar fromMaybe = function (dictUnfoldable) {\n return unfoldr(dictUnfoldable)(function (b) {\n return map(Data_Function.flip(Data_Tuple.Tuple.create)(Data_Maybe.Nothing.value))(b);\n });\n};\nexport {\n unfoldr,\n replicate,\n replicateA,\n none,\n fromMaybe,\n unfoldableArray,\n unfoldableMaybe\n};\nexport {\n iterateN,\n range,\n replicate1,\n replicate1A,\n singleton,\n unfoldr1\n} from \"../Data.Unfoldable1/index.js\";\n","// Generated by purs version 0.15.7\nimport * as $foreign from \"./foreign.js\";\nimport * as Control_Alt from \"../Control.Alt/index.js\";\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Apply from \"../Control.Apply/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Control_Lazy from \"../Control.Lazy/index.js\";\nimport * as Control_Monad_Rec_Class from \"../Control.Monad.Rec.Class/index.js\";\nimport * as Control_Monad_ST_Internal from \"../Control.Monad.ST.Internal/index.js\";\nimport * as Data_Array_ST from \"../Data.Array.ST/index.js\";\nimport * as Data_Array_ST_Iterator from \"../Data.Array.ST.Iterator/index.js\";\nimport * as Data_Boolean from \"../Data.Boolean/index.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Foldable from \"../Data.Foldable/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Data_Ordering from \"../Data.Ordering/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nimport * as Data_Traversable from \"../Data.Traversable/index.js\";\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nimport * as Data_Unfoldable from \"../Data.Unfoldable/index.js\";\nvar sequence = /* #__PURE__ */ Data_Traversable.sequence(Data_Traversable.traversableArray);\nvar traverse_ = /* #__PURE__ */ Data_Foldable.traverse_(Control_Monad_ST_Internal.applicativeST);\nvar map = /* #__PURE__ */ Data_Functor.map(Control_Monad_ST_Internal.functorST);\nvar when = /* #__PURE__ */ Control_Applicative.when(Control_Monad_ST_Internal.applicativeST);\nvar $$void = /* #__PURE__ */ Data_Functor[\"void\"](Control_Monad_ST_Internal.functorST);\nvar intercalate1 = /* #__PURE__ */ Data_Foldable.intercalate(Data_Foldable.foldableArray);\nvar apply = /* #__PURE__ */ Control_Apply.apply(Data_Maybe.applyMaybe);\nvar map1 = /* #__PURE__ */ Data_Functor.map(Data_Maybe.functorMaybe);\nvar map2 = /* #__PURE__ */ Data_Functor.map(Data_Functor.functorArray);\nvar fromJust = /* #__PURE__ */ Data_Maybe.fromJust();\nvar notEq = /* #__PURE__ */ Data_Eq.notEq(Data_Ordering.eqOrdering);\nvar eq1 = /* #__PURE__ */ Data_Eq.eq(Data_Ordering.eqOrdering);\nvar foldMap1 = /* #__PURE__ */ Data_Foldable.foldMap(Data_Foldable.foldableArray);\nvar fold1 = /* #__PURE__ */ Data_Foldable.fold(Data_Foldable.foldableArray);\nvar append = /* #__PURE__ */ Data_Semigroup.append(Data_Semigroup.semigroupArray);\nvar traverse = /* #__PURE__ */ Data_Traversable.traverse(Data_Traversable.traversableArray);\nvar zipWithA = function (dictApplicative) {\n var sequence1 = sequence(dictApplicative);\n return function (f) {\n return function (xs) {\n return function (ys) {\n return sequence1($foreign.zipWith(f)(xs)(ys));\n };\n };\n };\n};\nvar zip = /* #__PURE__ */ (function () {\n return $foreign.zipWith(Data_Tuple.Tuple.create);\n})();\nvar updateAtIndices = function (dictFoldable) {\n var traverse_1 = traverse_(dictFoldable);\n return function (us) {\n return function (xs) {\n return Data_Array_ST.withArray(function (res) {\n return traverse_1(function (v) {\n return Data_Array_ST.poke(v.value0)(v.value1)(res);\n })(us);\n })(xs)();\n };\n };\n};\nvar updateAt = /* #__PURE__ */ (function () {\n return $foreign[\"_updateAt\"](Data_Maybe.Just.create)(Data_Maybe.Nothing.value);\n})();\nvar unsafeIndex = function () {\n return $foreign.unsafeIndexImpl;\n};\nvar unsafeIndex1 = /* #__PURE__ */ unsafeIndex();\nvar uncons = /* #__PURE__ */ (function () {\n return $foreign.unconsImpl(Data_Function[\"const\"](Data_Maybe.Nothing.value))(function (x) {\n return function (xs) {\n return new Data_Maybe.Just({\n head: x,\n tail: xs\n });\n };\n });\n})();\nvar toUnfoldable = function (dictUnfoldable) {\n var unfoldr = Data_Unfoldable.unfoldr(dictUnfoldable);\n return function (xs) {\n var len = $foreign.length(xs);\n var f = function (i) {\n if (i < len) {\n return new Data_Maybe.Just(new Data_Tuple.Tuple(unsafeIndex1(xs)(i), i + 1 | 0));\n };\n if (Data_Boolean.otherwise) {\n return Data_Maybe.Nothing.value;\n };\n throw new Error(\"Failed pattern match at Data.Array (line 156, column 3 - line 158, column 26): \" + [ i.constructor.name ]);\n };\n return unfoldr(f)(0);\n };\n};\nvar take = function (n) {\n return function (xs) {\n var $147 = n < 1;\n if ($147) {\n return [ ];\n };\n return $foreign.slice(0)(n)(xs);\n };\n};\nvar tail = /* #__PURE__ */ (function () {\n return $foreign.unconsImpl(Data_Function[\"const\"](Data_Maybe.Nothing.value))(function (v) {\n return function (xs) {\n return new Data_Maybe.Just(xs);\n };\n });\n})();\nvar splitAt = function (v) {\n return function (v1) {\n if (v <= 0) {\n return {\n before: [ ],\n after: v1\n };\n };\n return {\n before: $foreign.slice(0)(v)(v1),\n after: $foreign.slice(v)($foreign.length(v1))(v1)\n };\n };\n};\nvar sortBy = function (comp) {\n return $foreign.sortByImpl(comp)(function (v) {\n if (v instanceof Data_Ordering.GT) {\n return 1;\n };\n if (v instanceof Data_Ordering.EQ) {\n return 0;\n };\n if (v instanceof Data_Ordering.LT) {\n return -1 | 0;\n };\n throw new Error(\"Failed pattern match at Data.Array (line 829, column 31 - line 832, column 11): \" + [ v.constructor.name ]);\n });\n};\nvar sortWith = function (dictOrd) {\n var comparing = Data_Ord.comparing(dictOrd);\n return function (f) {\n return sortBy(comparing(f));\n };\n};\nvar sortWith1 = /* #__PURE__ */ sortWith(Data_Ord.ordInt);\nvar sort = function (dictOrd) {\n var compare = Data_Ord.compare(dictOrd);\n return function (xs) {\n return sortBy(compare)(xs);\n };\n};\nvar snoc = function (xs) {\n return function (x) {\n return Data_Array_ST.withArray(Data_Array_ST.push(x))(xs)();\n };\n};\nvar singleton = function (a) {\n return [ a ];\n};\nvar $$null = function (xs) {\n return $foreign.length(xs) === 0;\n};\nvar nubByEq = function (eq2) {\n return function (xs) {\n return (function __do() {\n var arr = Data_Array_ST[\"new\"]();\n Control_Monad_ST_Internal.foreach(xs)(function (x) {\n return function __do() {\n var e = map((function () {\n var $179 = $foreign.any(function (v) {\n return eq2(v)(x);\n });\n return function ($180) {\n return !$179($180);\n };\n })())(Data_Array_ST.unsafeFreeze(arr))();\n return when(e)($$void(Data_Array_ST.push(x)(arr)))();\n };\n })();\n return Data_Array_ST.unsafeFreeze(arr)();\n })();\n };\n};\nvar nubEq = function (dictEq) {\n return nubByEq(Data_Eq.eq(dictEq));\n};\nvar modifyAtIndices = function (dictFoldable) {\n var traverse_1 = traverse_(dictFoldable);\n return function (is) {\n return function (f) {\n return function (xs) {\n return Data_Array_ST.withArray(function (res) {\n return traverse_1(function (i) {\n return Data_Array_ST.modify(i)(f)(res);\n })(is);\n })(xs)();\n };\n };\n };\n};\nvar mapWithIndex = function (f) {\n return function (xs) {\n return $foreign.zipWith(f)($foreign.range(0)($foreign.length(xs) - 1 | 0))(xs);\n };\n};\nvar intersperse = function (a) {\n return function (arr) {\n var v = $foreign.length(arr);\n if (v < 2) {\n return arr;\n };\n if (Data_Boolean.otherwise) {\n return Data_Array_ST.run((function () {\n var unsafeGetElem = function (idx) {\n return unsafeIndex1(arr)(idx);\n };\n return function __do() {\n var out = Data_Array_ST[\"new\"]();\n Data_Array_ST.push(unsafeGetElem(0))(out)();\n Control_Monad_ST_Internal[\"for\"](1)(v)(function (idx) {\n return function __do() {\n Data_Array_ST.push(a)(out)();\n return $$void(Data_Array_ST.push(unsafeGetElem(idx))(out))();\n };\n })();\n return out;\n };\n })());\n };\n throw new Error(\"Failed pattern match at Data.Array (line 611, column 21 - line 620, column 19): \" + [ v.constructor.name ]);\n };\n};\nvar intercalate = function (dictMonoid) {\n return intercalate1(dictMonoid);\n};\nvar insertAt = /* #__PURE__ */ (function () {\n return $foreign[\"_insertAt\"](Data_Maybe.Just.create)(Data_Maybe.Nothing.value);\n})();\nvar init = function (xs) {\n if ($$null(xs)) {\n return Data_Maybe.Nothing.value;\n };\n if (Data_Boolean.otherwise) {\n return new Data_Maybe.Just($foreign.slice(0)($foreign.length(xs) - 1 | 0)(xs));\n };\n throw new Error(\"Failed pattern match at Data.Array (line 338, column 1 - line 338, column 45): \" + [ xs.constructor.name ]);\n};\nvar index = /* #__PURE__ */ (function () {\n return $foreign.indexImpl(Data_Maybe.Just.create)(Data_Maybe.Nothing.value);\n})();\nvar last = function (xs) {\n return index(xs)($foreign.length(xs) - 1 | 0);\n};\nvar unsnoc = function (xs) {\n return apply(map1(function (v) {\n return function (v1) {\n return {\n init: v,\n last: v1\n };\n };\n })(init(xs)))(last(xs));\n};\nvar modifyAt = function (i) {\n return function (f) {\n return function (xs) {\n var go = function (x) {\n return updateAt(i)(f(x))(xs);\n };\n return Data_Maybe.maybe(Data_Maybe.Nothing.value)(go)(index(xs)(i));\n };\n };\n};\nvar span = function (p) {\n return function (arr) {\n var go = function ($copy_i) {\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(i) {\n var v = index(arr)(i);\n if (v instanceof Data_Maybe.Just) {\n var $154 = p(v.value0);\n if ($154) {\n $copy_i = i + 1 | 0;\n return;\n };\n $tco_done = true;\n return new Data_Maybe.Just(i);\n };\n if (v instanceof Data_Maybe.Nothing) {\n $tco_done = true;\n return Data_Maybe.Nothing.value;\n };\n throw new Error(\"Failed pattern match at Data.Array (line 964, column 5 - line 966, column 25): \" + [ v.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($copy_i);\n };\n return $tco_result;\n };\n var breakIndex = go(0);\n if (breakIndex instanceof Data_Maybe.Just && breakIndex.value0 === 0) {\n return {\n init: [ ],\n rest: arr\n };\n };\n if (breakIndex instanceof Data_Maybe.Just) {\n return {\n init: $foreign.slice(0)(breakIndex.value0)(arr),\n rest: $foreign.slice(breakIndex.value0)($foreign.length(arr))(arr)\n };\n };\n if (breakIndex instanceof Data_Maybe.Nothing) {\n return {\n init: arr,\n rest: [ ]\n };\n };\n throw new Error(\"Failed pattern match at Data.Array (line 951, column 3 - line 957, column 30): \" + [ breakIndex.constructor.name ]);\n };\n};\nvar takeWhile = function (p) {\n return function (xs) {\n return (span(p)(xs)).init;\n };\n};\nvar unzip = function (xs) {\n return (function __do() {\n var fsts = Data_Array_ST[\"new\"]();\n var snds = Data_Array_ST[\"new\"]();\n var iter = Data_Array_ST_Iterator.iterator(function (v) {\n return index(xs)(v);\n })();\n Data_Array_ST_Iterator.iterate(iter)(function (v) {\n return function __do() {\n $$void(Data_Array_ST.push(v.value0)(fsts))();\n return $$void(Data_Array_ST.push(v.value1)(snds))();\n };\n })();\n var fsts$prime = Data_Array_ST.unsafeFreeze(fsts)();\n var snds$prime = Data_Array_ST.unsafeFreeze(snds)();\n return new Data_Tuple.Tuple(fsts$prime, snds$prime);\n })();\n};\nvar head = function (xs) {\n return index(xs)(0);\n};\nvar nubBy = function (comp) {\n return function (xs) {\n var indexedAndSorted = sortBy(function (x) {\n return function (y) {\n return comp(Data_Tuple.snd(x))(Data_Tuple.snd(y));\n };\n })(mapWithIndex(Data_Tuple.Tuple.create)(xs));\n var v = head(indexedAndSorted);\n if (v instanceof Data_Maybe.Nothing) {\n return [ ];\n };\n if (v instanceof Data_Maybe.Just) {\n return map2(Data_Tuple.snd)(sortWith1(Data_Tuple.fst)((function __do() {\n var result = Data_Array_ST.unsafeThaw(singleton(v.value0))();\n Control_Monad_ST_Internal.foreach(indexedAndSorted)(function (v1) {\n return function __do() {\n var lst = map((function () {\n var $181 = function ($183) {\n return fromJust(last($183));\n };\n return function ($182) {\n return Data_Tuple.snd($181($182));\n };\n })())(Data_Array_ST.unsafeFreeze(result))();\n return when(notEq(comp(lst)(v1.value1))(Data_Ordering.EQ.value))($$void(Data_Array_ST.push(v1)(result)))();\n };\n })();\n return Data_Array_ST.unsafeFreeze(result)();\n })()));\n };\n throw new Error(\"Failed pattern match at Data.Array (line 1044, column 17 - line 1052, column 29): \" + [ v.constructor.name ]);\n };\n};\nvar nub = function (dictOrd) {\n return nubBy(Data_Ord.compare(dictOrd));\n};\nvar groupBy = function (op) {\n return function (xs) {\n return (function __do() {\n var result = Data_Array_ST[\"new\"]();\n var iter = Data_Array_ST_Iterator.iterator(function (v) {\n return index(xs)(v);\n })();\n Data_Array_ST_Iterator.iterate(iter)(function (x) {\n return $$void(function __do() {\n var sub1 = Data_Array_ST[\"new\"]();\n Data_Array_ST.push(x)(sub1)();\n Data_Array_ST_Iterator.pushWhile(op(x))(iter)(sub1)();\n var grp = Data_Array_ST.unsafeFreeze(sub1)();\n return Data_Array_ST.push(grp)(result)();\n });\n })();\n return Data_Array_ST.unsafeFreeze(result)();\n })();\n };\n};\nvar groupAllBy = function (cmp) {\n var $184 = groupBy(function (x) {\n return function (y) {\n return eq1(cmp(x)(y))(Data_Ordering.EQ.value);\n };\n });\n var $185 = sortBy(cmp);\n return function ($186) {\n return $184($185($186));\n };\n};\nvar groupAll = function (dictOrd) {\n return groupAllBy(Data_Ord.compare(dictOrd));\n};\nvar group = function (dictEq) {\n var eq2 = Data_Eq.eq(dictEq);\n return function (xs) {\n return groupBy(eq2)(xs);\n };\n};\nvar fromFoldable = function (dictFoldable) {\n return $foreign.fromFoldableImpl(Data_Foldable.foldr(dictFoldable));\n};\nvar foldr = /* #__PURE__ */ Data_Foldable.foldr(Data_Foldable.foldableArray);\nvar foldl = /* #__PURE__ */ Data_Foldable.foldl(Data_Foldable.foldableArray);\nvar foldRecM = function (dictMonadRec) {\n var Monad0 = dictMonadRec.Monad0();\n var pure1 = Control_Applicative.pure(Monad0.Applicative0());\n var bind1 = Control_Bind.bind(Monad0.Bind1());\n var tailRecM2 = Control_Monad_Rec_Class.tailRecM2(dictMonadRec);\n return function (f) {\n return function (b) {\n return function (array) {\n var go = function (res) {\n return function (i) {\n if (i >= $foreign.length(array)) {\n return pure1(new Control_Monad_Rec_Class.Done(res));\n };\n if (Data_Boolean.otherwise) {\n return bind1(f(res)(unsafeIndex1(array)(i)))(function (res$prime) {\n return pure1(new Control_Monad_Rec_Class.Loop({\n a: res$prime,\n b: i + 1 | 0\n }));\n });\n };\n throw new Error(\"Failed pattern match at Data.Array (line 1263, column 3 - line 1267, column 42): \" + [ res.constructor.name, i.constructor.name ]);\n };\n };\n return tailRecM2(go)(b)(0);\n };\n };\n };\n};\nvar foldMap = function (dictMonoid) {\n return foldMap1(dictMonoid);\n};\nvar foldM = function (dictMonad) {\n var pure1 = Control_Applicative.pure(dictMonad.Applicative0());\n var bind1 = Control_Bind.bind(dictMonad.Bind1());\n return function (f) {\n return function (b) {\n return $foreign.unconsImpl(function (v) {\n return pure1(b);\n })(function (a) {\n return function (as) {\n return bind1(f(b)(a))(function (b$prime) {\n return foldM(dictMonad)(f)(b$prime)(as);\n });\n };\n });\n };\n };\n};\nvar fold = function (dictMonoid) {\n return fold1(dictMonoid);\n};\nvar findMap = /* #__PURE__ */ (function () {\n return $foreign.findMapImpl(Data_Maybe.Nothing.value)(Data_Maybe.isJust);\n})();\nvar findLastIndex = /* #__PURE__ */ (function () {\n return $foreign.findLastIndexImpl(Data_Maybe.Just.create)(Data_Maybe.Nothing.value);\n})();\nvar insertBy = function (cmp) {\n return function (x) {\n return function (ys) {\n var i = Data_Maybe.maybe(0)(function (v) {\n return v + 1 | 0;\n })(findLastIndex(function (y) {\n return eq1(cmp(x)(y))(Data_Ordering.GT.value);\n })(ys));\n return fromJust(insertAt(i)(x)(ys));\n };\n };\n};\nvar insert = function (dictOrd) {\n return insertBy(Data_Ord.compare(dictOrd));\n};\nvar findIndex = /* #__PURE__ */ (function () {\n return $foreign.findIndexImpl(Data_Maybe.Just.create)(Data_Maybe.Nothing.value);\n})();\nvar intersectBy = function (eq2) {\n return function (xs) {\n return function (ys) {\n return $foreign.filter(function (x) {\n return Data_Maybe.isJust(findIndex(eq2(x))(ys));\n })(xs);\n };\n };\n};\nvar intersect = function (dictEq) {\n return intersectBy(Data_Eq.eq(dictEq));\n};\nvar find = function (f) {\n return function (xs) {\n return map1(unsafeIndex1(xs))(findIndex(f)(xs));\n };\n};\nvar elemLastIndex = function (dictEq) {\n var eq2 = Data_Eq.eq(dictEq);\n return function (x) {\n return findLastIndex(function (v) {\n return eq2(v)(x);\n });\n };\n};\nvar elemIndex = function (dictEq) {\n var eq2 = Data_Eq.eq(dictEq);\n return function (x) {\n return findIndex(function (v) {\n return eq2(v)(x);\n });\n };\n};\nvar notElem = function (dictEq) {\n var elemIndex1 = elemIndex(dictEq);\n return function (a) {\n return function (arr) {\n return Data_Maybe.isNothing(elemIndex1(a)(arr));\n };\n };\n};\nvar elem = function (dictEq) {\n var elemIndex1 = elemIndex(dictEq);\n return function (a) {\n return function (arr) {\n return Data_Maybe.isJust(elemIndex1(a)(arr));\n };\n };\n};\nvar dropWhile = function (p) {\n return function (xs) {\n return (span(p)(xs)).rest;\n };\n};\nvar dropEnd = function (n) {\n return function (xs) {\n return take($foreign.length(xs) - n | 0)(xs);\n };\n};\nvar drop = function (n) {\n return function (xs) {\n var $169 = n < 1;\n if ($169) {\n return xs;\n };\n return $foreign.slice(n)($foreign.length(xs))(xs);\n };\n};\nvar takeEnd = function (n) {\n return function (xs) {\n return drop($foreign.length(xs) - n | 0)(xs);\n };\n};\nvar deleteAt = /* #__PURE__ */ (function () {\n return $foreign[\"_deleteAt\"](Data_Maybe.Just.create)(Data_Maybe.Nothing.value);\n})();\nvar deleteBy = function (v) {\n return function (v1) {\n return function (v2) {\n if (v2.length === 0) {\n return [ ];\n };\n return Data_Maybe.maybe(v2)(function (i) {\n return fromJust(deleteAt(i)(v2));\n })(findIndex(v(v1))(v2));\n };\n };\n};\nvar unionBy = function (eq2) {\n return function (xs) {\n return function (ys) {\n return append(xs)(foldl(Data_Function.flip(deleteBy(eq2)))(nubByEq(eq2)(ys))(xs));\n };\n };\n};\nvar union = function (dictEq) {\n return unionBy(Data_Eq.eq(dictEq));\n};\nvar $$delete = function (dictEq) {\n return deleteBy(Data_Eq.eq(dictEq));\n};\nvar difference = function (dictEq) {\n return foldr($$delete(dictEq));\n};\nvar cons = function (x) {\n return function (xs) {\n return append([ x ])(xs);\n };\n};\nvar some = function (dictAlternative) {\n var apply1 = Control_Apply.apply((dictAlternative.Applicative0()).Apply0());\n var map3 = Data_Functor.map(((dictAlternative.Plus1()).Alt0()).Functor0());\n return function (dictLazy) {\n var defer = Control_Lazy.defer(dictLazy);\n return function (v) {\n return apply1(map3(cons)(v))(defer(function (v1) {\n return many(dictAlternative)(dictLazy)(v);\n }));\n };\n };\n};\nvar many = function (dictAlternative) {\n var alt = Control_Alt.alt((dictAlternative.Plus1()).Alt0());\n var pure1 = Control_Applicative.pure(dictAlternative.Applicative0());\n return function (dictLazy) {\n return function (v) {\n return alt(some(dictAlternative)(dictLazy)(v))(pure1([ ]));\n };\n };\n};\nvar concatMap = /* #__PURE__ */ Data_Function.flip(/* #__PURE__ */ Control_Bind.bind(Control_Bind.bindArray));\nvar mapMaybe = function (f) {\n return concatMap((function () {\n var $187 = Data_Maybe.maybe([ ])(singleton);\n return function ($188) {\n return $187(f($188));\n };\n })());\n};\nvar filterA = function (dictApplicative) {\n var traverse1 = traverse(dictApplicative);\n var map3 = Data_Functor.map((dictApplicative.Apply0()).Functor0());\n return function (p) {\n var $189 = map3(mapMaybe(function (v) {\n if (v.value1) {\n return new Data_Maybe.Just(v.value0);\n };\n return Data_Maybe.Nothing.value;\n }));\n var $190 = traverse1(function (x) {\n return map3(Data_Tuple.Tuple.create(x))(p(x));\n });\n return function ($191) {\n return $189($190($191));\n };\n };\n};\nvar catMaybes = /* #__PURE__ */ mapMaybe(/* #__PURE__ */ Control_Category.identity(Control_Category.categoryFn));\nvar alterAt = function (i) {\n return function (f) {\n return function (xs) {\n var go = function (x) {\n var v = f(x);\n if (v instanceof Data_Maybe.Nothing) {\n return deleteAt(i)(xs);\n };\n if (v instanceof Data_Maybe.Just) {\n return updateAt(i)(v.value0)(xs);\n };\n throw new Error(\"Failed pattern match at Data.Array (line 589, column 10 - line 591, column 32): \" + [ v.constructor.name ]);\n };\n return Data_Maybe.maybe(Data_Maybe.Nothing.value)(go)(index(xs)(i));\n };\n };\n};\nexport {\n range,\n replicate,\n length,\n reverse,\n concat,\n filter,\n partition,\n scanl,\n scanr,\n slice,\n zipWith,\n any,\n all\n} from \"./foreign.js\";\nexport {\n fromFoldable,\n toUnfoldable,\n singleton,\n some,\n many,\n $$null as null,\n cons,\n snoc,\n insert,\n insertBy,\n head,\n last,\n tail,\n init,\n uncons,\n unsnoc,\n index,\n elem,\n notElem,\n elemIndex,\n elemLastIndex,\n find,\n findMap,\n findIndex,\n findLastIndex,\n insertAt,\n deleteAt,\n updateAt,\n updateAtIndices,\n modifyAt,\n modifyAtIndices,\n alterAt,\n intersperse,\n concatMap,\n splitAt,\n filterA,\n mapMaybe,\n catMaybes,\n mapWithIndex,\n foldl,\n foldr,\n foldMap,\n fold,\n intercalate,\n sort,\n sortBy,\n sortWith,\n take,\n takeEnd,\n takeWhile,\n drop,\n dropEnd,\n dropWhile,\n span,\n group,\n groupAll,\n groupBy,\n groupAllBy,\n nub,\n nubEq,\n nubBy,\n nubByEq,\n union,\n unionBy,\n $$delete as delete,\n deleteBy,\n difference,\n intersect,\n intersectBy,\n zipWithA,\n zip,\n unzip,\n foldM,\n foldRecM,\n unsafeIndex\n};\n","export const fromNumberImpl = function (just) {\n return function (nothing) {\n return function (n) {\n /* jshint bitwise: false */\n return (n | 0) === n ? just(n) : nothing;\n };\n };\n};\n\nexport const toNumber = function (n) {\n return n;\n};\n\nexport const fromStringAsImpl = function (just) {\n return function (nothing) {\n return function (radix) {\n var digits;\n if (radix < 11) {\n digits = \"[0-\" + (radix - 1).toString() + \"]\";\n } else if (radix === 11) {\n digits = \"[0-9a]\";\n } else {\n digits = \"[0-9a-\" + String.fromCharCode(86 + radix) + \"]\";\n }\n var pattern = new RegExp(\"^[\\\\+\\\\-]?\" + digits + \"+$\", \"i\");\n\n return function (s) {\n /* jshint bitwise: false */\n if (pattern.test(s)) {\n var i = parseInt(s, radix);\n return (i | 0) === i ? just(i) : nothing;\n } else {\n return nothing;\n }\n };\n };\n };\n};\n\nexport const toStringAs = function (radix) {\n return function (i) {\n return i.toString(radix);\n };\n};\n\n\nexport const quot = function (x) {\n return function (y) {\n /* jshint bitwise: false */\n return x / y | 0;\n };\n};\n\nexport const rem = function (x) {\n return function (y) {\n return x % y;\n };\n};\n\nexport const pow = function (x) {\n return function (y) {\n /* jshint bitwise: false */\n return Math.pow(x,y) | 0;\n };\n};\n","/* globals exports */\nexport const nan = NaN;\nconst isNaNImpl = isNaN;\nexport { isNaNImpl as isNaN };\nexport const infinity = Infinity;\nconst isFiniteImpl = isFinite;\nexport { isFiniteImpl as isFinite };\n\nexport function fromStringImpl(str, isFinite, just, nothing) {\n var num = parseFloat(str);\n if (isFinite(num)) {\n return just(num);\n } else {\n return nothing;\n }\n}\n\nexport const abs = Math.abs;\n\nexport const acos = Math.acos;\n\nexport const asin = Math.asin;\n\nexport const atan = Math.atan;\n\nexport const atan2 = function (y) {\n return function (x) {\n return Math.atan2(y, x);\n };\n};\n\nexport const ceil = Math.ceil;\n\nexport const cos = Math.cos;\n\nexport const exp = Math.exp;\n\nexport const floor = Math.floor;\n\nexport const log = Math.log;\n\nexport const max = function (n1) {\n return function (n2) {\n return Math.max(n1, n2);\n };\n};\n\nexport const min = function (n1) {\n return function (n2) {\n return Math.min(n1, n2);\n };\n};\n\nexport const pow = function (n) {\n return function (p) {\n return Math.pow(n, p);\n };\n};\n\nexport const remainder = function (n) {\n return function (m) {\n return n % m;\n };\n};\n\nexport const round = Math.round;\n\nexport const sign = Math.sign ? Math.sign : function(x) {\n return x === 0 || x !== x ? x : (x < 0 ? -1 : 1);\n};\n\nexport const sin = Math.sin;\n\nexport const sqrt = Math.sqrt;\n\nexport const tan = Math.tan;\n\nexport const trunc = Math.trunc ? Math.trunc : function(x) {\n return x < 0 ? Math.ceil(x) : Math.floor(x);\n}\n","// Generated by purs version 0.15.7\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nvar tau = 6.283185307179586;\nvar sqrt2 = 1.4142135623730951;\nvar sqrt1_2 = 0.7071067811865476;\nvar pi = 3.141592653589793;\nvar log2e = 1.4426950408889634;\nvar log10e = 0.4342944819032518;\nvar ln2 = 0.6931471805599453;\nvar ln10 = 2.302585092994046;\nvar fromString = function (str) {\n return $foreign.fromStringImpl(str, $foreign[\"isFinite\"], Data_Maybe.Just.create, Data_Maybe.Nothing.value);\n};\nvar e = 2.718281828459045;\nexport {\n nan,\n isNaN,\n infinity,\n isFinite,\n abs,\n acos,\n asin,\n atan,\n atan2,\n ceil,\n cos,\n exp,\n floor,\n log,\n max,\n min,\n pow,\n remainder,\n round,\n sign,\n sin,\n sqrt,\n tan,\n trunc\n} from \"./foreign.js\";\nexport {\n fromString,\n e,\n ln2,\n ln10,\n log10e,\n log2e,\n pi,\n sqrt1_2,\n sqrt2,\n tau\n};\n","// Generated by purs version 0.15.7\nimport * as $foreign from \"./foreign.js\";\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Data_Boolean from \"../Data.Boolean/index.js\";\nimport * as Data_Bounded from \"../Data.Bounded/index.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Number from \"../Data.Number/index.js\";\nimport * as Data_Ordering from \"../Data.Ordering/index.js\";\nimport * as Data_Semiring from \"../Data.Semiring/index.js\";\nvar top = /* #__PURE__ */ Data_Bounded.top(Data_Bounded.boundedInt);\nvar bottom = /* #__PURE__ */ Data_Bounded.bottom(Data_Bounded.boundedInt);\nvar Radix = function (x) {\n return x;\n};\nvar Even = /* #__PURE__ */ (function () {\n function Even() {\n\n };\n Even.value = new Even();\n return Even;\n})();\nvar Odd = /* #__PURE__ */ (function () {\n function Odd() {\n\n };\n Odd.value = new Odd();\n return Odd;\n})();\nvar showParity = {\n show: function (v) {\n if (v instanceof Even) {\n return \"Even\";\n };\n if (v instanceof Odd) {\n return \"Odd\";\n };\n throw new Error(\"Failed pattern match at Data.Int (line 117, column 1 - line 119, column 19): \" + [ v.constructor.name ]);\n }\n};\nvar radix = function (n) {\n if (n >= 2 && n <= 36) {\n return new Data_Maybe.Just(n);\n };\n if (Data_Boolean.otherwise) {\n return Data_Maybe.Nothing.value;\n };\n throw new Error(\"Failed pattern match at Data.Int (line 198, column 1 - line 198, column 28): \" + [ n.constructor.name ]);\n};\nvar odd = function (x) {\n return (x & 1) !== 0;\n};\nvar octal = 8;\nvar hexadecimal = 16;\nvar fromStringAs = /* #__PURE__ */ (function () {\n return $foreign.fromStringAsImpl(Data_Maybe.Just.create)(Data_Maybe.Nothing.value);\n})();\nvar fromString = /* #__PURE__ */ fromStringAs(10);\nvar fromNumber = /* #__PURE__ */ (function () {\n return $foreign.fromNumberImpl(Data_Maybe.Just.create)(Data_Maybe.Nothing.value);\n})();\nvar unsafeClamp = function (x) {\n if (!Data_Number[\"isFinite\"](x)) {\n return 0;\n };\n if (x >= $foreign.toNumber(top)) {\n return top;\n };\n if (x <= $foreign.toNumber(bottom)) {\n return bottom;\n };\n if (Data_Boolean.otherwise) {\n return Data_Maybe.fromMaybe(0)(fromNumber(x));\n };\n throw new Error(\"Failed pattern match at Data.Int (line 72, column 1 - line 72, column 29): \" + [ x.constructor.name ]);\n};\nvar round = function ($37) {\n return unsafeClamp(Data_Number.round($37));\n};\nvar trunc = function ($38) {\n return unsafeClamp(Data_Number.trunc($38));\n};\nvar floor = function ($39) {\n return unsafeClamp(Data_Number.floor($39));\n};\nvar even = function (x) {\n return (x & 1) === 0;\n};\nvar parity = function (n) {\n var $28 = even(n);\n if ($28) {\n return Even.value;\n };\n return Odd.value;\n};\nvar eqParity = {\n eq: function (x) {\n return function (y) {\n if (x instanceof Even && y instanceof Even) {\n return true;\n };\n if (x instanceof Odd && y instanceof Odd) {\n return true;\n };\n return false;\n };\n }\n};\nvar eq1 = /* #__PURE__ */ Data_Eq.eq(eqParity);\nvar ordParity = {\n compare: function (x) {\n return function (y) {\n if (x instanceof Even && y instanceof Even) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof Even) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof Even) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof Odd && y instanceof Odd) {\n return Data_Ordering.EQ.value;\n };\n throw new Error(\"Failed pattern match at Data.Int (line 0, column 0 - line 0, column 0): \" + [ x.constructor.name, y.constructor.name ]);\n };\n },\n Eq0: function () {\n return eqParity;\n }\n};\nvar semiringParity = /* #__PURE__ */ (function () {\n return {\n zero: Even.value,\n add: function (x) {\n return function (y) {\n var $33 = eq1(x)(y);\n if ($33) {\n return Even.value;\n };\n return Odd.value;\n };\n },\n one: Odd.value,\n mul: function (v) {\n return function (v1) {\n if (v instanceof Odd && v1 instanceof Odd) {\n return Odd.value;\n };\n return Even.value;\n };\n }\n };\n})();\nvar ringParity = {\n sub: /* #__PURE__ */ Data_Semiring.add(semiringParity),\n Semiring0: function () {\n return semiringParity;\n }\n};\nvar divisionRingParity = {\n recip: /* #__PURE__ */ Control_Category.identity(Control_Category.categoryFn),\n Ring0: function () {\n return ringParity;\n }\n};\nvar decimal = 10;\nvar commutativeRingParity = {\n Ring0: function () {\n return ringParity;\n }\n};\nvar euclideanRingParity = {\n degree: function (v) {\n if (v instanceof Even) {\n return 0;\n };\n if (v instanceof Odd) {\n return 1;\n };\n throw new Error(\"Failed pattern match at Data.Int (line 137, column 1 - line 141, column 17): \" + [ v.constructor.name ]);\n },\n div: function (x) {\n return function (v) {\n return x;\n };\n },\n mod: function (v) {\n return function (v1) {\n return Even.value;\n };\n },\n CommutativeRing0: function () {\n return commutativeRingParity;\n }\n};\nvar ceil = function ($40) {\n return unsafeClamp(Data_Number.ceil($40));\n};\nvar boundedParity = /* #__PURE__ */ (function () {\n return {\n bottom: Even.value,\n top: Odd.value,\n Ord0: function () {\n return ordParity;\n }\n };\n})();\nvar binary = 2;\nvar base36 = 36;\nexport {\n toNumber,\n toStringAs,\n quot,\n rem,\n pow\n} from \"./foreign.js\";\nexport {\n fromNumber,\n ceil,\n floor,\n trunc,\n round,\n fromString,\n radix,\n binary,\n octal,\n decimal,\n hexadecimal,\n base36,\n fromStringAs,\n Even,\n Odd,\n parity,\n even,\n odd,\n eqParity,\n ordParity,\n showParity,\n boundedParity,\n semiringParity,\n ringParity,\n commutativeRingParity,\n euclideanRingParity,\n divisionRingParity\n};\n","// Generated by purs version 0.15.7\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Effect from \"../Effect/index.js\";\nvar monadEffectEffect = {\n liftEffect: /* #__PURE__ */ Control_Category.identity(Control_Category.categoryFn),\n Monad0: function () {\n return Effect.monadEffect;\n }\n};\nvar liftEffect = function (dict) {\n return dict.liftEffect;\n};\nexport {\n liftEffect,\n monadEffectEffect\n};\n","export const log = function (s) {\n return function () {\n console.log(s);\n };\n};\n\nexport const warn = function (s) {\n return function () {\n console.warn(s);\n };\n};\n\nexport const error = function (s) {\n return function () {\n console.error(s);\n };\n};\n\nexport const info = function (s) {\n return function () {\n console.info(s);\n };\n};\n\nexport const debug = function (s) {\n return function () {\n console.debug(s);\n };\n};\n\nexport const time = function (s) {\n return function () {\n console.time(s);\n };\n};\n\nexport const timeLog = function (s) {\n return function () {\n console.timeLog(s);\n };\n};\n\nexport const timeEnd = function (s) {\n return function () {\n console.timeEnd(s);\n };\n};\n\nexport const clear = function () {\n console.clear();\n};\n","// Generated by purs version 0.15.7\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Show from \"../Data.Show/index.js\";\nvar warnShow = function (dictShow) {\n var show = Data_Show.show(dictShow);\n return function (a) {\n return $foreign.warn(show(a));\n };\n};\nvar logShow = function (dictShow) {\n var show = Data_Show.show(dictShow);\n return function (a) {\n return $foreign.log(show(a));\n };\n};\nvar infoShow = function (dictShow) {\n var show = Data_Show.show(dictShow);\n return function (a) {\n return $foreign.info(show(a));\n };\n};\nvar errorShow = function (dictShow) {\n var show = Data_Show.show(dictShow);\n return function (a) {\n return $foreign.error(show(a));\n };\n};\nvar debugShow = function (dictShow) {\n var show = Data_Show.show(dictShow);\n return function (a) {\n return $foreign.debug(show(a));\n };\n};\nexport {\n log,\n warn,\n error,\n info,\n debug,\n time,\n timeLog,\n timeEnd,\n clear\n} from \"./foreign.js\";\nexport {\n logShow,\n warnShow,\n errorShow,\n infoShow,\n debugShow\n};\n","export function showErrorImpl(err) {\n return err.stack || err.toString();\n}\n\nexport function error(msg) {\n return new Error(msg);\n}\n\nexport function message(e) {\n return e.message;\n}\n\nexport function name(e) {\n return e.name || \"Error\";\n}\n\nexport function stackImpl(just) {\n return function (nothing) {\n return function (e) {\n return e.stack ? just(e.stack) : nothing;\n };\n };\n}\n\nexport function throwException(e) {\n return function () {\n throw e;\n };\n}\n\nexport function catchException(c) {\n return function (t) {\n return function () {\n try {\n return t();\n } catch (e) {\n if (e instanceof Error || Object.prototype.toString.call(e) === \"[object Error]\") {\n return c(e)();\n } else {\n return c(new Error(e.toString()))();\n }\n }\n };\n };\n}\n","// Generated by purs version 0.15.7\nimport * as $foreign from \"./foreign.js\";\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Data_Either from \"../Data.Either/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Effect from \"../Effect/index.js\";\nvar pure = /* #__PURE__ */ Control_Applicative.pure(Effect.applicativeEffect);\nvar map = /* #__PURE__ */ Data_Functor.map(Effect.functorEffect);\nvar $$try = function (action) {\n return $foreign.catchException(function ($3) {\n return pure(Data_Either.Left.create($3));\n })(map(Data_Either.Right.create)(action));\n};\nvar $$throw = function ($4) {\n return $foreign.throwException($foreign.error($4));\n};\nvar stack = /* #__PURE__ */ (function () {\n return $foreign.stackImpl(Data_Maybe.Just.create)(Data_Maybe.Nothing.value);\n})();\nvar showError = {\n show: $foreign.showErrorImpl\n};\nexport {\n error,\n message,\n name,\n throwException,\n catchException\n} from \"./foreign.js\";\nexport {\n stack,\n $$throw as throw,\n $$try as try,\n showError\n};\n","// Generated by purs version 0.15.7\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Data_Either from \"../Data.Either/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nimport * as Effect from \"../Effect/index.js\";\nimport * as Effect_Exception from \"../Effect.Exception/index.js\";\nvar discard = /* #__PURE__ */ Control_Bind.discard(Control_Bind.discardUnit);\nvar throwError = function (dict) {\n return dict.throwError;\n};\nvar monadThrowMaybe = /* #__PURE__ */ (function () {\n return {\n throwError: Data_Function[\"const\"](Data_Maybe.Nothing.value),\n Monad0: function () {\n return Data_Maybe.monadMaybe;\n }\n };\n})();\nvar monadThrowEither = /* #__PURE__ */ (function () {\n return {\n throwError: Data_Either.Left.create,\n Monad0: function () {\n return Data_Either.monadEither;\n }\n };\n})();\nvar monadThrowEffect = {\n throwError: Effect_Exception.throwException,\n Monad0: function () {\n return Effect.monadEffect;\n }\n};\nvar monadErrorMaybe = {\n catchError: function (v) {\n return function (v1) {\n if (v instanceof Data_Maybe.Nothing) {\n return v1(Data_Unit.unit);\n };\n if (v instanceof Data_Maybe.Just) {\n return new Data_Maybe.Just(v.value0);\n };\n throw new Error(\"Failed pattern match at Control.Monad.Error.Class (line 79, column 1 - line 81, column 33): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n },\n MonadThrow0: function () {\n return monadThrowMaybe;\n }\n};\nvar monadErrorEither = {\n catchError: function (v) {\n return function (v1) {\n if (v instanceof Data_Either.Left) {\n return v1(v.value0);\n };\n if (v instanceof Data_Either.Right) {\n return new Data_Either.Right(v.value0);\n };\n throw new Error(\"Failed pattern match at Control.Monad.Error.Class (line 72, column 1 - line 74, column 35): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n },\n MonadThrow0: function () {\n return monadThrowEither;\n }\n};\nvar monadErrorEffect = {\n catchError: /* #__PURE__ */ Data_Function.flip(Effect_Exception.catchException),\n MonadThrow0: function () {\n return monadThrowEffect;\n }\n};\nvar liftMaybe = function (dictMonadThrow) {\n var throwError1 = throwError(dictMonadThrow);\n var pure = Control_Applicative.pure((dictMonadThrow.Monad0()).Applicative0());\n return function (error) {\n return Data_Maybe.maybe(throwError1(error))(pure);\n };\n};\nvar liftEither = function (dictMonadThrow) {\n return Data_Either.either(throwError(dictMonadThrow))(Control_Applicative.pure((dictMonadThrow.Monad0()).Applicative0()));\n};\nvar catchError = function (dict) {\n return dict.catchError;\n};\nvar catchJust = function (dictMonadError) {\n var throwError1 = throwError(dictMonadError.MonadThrow0());\n var catchError1 = catchError(dictMonadError);\n return function (p) {\n return function (act) {\n return function (handler) {\n var handle = function (e) {\n var v = p(e);\n if (v instanceof Data_Maybe.Nothing) {\n return throwError1(e);\n };\n if (v instanceof Data_Maybe.Just) {\n return handler(v.value0);\n };\n throw new Error(\"Failed pattern match at Control.Monad.Error.Class (line 57, column 5 - line 59, column 26): \" + [ v.constructor.name ]);\n };\n return catchError1(act)(handle);\n };\n };\n };\n};\nvar $$try = function (dictMonadError) {\n var catchError1 = catchError(dictMonadError);\n var Monad0 = (dictMonadError.MonadThrow0()).Monad0();\n var map = Data_Functor.map(((Monad0.Bind1()).Apply0()).Functor0());\n var pure = Control_Applicative.pure(Monad0.Applicative0());\n return function (a) {\n return catchError1(map(Data_Either.Right.create)(a))(function ($52) {\n return pure(Data_Either.Left.create($52));\n });\n };\n};\nvar withResource = function (dictMonadError) {\n var MonadThrow0 = dictMonadError.MonadThrow0();\n var Monad0 = MonadThrow0.Monad0();\n var Bind1 = Monad0.Bind1();\n var bind = Control_Bind.bind(Bind1);\n var try1 = $$try(dictMonadError);\n var discard1 = discard(Bind1);\n var throwError1 = throwError(MonadThrow0);\n var pure = Control_Applicative.pure(Monad0.Applicative0());\n return function (acquire) {\n return function (release) {\n return function (kleisli) {\n return bind(acquire)(function (resource) {\n return bind(try1(kleisli(resource)))(function (result) {\n return discard1(release(resource))(function () {\n return Data_Either.either(throwError1)(pure)(result);\n });\n });\n });\n };\n };\n };\n};\nexport {\n catchError,\n throwError,\n catchJust,\n $$try as try,\n withResource,\n liftMaybe,\n liftEither,\n monadThrowEither,\n monadErrorEither,\n monadThrowMaybe,\n monadErrorMaybe,\n monadThrowEffect,\n monadErrorEffect\n};\n","// Generated by purs version 0.15.7\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nvar state = function (dict) {\n return dict.state;\n};\nvar put = function (dictMonadState) {\n var state1 = state(dictMonadState);\n return function (s) {\n return state1(function (v) {\n return new Data_Tuple.Tuple(Data_Unit.unit, s);\n });\n };\n};\nvar modify_ = function (dictMonadState) {\n var state1 = state(dictMonadState);\n return function (f) {\n return state1(function (s) {\n return new Data_Tuple.Tuple(Data_Unit.unit, f(s));\n });\n };\n};\nvar modify = function (dictMonadState) {\n var state1 = state(dictMonadState);\n return function (f) {\n return state1(function (s) {\n var s$prime = f(s);\n return new Data_Tuple.Tuple(s$prime, s$prime);\n });\n };\n};\nvar gets = function (dictMonadState) {\n var state1 = state(dictMonadState);\n return function (f) {\n return state1(function (s) {\n return new Data_Tuple.Tuple(f(s), s);\n });\n };\n};\nvar get = function (dictMonadState) {\n return state(dictMonadState)(function (s) {\n return new Data_Tuple.Tuple(s, s);\n });\n};\nexport {\n state,\n get,\n gets,\n put,\n modify,\n modify_\n};\n","// Generated by purs version 0.15.7\nvar lift = function (dict) {\n return dict.lift;\n};\nexport {\n lift\n};\n","// Generated by purs version 0.15.7\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nvar tell = function (dict) {\n return dict.tell;\n};\nvar pass = function (dict) {\n return dict.pass;\n};\nvar listen = function (dict) {\n return dict.listen;\n};\nvar listens = function (dictMonadWriter) {\n var Monad1 = (dictMonadWriter.MonadTell1()).Monad1();\n var bind = Control_Bind.bind(Monad1.Bind1());\n var listen1 = listen(dictMonadWriter);\n var pure = Control_Applicative.pure(Monad1.Applicative0());\n return function (f) {\n return function (m) {\n return bind(listen1(m))(function (v) {\n return pure(new Data_Tuple.Tuple(v.value0, f(v.value1)));\n });\n };\n };\n};\nvar censor = function (dictMonadWriter) {\n var pass1 = pass(dictMonadWriter);\n var Monad1 = (dictMonadWriter.MonadTell1()).Monad1();\n var bind = Control_Bind.bind(Monad1.Bind1());\n var pure = Control_Applicative.pure(Monad1.Applicative0());\n return function (f) {\n return function (m) {\n return pass1(bind(m)(function (a) {\n return pure(new Data_Tuple.Tuple(a, f));\n }));\n };\n };\n};\nexport {\n listen,\n pass,\n tell,\n listens,\n censor\n};\n","// Generated by purs version 0.15.7\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Apply from \"../Control.Apply/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Control_Monad from \"../Control.Monad/index.js\";\nimport * as Control_Monad_Cont_Class from \"../Control.Monad.Cont.Class/index.js\";\nimport * as Control_Monad_Error_Class from \"../Control.Monad.Error.Class/index.js\";\nimport * as Control_Monad_Reader_Class from \"../Control.Monad.Reader.Class/index.js\";\nimport * as Control_Monad_Rec_Class from \"../Control.Monad.Rec.Class/index.js\";\nimport * as Control_Monad_State_Class from \"../Control.Monad.State.Class/index.js\";\nimport * as Control_Monad_Trans_Class from \"../Control.Monad.Trans.Class/index.js\";\nimport * as Control_Monad_Writer_Class from \"../Control.Monad.Writer.Class/index.js\";\nimport * as Data_Either from \"../Data.Either/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Monoid from \"../Data.Monoid/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nimport * as Effect_Class from \"../Effect.Class/index.js\";\nvar map = /* #__PURE__ */ Data_Functor.map(Data_Either.functorEither);\nvar identity = /* #__PURE__ */ Control_Category.identity(Control_Category.categoryFn);\nvar ExceptT = function (x) {\n return x;\n};\nvar withExceptT = function (dictFunctor) {\n var map1 = Data_Functor.map(dictFunctor);\n return function (f) {\n return function (v) {\n var mapLeft = function (v1) {\n return function (v2) {\n if (v2 instanceof Data_Either.Right) {\n return new Data_Either.Right(v2.value0);\n };\n if (v2 instanceof Data_Either.Left) {\n return new Data_Either.Left(v1(v2.value0));\n };\n throw new Error(\"Failed pattern match at Control.Monad.Except.Trans (line 42, column 3 - line 42, column 32): \" + [ v1.constructor.name, v2.constructor.name ]);\n };\n };\n return map1(mapLeft(f))(v);\n };\n };\n};\nvar runExceptT = function (v) {\n return v;\n};\nvar newtypeExceptT = {\n Coercible0: function () {\n return undefined;\n }\n};\nvar monadTransExceptT = {\n lift: function (dictMonad) {\n var bind = Control_Bind.bind(dictMonad.Bind1());\n var pure = Control_Applicative.pure(dictMonad.Applicative0());\n return function (m) {\n return bind(m)(function (a) {\n return pure(new Data_Either.Right(a));\n });\n };\n }\n};\nvar lift = /* #__PURE__ */ Control_Monad_Trans_Class.lift(monadTransExceptT);\nvar mapExceptT = function (f) {\n return function (v) {\n return f(v);\n };\n};\nvar functorExceptT = function (dictFunctor) {\n var map1 = Data_Functor.map(dictFunctor);\n return {\n map: function (f) {\n return mapExceptT(map1(map(f)));\n }\n };\n};\nvar except = function (dictApplicative) {\n var $185 = Control_Applicative.pure(dictApplicative);\n return function ($186) {\n return ExceptT($185($186));\n };\n};\nvar monadExceptT = function (dictMonad) {\n return {\n Applicative0: function () {\n return applicativeExceptT(dictMonad);\n },\n Bind1: function () {\n return bindExceptT(dictMonad);\n }\n };\n};\nvar bindExceptT = function (dictMonad) {\n var bind = Control_Bind.bind(dictMonad.Bind1());\n var pure = Control_Applicative.pure(dictMonad.Applicative0());\n return {\n bind: function (v) {\n return function (k) {\n return bind(v)(Data_Either.either(function ($187) {\n return pure(Data_Either.Left.create($187));\n })(function (a) {\n var v1 = k(a);\n return v1;\n }));\n };\n },\n Apply0: function () {\n return applyExceptT(dictMonad);\n }\n };\n};\nvar applyExceptT = function (dictMonad) {\n var functorExceptT1 = functorExceptT(((dictMonad.Bind1()).Apply0()).Functor0());\n return {\n apply: Control_Monad.ap(monadExceptT(dictMonad)),\n Functor0: function () {\n return functorExceptT1;\n }\n };\n};\nvar applicativeExceptT = function (dictMonad) {\n return {\n pure: (function () {\n var $188 = Control_Applicative.pure(dictMonad.Applicative0());\n return function ($189) {\n return ExceptT($188(Data_Either.Right.create($189)));\n };\n })(),\n Apply0: function () {\n return applyExceptT(dictMonad);\n }\n };\n};\nvar semigroupExceptT = function (dictMonad) {\n var lift2 = Control_Apply.lift2(applyExceptT(dictMonad));\n return function (dictSemigroup) {\n return {\n append: lift2(Data_Semigroup.append(dictSemigroup))\n };\n };\n};\nvar monadAskExceptT = function (dictMonadAsk) {\n var Monad0 = dictMonadAsk.Monad0();\n var monadExceptT1 = monadExceptT(Monad0);\n return {\n ask: lift(Monad0)(Control_Monad_Reader_Class.ask(dictMonadAsk)),\n Monad0: function () {\n return monadExceptT1;\n }\n };\n};\nvar monadReaderExceptT = function (dictMonadReader) {\n var local = Control_Monad_Reader_Class.local(dictMonadReader);\n var monadAskExceptT1 = monadAskExceptT(dictMonadReader.MonadAsk0());\n return {\n local: function (f) {\n return mapExceptT(local(f));\n },\n MonadAsk0: function () {\n return monadAskExceptT1;\n }\n };\n};\nvar monadContExceptT = function (dictMonadCont) {\n var callCC = Control_Monad_Cont_Class.callCC(dictMonadCont);\n var monadExceptT1 = monadExceptT(dictMonadCont.Monad0());\n return {\n callCC: function (f) {\n return callCC(function (c) {\n var v = f(function (a) {\n return c(new Data_Either.Right(a));\n });\n return v;\n });\n },\n Monad0: function () {\n return monadExceptT1;\n }\n };\n};\nvar monadEffectExceptT = function (dictMonadEffect) {\n var Monad0 = dictMonadEffect.Monad0();\n var monadExceptT1 = monadExceptT(Monad0);\n return {\n liftEffect: (function () {\n var $190 = lift(Monad0);\n var $191 = Effect_Class.liftEffect(dictMonadEffect);\n return function ($192) {\n return $190($191($192));\n };\n })(),\n Monad0: function () {\n return monadExceptT1;\n }\n };\n};\nvar monadRecExceptT = function (dictMonadRec) {\n var tailRecM = Control_Monad_Rec_Class.tailRecM(dictMonadRec);\n var Monad0 = dictMonadRec.Monad0();\n var bind = Control_Bind.bind(Monad0.Bind1());\n var pure = Control_Applicative.pure(Monad0.Applicative0());\n var monadExceptT1 = monadExceptT(Monad0);\n return {\n tailRecM: function (f) {\n var $193 = tailRecM(function (a) {\n var v = f(a);\n return bind(v)(function (m$prime) {\n return pure((function () {\n if (m$prime instanceof Data_Either.Left) {\n return new Control_Monad_Rec_Class.Done(new Data_Either.Left(m$prime.value0));\n };\n if (m$prime instanceof Data_Either.Right && m$prime.value0 instanceof Control_Monad_Rec_Class.Loop) {\n return new Control_Monad_Rec_Class.Loop(m$prime.value0.value0);\n };\n if (m$prime instanceof Data_Either.Right && m$prime.value0 instanceof Control_Monad_Rec_Class.Done) {\n return new Control_Monad_Rec_Class.Done(new Data_Either.Right(m$prime.value0.value0));\n };\n throw new Error(\"Failed pattern match at Control.Monad.Except.Trans (line 74, column 14 - line 77, column 43): \" + [ m$prime.constructor.name ]);\n })());\n });\n });\n return function ($194) {\n return ExceptT($193($194));\n };\n },\n Monad0: function () {\n return monadExceptT1;\n }\n };\n};\nvar monadStateExceptT = function (dictMonadState) {\n var Monad0 = dictMonadState.Monad0();\n var lift1 = lift(Monad0);\n var state = Control_Monad_State_Class.state(dictMonadState);\n var monadExceptT1 = monadExceptT(Monad0);\n return {\n state: function (f) {\n return lift1(state(f));\n },\n Monad0: function () {\n return monadExceptT1;\n }\n };\n};\nvar monadTellExceptT = function (dictMonadTell) {\n var Monad1 = dictMonadTell.Monad1();\n var Semigroup0 = dictMonadTell.Semigroup0();\n var monadExceptT1 = monadExceptT(Monad1);\n return {\n tell: (function () {\n var $195 = lift(Monad1);\n var $196 = Control_Monad_Writer_Class.tell(dictMonadTell);\n return function ($197) {\n return $195($196($197));\n };\n })(),\n Semigroup0: function () {\n return Semigroup0;\n },\n Monad1: function () {\n return monadExceptT1;\n }\n };\n};\nvar monadWriterExceptT = function (dictMonadWriter) {\n var MonadTell1 = dictMonadWriter.MonadTell1();\n var Monad1 = MonadTell1.Monad1();\n var bind = Control_Bind.bind(Monad1.Bind1());\n var listen = Control_Monad_Writer_Class.listen(dictMonadWriter);\n var pure = Control_Applicative.pure(Monad1.Applicative0());\n var pass = Control_Monad_Writer_Class.pass(dictMonadWriter);\n var Monoid0 = dictMonadWriter.Monoid0();\n var monadTellExceptT1 = monadTellExceptT(MonadTell1);\n return {\n listen: mapExceptT(function (m) {\n return bind(listen(m))(function (v) {\n return pure(map(function (r) {\n return new Data_Tuple.Tuple(r, v.value1);\n })(v.value0));\n });\n }),\n pass: mapExceptT(function (m) {\n return pass(bind(m)(function (a) {\n return pure((function () {\n if (a instanceof Data_Either.Left) {\n return new Data_Tuple.Tuple(new Data_Either.Left(a.value0), identity);\n };\n if (a instanceof Data_Either.Right) {\n return new Data_Tuple.Tuple(new Data_Either.Right(a.value0.value0), a.value0.value1);\n };\n throw new Error(\"Failed pattern match at Control.Monad.Except.Trans (line 134, column 10 - line 136, column 45): \" + [ a.constructor.name ]);\n })());\n }));\n }),\n Monoid0: function () {\n return Monoid0;\n },\n MonadTell1: function () {\n return monadTellExceptT1;\n }\n };\n};\nvar monadThrowExceptT = function (dictMonad) {\n var monadExceptT1 = monadExceptT(dictMonad);\n return {\n throwError: (function () {\n var $198 = Control_Applicative.pure(dictMonad.Applicative0());\n return function ($199) {\n return ExceptT($198(Data_Either.Left.create($199)));\n };\n })(),\n Monad0: function () {\n return monadExceptT1;\n }\n };\n};\nvar monadErrorExceptT = function (dictMonad) {\n var bind = Control_Bind.bind(dictMonad.Bind1());\n var pure = Control_Applicative.pure(dictMonad.Applicative0());\n var monadThrowExceptT1 = monadThrowExceptT(dictMonad);\n return {\n catchError: function (v) {\n return function (k) {\n return bind(v)(Data_Either.either(function (a) {\n var v1 = k(a);\n return v1;\n })(function ($200) {\n return pure(Data_Either.Right.create($200));\n }));\n };\n },\n MonadThrow0: function () {\n return monadThrowExceptT1;\n }\n };\n};\nvar monoidExceptT = function (dictMonad) {\n var pure = Control_Applicative.pure(applicativeExceptT(dictMonad));\n var semigroupExceptT1 = semigroupExceptT(dictMonad);\n return function (dictMonoid) {\n var semigroupExceptT2 = semigroupExceptT1(dictMonoid.Semigroup0());\n return {\n mempty: pure(Data_Monoid.mempty(dictMonoid)),\n Semigroup0: function () {\n return semigroupExceptT2;\n }\n };\n };\n};\nvar altExceptT = function (dictSemigroup) {\n var append = Data_Semigroup.append(dictSemigroup);\n return function (dictMonad) {\n var Bind1 = dictMonad.Bind1();\n var bind = Control_Bind.bind(Bind1);\n var pure = Control_Applicative.pure(dictMonad.Applicative0());\n var functorExceptT1 = functorExceptT((Bind1.Apply0()).Functor0());\n return {\n alt: function (v) {\n return function (v1) {\n return bind(v)(function (rm) {\n if (rm instanceof Data_Either.Right) {\n return pure(new Data_Either.Right(rm.value0));\n };\n if (rm instanceof Data_Either.Left) {\n return bind(v1)(function (rn) {\n if (rn instanceof Data_Either.Right) {\n return pure(new Data_Either.Right(rn.value0));\n };\n if (rn instanceof Data_Either.Left) {\n return pure(new Data_Either.Left(append(rm.value0)(rn.value0)));\n };\n throw new Error(\"Failed pattern match at Control.Monad.Except.Trans (line 86, column 9 - line 88, column 49): \" + [ rn.constructor.name ]);\n });\n };\n throw new Error(\"Failed pattern match at Control.Monad.Except.Trans (line 82, column 5 - line 88, column 49): \" + [ rm.constructor.name ]);\n });\n };\n },\n Functor0: function () {\n return functorExceptT1;\n }\n };\n };\n};\nvar plusExceptT = function (dictMonoid) {\n var mempty = Data_Monoid.mempty(dictMonoid);\n var altExceptT1 = altExceptT(dictMonoid.Semigroup0());\n return function (dictMonad) {\n var altExceptT2 = altExceptT1(dictMonad);\n return {\n empty: Control_Monad_Error_Class.throwError(monadThrowExceptT(dictMonad))(mempty),\n Alt0: function () {\n return altExceptT2;\n }\n };\n };\n};\nvar alternativeExceptT = function (dictMonoid) {\n var plusExceptT1 = plusExceptT(dictMonoid);\n return function (dictMonad) {\n var applicativeExceptT1 = applicativeExceptT(dictMonad);\n var plusExceptT2 = plusExceptT1(dictMonad);\n return {\n Applicative0: function () {\n return applicativeExceptT1;\n },\n Plus1: function () {\n return plusExceptT2;\n }\n };\n };\n};\nvar monadPlusExceptT = function (dictMonoid) {\n var alternativeExceptT1 = alternativeExceptT(dictMonoid);\n return function (dictMonad) {\n var monadExceptT1 = monadExceptT(dictMonad);\n var alternativeExceptT2 = alternativeExceptT1(dictMonad);\n return {\n Monad0: function () {\n return monadExceptT1;\n },\n Alternative1: function () {\n return alternativeExceptT2;\n }\n };\n };\n};\nexport {\n ExceptT,\n runExceptT,\n withExceptT,\n mapExceptT,\n except,\n newtypeExceptT,\n functorExceptT,\n applyExceptT,\n applicativeExceptT,\n bindExceptT,\n monadExceptT,\n monadRecExceptT,\n altExceptT,\n plusExceptT,\n alternativeExceptT,\n monadPlusExceptT,\n monadTransExceptT,\n monadEffectExceptT,\n monadContExceptT,\n monadThrowExceptT,\n monadErrorExceptT,\n monadAskExceptT,\n monadReaderExceptT,\n monadStateExceptT,\n monadTellExceptT,\n monadWriterExceptT,\n semigroupExceptT,\n monoidExceptT\n};\nexport {\n catchError,\n throwError\n} from \"../Control.Monad.Error.Class/index.js\";\nexport {\n lift\n} from \"../Control.Monad.Trans.Class/index.js\";\n","// Generated by purs version 0.15.7\nimport * as Control_Monad_Error_Class from \"../Control.Monad.Error.Class/index.js\";\nimport * as Control_Monad_Except_Trans from \"../Control.Monad.Except.Trans/index.js\";\nimport * as Data_Identity from \"../Data.Identity/index.js\";\nimport * as Data_Newtype from \"../Data.Newtype/index.js\";\nvar unwrap = /* #__PURE__ */ Data_Newtype.unwrap();\nvar withExcept = /* #__PURE__ */ Control_Monad_Except_Trans.withExceptT(Data_Identity.functorIdentity);\nvar runExcept = function ($3) {\n return unwrap(Control_Monad_Except_Trans.runExceptT($3));\n};\nvar mapExcept = function (f) {\n return Control_Monad_Except_Trans.mapExceptT(function ($4) {\n return Data_Identity.Identity(f(unwrap($4)));\n });\n};\nexport {\n runExcept,\n mapExcept,\n withExcept\n};\nexport {\n catchError,\n catchJust,\n throwError\n} from \"../Control.Monad.Error.Class/index.js\";\nexport {\n ExceptT,\n except,\n lift,\n mapExceptT,\n runExceptT,\n withExceptT\n} from \"../Control.Monad.Except.Trans/index.js\";\n","export function typeOf(value) {\n return typeof value;\n}\n\nexport function tagOf(value) {\n return Object.prototype.toString.call(value).slice(8, -1);\n}\n\nexport function isNull(value) {\n return value === null;\n}\n\nexport function isUndefined(value) {\n return value === undefined;\n}\n\nexport const isArray = Array.isArray || function (value) {\n return Object.prototype.toString.call(value) === \"[object Array]\";\n};\n","// Generated by purs version 0.15.7\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Bifunctor from \"../Data.Bifunctor/index.js\";\nimport * as Data_Const from \"../Data.Const/index.js\";\nimport * as Data_Either from \"../Data.Either/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Functor_App from \"../Data.Functor.App/index.js\";\nimport * as Data_Functor_Compose from \"../Data.Functor.Compose/index.js\";\nimport * as Data_Functor_Coproduct from \"../Data.Functor.Coproduct/index.js\";\nimport * as Data_Functor_Product from \"../Data.Functor.Product/index.js\";\nimport * as Data_Identity from \"../Data.Identity/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Maybe_First from \"../Data.Maybe.First/index.js\";\nimport * as Data_Maybe_Last from \"../Data.Maybe.Last/index.js\";\nimport * as Data_Monoid_Additive from \"../Data.Monoid.Additive/index.js\";\nimport * as Data_Monoid_Conj from \"../Data.Monoid.Conj/index.js\";\nimport * as Data_Monoid_Disj from \"../Data.Monoid.Disj/index.js\";\nimport * as Data_Monoid_Dual from \"../Data.Monoid.Dual/index.js\";\nimport * as Data_Monoid_Multiplicative from \"../Data.Monoid.Multiplicative/index.js\";\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nvar map = /* #__PURE__ */ Data_Functor.map(Data_Tuple.functorTuple);\nvar bimap = /* #__PURE__ */ Data_Bifunctor.bimap(Data_Bifunctor.bifunctorTuple);\nvar map1 = /* #__PURE__ */ Data_Functor.map(Data_Monoid_Multiplicative.functorMultiplicative);\nvar map2 = /* #__PURE__ */ Data_Functor.map(Data_Maybe.functorMaybe);\nvar map3 = /* #__PURE__ */ Data_Functor.map(Data_Maybe_Last.functorLast);\nvar map4 = /* #__PURE__ */ Data_Functor.map(Data_Maybe_First.functorFirst);\nvar map5 = /* #__PURE__ */ Data_Functor.map(Data_Either.functorEither);\nvar map6 = /* #__PURE__ */ Data_Functor.map(Data_Monoid_Dual.functorDual);\nvar map7 = /* #__PURE__ */ Data_Functor.map(Data_Monoid_Disj.functorDisj);\nvar bimap1 = /* #__PURE__ */ Data_Bifunctor.bimap(Data_Bifunctor.bifunctorEither);\nvar map8 = /* #__PURE__ */ Data_Functor.map(Data_Monoid_Conj.functorConj);\nvar map9 = /* #__PURE__ */ Data_Functor.map(Data_Monoid_Additive.functorAdditive);\nvar mapWithIndex = function (dict) {\n return dict.mapWithIndex;\n};\nvar mapDefault = function (dictFunctorWithIndex) {\n var mapWithIndex1 = mapWithIndex(dictFunctorWithIndex);\n return function (f) {\n return mapWithIndex1(Data_Function[\"const\"](f));\n };\n};\nvar functorWithIndexTuple = {\n mapWithIndex: function (f) {\n return map(f(Data_Unit.unit));\n },\n Functor0: function () {\n return Data_Tuple.functorTuple;\n }\n};\nvar functorWithIndexProduct = function (dictFunctorWithIndex) {\n var mapWithIndex1 = mapWithIndex(dictFunctorWithIndex);\n var functorProduct = Data_Functor_Product.functorProduct(dictFunctorWithIndex.Functor0());\n return function (dictFunctorWithIndex1) {\n var mapWithIndex2 = mapWithIndex(dictFunctorWithIndex1);\n var functorProduct1 = functorProduct(dictFunctorWithIndex1.Functor0());\n return {\n mapWithIndex: function (f) {\n return function (v) {\n return bimap(mapWithIndex1(function ($63) {\n return f(Data_Either.Left.create($63));\n }))(mapWithIndex2(function ($64) {\n return f(Data_Either.Right.create($64));\n }))(v);\n };\n },\n Functor0: function () {\n return functorProduct1;\n }\n };\n };\n};\nvar functorWithIndexMultiplicative = {\n mapWithIndex: function (f) {\n return map1(f(Data_Unit.unit));\n },\n Functor0: function () {\n return Data_Monoid_Multiplicative.functorMultiplicative;\n }\n};\nvar functorWithIndexMaybe = {\n mapWithIndex: function (f) {\n return map2(f(Data_Unit.unit));\n },\n Functor0: function () {\n return Data_Maybe.functorMaybe;\n }\n};\nvar functorWithIndexLast = {\n mapWithIndex: function (f) {\n return map3(f(Data_Unit.unit));\n },\n Functor0: function () {\n return Data_Maybe_Last.functorLast;\n }\n};\nvar functorWithIndexIdentity = {\n mapWithIndex: function (f) {\n return function (v) {\n return f(Data_Unit.unit)(v);\n };\n },\n Functor0: function () {\n return Data_Identity.functorIdentity;\n }\n};\nvar functorWithIndexFirst = {\n mapWithIndex: function (f) {\n return map4(f(Data_Unit.unit));\n },\n Functor0: function () {\n return Data_Maybe_First.functorFirst;\n }\n};\nvar functorWithIndexEither = {\n mapWithIndex: function (f) {\n return map5(f(Data_Unit.unit));\n },\n Functor0: function () {\n return Data_Either.functorEither;\n }\n};\nvar functorWithIndexDual = {\n mapWithIndex: function (f) {\n return map6(f(Data_Unit.unit));\n },\n Functor0: function () {\n return Data_Monoid_Dual.functorDual;\n }\n};\nvar functorWithIndexDisj = {\n mapWithIndex: function (f) {\n return map7(f(Data_Unit.unit));\n },\n Functor0: function () {\n return Data_Monoid_Disj.functorDisj;\n }\n};\nvar functorWithIndexCoproduct = function (dictFunctorWithIndex) {\n var mapWithIndex1 = mapWithIndex(dictFunctorWithIndex);\n var functorCoproduct = Data_Functor_Coproduct.functorCoproduct(dictFunctorWithIndex.Functor0());\n return function (dictFunctorWithIndex1) {\n var mapWithIndex2 = mapWithIndex(dictFunctorWithIndex1);\n var functorCoproduct1 = functorCoproduct(dictFunctorWithIndex1.Functor0());\n return {\n mapWithIndex: function (f) {\n return function (v) {\n return bimap1(mapWithIndex1(function ($65) {\n return f(Data_Either.Left.create($65));\n }))(mapWithIndex2(function ($66) {\n return f(Data_Either.Right.create($66));\n }))(v);\n };\n },\n Functor0: function () {\n return functorCoproduct1;\n }\n };\n };\n};\nvar functorWithIndexConst = {\n mapWithIndex: function (v) {\n return function (v1) {\n return v1;\n };\n },\n Functor0: function () {\n return Data_Const.functorConst;\n }\n};\nvar functorWithIndexConj = {\n mapWithIndex: function (f) {\n return map8(f(Data_Unit.unit));\n },\n Functor0: function () {\n return Data_Monoid_Conj.functorConj;\n }\n};\nvar functorWithIndexCompose = function (dictFunctorWithIndex) {\n var mapWithIndex1 = mapWithIndex(dictFunctorWithIndex);\n var functorCompose = Data_Functor_Compose.functorCompose(dictFunctorWithIndex.Functor0());\n return function (dictFunctorWithIndex1) {\n var mapWithIndex2 = mapWithIndex(dictFunctorWithIndex1);\n var functorCompose1 = functorCompose(dictFunctorWithIndex1.Functor0());\n return {\n mapWithIndex: function (f) {\n return function (v) {\n return mapWithIndex1((function () {\n var $67 = Data_Tuple.curry(f);\n return function ($68) {\n return mapWithIndex2($67($68));\n };\n })())(v);\n };\n },\n Functor0: function () {\n return functorCompose1;\n }\n };\n };\n};\nvar functorWithIndexArray = {\n mapWithIndex: $foreign.mapWithIndexArray,\n Functor0: function () {\n return Data_Functor.functorArray;\n }\n};\nvar functorWithIndexApp = function (dictFunctorWithIndex) {\n var mapWithIndex1 = mapWithIndex(dictFunctorWithIndex);\n var functorApp = Data_Functor_App.functorApp(dictFunctorWithIndex.Functor0());\n return {\n mapWithIndex: function (f) {\n return function (v) {\n return mapWithIndex1(f)(v);\n };\n },\n Functor0: function () {\n return functorApp;\n }\n };\n};\nvar functorWithIndexAdditive = {\n mapWithIndex: function (f) {\n return map9(f(Data_Unit.unit));\n },\n Functor0: function () {\n return Data_Monoid_Additive.functorAdditive;\n }\n};\nexport {\n mapWithIndex,\n mapDefault,\n functorWithIndexArray,\n functorWithIndexMaybe,\n functorWithIndexFirst,\n functorWithIndexLast,\n functorWithIndexAdditive,\n functorWithIndexDual,\n functorWithIndexConj,\n functorWithIndexDisj,\n functorWithIndexMultiplicative,\n functorWithIndexEither,\n functorWithIndexTuple,\n functorWithIndexIdentity,\n functorWithIndexConst,\n functorWithIndexProduct,\n functorWithIndexCoproduct,\n functorWithIndexCompose,\n functorWithIndexApp\n};\n","// Generated by purs version 0.15.7\nimport * as Control_Alt from \"../Control.Alt/index.js\";\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Apply from \"../Control.Apply/index.js\";\nimport * as Control_Plus from \"../Control.Plus/index.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Foldable from \"../Data.Foldable/index.js\";\nimport * as Data_FoldableWithIndex from \"../Data.FoldableWithIndex/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_FunctorWithIndex from \"../Data.FunctorWithIndex/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Data_Ordering from \"../Data.Ordering/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nimport * as Data_Semigroup_Foldable from \"../Data.Semigroup.Foldable/index.js\";\nimport * as Data_Show from \"../Data.Show/index.js\";\nimport * as Data_Traversable from \"../Data.Traversable/index.js\";\nimport * as Data_TraversableWithIndex from \"../Data.TraversableWithIndex/index.js\";\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nimport * as Data_Unfoldable from \"../Data.Unfoldable/index.js\";\nvar map = /* #__PURE__ */ Data_Functor.map(Data_Tuple.functorTuple);\nvar map1 = /* #__PURE__ */ Data_Functor.map(Data_Maybe.functorMaybe);\nvar NonEmpty = /* #__PURE__ */ (function () {\n function NonEmpty(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n NonEmpty.create = function (value0) {\n return function (value1) {\n return new NonEmpty(value0, value1);\n };\n };\n return NonEmpty;\n})();\nvar unfoldable1NonEmpty = function (dictUnfoldable) {\n var unfoldr = Data_Unfoldable.unfoldr(dictUnfoldable);\n return {\n unfoldr1: function (f) {\n return function (b) {\n return Data_Tuple.uncurry(NonEmpty.create)(map(unfoldr(map1(f)))(f(b)));\n };\n }\n };\n};\nvar tail = function (v) {\n return v.value1;\n};\nvar singleton = function (dictPlus) {\n var empty = Control_Plus.empty(dictPlus);\n return function (a) {\n return new NonEmpty(a, empty);\n };\n};\nvar showNonEmpty = function (dictShow) {\n var show = Data_Show.show(dictShow);\n return function (dictShow1) {\n var show1 = Data_Show.show(dictShow1);\n return {\n show: function (v) {\n return \"(NonEmpty \" + (show(v.value0) + (\" \" + (show1(v.value1) + \")\")));\n }\n };\n };\n};\nvar semigroupNonEmpty = function (dictApplicative) {\n var pure = Control_Applicative.pure(dictApplicative);\n return function (dictSemigroup) {\n var append1 = Data_Semigroup.append(dictSemigroup);\n return {\n append: function (v) {\n return function (v1) {\n return new NonEmpty(v.value0, append1(v.value1)(append1(pure(v1.value0))(v1.value1)));\n };\n }\n };\n };\n};\nvar oneOf = function (dictAlternative) {\n var alt = Control_Alt.alt((dictAlternative.Plus1()).Alt0());\n var pure = Control_Applicative.pure(dictAlternative.Applicative0());\n return function (v) {\n return alt(pure(v.value0))(v.value1);\n };\n};\nvar head = function (v) {\n return v.value0;\n};\nvar functorNonEmpty = function (dictFunctor) {\n var map2 = Data_Functor.map(dictFunctor);\n return {\n map: function (f) {\n return function (m) {\n return new NonEmpty(f(m.value0), map2(f)(m.value1));\n };\n }\n };\n};\nvar functorWithIndex = function (dictFunctorWithIndex) {\n var mapWithIndex = Data_FunctorWithIndex.mapWithIndex(dictFunctorWithIndex);\n var functorNonEmpty1 = functorNonEmpty(dictFunctorWithIndex.Functor0());\n return {\n mapWithIndex: function (f) {\n return function (v) {\n return new NonEmpty(f(Data_Maybe.Nothing.value)(v.value0), mapWithIndex(function ($245) {\n return f(Data_Maybe.Just.create($245));\n })(v.value1));\n };\n },\n Functor0: function () {\n return functorNonEmpty1;\n }\n };\n};\nvar fromNonEmpty = function (f) {\n return function (v) {\n return f(v.value0)(v.value1);\n };\n};\nvar foldableNonEmpty = function (dictFoldable) {\n var foldMap = Data_Foldable.foldMap(dictFoldable);\n var foldl = Data_Foldable.foldl(dictFoldable);\n var foldr = Data_Foldable.foldr(dictFoldable);\n return {\n foldMap: function (dictMonoid) {\n var append1 = Data_Semigroup.append(dictMonoid.Semigroup0());\n var foldMap1 = foldMap(dictMonoid);\n return function (f) {\n return function (v) {\n return append1(f(v.value0))(foldMap1(f)(v.value1));\n };\n };\n },\n foldl: function (f) {\n return function (b) {\n return function (v) {\n return foldl(f)(f(b)(v.value0))(v.value1);\n };\n };\n },\n foldr: function (f) {\n return function (b) {\n return function (v) {\n return f(v.value0)(foldr(f)(b)(v.value1));\n };\n };\n }\n };\n};\nvar foldableWithIndexNonEmpty = function (dictFoldableWithIndex) {\n var foldMapWithIndex = Data_FoldableWithIndex.foldMapWithIndex(dictFoldableWithIndex);\n var foldlWithIndex = Data_FoldableWithIndex.foldlWithIndex(dictFoldableWithIndex);\n var foldrWithIndex = Data_FoldableWithIndex.foldrWithIndex(dictFoldableWithIndex);\n var foldableNonEmpty1 = foldableNonEmpty(dictFoldableWithIndex.Foldable0());\n return {\n foldMapWithIndex: function (dictMonoid) {\n var append1 = Data_Semigroup.append(dictMonoid.Semigroup0());\n var foldMapWithIndex1 = foldMapWithIndex(dictMonoid);\n return function (f) {\n return function (v) {\n return append1(f(Data_Maybe.Nothing.value)(v.value0))(foldMapWithIndex1(function ($246) {\n return f(Data_Maybe.Just.create($246));\n })(v.value1));\n };\n };\n },\n foldlWithIndex: function (f) {\n return function (b) {\n return function (v) {\n return foldlWithIndex(function ($247) {\n return f(Data_Maybe.Just.create($247));\n })(f(Data_Maybe.Nothing.value)(b)(v.value0))(v.value1);\n };\n };\n },\n foldrWithIndex: function (f) {\n return function (b) {\n return function (v) {\n return f(Data_Maybe.Nothing.value)(v.value0)(foldrWithIndex(function ($248) {\n return f(Data_Maybe.Just.create($248));\n })(b)(v.value1));\n };\n };\n },\n Foldable0: function () {\n return foldableNonEmpty1;\n }\n };\n};\nvar traversableNonEmpty = function (dictTraversable) {\n var sequence = Data_Traversable.sequence(dictTraversable);\n var traverse = Data_Traversable.traverse(dictTraversable);\n var functorNonEmpty1 = functorNonEmpty(dictTraversable.Functor0());\n var foldableNonEmpty1 = foldableNonEmpty(dictTraversable.Foldable1());\n return {\n sequence: function (dictApplicative) {\n var Apply0 = dictApplicative.Apply0();\n var apply = Control_Apply.apply(Apply0);\n var map2 = Data_Functor.map(Apply0.Functor0());\n var sequence1 = sequence(dictApplicative);\n return function (v) {\n return apply(map2(NonEmpty.create)(v.value0))(sequence1(v.value1));\n };\n },\n traverse: function (dictApplicative) {\n var Apply0 = dictApplicative.Apply0();\n var apply = Control_Apply.apply(Apply0);\n var map2 = Data_Functor.map(Apply0.Functor0());\n var traverse1 = traverse(dictApplicative);\n return function (f) {\n return function (v) {\n return apply(map2(NonEmpty.create)(f(v.value0)))(traverse1(f)(v.value1));\n };\n };\n },\n Functor0: function () {\n return functorNonEmpty1;\n },\n Foldable1: function () {\n return foldableNonEmpty1;\n }\n };\n};\nvar traversableWithIndexNonEmpty = function (dictTraversableWithIndex) {\n var traverseWithIndex = Data_TraversableWithIndex.traverseWithIndex(dictTraversableWithIndex);\n var functorWithIndex1 = functorWithIndex(dictTraversableWithIndex.FunctorWithIndex0());\n var foldableWithIndexNonEmpty1 = foldableWithIndexNonEmpty(dictTraversableWithIndex.FoldableWithIndex1());\n var traversableNonEmpty1 = traversableNonEmpty(dictTraversableWithIndex.Traversable2());\n return {\n traverseWithIndex: function (dictApplicative) {\n var Apply0 = dictApplicative.Apply0();\n var apply = Control_Apply.apply(Apply0);\n var map2 = Data_Functor.map(Apply0.Functor0());\n var traverseWithIndex1 = traverseWithIndex(dictApplicative);\n return function (f) {\n return function (v) {\n return apply(map2(NonEmpty.create)(f(Data_Maybe.Nothing.value)(v.value0)))(traverseWithIndex1(function ($249) {\n return f(Data_Maybe.Just.create($249));\n })(v.value1));\n };\n };\n },\n FunctorWithIndex0: function () {\n return functorWithIndex1;\n },\n FoldableWithIndex1: function () {\n return foldableWithIndexNonEmpty1;\n },\n Traversable2: function () {\n return traversableNonEmpty1;\n }\n };\n};\nvar foldable1NonEmpty = function (dictFoldable) {\n var foldl = Data_Foldable.foldl(dictFoldable);\n var foldr = Data_Foldable.foldr(dictFoldable);\n var foldableNonEmpty1 = foldableNonEmpty(dictFoldable);\n return {\n foldMap1: function (dictSemigroup) {\n var append1 = Data_Semigroup.append(dictSemigroup);\n return function (f) {\n return function (v) {\n return foldl(function (s) {\n return function (a1) {\n return append1(s)(f(a1));\n };\n })(f(v.value0))(v.value1);\n };\n };\n },\n foldr1: function (f) {\n return function (v) {\n return Data_Maybe.maybe(v.value0)(f(v.value0))(foldr(function (a1) {\n var $250 = Data_Maybe.maybe(a1)(f(a1));\n return function ($251) {\n return Data_Maybe.Just.create($250($251));\n };\n })(Data_Maybe.Nothing.value)(v.value1));\n };\n },\n foldl1: function (f) {\n return function (v) {\n return foldl(f)(v.value0)(v.value1);\n };\n },\n Foldable0: function () {\n return foldableNonEmpty1;\n }\n };\n};\nvar foldl1 = function (dictFoldable) {\n return Data_Semigroup_Foldable.foldl1(foldable1NonEmpty(dictFoldable));\n};\nvar eqNonEmpty = function (dictEq1) {\n var eq1 = Data_Eq.eq1(dictEq1);\n return function (dictEq) {\n var eq = Data_Eq.eq(dictEq);\n var eq11 = eq1(dictEq);\n return {\n eq: function (x) {\n return function (y) {\n return eq(x.value0)(y.value0) && eq11(x.value1)(y.value1);\n };\n }\n };\n };\n};\nvar ordNonEmpty = function (dictOrd1) {\n var compare1 = Data_Ord.compare1(dictOrd1);\n var eqNonEmpty1 = eqNonEmpty(dictOrd1.Eq10());\n return function (dictOrd) {\n var compare = Data_Ord.compare(dictOrd);\n var compare11 = compare1(dictOrd);\n var eqNonEmpty2 = eqNonEmpty1(dictOrd.Eq0());\n return {\n compare: function (x) {\n return function (y) {\n var v = compare(x.value0)(y.value0);\n if (v instanceof Data_Ordering.LT) {\n return Data_Ordering.LT.value;\n };\n if (v instanceof Data_Ordering.GT) {\n return Data_Ordering.GT.value;\n };\n return compare11(x.value1)(y.value1);\n };\n },\n Eq0: function () {\n return eqNonEmpty2;\n }\n };\n };\n};\nvar eq1NonEmpty = function (dictEq1) {\n var eqNonEmpty1 = eqNonEmpty(dictEq1);\n return {\n eq1: function (dictEq) {\n return Data_Eq.eq(eqNonEmpty1(dictEq));\n }\n };\n};\nvar ord1NonEmpty = function (dictOrd1) {\n var ordNonEmpty1 = ordNonEmpty(dictOrd1);\n var eq1NonEmpty1 = eq1NonEmpty(dictOrd1.Eq10());\n return {\n compare1: function (dictOrd) {\n return Data_Ord.compare(ordNonEmpty1(dictOrd));\n },\n Eq10: function () {\n return eq1NonEmpty1;\n }\n };\n};\nexport {\n NonEmpty,\n singleton,\n foldl1,\n fromNonEmpty,\n oneOf,\n head,\n tail,\n showNonEmpty,\n eqNonEmpty,\n eq1NonEmpty,\n ordNonEmpty,\n ord1NonEmpty,\n functorNonEmpty,\n functorWithIndex,\n foldableNonEmpty,\n foldableWithIndexNonEmpty,\n traversableNonEmpty,\n traversableWithIndexNonEmpty,\n foldable1NonEmpty,\n unfoldable1NonEmpty,\n semigroupNonEmpty\n};\n","// Generated by purs version 0.15.7\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Apply from \"../Control.Apply/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Foldable from \"../Data.Foldable/index.js\";\nimport * as Data_FoldableWithIndex from \"../Data.FoldableWithIndex/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_FunctorWithIndex from \"../Data.FunctorWithIndex/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Monoid from \"../Data.Monoid/index.js\";\nimport * as Data_NonEmpty from \"../Data.NonEmpty/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Data_Ordering from \"../Data.Ordering/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nimport * as Data_Semigroup_Traversable from \"../Data.Semigroup.Traversable/index.js\";\nimport * as Data_Semiring from \"../Data.Semiring/index.js\";\nimport * as Data_Show from \"../Data.Show/index.js\";\nimport * as Data_Traversable from \"../Data.Traversable/index.js\";\nimport * as Data_TraversableWithIndex from \"../Data.TraversableWithIndex/index.js\";\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nvar add = /* #__PURE__ */ Data_Semiring.add(Data_Semiring.semiringInt);\nvar identity = /* #__PURE__ */ Control_Category.identity(Control_Category.categoryFn);\nvar Nil = /* #__PURE__ */ (function () {\n function Nil() {\n\n };\n Nil.value = new Nil();\n return Nil;\n})();\nvar Cons = /* #__PURE__ */ (function () {\n function Cons(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n Cons.create = function (value0) {\n return function (value1) {\n return new Cons(value0, value1);\n };\n };\n return Cons;\n})();\nvar NonEmptyList = function (x) {\n return x;\n};\nvar toList = function (v) {\n return new Cons(v.value0, v.value1);\n};\nvar newtypeNonEmptyList = {\n Coercible0: function () {\n return undefined;\n }\n};\nvar nelCons = function (a) {\n return function (v) {\n return new Data_NonEmpty.NonEmpty(a, new Cons(v.value0, v.value1));\n };\n};\nvar listMap = function (f) {\n var chunkedRevMap = function ($copy_v) {\n return function ($copy_v1) {\n var $tco_var_v = $copy_v;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(v, v1) {\n if (v1 instanceof Cons && (v1.value1 instanceof Cons && v1.value1.value1 instanceof Cons)) {\n $tco_var_v = new Cons(v1, v);\n $copy_v1 = v1.value1.value1.value1;\n return;\n };\n var unrolledMap = function (v2) {\n if (v2 instanceof Cons && (v2.value1 instanceof Cons && v2.value1.value1 instanceof Nil)) {\n return new Cons(f(v2.value0), new Cons(f(v2.value1.value0), Nil.value));\n };\n if (v2 instanceof Cons && v2.value1 instanceof Nil) {\n return new Cons(f(v2.value0), Nil.value);\n };\n return Nil.value;\n };\n var reverseUnrolledMap = function ($copy_v2) {\n return function ($copy_v3) {\n var $tco_var_v2 = $copy_v2;\n var $tco_done1 = false;\n var $tco_result;\n function $tco_loop(v2, v3) {\n if (v2 instanceof Cons && (v2.value0 instanceof Cons && (v2.value0.value1 instanceof Cons && v2.value0.value1.value1 instanceof Cons))) {\n $tco_var_v2 = v2.value1;\n $copy_v3 = new Cons(f(v2.value0.value0), new Cons(f(v2.value0.value1.value0), new Cons(f(v2.value0.value1.value1.value0), v3)));\n return;\n };\n $tco_done1 = true;\n return v3;\n };\n while (!$tco_done1) {\n $tco_result = $tco_loop($tco_var_v2, $copy_v3);\n };\n return $tco_result;\n };\n };\n $tco_done = true;\n return reverseUnrolledMap(v)(unrolledMap(v1));\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_v, $copy_v1);\n };\n return $tco_result;\n };\n };\n return chunkedRevMap(Nil.value);\n};\nvar functorList = {\n map: listMap\n};\nvar map = /* #__PURE__ */ Data_Functor.map(functorList);\nvar functorNonEmptyList = /* #__PURE__ */ Data_NonEmpty.functorNonEmpty(functorList);\nvar foldableList = {\n foldr: function (f) {\n return function (b) {\n var rev = (function () {\n var go = function ($copy_v) {\n return function ($copy_v1) {\n var $tco_var_v = $copy_v;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(v, v1) {\n if (v1 instanceof Nil) {\n $tco_done = true;\n return v;\n };\n if (v1 instanceof Cons) {\n $tco_var_v = new Cons(v1.value0, v);\n $copy_v1 = v1.value1;\n return;\n };\n throw new Error(\"Failed pattern match at Data.List.Types (line 107, column 7 - line 107, column 23): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_v, $copy_v1);\n };\n return $tco_result;\n };\n };\n return go(Nil.value);\n })();\n var $284 = Data_Foldable.foldl(foldableList)(Data_Function.flip(f))(b);\n return function ($285) {\n return $284(rev($285));\n };\n };\n },\n foldl: function (f) {\n var go = function ($copy_b) {\n return function ($copy_v) {\n var $tco_var_b = $copy_b;\n var $tco_done1 = false;\n var $tco_result;\n function $tco_loop(b, v) {\n if (v instanceof Nil) {\n $tco_done1 = true;\n return b;\n };\n if (v instanceof Cons) {\n $tco_var_b = f(b)(v.value0);\n $copy_v = v.value1;\n return;\n };\n throw new Error(\"Failed pattern match at Data.List.Types (line 111, column 12 - line 113, column 30): \" + [ v.constructor.name ]);\n };\n while (!$tco_done1) {\n $tco_result = $tco_loop($tco_var_b, $copy_v);\n };\n return $tco_result;\n };\n };\n return go;\n },\n foldMap: function (dictMonoid) {\n var append2 = Data_Semigroup.append(dictMonoid.Semigroup0());\n var mempty = Data_Monoid.mempty(dictMonoid);\n return function (f) {\n return Data_Foldable.foldl(foldableList)(function (acc) {\n var $286 = append2(acc);\n return function ($287) {\n return $286(f($287));\n };\n })(mempty);\n };\n }\n};\nvar foldl = /* #__PURE__ */ Data_Foldable.foldl(foldableList);\nvar foldr = /* #__PURE__ */ Data_Foldable.foldr(foldableList);\nvar intercalate = /* #__PURE__ */ Data_Foldable.intercalate(foldableList)(Data_Monoid.monoidString);\nvar foldableNonEmptyList = /* #__PURE__ */ Data_NonEmpty.foldableNonEmpty(foldableList);\nvar foldableWithIndexList = {\n foldrWithIndex: function (f) {\n return function (b) {\n return function (xs) {\n var v = (function () {\n var rev = foldl(function (v1) {\n return function (a) {\n return new Data_Tuple.Tuple(v1.value0 + 1 | 0, new Cons(a, v1.value1));\n };\n });\n return rev(new Data_Tuple.Tuple(0, Nil.value))(xs);\n })();\n return Data_Tuple.snd(foldl(function (v1) {\n return function (a) {\n return new Data_Tuple.Tuple(v1.value0 - 1 | 0, f(v1.value0 - 1 | 0)(a)(v1.value1));\n };\n })(new Data_Tuple.Tuple(v.value0, b))(v.value1));\n };\n };\n },\n foldlWithIndex: function (f) {\n return function (acc) {\n var $288 = foldl(function (v) {\n return function (a) {\n return new Data_Tuple.Tuple(v.value0 + 1 | 0, f(v.value0)(v.value1)(a));\n };\n })(new Data_Tuple.Tuple(0, acc));\n return function ($289) {\n return Data_Tuple.snd($288($289));\n };\n };\n },\n foldMapWithIndex: function (dictMonoid) {\n var append2 = Data_Semigroup.append(dictMonoid.Semigroup0());\n var mempty = Data_Monoid.mempty(dictMonoid);\n return function (f) {\n return Data_FoldableWithIndex.foldlWithIndex(foldableWithIndexList)(function (i) {\n return function (acc) {\n var $290 = append2(acc);\n var $291 = f(i);\n return function ($292) {\n return $290($291($292));\n };\n };\n })(mempty);\n };\n },\n Foldable0: function () {\n return foldableList;\n }\n};\nvar foldableWithIndexNonEmpty = /* #__PURE__ */ Data_NonEmpty.foldableWithIndexNonEmpty(foldableWithIndexList);\nvar foldMapWithIndex = /* #__PURE__ */ Data_FoldableWithIndex.foldMapWithIndex(foldableWithIndexNonEmpty);\nvar foldlWithIndex = /* #__PURE__ */ Data_FoldableWithIndex.foldlWithIndex(foldableWithIndexNonEmpty);\nvar foldrWithIndex = /* #__PURE__ */ Data_FoldableWithIndex.foldrWithIndex(foldableWithIndexNonEmpty);\nvar foldrWithIndex1 = /* #__PURE__ */ Data_FoldableWithIndex.foldrWithIndex(foldableWithIndexList);\nvar foldlWithIndex1 = /* #__PURE__ */ Data_FoldableWithIndex.foldlWithIndex(foldableWithIndexList);\nvar foldableWithIndexNonEmptyList = {\n foldMapWithIndex: function (dictMonoid) {\n var foldMapWithIndex1 = foldMapWithIndex(dictMonoid);\n return function (f) {\n return function (v) {\n return foldMapWithIndex1((function () {\n var $293 = Data_Maybe.maybe(0)(add(1));\n return function ($294) {\n return f($293($294));\n };\n })())(v);\n };\n };\n },\n foldlWithIndex: function (f) {\n return function (b) {\n return function (v) {\n return foldlWithIndex((function () {\n var $295 = Data_Maybe.maybe(0)(add(1));\n return function ($296) {\n return f($295($296));\n };\n })())(b)(v);\n };\n };\n },\n foldrWithIndex: function (f) {\n return function (b) {\n return function (v) {\n return foldrWithIndex((function () {\n var $297 = Data_Maybe.maybe(0)(add(1));\n return function ($298) {\n return f($297($298));\n };\n })())(b)(v);\n };\n };\n },\n Foldable0: function () {\n return foldableNonEmptyList;\n }\n};\nvar functorWithIndexList = {\n mapWithIndex: function (f) {\n return foldrWithIndex1(function (i) {\n return function (x) {\n return function (acc) {\n return new Cons(f(i)(x), acc);\n };\n };\n })(Nil.value);\n },\n Functor0: function () {\n return functorList;\n }\n};\nvar mapWithIndex = /* #__PURE__ */ Data_FunctorWithIndex.mapWithIndex(/* #__PURE__ */ Data_NonEmpty.functorWithIndex(functorWithIndexList));\nvar functorWithIndexNonEmptyList = {\n mapWithIndex: function (fn) {\n return function (v) {\n return mapWithIndex((function () {\n var $299 = Data_Maybe.maybe(0)(add(1));\n return function ($300) {\n return fn($299($300));\n };\n })())(v);\n };\n },\n Functor0: function () {\n return functorNonEmptyList;\n }\n};\nvar semigroupList = {\n append: function (xs) {\n return function (ys) {\n return foldr(Cons.create)(ys)(xs);\n };\n }\n};\nvar append1 = /* #__PURE__ */ Data_Semigroup.append(semigroupList);\nvar monoidList = /* #__PURE__ */ (function () {\n return {\n mempty: Nil.value,\n Semigroup0: function () {\n return semigroupList;\n }\n };\n})();\nvar semigroupNonEmptyList = {\n append: function (v) {\n return function (as$prime) {\n return new Data_NonEmpty.NonEmpty(v.value0, append1(v.value1)(toList(as$prime)));\n };\n }\n};\nvar showList = function (dictShow) {\n var show = Data_Show.show(dictShow);\n return {\n show: function (v) {\n if (v instanceof Nil) {\n return \"Nil\";\n };\n return \"(\" + (intercalate(\" : \")(map(show)(v)) + \" : Nil)\");\n }\n };\n};\nvar showNonEmptyList = function (dictShow) {\n var show = Data_Show.show(Data_NonEmpty.showNonEmpty(dictShow)(showList(dictShow)));\n return {\n show: function (v) {\n return \"(NonEmptyList \" + (show(v) + \")\");\n }\n };\n};\nvar traversableList = {\n traverse: function (dictApplicative) {\n var Apply0 = dictApplicative.Apply0();\n var map1 = Data_Functor.map(Apply0.Functor0());\n var lift2 = Control_Apply.lift2(Apply0);\n var pure1 = Control_Applicative.pure(dictApplicative);\n return function (f) {\n var $301 = map1(foldl(Data_Function.flip(Cons.create))(Nil.value));\n var $302 = foldl(function (acc) {\n var $304 = lift2(Data_Function.flip(Cons.create))(acc);\n return function ($305) {\n return $304(f($305));\n };\n })(pure1(Nil.value));\n return function ($303) {\n return $301($302($303));\n };\n };\n },\n sequence: function (dictApplicative) {\n return Data_Traversable.traverse(traversableList)(dictApplicative)(identity);\n },\n Functor0: function () {\n return functorList;\n },\n Foldable1: function () {\n return foldableList;\n }\n};\nvar traversableNonEmptyList = /* #__PURE__ */ Data_NonEmpty.traversableNonEmpty(traversableList);\nvar traversableWithIndexList = {\n traverseWithIndex: function (dictApplicative) {\n var Apply0 = dictApplicative.Apply0();\n var map1 = Data_Functor.map(Apply0.Functor0());\n var lift2 = Control_Apply.lift2(Apply0);\n var pure1 = Control_Applicative.pure(dictApplicative);\n return function (f) {\n var rev = foldl(Data_Function.flip(Cons.create))(Nil.value);\n var $306 = map1(rev);\n var $307 = foldlWithIndex1(function (i) {\n return function (acc) {\n var $309 = lift2(Data_Function.flip(Cons.create))(acc);\n var $310 = f(i);\n return function ($311) {\n return $309($310($311));\n };\n };\n })(pure1(Nil.value));\n return function ($308) {\n return $306($307($308));\n };\n };\n },\n FunctorWithIndex0: function () {\n return functorWithIndexList;\n },\n FoldableWithIndex1: function () {\n return foldableWithIndexList;\n },\n Traversable2: function () {\n return traversableList;\n }\n};\nvar traverseWithIndex = /* #__PURE__ */ Data_TraversableWithIndex.traverseWithIndex(/* #__PURE__ */ Data_NonEmpty.traversableWithIndexNonEmpty(traversableWithIndexList));\nvar traversableWithIndexNonEmptyList = {\n traverseWithIndex: function (dictApplicative) {\n var map1 = Data_Functor.map((dictApplicative.Apply0()).Functor0());\n var traverseWithIndex1 = traverseWithIndex(dictApplicative);\n return function (f) {\n return function (v) {\n return map1(NonEmptyList)(traverseWithIndex1((function () {\n var $312 = Data_Maybe.maybe(0)(add(1));\n return function ($313) {\n return f($312($313));\n };\n })())(v));\n };\n };\n },\n FunctorWithIndex0: function () {\n return functorWithIndexNonEmptyList;\n },\n FoldableWithIndex1: function () {\n return foldableWithIndexNonEmptyList;\n },\n Traversable2: function () {\n return traversableNonEmptyList;\n }\n};\nvar unfoldable1List = {\n unfoldr1: function (f) {\n return function (b) {\n var go = function ($copy_source) {\n return function ($copy_memo) {\n var $tco_var_source = $copy_source;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(source, memo) {\n var v = f(source);\n if (v.value1 instanceof Data_Maybe.Just) {\n $tco_var_source = v.value1.value0;\n $copy_memo = new Cons(v.value0, memo);\n return;\n };\n if (v.value1 instanceof Data_Maybe.Nothing) {\n $tco_done = true;\n return foldl(Data_Function.flip(Cons.create))(Nil.value)(new Cons(v.value0, memo));\n };\n throw new Error(\"Failed pattern match at Data.List.Types (line 135, column 22 - line 137, column 61): \" + [ v.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_source, $copy_memo);\n };\n return $tco_result;\n };\n };\n return go(b)(Nil.value);\n };\n }\n};\nvar unfoldableList = {\n unfoldr: function (f) {\n return function (b) {\n var go = function ($copy_source) {\n return function ($copy_memo) {\n var $tco_var_source = $copy_source;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(source, memo) {\n var v = f(source);\n if (v instanceof Data_Maybe.Nothing) {\n $tco_done = true;\n return foldl(Data_Function.flip(Cons.create))(Nil.value)(memo);\n };\n if (v instanceof Data_Maybe.Just) {\n $tco_var_source = v.value0.value1;\n $copy_memo = new Cons(v.value0.value0, memo);\n return;\n };\n throw new Error(\"Failed pattern match at Data.List.Types (line 142, column 22 - line 144, column 52): \" + [ v.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_source, $copy_memo);\n };\n return $tco_result;\n };\n };\n return go(b)(Nil.value);\n };\n },\n Unfoldable10: function () {\n return unfoldable1List;\n }\n};\nvar unfoldable1NonEmptyList = /* #__PURE__ */ Data_NonEmpty.unfoldable1NonEmpty(unfoldableList);\nvar foldable1NonEmptyList = /* #__PURE__ */ Data_NonEmpty.foldable1NonEmpty(foldableList);\nvar extendNonEmptyList = {\n extend: function (f) {\n return function (v) {\n var go = function (a) {\n return function (v1) {\n return {\n val: new Cons(f(new Data_NonEmpty.NonEmpty(a, v1.acc)), v1.val),\n acc: new Cons(a, v1.acc)\n };\n };\n };\n return new Data_NonEmpty.NonEmpty(f(v), (foldr(go)({\n val: Nil.value,\n acc: Nil.value\n })(v.value1)).val);\n };\n },\n Functor0: function () {\n return functorNonEmptyList;\n }\n};\nvar extendList = {\n extend: function (v) {\n return function (v1) {\n if (v1 instanceof Nil) {\n return Nil.value;\n };\n if (v1 instanceof Cons) {\n var go = function (a$prime) {\n return function (v2) {\n var acc$prime = new Cons(a$prime, v2.acc);\n return {\n val: new Cons(v(acc$prime), v2.val),\n acc: acc$prime\n };\n };\n };\n return new Cons(v(v1), (foldr(go)({\n val: Nil.value,\n acc: Nil.value\n })(v1.value1)).val);\n };\n throw new Error(\"Failed pattern match at Data.List.Types (line 180, column 1 - line 187, column 42): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n },\n Functor0: function () {\n return functorList;\n }\n};\nvar eq1List = {\n eq1: function (dictEq) {\n var eq = Data_Eq.eq(dictEq);\n return function (xs) {\n return function (ys) {\n var go = function ($copy_v) {\n return function ($copy_v1) {\n return function ($copy_v2) {\n var $tco_var_v = $copy_v;\n var $tco_var_v1 = $copy_v1;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(v, v1, v2) {\n if (!v2) {\n $tco_done = true;\n return false;\n };\n if (v instanceof Nil && v1 instanceof Nil) {\n $tco_done = true;\n return v2;\n };\n if (v instanceof Cons && v1 instanceof Cons) {\n $tco_var_v = v.value1;\n $tco_var_v1 = v1.value1;\n $copy_v2 = v2 && eq(v1.value0)(v.value0);\n return;\n };\n $tco_done = true;\n return false;\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_v, $tco_var_v1, $copy_v2);\n };\n return $tco_result;\n };\n };\n };\n return go(xs)(ys)(true);\n };\n };\n }\n};\nvar eq1 = /* #__PURE__ */ Data_Eq.eq1(eq1List);\nvar eqNonEmpty = /* #__PURE__ */ Data_NonEmpty.eqNonEmpty(eq1List);\nvar eq1NonEmptyList = /* #__PURE__ */ Data_NonEmpty.eq1NonEmpty(eq1List);\nvar eqList = function (dictEq) {\n return {\n eq: eq1(dictEq)\n };\n};\nvar eqNonEmptyList = function (dictEq) {\n return eqNonEmpty(dictEq);\n};\nvar ord1List = {\n compare1: function (dictOrd) {\n var compare = Data_Ord.compare(dictOrd);\n return function (xs) {\n return function (ys) {\n var go = function ($copy_v) {\n return function ($copy_v1) {\n var $tco_var_v = $copy_v;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(v, v1) {\n if (v instanceof Nil && v1 instanceof Nil) {\n $tco_done = true;\n return Data_Ordering.EQ.value;\n };\n if (v instanceof Nil) {\n $tco_done = true;\n return Data_Ordering.LT.value;\n };\n if (v1 instanceof Nil) {\n $tco_done = true;\n return Data_Ordering.GT.value;\n };\n if (v instanceof Cons && v1 instanceof Cons) {\n var v2 = compare(v.value0)(v1.value0);\n if (v2 instanceof Data_Ordering.EQ) {\n $tco_var_v = v.value1;\n $copy_v1 = v1.value1;\n return;\n };\n $tco_done = true;\n return v2;\n };\n throw new Error(\"Failed pattern match at Data.List.Types (line 60, column 5 - line 60, column 20): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_v, $copy_v1);\n };\n return $tco_result;\n };\n };\n return go(xs)(ys);\n };\n };\n },\n Eq10: function () {\n return eq1List;\n }\n};\nvar compare1 = /* #__PURE__ */ Data_Ord.compare1(ord1List);\nvar ordNonEmpty = /* #__PURE__ */ Data_NonEmpty.ordNonEmpty(ord1List);\nvar ord1NonEmptyList = /* #__PURE__ */ Data_NonEmpty.ord1NonEmpty(ord1List);\nvar ordList = function (dictOrd) {\n var eqList1 = eqList(dictOrd.Eq0());\n return {\n compare: compare1(dictOrd),\n Eq0: function () {\n return eqList1;\n }\n };\n};\nvar ordNonEmptyList = function (dictOrd) {\n return ordNonEmpty(dictOrd);\n};\nvar comonadNonEmptyList = {\n extract: function (v) {\n return v.value0;\n },\n Extend0: function () {\n return extendNonEmptyList;\n }\n};\nvar applyList = {\n apply: function (v) {\n return function (v1) {\n if (v instanceof Nil) {\n return Nil.value;\n };\n if (v instanceof Cons) {\n return append1(map(v.value0)(v1))(Control_Apply.apply(applyList)(v.value1)(v1));\n };\n throw new Error(\"Failed pattern match at Data.List.Types (line 157, column 1 - line 159, column 48): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n },\n Functor0: function () {\n return functorList;\n }\n};\nvar apply = /* #__PURE__ */ Control_Apply.apply(applyList);\nvar applyNonEmptyList = {\n apply: function (v) {\n return function (v1) {\n return new Data_NonEmpty.NonEmpty(v.value0(v1.value0), append1(apply(v.value1)(new Cons(v1.value0, Nil.value)))(apply(new Cons(v.value0, v.value1))(v1.value1)));\n };\n },\n Functor0: function () {\n return functorNonEmptyList;\n }\n};\nvar bindList = {\n bind: function (v) {\n return function (v1) {\n if (v instanceof Nil) {\n return Nil.value;\n };\n if (v instanceof Cons) {\n return append1(v1(v.value0))(Control_Bind.bind(bindList)(v.value1)(v1));\n };\n throw new Error(\"Failed pattern match at Data.List.Types (line 164, column 1 - line 166, column 37): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n },\n Apply0: function () {\n return applyList;\n }\n};\nvar bind = /* #__PURE__ */ Control_Bind.bind(bindList);\nvar bindNonEmptyList = {\n bind: function (v) {\n return function (f) {\n var v1 = f(v.value0);\n return new Data_NonEmpty.NonEmpty(v1.value0, append1(v1.value1)(bind(v.value1)(function ($314) {\n return toList(f($314));\n })));\n };\n },\n Apply0: function () {\n return applyNonEmptyList;\n }\n};\nvar applicativeList = {\n pure: function (a) {\n return new Cons(a, Nil.value);\n },\n Apply0: function () {\n return applyList;\n }\n};\nvar monadList = {\n Applicative0: function () {\n return applicativeList;\n },\n Bind1: function () {\n return bindList;\n }\n};\nvar altNonEmptyList = {\n alt: /* #__PURE__ */ Data_Semigroup.append(semigroupNonEmptyList),\n Functor0: function () {\n return functorNonEmptyList;\n }\n};\nvar altList = {\n alt: append1,\n Functor0: function () {\n return functorList;\n }\n};\nvar plusList = /* #__PURE__ */ (function () {\n return {\n empty: Nil.value,\n Alt0: function () {\n return altList;\n }\n };\n})();\nvar alternativeList = {\n Applicative0: function () {\n return applicativeList;\n },\n Plus1: function () {\n return plusList;\n }\n};\nvar monadPlusList = {\n Monad0: function () {\n return monadList;\n },\n Alternative1: function () {\n return alternativeList;\n }\n};\nvar applicativeNonEmptyList = {\n pure: /* #__PURE__ */ (function () {\n var $315 = Data_NonEmpty.singleton(plusList);\n return function ($316) {\n return NonEmptyList($315($316));\n };\n })(),\n Apply0: function () {\n return applyNonEmptyList;\n }\n};\nvar pure = /* #__PURE__ */ Control_Applicative.pure(applicativeNonEmptyList);\nvar monadNonEmptyList = {\n Applicative0: function () {\n return applicativeNonEmptyList;\n },\n Bind1: function () {\n return bindNonEmptyList;\n }\n};\nvar traversable1NonEmptyList = {\n traverse1: function (dictApply) {\n var Functor0 = dictApply.Functor0();\n var mapFlipped = Data_Functor.mapFlipped(Functor0);\n var lift2 = Control_Apply.lift2(dictApply);\n var map1 = Data_Functor.map(Functor0);\n return function (f) {\n return function (v) {\n return mapFlipped(foldl(function (acc) {\n var $317 = lift2(Data_Function.flip(nelCons))(acc);\n return function ($318) {\n return $317(f($318));\n };\n })(map1(pure)(f(v.value0)))(v.value1))(function (v1) {\n return foldl(Data_Function.flip(nelCons))(pure(v1.value0))(v1.value1);\n });\n };\n };\n },\n sequence1: function (dictApply) {\n return Data_Semigroup_Traversable.traverse1(traversable1NonEmptyList)(dictApply)(identity);\n },\n Foldable10: function () {\n return foldable1NonEmptyList;\n },\n Traversable1: function () {\n return traversableNonEmptyList;\n }\n};\nexport {\n Nil,\n Cons,\n NonEmptyList,\n toList,\n nelCons,\n showList,\n eqList,\n eq1List,\n ordList,\n ord1List,\n semigroupList,\n monoidList,\n functorList,\n functorWithIndexList,\n foldableList,\n foldableWithIndexList,\n unfoldable1List,\n unfoldableList,\n traversableList,\n traversableWithIndexList,\n applyList,\n applicativeList,\n bindList,\n monadList,\n altList,\n plusList,\n alternativeList,\n monadPlusList,\n extendList,\n newtypeNonEmptyList,\n eqNonEmptyList,\n ordNonEmptyList,\n eq1NonEmptyList,\n ord1NonEmptyList,\n showNonEmptyList,\n functorNonEmptyList,\n applyNonEmptyList,\n applicativeNonEmptyList,\n bindNonEmptyList,\n monadNonEmptyList,\n altNonEmptyList,\n extendNonEmptyList,\n comonadNonEmptyList,\n semigroupNonEmptyList,\n foldableNonEmptyList,\n traversableNonEmptyList,\n foldable1NonEmptyList,\n unfoldable1NonEmptyList,\n functorWithIndexNonEmptyList,\n foldableWithIndexNonEmptyList,\n traversableWithIndexNonEmptyList,\n traversable1NonEmptyList\n};\n","// Generated by purs version 0.15.7\nimport * as Control_Alt from \"../Control.Alt/index.js\";\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Apply from \"../Control.Apply/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Control_Lazy from \"../Control.Lazy/index.js\";\nimport * as Control_Monad_Rec_Class from \"../Control.Monad.Rec.Class/index.js\";\nimport * as Data_Bifunctor from \"../Data.Bifunctor/index.js\";\nimport * as Data_Boolean from \"../Data.Boolean/index.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Foldable from \"../Data.Foldable/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_HeytingAlgebra from \"../Data.HeytingAlgebra/index.js\";\nimport * as Data_List_Internal from \"../Data.List.Internal/index.js\";\nimport * as Data_List_Types from \"../Data.List.Types/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_NonEmpty from \"../Data.NonEmpty/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Data_Ordering from \"../Data.Ordering/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nimport * as Data_Show from \"../Data.Show/index.js\";\nimport * as Data_Traversable from \"../Data.Traversable/index.js\";\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nimport * as Data_Unfoldable from \"../Data.Unfoldable/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nvar map = /* #__PURE__ */ Data_Functor.map(Data_Maybe.functorMaybe);\nvar foldr = /* #__PURE__ */ Data_Foldable.foldr(Data_List_Types.foldableList);\nvar tailRecM2 = /* #__PURE__ */ Control_Monad_Rec_Class.tailRecM2(Control_Monad_Rec_Class.monadRecMaybe);\nvar eq = /* #__PURE__ */ Data_Eq.eq(Data_Ordering.eqOrdering);\nvar notEq = /* #__PURE__ */ Data_Eq.notEq(Data_Ordering.eqOrdering);\nvar sequence = /* #__PURE__ */ Data_Traversable.sequence(Data_List_Types.traversableList);\nvar bimap = /* #__PURE__ */ Data_Bifunctor.bimap(Control_Monad_Rec_Class.bifunctorStep);\nvar foldl = /* #__PURE__ */ Data_Foldable.foldl(Data_List_Types.foldableList);\nvar any = /* #__PURE__ */ Data_Foldable.any(Data_List_Types.foldableList)(Data_HeytingAlgebra.heytingAlgebraBoolean);\nvar append1 = /* #__PURE__ */ Data_Semigroup.append(Data_List_Types.semigroupList);\nvar bind = /* #__PURE__ */ Control_Bind.bind(Data_List_Types.bindList);\nvar identity = /* #__PURE__ */ Control_Category.identity(Control_Category.categoryFn);\nvar Pattern = function (x) {\n return x;\n};\nvar updateAt = function (v) {\n return function (v1) {\n return function (v2) {\n if (v === 0 && v2 instanceof Data_List_Types.Cons) {\n return new Data_Maybe.Just(new Data_List_Types.Cons(v1, v2.value1));\n };\n if (v2 instanceof Data_List_Types.Cons) {\n return map(function (v3) {\n return new Data_List_Types.Cons(v2.value0, v3);\n })(updateAt(v - 1 | 0)(v1)(v2.value1));\n };\n return Data_Maybe.Nothing.value;\n };\n };\n};\nvar unzip = /* #__PURE__ */ (function () {\n return foldr(function (v) {\n return function (v1) {\n return new Data_Tuple.Tuple(new Data_List_Types.Cons(v.value0, v1.value0), new Data_List_Types.Cons(v.value1, v1.value1));\n };\n })(new Data_Tuple.Tuple(Data_List_Types.Nil.value, Data_List_Types.Nil.value));\n})();\nvar uncons = function (v) {\n if (v instanceof Data_List_Types.Nil) {\n return Data_Maybe.Nothing.value;\n };\n if (v instanceof Data_List_Types.Cons) {\n return new Data_Maybe.Just({\n head: v.value0,\n tail: v.value1\n });\n };\n throw new Error(\"Failed pattern match at Data.List (line 259, column 1 - line 259, column 66): \" + [ v.constructor.name ]);\n};\nvar toUnfoldable = function (dictUnfoldable) {\n return Data_Unfoldable.unfoldr(dictUnfoldable)(function (xs) {\n return map(function (rec) {\n return new Data_Tuple.Tuple(rec.head, rec.tail);\n })(uncons(xs));\n });\n};\nvar tail = function (v) {\n if (v instanceof Data_List_Types.Nil) {\n return Data_Maybe.Nothing.value;\n };\n if (v instanceof Data_List_Types.Cons) {\n return new Data_Maybe.Just(v.value1);\n };\n throw new Error(\"Failed pattern match at Data.List (line 245, column 1 - line 245, column 43): \" + [ v.constructor.name ]);\n};\nvar stripPrefix = function (dictEq) {\n var eq2 = Data_Eq.eq(dictEq);\n return function (v) {\n return function (s) {\n var go = function (prefix) {\n return function (input) {\n if (prefix instanceof Data_List_Types.Cons && (input instanceof Data_List_Types.Cons && eq2(prefix.value0)(input.value0))) {\n return new Data_Maybe.Just(new Control_Monad_Rec_Class.Loop({\n a: prefix.value1,\n b: input.value1\n }));\n };\n if (prefix instanceof Data_List_Types.Nil) {\n return new Data_Maybe.Just(new Control_Monad_Rec_Class.Done(input));\n };\n return Data_Maybe.Nothing.value;\n };\n };\n return tailRecM2(go)(v)(s);\n };\n };\n};\nvar span = function (v) {\n return function (v1) {\n if (v1 instanceof Data_List_Types.Cons && v(v1.value0)) {\n var v2 = span(v)(v1.value1);\n return {\n init: new Data_List_Types.Cons(v1.value0, v2.init),\n rest: v2.rest\n };\n };\n return {\n init: Data_List_Types.Nil.value,\n rest: v1\n };\n };\n};\nvar snoc = function (xs) {\n return function (x) {\n return foldr(Data_List_Types.Cons.create)(new Data_List_Types.Cons(x, Data_List_Types.Nil.value))(xs);\n };\n};\nvar singleton = function (a) {\n return new Data_List_Types.Cons(a, Data_List_Types.Nil.value);\n};\nvar sortBy = function (cmp) {\n var merge = function (v) {\n return function (v1) {\n if (v instanceof Data_List_Types.Cons && v1 instanceof Data_List_Types.Cons) {\n if (eq(cmp(v.value0)(v1.value0))(Data_Ordering.GT.value)) {\n return new Data_List_Types.Cons(v1.value0, merge(v)(v1.value1));\n };\n if (Data_Boolean.otherwise) {\n return new Data_List_Types.Cons(v.value0, merge(v.value1)(v1));\n };\n };\n if (v instanceof Data_List_Types.Nil) {\n return v1;\n };\n if (v1 instanceof Data_List_Types.Nil) {\n return v;\n };\n throw new Error(\"Failed pattern match at Data.List (line 466, column 3 - line 466, column 38): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n };\n var mergePairs = function (v) {\n if (v instanceof Data_List_Types.Cons && v.value1 instanceof Data_List_Types.Cons) {\n return new Data_List_Types.Cons(merge(v.value0)(v.value1.value0), mergePairs(v.value1.value1));\n };\n return v;\n };\n var mergeAll = function ($copy_v) {\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(v) {\n if (v instanceof Data_List_Types.Cons && v.value1 instanceof Data_List_Types.Nil) {\n $tco_done = true;\n return v.value0;\n };\n $copy_v = mergePairs(v);\n return;\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($copy_v);\n };\n return $tco_result;\n };\n var sequences = function (v) {\n if (v instanceof Data_List_Types.Cons && v.value1 instanceof Data_List_Types.Cons) {\n if (eq(cmp(v.value0)(v.value1.value0))(Data_Ordering.GT.value)) {\n return descending(v.value1.value0)(singleton(v.value0))(v.value1.value1);\n };\n if (Data_Boolean.otherwise) {\n return ascending(v.value1.value0)(function (v1) {\n return new Data_List_Types.Cons(v.value0, v1);\n })(v.value1.value1);\n };\n };\n return singleton(v);\n };\n var descending = function ($copy_v) {\n return function ($copy_v1) {\n return function ($copy_v2) {\n var $tco_var_v = $copy_v;\n var $tco_var_v1 = $copy_v1;\n var $tco_done1 = false;\n var $tco_result;\n function $tco_loop(v, v1, v2) {\n if (v2 instanceof Data_List_Types.Cons && eq(cmp(v)(v2.value0))(Data_Ordering.GT.value)) {\n $tco_var_v = v2.value0;\n $tco_var_v1 = new Data_List_Types.Cons(v, v1);\n $copy_v2 = v2.value1;\n return;\n };\n $tco_done1 = true;\n return new Data_List_Types.Cons(new Data_List_Types.Cons(v, v1), sequences(v2));\n };\n while (!$tco_done1) {\n $tco_result = $tco_loop($tco_var_v, $tco_var_v1, $copy_v2);\n };\n return $tco_result;\n };\n };\n };\n var ascending = function ($copy_v) {\n return function ($copy_v1) {\n return function ($copy_v2) {\n var $tco_var_v = $copy_v;\n var $tco_var_v1 = $copy_v1;\n var $tco_done2 = false;\n var $tco_result;\n function $tco_loop(v, v1, v2) {\n if (v2 instanceof Data_List_Types.Cons && notEq(cmp(v)(v2.value0))(Data_Ordering.GT.value)) {\n $tco_var_v = v2.value0;\n $tco_var_v1 = function (ys) {\n return v1(new Data_List_Types.Cons(v, ys));\n };\n $copy_v2 = v2.value1;\n return;\n };\n $tco_done2 = true;\n return new Data_List_Types.Cons(v1(singleton(v)), sequences(v2));\n };\n while (!$tco_done2) {\n $tco_result = $tco_loop($tco_var_v, $tco_var_v1, $copy_v2);\n };\n return $tco_result;\n };\n };\n };\n return function ($444) {\n return mergeAll(sequences($444));\n };\n};\nvar sort = function (dictOrd) {\n var compare = Data_Ord.compare(dictOrd);\n return function (xs) {\n return sortBy(compare)(xs);\n };\n};\nvar tails = function (v) {\n if (v instanceof Data_List_Types.Nil) {\n return singleton(Data_List_Types.Nil.value);\n };\n if (v instanceof Data_List_Types.Cons) {\n return new Data_List_Types.Cons(v, tails(v.value1));\n };\n throw new Error(\"Failed pattern match at Data.List (line 641, column 1 - line 641, column 43): \" + [ v.constructor.name ]);\n};\nvar showPattern = function (dictShow) {\n var show = Data_Show.show(Data_List_Types.showList(dictShow));\n return {\n show: function (v) {\n return \"(Pattern \" + (show(v) + \")\");\n }\n };\n};\nvar reverse = /* #__PURE__ */ (function () {\n var go = function ($copy_v) {\n return function ($copy_v1) {\n var $tco_var_v = $copy_v;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(v, v1) {\n if (v1 instanceof Data_List_Types.Nil) {\n $tco_done = true;\n return v;\n };\n if (v1 instanceof Data_List_Types.Cons) {\n $tco_var_v = new Data_List_Types.Cons(v1.value0, v);\n $copy_v1 = v1.value1;\n return;\n };\n throw new Error(\"Failed pattern match at Data.List (line 368, column 3 - line 368, column 19): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_v, $copy_v1);\n };\n return $tco_result;\n };\n };\n return go(Data_List_Types.Nil.value);\n})();\nvar take = /* #__PURE__ */ (function () {\n var go = function ($copy_v) {\n return function ($copy_v1) {\n return function ($copy_v2) {\n var $tco_var_v = $copy_v;\n var $tco_var_v1 = $copy_v1;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(v, v1, v2) {\n if (v1 < 1) {\n $tco_done = true;\n return reverse(v);\n };\n if (v2 instanceof Data_List_Types.Nil) {\n $tco_done = true;\n return reverse(v);\n };\n if (v2 instanceof Data_List_Types.Cons) {\n $tco_var_v = new Data_List_Types.Cons(v2.value0, v);\n $tco_var_v1 = v1 - 1 | 0;\n $copy_v2 = v2.value1;\n return;\n };\n throw new Error(\"Failed pattern match at Data.List (line 513, column 3 - line 513, column 35): \" + [ v.constructor.name, v1.constructor.name, v2.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_v, $tco_var_v1, $copy_v2);\n };\n return $tco_result;\n };\n };\n };\n return go(Data_List_Types.Nil.value);\n})();\nvar takeWhile = function (p) {\n var go = function ($copy_v) {\n return function ($copy_v1) {\n var $tco_var_v = $copy_v;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(v, v1) {\n if (v1 instanceof Data_List_Types.Cons && p(v1.value0)) {\n $tco_var_v = new Data_List_Types.Cons(v1.value0, v);\n $copy_v1 = v1.value1;\n return;\n };\n $tco_done = true;\n return reverse(v);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_v, $copy_v1);\n };\n return $tco_result;\n };\n };\n return go(Data_List_Types.Nil.value);\n};\nvar unsnoc = function (lst) {\n var go = function ($copy_v) {\n return function ($copy_v1) {\n var $tco_var_v = $copy_v;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(v, v1) {\n if (v instanceof Data_List_Types.Nil) {\n $tco_done = true;\n return Data_Maybe.Nothing.value;\n };\n if (v instanceof Data_List_Types.Cons && v.value1 instanceof Data_List_Types.Nil) {\n $tco_done = true;\n return new Data_Maybe.Just({\n revInit: v1,\n last: v.value0\n });\n };\n if (v instanceof Data_List_Types.Cons) {\n $tco_var_v = v.value1;\n $copy_v1 = new Data_List_Types.Cons(v.value0, v1);\n return;\n };\n throw new Error(\"Failed pattern match at Data.List (line 270, column 3 - line 270, column 21): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_v, $copy_v1);\n };\n return $tco_result;\n };\n };\n return map(function (h) {\n return {\n init: reverse(h.revInit),\n last: h.last\n };\n })(go(lst)(Data_List_Types.Nil.value));\n};\nvar zipWith = function (f) {\n return function (xs) {\n return function (ys) {\n var go = function ($copy_v) {\n return function ($copy_v1) {\n return function ($copy_v2) {\n var $tco_var_v = $copy_v;\n var $tco_var_v1 = $copy_v1;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(v, v1, v2) {\n if (v instanceof Data_List_Types.Nil) {\n $tco_done = true;\n return v2;\n };\n if (v1 instanceof Data_List_Types.Nil) {\n $tco_done = true;\n return v2;\n };\n if (v instanceof Data_List_Types.Cons && v1 instanceof Data_List_Types.Cons) {\n $tco_var_v = v.value1;\n $tco_var_v1 = v1.value1;\n $copy_v2 = new Data_List_Types.Cons(f(v.value0)(v1.value0), v2);\n return;\n };\n throw new Error(\"Failed pattern match at Data.List (line 779, column 3 - line 779, column 21): \" + [ v.constructor.name, v1.constructor.name, v2.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_v, $tco_var_v1, $copy_v2);\n };\n return $tco_result;\n };\n };\n };\n return reverse(go(xs)(ys)(Data_List_Types.Nil.value));\n };\n };\n};\nvar zip = /* #__PURE__ */ (function () {\n return zipWith(Data_Tuple.Tuple.create);\n})();\nvar zipWithA = function (dictApplicative) {\n var sequence1 = sequence(dictApplicative);\n return function (f) {\n return function (xs) {\n return function (ys) {\n return sequence1(zipWith(f)(xs)(ys));\n };\n };\n };\n};\nvar range = function (start) {\n return function (end) {\n if (start === end) {\n return singleton(start);\n };\n if (Data_Boolean.otherwise) {\n var go = function ($copy_s) {\n return function ($copy_e) {\n return function ($copy_step) {\n return function ($copy_rest) {\n var $tco_var_s = $copy_s;\n var $tco_var_e = $copy_e;\n var $tco_var_step = $copy_step;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(s, e, step, rest) {\n if (s === e) {\n $tco_done = true;\n return new Data_List_Types.Cons(s, rest);\n };\n if (Data_Boolean.otherwise) {\n $tco_var_s = s + step | 0;\n $tco_var_e = e;\n $tco_var_step = step;\n $copy_rest = new Data_List_Types.Cons(s, rest);\n return;\n };\n throw new Error(\"Failed pattern match at Data.List (line 148, column 3 - line 149, column 65): \" + [ s.constructor.name, e.constructor.name, step.constructor.name, rest.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_s, $tco_var_e, $tco_var_step, $copy_rest);\n };\n return $tco_result;\n };\n };\n };\n };\n return go(end)(start)((function () {\n var $325 = start > end;\n if ($325) {\n return 1;\n };\n return -1 | 0;\n })())(Data_List_Types.Nil.value);\n };\n throw new Error(\"Failed pattern match at Data.List (line 144, column 1 - line 144, column 32): \" + [ start.constructor.name, end.constructor.name ]);\n };\n};\nvar partition = function (p) {\n return function (xs) {\n var select = function (x) {\n return function (v) {\n var $328 = p(x);\n if ($328) {\n return {\n no: v.no,\n yes: new Data_List_Types.Cons(x, v.yes)\n };\n };\n return {\n no: new Data_List_Types.Cons(x, v.no),\n yes: v.yes\n };\n };\n };\n return foldr(select)({\n no: Data_List_Types.Nil.value,\n yes: Data_List_Types.Nil.value\n })(xs);\n };\n};\nvar $$null = function (v) {\n if (v instanceof Data_List_Types.Nil) {\n return true;\n };\n return false;\n};\nvar nubBy = function (p) {\n var go = function ($copy_v) {\n return function ($copy_v1) {\n return function ($copy_v2) {\n var $tco_var_v = $copy_v;\n var $tco_var_v1 = $copy_v1;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(v, v1, v2) {\n if (v2 instanceof Data_List_Types.Nil) {\n $tco_done = true;\n return v1;\n };\n if (v2 instanceof Data_List_Types.Cons) {\n var v3 = Data_List_Internal.insertAndLookupBy(p)(v2.value0)(v);\n if (v3.found) {\n $tco_var_v = v3.result;\n $tco_var_v1 = v1;\n $copy_v2 = v2.value1;\n return;\n };\n $tco_var_v = v3.result;\n $tco_var_v1 = new Data_List_Types.Cons(v2.value0, v1);\n $copy_v2 = v2.value1;\n return;\n };\n throw new Error(\"Failed pattern match at Data.List (line 673, column 5 - line 673, column 23): \" + [ v.constructor.name, v1.constructor.name, v2.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_v, $tco_var_v1, $copy_v2);\n };\n return $tco_result;\n };\n };\n };\n var $445 = go(Data_List_Internal.emptySet)(Data_List_Types.Nil.value);\n return function ($446) {\n return reverse($445($446));\n };\n};\nvar nub = function (dictOrd) {\n return nubBy(Data_Ord.compare(dictOrd));\n};\nvar newtypePattern = {\n Coercible0: function () {\n return undefined;\n }\n};\nvar mapMaybe = function (f) {\n var go = function ($copy_v) {\n return function ($copy_v1) {\n var $tco_var_v = $copy_v;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(v, v1) {\n if (v1 instanceof Data_List_Types.Nil) {\n $tco_done = true;\n return reverse(v);\n };\n if (v1 instanceof Data_List_Types.Cons) {\n var v2 = f(v1.value0);\n if (v2 instanceof Data_Maybe.Nothing) {\n $tco_var_v = v;\n $copy_v1 = v1.value1;\n return;\n };\n if (v2 instanceof Data_Maybe.Just) {\n $tco_var_v = new Data_List_Types.Cons(v2.value0, v);\n $copy_v1 = v1.value1;\n return;\n };\n throw new Error(\"Failed pattern match at Data.List (line 419, column 5 - line 421, column 32): \" + [ v2.constructor.name ]);\n };\n throw new Error(\"Failed pattern match at Data.List (line 417, column 3 - line 417, column 27): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_v, $copy_v1);\n };\n return $tco_result;\n };\n };\n return go(Data_List_Types.Nil.value);\n};\nvar manyRec = function (dictMonadRec) {\n var bind1 = Control_Bind.bind((dictMonadRec.Monad0()).Bind1());\n var tailRecM = Control_Monad_Rec_Class.tailRecM(dictMonadRec);\n return function (dictAlternative) {\n var Alt0 = (dictAlternative.Plus1()).Alt0();\n var alt = Control_Alt.alt(Alt0);\n var map1 = Data_Functor.map(Alt0.Functor0());\n var pure = Control_Applicative.pure(dictAlternative.Applicative0());\n return function (p) {\n var go = function (acc) {\n return bind1(alt(map1(Control_Monad_Rec_Class.Loop.create)(p))(pure(new Control_Monad_Rec_Class.Done(Data_Unit.unit))))(function (aa) {\n return pure(bimap(function (v) {\n return new Data_List_Types.Cons(v, acc);\n })(function (v) {\n return reverse(acc);\n })(aa));\n });\n };\n return tailRecM(go)(Data_List_Types.Nil.value);\n };\n };\n};\nvar someRec = function (dictMonadRec) {\n var manyRec1 = manyRec(dictMonadRec);\n return function (dictAlternative) {\n var apply = Control_Apply.apply((dictAlternative.Applicative0()).Apply0());\n var map1 = Data_Functor.map(((dictAlternative.Plus1()).Alt0()).Functor0());\n var manyRec2 = manyRec1(dictAlternative);\n return function (v) {\n return apply(map1(Data_List_Types.Cons.create)(v))(manyRec2(v));\n };\n };\n};\nvar some = function (dictAlternative) {\n var apply = Control_Apply.apply((dictAlternative.Applicative0()).Apply0());\n var map1 = Data_Functor.map(((dictAlternative.Plus1()).Alt0()).Functor0());\n return function (dictLazy) {\n var defer = Control_Lazy.defer(dictLazy);\n return function (v) {\n return apply(map1(Data_List_Types.Cons.create)(v))(defer(function (v1) {\n return many(dictAlternative)(dictLazy)(v);\n }));\n };\n };\n};\nvar many = function (dictAlternative) {\n var alt = Control_Alt.alt((dictAlternative.Plus1()).Alt0());\n var pure = Control_Applicative.pure(dictAlternative.Applicative0());\n return function (dictLazy) {\n return function (v) {\n return alt(some(dictAlternative)(dictLazy)(v))(pure(Data_List_Types.Nil.value));\n };\n };\n};\nvar length = /* #__PURE__ */ foldl(function (acc) {\n return function (v) {\n return acc + 1 | 0;\n };\n})(0);\nvar last = function ($copy_v) {\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(v) {\n if (v instanceof Data_List_Types.Cons && v.value1 instanceof Data_List_Types.Nil) {\n $tco_done = true;\n return new Data_Maybe.Just(v.value0);\n };\n if (v instanceof Data_List_Types.Cons) {\n $copy_v = v.value1;\n return;\n };\n $tco_done = true;\n return Data_Maybe.Nothing.value;\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($copy_v);\n };\n return $tco_result;\n};\nvar insertBy = function (v) {\n return function (v1) {\n return function (v2) {\n if (v2 instanceof Data_List_Types.Nil) {\n return singleton(v1);\n };\n if (v2 instanceof Data_List_Types.Cons) {\n var v3 = v(v1)(v2.value0);\n if (v3 instanceof Data_Ordering.GT) {\n return new Data_List_Types.Cons(v2.value0, insertBy(v)(v1)(v2.value1));\n };\n return new Data_List_Types.Cons(v1, v2);\n };\n throw new Error(\"Failed pattern match at Data.List (line 216, column 1 - line 216, column 68): \" + [ v.constructor.name, v1.constructor.name, v2.constructor.name ]);\n };\n };\n};\nvar insertAt = function (v) {\n return function (v1) {\n return function (v2) {\n if (v === 0) {\n return new Data_Maybe.Just(new Data_List_Types.Cons(v1, v2));\n };\n if (v2 instanceof Data_List_Types.Cons) {\n return map(function (v3) {\n return new Data_List_Types.Cons(v2.value0, v3);\n })(insertAt(v - 1 | 0)(v1)(v2.value1));\n };\n return Data_Maybe.Nothing.value;\n };\n };\n};\nvar insert = function (dictOrd) {\n return insertBy(Data_Ord.compare(dictOrd));\n};\nvar init = function (lst) {\n return map(function (v) {\n return v.init;\n })(unsnoc(lst));\n};\nvar index = function ($copy_v) {\n return function ($copy_v1) {\n var $tco_var_v = $copy_v;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(v, v1) {\n if (v instanceof Data_List_Types.Nil) {\n $tco_done = true;\n return Data_Maybe.Nothing.value;\n };\n if (v instanceof Data_List_Types.Cons && v1 === 0) {\n $tco_done = true;\n return new Data_Maybe.Just(v.value0);\n };\n if (v instanceof Data_List_Types.Cons) {\n $tco_var_v = v.value1;\n $copy_v1 = v1 - 1 | 0;\n return;\n };\n throw new Error(\"Failed pattern match at Data.List (line 281, column 1 - line 281, column 44): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_v, $copy_v1);\n };\n return $tco_result;\n };\n};\nvar head = function (v) {\n if (v instanceof Data_List_Types.Nil) {\n return Data_Maybe.Nothing.value;\n };\n if (v instanceof Data_List_Types.Cons) {\n return new Data_Maybe.Just(v.value0);\n };\n throw new Error(\"Failed pattern match at Data.List (line 230, column 1 - line 230, column 22): \" + [ v.constructor.name ]);\n};\nvar transpose = function (v) {\n if (v instanceof Data_List_Types.Nil) {\n return Data_List_Types.Nil.value;\n };\n if (v instanceof Data_List_Types.Cons && v.value0 instanceof Data_List_Types.Nil) {\n return transpose(v.value1);\n };\n if (v instanceof Data_List_Types.Cons && v.value0 instanceof Data_List_Types.Cons) {\n return new Data_List_Types.Cons(new Data_List_Types.Cons(v.value0.value0, mapMaybe(head)(v.value1)), transpose(new Data_List_Types.Cons(v.value0.value1, mapMaybe(tail)(v.value1))));\n };\n throw new Error(\"Failed pattern match at Data.List (line 813, column 1 - line 813, column 54): \" + [ v.constructor.name ]);\n};\nvar groupBy = function (v) {\n return function (v1) {\n if (v1 instanceof Data_List_Types.Nil) {\n return Data_List_Types.Nil.value;\n };\n if (v1 instanceof Data_List_Types.Cons) {\n var v2 = span(v(v1.value0))(v1.value1);\n return new Data_List_Types.Cons(new Data_NonEmpty.NonEmpty(v1.value0, v2.init), groupBy(v)(v2.rest));\n };\n throw new Error(\"Failed pattern match at Data.List (line 609, column 1 - line 609, column 80): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n};\nvar groupAllBy = function (p) {\n var $447 = groupBy(function (x) {\n return function (y) {\n return eq(p(x)(y))(Data_Ordering.EQ.value);\n };\n });\n var $448 = sortBy(p);\n return function ($449) {\n return $447($448($449));\n };\n};\nvar group = function (dictEq) {\n return groupBy(Data_Eq.eq(dictEq));\n};\nvar groupAll = function (dictOrd) {\n var $450 = group(dictOrd.Eq0());\n var $451 = sort(dictOrd);\n return function ($452) {\n return $450($451($452));\n };\n};\nvar fromFoldable = function (dictFoldable) {\n return Data_Foldable.foldr(dictFoldable)(Data_List_Types.Cons.create)(Data_List_Types.Nil.value);\n};\nvar foldM = function (dictMonad) {\n var pure = Control_Applicative.pure(dictMonad.Applicative0());\n var bind1 = Control_Bind.bind(dictMonad.Bind1());\n return function (v) {\n return function (v1) {\n return function (v2) {\n if (v2 instanceof Data_List_Types.Nil) {\n return pure(v1);\n };\n if (v2 instanceof Data_List_Types.Cons) {\n return bind1(v(v1)(v2.value0))(function (b$prime) {\n return foldM(dictMonad)(v)(b$prime)(v2.value1);\n });\n };\n throw new Error(\"Failed pattern match at Data.List (line 824, column 1 - line 824, column 72): \" + [ v.constructor.name, v1.constructor.name, v2.constructor.name ]);\n };\n };\n };\n};\nvar findIndex = function (fn) {\n var go = function ($copy_v) {\n return function ($copy_v1) {\n var $tco_var_v = $copy_v;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(v, v1) {\n if (v1 instanceof Data_List_Types.Cons) {\n if (fn(v1.value0)) {\n $tco_done = true;\n return new Data_Maybe.Just(v);\n };\n if (Data_Boolean.otherwise) {\n $tco_var_v = v + 1 | 0;\n $copy_v1 = v1.value1;\n return;\n };\n };\n if (v1 instanceof Data_List_Types.Nil) {\n $tco_done = true;\n return Data_Maybe.Nothing.value;\n };\n throw new Error(\"Failed pattern match at Data.List (line 301, column 3 - line 301, column 35): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_v, $copy_v1);\n };\n return $tco_result;\n };\n };\n return go(0);\n};\nvar findLastIndex = function (fn) {\n return function (xs) {\n return map(function (v) {\n return (length(xs) - 1 | 0) - v | 0;\n })(findIndex(fn)(reverse(xs)));\n };\n};\nvar filterM = function (dictMonad) {\n var pure = Control_Applicative.pure(dictMonad.Applicative0());\n var bind1 = Control_Bind.bind(dictMonad.Bind1());\n return function (v) {\n return function (v1) {\n if (v1 instanceof Data_List_Types.Nil) {\n return pure(Data_List_Types.Nil.value);\n };\n if (v1 instanceof Data_List_Types.Cons) {\n return bind1(v(v1.value0))(function (b) {\n return bind1(filterM(dictMonad)(v)(v1.value1))(function (xs$prime) {\n return pure((function () {\n if (b) {\n return new Data_List_Types.Cons(v1.value0, xs$prime);\n };\n return xs$prime;\n })());\n });\n });\n };\n throw new Error(\"Failed pattern match at Data.List (line 403, column 1 - line 403, column 75): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n };\n};\nvar filter = function (p) {\n var go = function ($copy_v) {\n return function ($copy_v1) {\n var $tco_var_v = $copy_v;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(v, v1) {\n if (v1 instanceof Data_List_Types.Nil) {\n $tco_done = true;\n return reverse(v);\n };\n if (v1 instanceof Data_List_Types.Cons) {\n if (p(v1.value0)) {\n $tco_var_v = new Data_List_Types.Cons(v1.value0, v);\n $copy_v1 = v1.value1;\n return;\n };\n if (Data_Boolean.otherwise) {\n $tco_var_v = v;\n $copy_v1 = v1.value1;\n return;\n };\n };\n throw new Error(\"Failed pattern match at Data.List (line 390, column 3 - line 390, column 27): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_v, $copy_v1);\n };\n return $tco_result;\n };\n };\n return go(Data_List_Types.Nil.value);\n};\nvar intersectBy = function (v) {\n return function (v1) {\n return function (v2) {\n if (v1 instanceof Data_List_Types.Nil) {\n return Data_List_Types.Nil.value;\n };\n if (v2 instanceof Data_List_Types.Nil) {\n return Data_List_Types.Nil.value;\n };\n return filter(function (x) {\n return any(v(x))(v2);\n })(v1);\n };\n };\n};\nvar intersect = function (dictEq) {\n return intersectBy(Data_Eq.eq(dictEq));\n};\nvar nubByEq = function (v) {\n return function (v1) {\n if (v1 instanceof Data_List_Types.Nil) {\n return Data_List_Types.Nil.value;\n };\n if (v1 instanceof Data_List_Types.Cons) {\n return new Data_List_Types.Cons(v1.value0, nubByEq(v)(filter(function (y) {\n return !v(v1.value0)(y);\n })(v1.value1)));\n };\n throw new Error(\"Failed pattern match at Data.List (line 705, column 1 - line 705, column 61): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n};\nvar nubEq = function (dictEq) {\n return nubByEq(Data_Eq.eq(dictEq));\n};\nvar eqPattern = function (dictEq) {\n var eq2 = Data_Eq.eq(Data_List_Types.eqList(dictEq));\n return {\n eq: function (x) {\n return function (y) {\n return eq2(x)(y);\n };\n }\n };\n};\nvar ordPattern = function (dictOrd) {\n var compare = Data_Ord.compare(Data_List_Types.ordList(dictOrd));\n var eqPattern1 = eqPattern(dictOrd.Eq0());\n return {\n compare: function (x) {\n return function (y) {\n return compare(x)(y);\n };\n },\n Eq0: function () {\n return eqPattern1;\n }\n };\n};\nvar elemLastIndex = function (dictEq) {\n var eq2 = Data_Eq.eq(dictEq);\n return function (x) {\n return findLastIndex(function (v) {\n return eq2(v)(x);\n });\n };\n};\nvar elemIndex = function (dictEq) {\n var eq2 = Data_Eq.eq(dictEq);\n return function (x) {\n return findIndex(function (v) {\n return eq2(v)(x);\n });\n };\n};\nvar dropWhile = function (p) {\n var go = function ($copy_v) {\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(v) {\n if (v instanceof Data_List_Types.Cons && p(v.value0)) {\n $copy_v = v.value1;\n return;\n };\n $tco_done = true;\n return v;\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($copy_v);\n };\n return $tco_result;\n };\n return go;\n};\nvar dropEnd = function (n) {\n return function (xs) {\n return take(length(xs) - n | 0)(xs);\n };\n};\nvar drop = function ($copy_v) {\n return function ($copy_v1) {\n var $tco_var_v = $copy_v;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(v, v1) {\n if (v < 1) {\n $tco_done = true;\n return v1;\n };\n if (v1 instanceof Data_List_Types.Nil) {\n $tco_done = true;\n return Data_List_Types.Nil.value;\n };\n if (v1 instanceof Data_List_Types.Cons) {\n $tco_var_v = v - 1 | 0;\n $copy_v1 = v1.value1;\n return;\n };\n throw new Error(\"Failed pattern match at Data.List (line 536, column 1 - line 536, column 42): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_v, $copy_v1);\n };\n return $tco_result;\n };\n};\nvar slice = function (start) {\n return function (end) {\n return function (xs) {\n return take(end - start | 0)(drop(start)(xs));\n };\n };\n};\nvar takeEnd = function (n) {\n return function (xs) {\n return drop(length(xs) - n | 0)(xs);\n };\n};\nvar deleteBy = function (v) {\n return function (v1) {\n return function (v2) {\n if (v2 instanceof Data_List_Types.Nil) {\n return Data_List_Types.Nil.value;\n };\n if (v2 instanceof Data_List_Types.Cons && v(v1)(v2.value0)) {\n return v2.value1;\n };\n if (v2 instanceof Data_List_Types.Cons) {\n return new Data_List_Types.Cons(v2.value0, deleteBy(v)(v1)(v2.value1));\n };\n throw new Error(\"Failed pattern match at Data.List (line 732, column 1 - line 732, column 67): \" + [ v.constructor.name, v1.constructor.name, v2.constructor.name ]);\n };\n };\n};\nvar unionBy = function (eq2) {\n return function (xs) {\n return function (ys) {\n return append1(xs)(foldl(Data_Function.flip(deleteBy(eq2)))(nubByEq(eq2)(ys))(xs));\n };\n };\n};\nvar union = function (dictEq) {\n return unionBy(Data_Eq.eq(dictEq));\n};\nvar deleteAt = function (v) {\n return function (v1) {\n if (v === 0 && v1 instanceof Data_List_Types.Cons) {\n return new Data_Maybe.Just(v1.value1);\n };\n if (v1 instanceof Data_List_Types.Cons) {\n return map(function (v2) {\n return new Data_List_Types.Cons(v1.value0, v2);\n })(deleteAt(v - 1 | 0)(v1.value1));\n };\n return Data_Maybe.Nothing.value;\n };\n};\nvar $$delete = function (dictEq) {\n return deleteBy(Data_Eq.eq(dictEq));\n};\nvar difference = function (dictEq) {\n return foldl(Data_Function.flip($$delete(dictEq)));\n};\nvar concatMap = /* #__PURE__ */ Data_Function.flip(bind);\nvar concat = function (v) {\n return bind(v)(identity);\n};\nvar catMaybes = /* #__PURE__ */ mapMaybe(identity);\nvar alterAt = function (v) {\n return function (v1) {\n return function (v2) {\n if (v === 0 && v2 instanceof Data_List_Types.Cons) {\n return new Data_Maybe.Just((function () {\n var v3 = v1(v2.value0);\n if (v3 instanceof Data_Maybe.Nothing) {\n return v2.value1;\n };\n if (v3 instanceof Data_Maybe.Just) {\n return new Data_List_Types.Cons(v3.value0, v2.value1);\n };\n throw new Error(\"Failed pattern match at Data.List (line 352, column 3 - line 354, column 23): \" + [ v3.constructor.name ]);\n })());\n };\n if (v2 instanceof Data_List_Types.Cons) {\n return map(function (v3) {\n return new Data_List_Types.Cons(v2.value0, v3);\n })(alterAt(v - 1 | 0)(v1)(v2.value1));\n };\n return Data_Maybe.Nothing.value;\n };\n };\n};\nvar modifyAt = function (n) {\n return function (f) {\n return alterAt(n)(function ($453) {\n return Data_Maybe.Just.create(f($453));\n });\n };\n};\nexport {\n toUnfoldable,\n fromFoldable,\n singleton,\n range,\n some,\n someRec,\n many,\n manyRec,\n $$null as null,\n length,\n snoc,\n insert,\n insertBy,\n head,\n last,\n tail,\n init,\n uncons,\n unsnoc,\n index,\n elemIndex,\n elemLastIndex,\n findIndex,\n findLastIndex,\n insertAt,\n deleteAt,\n updateAt,\n modifyAt,\n alterAt,\n reverse,\n concat,\n concatMap,\n filter,\n filterM,\n mapMaybe,\n catMaybes,\n sort,\n sortBy,\n Pattern,\n stripPrefix,\n slice,\n take,\n takeEnd,\n takeWhile,\n drop,\n dropEnd,\n dropWhile,\n span,\n group,\n groupAll,\n groupBy,\n groupAllBy,\n partition,\n nub,\n nubBy,\n nubEq,\n nubByEq,\n union,\n unionBy,\n $$delete as delete,\n deleteBy,\n difference,\n intersect,\n intersectBy,\n zipWith,\n zipWithA,\n zip,\n unzip,\n transpose,\n foldM,\n eqPattern,\n ordPattern,\n newtypePattern,\n showPattern\n};\nexport {\n all,\n any,\n elem,\n find,\n findMap,\n fold,\n foldMap,\n foldl,\n foldr,\n intercalate,\n notElem\n} from \"../Data.Foldable/index.js\";\nexport {\n Cons,\n Nil\n} from \"../Data.List.Types/index.js\";\nexport {\n scanl,\n scanr\n} from \"../Data.Traversable/index.js\";\n","// module Partial.Unsafe\n\nexport const _unsafePartial = function (f) {\n return f();\n};\n","// module Partial\n\nexport const _crashWith = function (msg) {\n throw new Error(msg);\n};\n","// Generated by purs version 0.15.7\nimport * as $foreign from \"./foreign.js\";\nvar crashWith = function () {\n return $foreign[\"_crashWith\"];\n};\nvar crashWith1 = /* #__PURE__ */ crashWith();\nvar crash = function () {\n return crashWith1(\"Partial.crash: partial function\");\n};\nexport {\n crash,\n crashWith\n};\n","// Generated by purs version 0.15.7\nimport * as $foreign from \"./foreign.js\";\nimport * as Partial from \"../Partial/index.js\";\nvar crashWith = /* #__PURE__ */ Partial.crashWith();\nvar unsafePartial = $foreign[\"_unsafePartial\"];\nvar unsafeCrashWith = function (msg) {\n return unsafePartial(function () {\n return crashWith(msg);\n });\n};\nexport {\n unsafePartial,\n unsafeCrashWith\n};\n","// Generated by purs version 0.15.7\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Data_Boolean from \"../Data.Boolean/index.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Foldable from \"../Data.Foldable/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_List from \"../Data.List/index.js\";\nimport * as Data_List_Types from \"../Data.List.Types/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_NonEmpty from \"../Data.NonEmpty/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nimport * as Data_Semigroup_Foldable from \"../Data.Semigroup.Foldable/index.js\";\nimport * as Data_Semigroup_Traversable from \"../Data.Semigroup.Traversable/index.js\";\nimport * as Data_Traversable from \"../Data.Traversable/index.js\";\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nimport * as Data_Unfoldable from \"../Data.Unfoldable/index.js\";\nimport * as Partial_Unsafe from \"../Partial.Unsafe/index.js\";\nvar sequence1 = /* #__PURE__ */ Data_Semigroup_Traversable.sequence1(Data_List_Types.traversable1NonEmptyList);\nvar map = /* #__PURE__ */ Data_Functor.map(Data_Maybe.functorMaybe);\nvar map1 = /* #__PURE__ */ Data_Functor.map(Data_List_Types.functorNonEmptyList);\nvar bind = /* #__PURE__ */ Control_Bind.bind(Data_List_Types.bindNonEmptyList);\nvar identity = /* #__PURE__ */ Control_Category.identity(Control_Category.categoryFn);\nvar append1 = /* #__PURE__ */ Data_Semigroup.append(Data_List_Types.semigroupList);\nvar zipWith = function (f) {\n return function (v) {\n return function (v1) {\n return new Data_NonEmpty.NonEmpty(f(v.value0)(v1.value0), Data_List.zipWith(f)(v.value1)(v1.value1));\n };\n };\n};\nvar zipWithA = function (dictApplicative) {\n var sequence11 = sequence1(dictApplicative.Apply0());\n return function (f) {\n return function (xs) {\n return function (ys) {\n return sequence11(zipWith(f)(xs)(ys));\n };\n };\n };\n};\nvar zip = /* #__PURE__ */ (function () {\n return zipWith(Data_Tuple.Tuple.create);\n})();\nvar wrappedOperation2 = function (name) {\n return function (f) {\n return function (v) {\n return function (v1) {\n var v2 = f(new Data_List_Types.Cons(v.value0, v.value1))(new Data_List_Types.Cons(v1.value0, v1.value1));\n if (v2 instanceof Data_List_Types.Cons) {\n return new Data_NonEmpty.NonEmpty(v2.value0, v2.value1);\n };\n if (v2 instanceof Data_List_Types.Nil) {\n return Partial_Unsafe.unsafeCrashWith(\"Impossible: empty list in NonEmptyList \" + name);\n };\n throw new Error(\"Failed pattern match at Data.List.NonEmpty (line 105, column 3 - line 107, column 81): \" + [ v2.constructor.name ]);\n };\n };\n };\n};\nvar wrappedOperation = function (name) {\n return function (f) {\n return function (v) {\n var v1 = f(new Data_List_Types.Cons(v.value0, v.value1));\n if (v1 instanceof Data_List_Types.Cons) {\n return new Data_NonEmpty.NonEmpty(v1.value0, v1.value1);\n };\n if (v1 instanceof Data_List_Types.Nil) {\n return Partial_Unsafe.unsafeCrashWith(\"Impossible: empty list in NonEmptyList \" + name);\n };\n throw new Error(\"Failed pattern match at Data.List.NonEmpty (line 92, column 3 - line 94, column 81): \" + [ v1.constructor.name ]);\n };\n };\n};\nvar updateAt = function (i) {\n return function (a) {\n return function (v) {\n if (i === 0) {\n return new Data_Maybe.Just(new Data_NonEmpty.NonEmpty(a, v.value1));\n };\n if (Data_Boolean.otherwise) {\n return map(function ($193) {\n return Data_List_Types.NonEmptyList((function (v1) {\n return new Data_NonEmpty.NonEmpty(v.value0, v1);\n })($193));\n })(Data_List.updateAt(i - 1 | 0)(a)(v.value1));\n };\n throw new Error(\"Failed pattern match at Data.List.NonEmpty (line 198, column 1 - line 198, column 75): \" + [ i.constructor.name, a.constructor.name, v.constructor.name ]);\n };\n };\n};\nvar unzip = function (ts) {\n return new Data_Tuple.Tuple(map1(Data_Tuple.fst)(ts), map1(Data_Tuple.snd)(ts));\n};\nvar unsnoc = function (v) {\n var v1 = Data_List.unsnoc(v.value1);\n if (v1 instanceof Data_Maybe.Nothing) {\n return {\n init: Data_List_Types.Nil.value,\n last: v.value0\n };\n };\n if (v1 instanceof Data_Maybe.Just) {\n return {\n init: new Data_List_Types.Cons(v.value0, v1.value0.init),\n last: v1.value0.last\n };\n };\n throw new Error(\"Failed pattern match at Data.List.NonEmpty (line 160, column 35 - line 162, column 50): \" + [ v1.constructor.name ]);\n};\nvar unionBy = /* #__PURE__ */ (function () {\n var $194 = wrappedOperation2(\"unionBy\");\n return function ($195) {\n return $194(Data_List.unionBy($195));\n };\n})();\nvar union = function (dictEq) {\n return wrappedOperation2(\"union\")(Data_List.union(dictEq));\n};\nvar uncons = function (v) {\n return {\n head: v.value0,\n tail: v.value1\n };\n};\nvar toList = function (v) {\n return new Data_List_Types.Cons(v.value0, v.value1);\n};\nvar toUnfoldable = function (dictUnfoldable) {\n var $196 = Data_Unfoldable.unfoldr(dictUnfoldable)(function (xs) {\n return map(function (rec) {\n return new Data_Tuple.Tuple(rec.head, rec.tail);\n })(Data_List.uncons(xs));\n });\n return function ($197) {\n return $196(toList($197));\n };\n};\nvar tail = function (v) {\n return v.value1;\n};\nvar sortBy = /* #__PURE__ */ (function () {\n var $198 = wrappedOperation(\"sortBy\");\n return function ($199) {\n return $198(Data_List.sortBy($199));\n };\n})();\nvar sort = function (dictOrd) {\n var compare = Data_Ord.compare(dictOrd);\n return function (xs) {\n return sortBy(compare)(xs);\n };\n};\nvar snoc = function (v) {\n return function (y) {\n return new Data_NonEmpty.NonEmpty(v.value0, Data_List.snoc(v.value1)(y));\n };\n};\nvar singleton = /* #__PURE__ */ (function () {\n var $200 = Data_NonEmpty.singleton(Data_List_Types.plusList);\n return function ($201) {\n return Data_List_Types.NonEmptyList($200($201));\n };\n})();\nvar snoc$prime = function (v) {\n return function (v1) {\n if (v instanceof Data_List_Types.Cons) {\n return new Data_NonEmpty.NonEmpty(v.value0, Data_List.snoc(v.value1)(v1));\n };\n if (v instanceof Data_List_Types.Nil) {\n return singleton(v1);\n };\n throw new Error(\"Failed pattern match at Data.List.NonEmpty (line 140, column 1 - line 140, column 51): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n};\nvar reverse = /* #__PURE__ */ wrappedOperation(\"reverse\")(Data_List.reverse);\nvar nubEq = function (dictEq) {\n return wrappedOperation(\"nubEq\")(Data_List.nubEq(dictEq));\n};\nvar nubByEq = /* #__PURE__ */ (function () {\n var $202 = wrappedOperation(\"nubByEq\");\n return function ($203) {\n return $202(Data_List.nubByEq($203));\n };\n})();\nvar nubBy = /* #__PURE__ */ (function () {\n var $204 = wrappedOperation(\"nubBy\");\n return function ($205) {\n return $204(Data_List.nubBy($205));\n };\n})();\nvar nub = function (dictOrd) {\n return wrappedOperation(\"nub\")(Data_List.nub(dictOrd));\n};\nvar modifyAt = function (i) {\n return function (f) {\n return function (v) {\n if (i === 0) {\n return new Data_Maybe.Just(new Data_NonEmpty.NonEmpty(f(v.value0), v.value1));\n };\n if (Data_Boolean.otherwise) {\n return map(function ($206) {\n return Data_List_Types.NonEmptyList((function (v1) {\n return new Data_NonEmpty.NonEmpty(v.value0, v1);\n })($206));\n })(Data_List.modifyAt(i - 1 | 0)(f)(v.value1));\n };\n throw new Error(\"Failed pattern match at Data.List.NonEmpty (line 203, column 1 - line 203, column 82): \" + [ i.constructor.name, f.constructor.name, v.constructor.name ]);\n };\n };\n};\nvar lift = function (f) {\n return function (v) {\n return f(new Data_List_Types.Cons(v.value0, v.value1));\n };\n};\nvar mapMaybe = function ($207) {\n return lift(Data_List.mapMaybe($207));\n};\nvar partition = function ($208) {\n return lift(Data_List.partition($208));\n};\nvar span = function ($209) {\n return lift(Data_List.span($209));\n};\nvar take = function ($210) {\n return lift(Data_List.take($210));\n};\nvar takeWhile = function ($211) {\n return lift(Data_List.takeWhile($211));\n};\nvar length = function (v) {\n return 1 + Data_List.length(v.value1) | 0;\n};\nvar last = function (v) {\n return Data_Maybe.fromMaybe(v.value0)(Data_List.last(v.value1));\n};\nvar intersectBy = /* #__PURE__ */ (function () {\n var $212 = wrappedOperation2(\"intersectBy\");\n return function ($213) {\n return $212(Data_List.intersectBy($213));\n };\n})();\nvar intersect = function (dictEq) {\n return wrappedOperation2(\"intersect\")(Data_List.intersect(dictEq));\n};\nvar insertAt = function (i) {\n return function (a) {\n return function (v) {\n if (i === 0) {\n return new Data_Maybe.Just(new Data_NonEmpty.NonEmpty(a, new Data_List_Types.Cons(v.value0, v.value1)));\n };\n if (Data_Boolean.otherwise) {\n return map(function ($214) {\n return Data_List_Types.NonEmptyList((function (v1) {\n return new Data_NonEmpty.NonEmpty(v.value0, v1);\n })($214));\n })(Data_List.insertAt(i - 1 | 0)(a)(v.value1));\n };\n throw new Error(\"Failed pattern match at Data.List.NonEmpty (line 193, column 1 - line 193, column 75): \" + [ i.constructor.name, a.constructor.name, v.constructor.name ]);\n };\n };\n};\nvar init = function (v) {\n return Data_Maybe.maybe(Data_List_Types.Nil.value)(function (v1) {\n return new Data_List_Types.Cons(v.value0, v1);\n })(Data_List.init(v.value1));\n};\nvar index = function (v) {\n return function (i) {\n if (i === 0) {\n return new Data_Maybe.Just(v.value0);\n };\n if (Data_Boolean.otherwise) {\n return Data_List.index(v.value1)(i - 1 | 0);\n };\n throw new Error(\"Failed pattern match at Data.List.NonEmpty (line 167, column 1 - line 167, column 52): \" + [ v.constructor.name, i.constructor.name ]);\n };\n};\nvar head = function (v) {\n return v.value0;\n};\nvar groupBy = /* #__PURE__ */ (function () {\n var $215 = wrappedOperation(\"groupBy\");\n return function ($216) {\n return $215(Data_List.groupBy($216));\n };\n})();\nvar groupAllBy = /* #__PURE__ */ (function () {\n var $217 = wrappedOperation(\"groupAllBy\");\n return function ($218) {\n return $217(Data_List.groupAllBy($218));\n };\n})();\nvar groupAll = function (dictOrd) {\n return wrappedOperation(\"groupAll\")(Data_List.groupAll(dictOrd));\n};\nvar group = function (dictEq) {\n return wrappedOperation(\"group\")(Data_List.group(dictEq));\n};\nvar fromList = function (v) {\n if (v instanceof Data_List_Types.Nil) {\n return Data_Maybe.Nothing.value;\n };\n if (v instanceof Data_List_Types.Cons) {\n return new Data_Maybe.Just(new Data_NonEmpty.NonEmpty(v.value0, v.value1));\n };\n throw new Error(\"Failed pattern match at Data.List.NonEmpty (line 121, column 1 - line 121, column 57): \" + [ v.constructor.name ]);\n};\nvar fromFoldable = function (dictFoldable) {\n var $219 = Data_List.fromFoldable(dictFoldable);\n return function ($220) {\n return fromList($219($220));\n };\n};\nvar foldM = function (dictMonad) {\n var bind1 = Control_Bind.bind(dictMonad.Bind1());\n var foldM1 = Data_List.foldM(dictMonad);\n return function (f) {\n return function (b) {\n return function (v) {\n return bind1(f(b)(v.value0))(function (b$prime) {\n return foldM1(f)(b$prime)(v.value1);\n });\n };\n };\n };\n};\nvar findLastIndex = function (f) {\n return function (v) {\n var v1 = Data_List.findLastIndex(f)(v.value1);\n if (v1 instanceof Data_Maybe.Just) {\n return new Data_Maybe.Just(v1.value0 + 1 | 0);\n };\n if (v1 instanceof Data_Maybe.Nothing) {\n if (f(v.value0)) {\n return new Data_Maybe.Just(0);\n };\n if (Data_Boolean.otherwise) {\n return Data_Maybe.Nothing.value;\n };\n };\n throw new Error(\"Failed pattern match at Data.List.NonEmpty (line 187, column 3 - line 191, column 29): \" + [ v1.constructor.name ]);\n };\n};\nvar findIndex = function (f) {\n return function (v) {\n if (f(v.value0)) {\n return new Data_Maybe.Just(0);\n };\n if (Data_Boolean.otherwise) {\n return map(function (v1) {\n return v1 + 1 | 0;\n })(Data_List.findIndex(f)(v.value1));\n };\n throw new Error(\"Failed pattern match at Data.List.NonEmpty (line 180, column 1 - line 180, column 69): \" + [ f.constructor.name, v.constructor.name ]);\n };\n};\nvar filterM = function (dictMonad) {\n var $221 = Data_List.filterM(dictMonad);\n return function ($222) {\n return lift($221($222));\n };\n};\nvar filter = function ($223) {\n return lift(Data_List.filter($223));\n};\nvar elemLastIndex = function (dictEq) {\n var eq1 = Data_Eq.eq(dictEq);\n return function (x) {\n return findLastIndex(function (v) {\n return eq1(v)(x);\n });\n };\n};\nvar elemIndex = function (dictEq) {\n var eq1 = Data_Eq.eq(dictEq);\n return function (x) {\n return findIndex(function (v) {\n return eq1(v)(x);\n });\n };\n};\nvar dropWhile = function ($224) {\n return lift(Data_List.dropWhile($224));\n};\nvar drop = function ($225) {\n return lift(Data_List.drop($225));\n};\nvar cons$prime = function (x) {\n return function (xs) {\n return new Data_NonEmpty.NonEmpty(x, xs);\n };\n};\nvar cons = function (y) {\n return function (v) {\n return new Data_NonEmpty.NonEmpty(y, new Data_List_Types.Cons(v.value0, v.value1));\n };\n};\nvar concatMap = /* #__PURE__ */ Data_Function.flip(bind);\nvar concat = function (v) {\n return bind(v)(identity);\n};\nvar catMaybes = /* #__PURE__ */ lift(Data_List.catMaybes);\nvar appendFoldable = function (dictFoldable) {\n var fromFoldable1 = Data_List.fromFoldable(dictFoldable);\n return function (v) {\n return function (ys) {\n return new Data_NonEmpty.NonEmpty(v.value0, append1(v.value1)(fromFoldable1(ys)));\n };\n };\n};\nexport {\n toUnfoldable,\n fromFoldable,\n fromList,\n toList,\n singleton,\n length,\n cons,\n cons$prime,\n snoc,\n snoc$prime,\n head,\n last,\n tail,\n init,\n uncons,\n unsnoc,\n index,\n elemIndex,\n elemLastIndex,\n findIndex,\n findLastIndex,\n insertAt,\n updateAt,\n modifyAt,\n reverse,\n concat,\n concatMap,\n filter,\n filterM,\n mapMaybe,\n catMaybes,\n appendFoldable,\n sort,\n sortBy,\n take,\n takeWhile,\n drop,\n dropWhile,\n span,\n group,\n groupAll,\n groupBy,\n groupAllBy,\n partition,\n nub,\n nubBy,\n nubEq,\n nubByEq,\n union,\n unionBy,\n intersect,\n intersectBy,\n zipWith,\n zipWithA,\n zip,\n unzip,\n foldM\n};\nexport {\n all,\n any,\n elem,\n find,\n findMap,\n fold,\n foldMap,\n foldl,\n foldr,\n intercalate,\n notElem\n} from \"../Data.Foldable/index.js\";\nexport {\n NonEmptyList\n} from \"../Data.List.Types/index.js\";\nexport {\n fold1,\n foldMap1,\n for1_,\n sequence1_,\n traverse1_\n} from \"../Data.Semigroup.Foldable/index.js\";\nexport {\n sequence1,\n traverse1,\n traverse1Default\n} from \"../Data.Semigroup.Traversable/index.js\";\nexport {\n scanl,\n scanr\n} from \"../Data.Traversable/index.js\";\n","export const fromCharArray = function (a) {\n return a.join(\"\");\n};\n\nexport const toCharArray = function (s) {\n return s.split(\"\");\n};\n\nexport const singleton = function (c) {\n return c;\n};\n\nexport const _charAt = function (just) {\n return function (nothing) {\n return function (i) {\n return function (s) {\n return i >= 0 && i < s.length ? just(s.charAt(i)) : nothing;\n };\n };\n };\n};\n\nexport const _toChar = function (just) {\n return function (nothing) {\n return function (s) {\n return s.length === 1 ? just(s) : nothing;\n };\n };\n};\n\nexport const length = function (s) {\n return s.length;\n};\n\nexport const countPrefix = function (p) {\n return function (s) {\n var i = 0;\n while (i < s.length && p(s.charAt(i))) i++;\n return i;\n };\n};\n\nexport const _indexOf = function (just) {\n return function (nothing) {\n return function (x) {\n return function (s) {\n var i = s.indexOf(x);\n return i === -1 ? nothing : just(i);\n };\n };\n };\n};\n\nexport const _indexOfStartingAt = function (just) {\n return function (nothing) {\n return function (x) {\n return function (startAt) {\n return function (s) {\n if (startAt < 0 || startAt > s.length) return nothing;\n var i = s.indexOf(x, startAt);\n return i === -1 ? nothing : just(i);\n };\n };\n };\n };\n};\n\nexport const _lastIndexOf = function (just) {\n return function (nothing) {\n return function (x) {\n return function (s) {\n var i = s.lastIndexOf(x);\n return i === -1 ? nothing : just(i);\n };\n };\n };\n};\n\nexport const _lastIndexOfStartingAt = function (just) {\n return function (nothing) {\n return function (x) {\n return function (startAt) {\n return function (s) {\n var i = s.lastIndexOf(x, startAt);\n return i === -1 ? nothing : just(i);\n };\n };\n };\n };\n};\n\nexport const take = function (n) {\n return function (s) {\n return s.substr(0, n);\n };\n};\n\nexport const drop = function (n) {\n return function (s) {\n return s.substring(n);\n };\n};\n\nexport const slice = function (b) {\n return function (e) {\n return function (s) {\n return s.slice(b,e);\n };\n };\n};\n\nexport const splitAt = function (i) {\n return function (s) {\n return { before: s.substring(0, i), after: s.substring(i) };\n };\n};\n","export const charAt = function (i) {\n return function (s) {\n if (i >= 0 && i < s.length) return s.charAt(i);\n throw new Error(\"Data.String.Unsafe.charAt: Invalid index.\");\n };\n};\n\nexport const char = function (s) {\n if (s.length === 1) return s.charAt(0);\n throw new Error(\"Data.String.Unsafe.char: Expected string of length 1.\");\n};\n","// Generated by purs version 0.15.7\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_String_Unsafe from \"../Data.String.Unsafe/index.js\";\nvar uncons = function (v) {\n if (v === \"\") {\n return Data_Maybe.Nothing.value;\n };\n return new Data_Maybe.Just({\n head: Data_String_Unsafe.charAt(0)(v),\n tail: $foreign.drop(1)(v)\n });\n};\nvar toChar = /* #__PURE__ */ (function () {\n return $foreign[\"_toChar\"](Data_Maybe.Just.create)(Data_Maybe.Nothing.value);\n})();\nvar takeWhile = function (p) {\n return function (s) {\n return $foreign.take($foreign.countPrefix(p)(s))(s);\n };\n};\nvar takeRight = function (i) {\n return function (s) {\n return $foreign.drop($foreign.length(s) - i | 0)(s);\n };\n};\nvar stripSuffix = function (v) {\n return function (str) {\n var v1 = $foreign.splitAt($foreign.length(str) - $foreign.length(v) | 0)(str);\n var $14 = v1.after === v;\n if ($14) {\n return new Data_Maybe.Just(v1.before);\n };\n return Data_Maybe.Nothing.value;\n };\n};\nvar stripPrefix = function (v) {\n return function (str) {\n var v1 = $foreign.splitAt($foreign.length(v))(str);\n var $20 = v1.before === v;\n if ($20) {\n return new Data_Maybe.Just(v1.after);\n };\n return Data_Maybe.Nothing.value;\n };\n};\nvar lastIndexOf$prime = /* #__PURE__ */ (function () {\n return $foreign[\"_lastIndexOfStartingAt\"](Data_Maybe.Just.create)(Data_Maybe.Nothing.value);\n})();\nvar lastIndexOf = /* #__PURE__ */ (function () {\n return $foreign[\"_lastIndexOf\"](Data_Maybe.Just.create)(Data_Maybe.Nothing.value);\n})();\nvar indexOf$prime = /* #__PURE__ */ (function () {\n return $foreign[\"_indexOfStartingAt\"](Data_Maybe.Just.create)(Data_Maybe.Nothing.value);\n})();\nvar indexOf = /* #__PURE__ */ (function () {\n return $foreign[\"_indexOf\"](Data_Maybe.Just.create)(Data_Maybe.Nothing.value);\n})();\nvar dropWhile = function (p) {\n return function (s) {\n return $foreign.drop($foreign.countPrefix(p)(s))(s);\n };\n};\nvar dropRight = function (i) {\n return function (s) {\n return $foreign.take($foreign.length(s) - i | 0)(s);\n };\n};\nvar contains = function (pat) {\n var $23 = indexOf(pat);\n return function ($24) {\n return Data_Maybe.isJust($23($24));\n };\n};\nvar charAt = /* #__PURE__ */ (function () {\n return $foreign[\"_charAt\"](Data_Maybe.Just.create)(Data_Maybe.Nothing.value);\n})();\nexport {\n singleton,\n fromCharArray,\n toCharArray,\n length,\n countPrefix,\n take,\n drop,\n slice,\n splitAt\n} from \"./foreign.js\";\nexport {\n stripPrefix,\n stripSuffix,\n contains,\n charAt,\n toChar,\n uncons,\n indexOf,\n indexOf$prime,\n lastIndexOf,\n lastIndexOf$prime,\n takeRight,\n takeWhile,\n dropRight,\n dropWhile\n};\n","// Generated by purs version 0.15.7\nimport * as $foreign from \"./foreign.js\";\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Monad_Error_Class from \"../Control.Monad.Error.Class/index.js\";\nimport * as Control_Monad_Except_Trans from \"../Control.Monad.Except.Trans/index.js\";\nimport * as Data_Boolean from \"../Data.Boolean/index.js\";\nimport * as Data_Either from \"../Data.Either/index.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Int from \"../Data.Int/index.js\";\nimport * as Data_List_NonEmpty from \"../Data.List.NonEmpty/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Data_Ordering from \"../Data.Ordering/index.js\";\nimport * as Data_Show from \"../Data.Show/index.js\";\nimport * as Data_String_CodeUnits from \"../Data.String.CodeUnits/index.js\";\nimport * as Unsafe_Coerce from \"../Unsafe.Coerce/index.js\";\nvar show = /* #__PURE__ */ Data_Show.show(Data_Show.showString);\nvar show1 = /* #__PURE__ */ Data_Show.show(Data_Show.showInt);\nvar pure = /* #__PURE__ */ Control_Applicative.pure(Data_Either.applicativeEither);\nvar compare = /* #__PURE__ */ Data_Ord.compare(Data_Ord.ordString);\nvar compare1 = /* #__PURE__ */ Data_Ord.compare(Data_Ord.ordInt);\nvar ForeignError = /* #__PURE__ */ (function () {\n function ForeignError(value0) {\n this.value0 = value0;\n };\n ForeignError.create = function (value0) {\n return new ForeignError(value0);\n };\n return ForeignError;\n})();\nvar TypeMismatch = /* #__PURE__ */ (function () {\n function TypeMismatch(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n TypeMismatch.create = function (value0) {\n return function (value1) {\n return new TypeMismatch(value0, value1);\n };\n };\n return TypeMismatch;\n})();\nvar ErrorAtIndex = /* #__PURE__ */ (function () {\n function ErrorAtIndex(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n ErrorAtIndex.create = function (value0) {\n return function (value1) {\n return new ErrorAtIndex(value0, value1);\n };\n };\n return ErrorAtIndex;\n})();\nvar ErrorAtProperty = /* #__PURE__ */ (function () {\n function ErrorAtProperty(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n ErrorAtProperty.create = function (value0) {\n return function (value1) {\n return new ErrorAtProperty(value0, value1);\n };\n };\n return ErrorAtProperty;\n})();\nvar unsafeToForeign = Unsafe_Coerce.unsafeCoerce;\nvar unsafeFromForeign = Unsafe_Coerce.unsafeCoerce;\nvar showForeignError = {\n show: function (v) {\n if (v instanceof ForeignError) {\n return \"(ForeignError \" + (show(v.value0) + \")\");\n };\n if (v instanceof ErrorAtIndex) {\n return \"(ErrorAtIndex \" + (show1(v.value0) + (\" \" + (Data_Show.show(showForeignError)(v.value1) + \")\")));\n };\n if (v instanceof ErrorAtProperty) {\n return \"(ErrorAtProperty \" + (show(v.value0) + (\" \" + (Data_Show.show(showForeignError)(v.value1) + \")\")));\n };\n if (v instanceof TypeMismatch) {\n return \"(TypeMismatch \" + (show(v.value0) + (\" \" + (show(v.value1) + \")\")));\n };\n throw new Error(\"Failed pattern match at Foreign (line 69, column 1 - line 73, column 89): \" + [ v.constructor.name ]);\n }\n};\nvar renderForeignError = function (v) {\n if (v instanceof ForeignError) {\n return v.value0;\n };\n if (v instanceof ErrorAtIndex) {\n return \"Error at array index \" + (show1(v.value0) + (\": \" + renderForeignError(v.value1)));\n };\n if (v instanceof ErrorAtProperty) {\n return \"Error at property \" + (show(v.value0) + (\": \" + renderForeignError(v.value1)));\n };\n if (v instanceof TypeMismatch) {\n return \"Type mismatch: expected \" + (v.value0 + (\", found \" + v.value1));\n };\n throw new Error(\"Failed pattern match at Foreign (line 78, column 1 - line 78, column 45): \" + [ v.constructor.name ]);\n};\nvar readUndefined = function (dictMonad) {\n var pure1 = Control_Applicative.pure(Control_Monad_Except_Trans.applicativeExceptT(dictMonad));\n return function (value) {\n if ($foreign.isUndefined(value)) {\n return pure1(Data_Maybe.Nothing.value);\n };\n if (Data_Boolean.otherwise) {\n return pure1(new Data_Maybe.Just(value));\n };\n throw new Error(\"Failed pattern match at Foreign (line 174, column 1 - line 174, column 103): \" + [ value.constructor.name ]);\n };\n};\nvar readNullOrUndefined = function (dictMonad) {\n var pure1 = Control_Applicative.pure(Control_Monad_Except_Trans.applicativeExceptT(dictMonad));\n return function (value) {\n if ($foreign.isNull(value) || $foreign.isUndefined(value)) {\n return pure1(Data_Maybe.Nothing.value);\n };\n if (Data_Boolean.otherwise) {\n return pure1(new Data_Maybe.Just(value));\n };\n throw new Error(\"Failed pattern match at Foreign (line 179, column 1 - line 179, column 109): \" + [ value.constructor.name ]);\n };\n};\nvar readNull = function (dictMonad) {\n var pure1 = Control_Applicative.pure(Control_Monad_Except_Trans.applicativeExceptT(dictMonad));\n return function (value) {\n if ($foreign.isNull(value)) {\n return pure1(Data_Maybe.Nothing.value);\n };\n if (Data_Boolean.otherwise) {\n return pure1(new Data_Maybe.Just(value));\n };\n throw new Error(\"Failed pattern match at Foreign (line 169, column 1 - line 169, column 98): \" + [ value.constructor.name ]);\n };\n};\nvar fail = function (dictMonad) {\n var $153 = Control_Monad_Error_Class.throwError(Control_Monad_Except_Trans.monadThrowExceptT(dictMonad));\n return function ($154) {\n return $153(Data_List_NonEmpty.singleton($154));\n };\n};\nvar readArray = function (dictMonad) {\n var pure1 = Control_Applicative.pure(Control_Monad_Except_Trans.applicativeExceptT(dictMonad));\n var fail1 = fail(dictMonad);\n return function (value) {\n if ($foreign.isArray(value)) {\n return pure1(unsafeFromForeign(value));\n };\n if (Data_Boolean.otherwise) {\n return fail1(new TypeMismatch(\"array\", $foreign.tagOf(value)));\n };\n throw new Error(\"Failed pattern match at Foreign (line 164, column 1 - line 164, column 99): \" + [ value.constructor.name ]);\n };\n};\nvar unsafeReadTagged = function (dictMonad) {\n var pure1 = Control_Applicative.pure(Control_Monad_Except_Trans.applicativeExceptT(dictMonad));\n var fail1 = fail(dictMonad);\n return function (tag) {\n return function (value) {\n if ($foreign.tagOf(value) === tag) {\n return pure1(unsafeFromForeign(value));\n };\n if (Data_Boolean.otherwise) {\n return fail1(new TypeMismatch(tag, $foreign.tagOf(value)));\n };\n throw new Error(\"Failed pattern match at Foreign (line 123, column 1 - line 123, column 104): \" + [ tag.constructor.name, value.constructor.name ]);\n };\n };\n};\nvar readBoolean = function (dictMonad) {\n return unsafeReadTagged(dictMonad)(\"Boolean\");\n};\nvar readNumber = function (dictMonad) {\n return unsafeReadTagged(dictMonad)(\"Number\");\n};\nvar readInt = function (dictMonad) {\n var map = Data_Functor.map(((dictMonad.Bind1()).Apply0()).Functor0());\n var readNumber1 = readNumber(dictMonad);\n return function (value) {\n var error = new Data_Either.Left(Data_List_NonEmpty.singleton(new TypeMismatch(\"Int\", $foreign.tagOf(value))));\n var fromNumber = (function () {\n var $155 = Data_Maybe.maybe(error)(pure);\n return function ($156) {\n return $155(Data_Int.fromNumber($156));\n };\n })();\n return Control_Monad_Except_Trans.mapExceptT(map(Data_Either.either(Data_Function[\"const\"](error))(fromNumber)))(readNumber1(value));\n };\n};\nvar readString = function (dictMonad) {\n return unsafeReadTagged(dictMonad)(\"String\");\n};\nvar readChar = function (dictMonad) {\n var map = Data_Functor.map(((dictMonad.Bind1()).Apply0()).Functor0());\n var readString1 = readString(dictMonad);\n return function (value) {\n var error = new Data_Either.Left(Data_List_NonEmpty.singleton(new TypeMismatch(\"Char\", $foreign.tagOf(value))));\n var fromString = (function () {\n var $157 = Data_Maybe.maybe(error)(pure);\n return function ($158) {\n return $157(Data_String_CodeUnits.toChar($158));\n };\n })();\n return Control_Monad_Except_Trans.mapExceptT(map(Data_Either.either(Data_Function[\"const\"](error))(fromString)))(readString1(value));\n };\n};\nvar eqForeignError = {\n eq: function (x) {\n return function (y) {\n if (x instanceof ForeignError && y instanceof ForeignError) {\n return x.value0 === y.value0;\n };\n if (x instanceof TypeMismatch && y instanceof TypeMismatch) {\n return x.value0 === y.value0 && x.value1 === y.value1;\n };\n if (x instanceof ErrorAtIndex && y instanceof ErrorAtIndex) {\n return x.value0 === y.value0 && Data_Eq.eq(eqForeignError)(x.value1)(y.value1);\n };\n if (x instanceof ErrorAtProperty && y instanceof ErrorAtProperty) {\n return x.value0 === y.value0 && Data_Eq.eq(eqForeignError)(x.value1)(y.value1);\n };\n return false;\n };\n }\n};\nvar ordForeignError = {\n compare: function (x) {\n return function (y) {\n if (x instanceof ForeignError && y instanceof ForeignError) {\n return compare(x.value0)(y.value0);\n };\n if (x instanceof ForeignError) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof ForeignError) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof TypeMismatch && y instanceof TypeMismatch) {\n var v = compare(x.value0)(y.value0);\n if (v instanceof Data_Ordering.LT) {\n return Data_Ordering.LT.value;\n };\n if (v instanceof Data_Ordering.GT) {\n return Data_Ordering.GT.value;\n };\n return compare(x.value1)(y.value1);\n };\n if (x instanceof TypeMismatch) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof TypeMismatch) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof ErrorAtIndex && y instanceof ErrorAtIndex) {\n var v = compare1(x.value0)(y.value0);\n if (v instanceof Data_Ordering.LT) {\n return Data_Ordering.LT.value;\n };\n if (v instanceof Data_Ordering.GT) {\n return Data_Ordering.GT.value;\n };\n return Data_Ord.compare(ordForeignError)(x.value1)(y.value1);\n };\n if (x instanceof ErrorAtIndex) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof ErrorAtIndex) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof ErrorAtProperty && y instanceof ErrorAtProperty) {\n var v = compare(x.value0)(y.value0);\n if (v instanceof Data_Ordering.LT) {\n return Data_Ordering.LT.value;\n };\n if (v instanceof Data_Ordering.GT) {\n return Data_Ordering.GT.value;\n };\n return Data_Ord.compare(ordForeignError)(x.value1)(y.value1);\n };\n throw new Error(\"Failed pattern match at Foreign (line 0, column 0 - line 0, column 0): \" + [ x.constructor.name, y.constructor.name ]);\n };\n },\n Eq0: function () {\n return eqForeignError;\n }\n};\nexport {\n typeOf,\n tagOf,\n isNull,\n isUndefined,\n isArray\n} from \"./foreign.js\";\nexport {\n ForeignError,\n TypeMismatch,\n ErrorAtIndex,\n ErrorAtProperty,\n renderForeignError,\n unsafeToForeign,\n unsafeFromForeign,\n unsafeReadTagged,\n readString,\n readChar,\n readBoolean,\n readNumber,\n readInt,\n readArray,\n readNull,\n readUndefined,\n readNullOrUndefined,\n fail,\n eqForeignError,\n ordForeignError,\n showForeignError\n};\n","// Generated by purs version 0.15.7\nimport * as $foreign from \"./foreign.js\";\nimport * as Control_Monad_Except from \"../Control.Monad.Except/index.js\";\nimport * as Data_Either from \"../Data.Either/index.js\";\nimport * as Data_Identity from \"../Data.Identity/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Foreign from \"../Foreign/index.js\";\nvar readString = /* #__PURE__ */ Foreign.readString(Data_Identity.monadIdentity);\nvar decompressFromEncodedURIComponent = function (compressed) {\n var v = Control_Monad_Except.runExcept(readString($foreign.unsafeDecompressFromEncodedURIComponent(compressed)));\n if (v instanceof Data_Either.Right && v.value0 === \"\") {\n return Data_Maybe.Nothing.value;\n };\n if (v instanceof Data_Either.Right) {\n return new Data_Maybe.Just(v.value0);\n };\n return Data_Maybe.Nothing.value;\n};\nvar compressToEncodedURIComponent = function (value) {\n var v = Control_Monad_Except.runExcept(readString($foreign.unsafeCompressToEncodedURIComponent(value)));\n if (v instanceof Data_Either.Right && v.value0 === \"\") {\n return Data_Maybe.Nothing.value;\n };\n if (v instanceof Data_Either.Right) {\n return new Data_Maybe.Just(v.value0);\n };\n return Data_Maybe.Nothing.value;\n};\nexport {\n unsafeDecompressFromEncodedURIComponent,\n unsafeCompressToEncodedURIComponent\n} from \"./foreign.js\";\nexport {\n compressToEncodedURIComponent,\n decompressFromEncodedURIComponent\n};\n","\"use strict\";\nconst LZString = require('lz-string');\n\nfunction unsafeCompressToEncodedURIComponent(value) {\n return LZString.compressToEncodedURIComponent(value);\n};\n\nfunction unsafeDecompressFromEncodedURIComponent(value) {\n return LZString.decompressFromEncodedURIComponent(value);\n};\n\nexport { unsafeCompressToEncodedURIComponent, unsafeDecompressFromEncodedURIComponent }\n","\"use strict\";\n\nfunction getLocationString() {\n return window.location.href;\n};\n\nfunction getLocationBaseString() {\n return window.location.origin + window.location.pathname;\n};\n\nfunction setLocationString(value) {\n return function () {\n _setLocationString(value);\n }\n};\n\nvar _setLocationString = function (value) {\n var newurl = value;\n window.location = newurl;\n // window.history.pushState({}, '', newurl);\n};\n\n\nfunction getFragmentString() {\n var result = window.location.hash;\n if (result.startsWith(\"#\"))\n return result.substring(1);\n return \"\";\n};\n\nfunction setFragmentString(value) {\n return function () {\n _setFragmentString(value);\n }\n};\n\nvar _setFragmentString = function (value) {\n var newurl = window.location.protocol + \"//\" + window.location.host +\n window.location.pathname + window.location.search + '#' + value;\n // Only changing the fragment string shouldn't trigger a page reload in\n // itself, but we do it like this to be safe and avoid potential sitatuations\n // of changing a query string and then the fragment string still triggering a\n // reload or something.\n window.history.pushState({}, '', newurl);\n};\n\n\nfunction getQueryString() {\n var result = window.location.search;\n if (result.startsWith(\"?\"))\n return result.substring(1);\n return \"\";\n};\n\nfunction setQueryString(value) {\n return function () {\n _setQueryString(value);\n }\n};\n\nvar _setQueryString = function (value) {\n var newurl = window.location.protocol + \"//\" + window.location.host +\n window.location.pathname + '?' + value + window.location.hash;\n // Set the location without triggering a page reload.\n window.history.pushState({}, '', newurl);\n};\n\nfunction _getQueryParam(paramName) {\n return function () {\n const urlParams = new URLSearchParams(window.location.search);\n return urlParams.get(paramName);\n }\n}\n\n\nexport { setQueryString, getQueryString, setFragmentString, getFragmentString, getLocationBaseString, getLocationString, setLocationString, _getQueryParam }\n","export const _localeCompare = function (lt) {\n return function (eq) {\n return function (gt) {\n return function (s1) {\n return function (s2) {\n var result = s1.localeCompare(s2);\n return result < 0 ? lt : result > 0 ? gt : eq;\n };\n };\n };\n };\n};\n\nexport const replace = function (s1) {\n return function (s2) {\n return function (s3) {\n return s3.replace(s1, s2);\n };\n };\n};\n\nexport const replaceAll = function (s1) {\n return function (s2) {\n return function (s3) {\n return s3.replace(new RegExp(s1.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, \"\\\\$&\"), \"g\"), s2); // eslint-disable-line no-useless-escape\n };\n };\n};\n\nexport const split = function (sep) {\n return function (s) {\n return s.split(sep);\n };\n};\n\nexport const toLower = function (s) {\n return s.toLowerCase();\n};\n\nexport const toUpper = function (s) {\n return s.toUpperCase();\n};\n\nexport const trim = function (s) {\n return s.trim();\n};\n\nexport const joinWith = function (s) {\n return function (xs) {\n return xs.join(s);\n };\n};\n","// Generated by purs version 0.15.7\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Ordering from \"../Data.Ordering/index.js\";\nvar $$null = function (s) {\n return s === \"\";\n};\nvar localeCompare = /* #__PURE__ */ (function () {\n return $foreign[\"_localeCompare\"](Data_Ordering.LT.value)(Data_Ordering.EQ.value)(Data_Ordering.GT.value);\n})();\nexport {\n replace,\n replaceAll,\n split,\n toLower,\n toUpper,\n trim,\n joinWith\n} from \"./foreign.js\";\nexport {\n $$null as null,\n localeCompare\n};\n","// Generated by purs version 0.15.7\nimport * as $foreign from \"./foreign.js\";\nimport * as Control_Monad_Except from \"../Control.Monad.Except/index.js\";\nimport * as Data_Either from \"../Data.Either/index.js\";\nimport * as Data_Identity from \"../Data.Identity/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_String_Common from \"../Data.String.Common/index.js\";\nimport * as Foreign from \"../Foreign/index.js\";\nvar readString = /* #__PURE__ */ Foreign.readString(Data_Identity.monadIdentity);\nvar setQueryComponents = function (components) {\n return $foreign.setQueryString(Data_String_Common.joinWith(\"&\")(components));\n};\nvar getQueryParam = function (paramName) {\n return function __do() {\n var result = $foreign[\"_getQueryParam\"](paramName)();\n var v = Control_Monad_Except.runExcept(readString(result));\n if (v instanceof Data_Either.Right) {\n return new Data_Maybe.Just(v.value0);\n };\n return Data_Maybe.Nothing.value;\n };\n};\nexport {\n getLocationString,\n getLocationBaseString,\n setLocationString,\n getFragmentString,\n setFragmentString,\n getQueryString,\n setQueryString,\n _getQueryParam\n} from \"./foreign.js\";\nexport {\n getQueryParam,\n setQueryComponents\n};\n","// Generated by purs version 0.15.7\nimport * as Data_Bounded from \"../Data.Bounded/index.js\";\nimport * as Data_Generic_Rep from \"../Data.Generic.Rep/index.js\";\nvar genericTopNoArguments = /* #__PURE__ */ (function () {\n return {\n \"genericTop'\": Data_Generic_Rep.NoArguments.value\n };\n})();\nvar genericTopArgument = function (dictBounded) {\n return {\n \"genericTop'\": Data_Bounded.top(dictBounded)\n };\n};\nvar genericTop$prime = function (dict) {\n return dict[\"genericTop'\"];\n};\nvar genericTopConstructor = function (dictGenericTop) {\n return {\n \"genericTop'\": genericTop$prime(dictGenericTop)\n };\n};\nvar genericTopProduct = function (dictGenericTop) {\n var genericTop$prime1 = genericTop$prime(dictGenericTop);\n return function (dictGenericTop1) {\n return {\n \"genericTop'\": new Data_Generic_Rep.Product(genericTop$prime1, genericTop$prime(dictGenericTop1))\n };\n };\n};\nvar genericTopSum = function (dictGenericTop) {\n return {\n \"genericTop'\": new Data_Generic_Rep.Inr(genericTop$prime(dictGenericTop))\n };\n};\nvar genericTop = function (dictGeneric) {\n var to = Data_Generic_Rep.to(dictGeneric);\n return function (dictGenericTop) {\n return to(genericTop$prime(dictGenericTop));\n };\n};\nvar genericBottomNoArguments = /* #__PURE__ */ (function () {\n return {\n \"genericBottom'\": Data_Generic_Rep.NoArguments.value\n };\n})();\nvar genericBottomArgument = function (dictBounded) {\n return {\n \"genericBottom'\": Data_Bounded.bottom(dictBounded)\n };\n};\nvar genericBottom$prime = function (dict) {\n return dict[\"genericBottom'\"];\n};\nvar genericBottomConstructor = function (dictGenericBottom) {\n return {\n \"genericBottom'\": genericBottom$prime(dictGenericBottom)\n };\n};\nvar genericBottomProduct = function (dictGenericBottom) {\n var genericBottom$prime1 = genericBottom$prime(dictGenericBottom);\n return function (dictGenericBottom1) {\n return {\n \"genericBottom'\": new Data_Generic_Rep.Product(genericBottom$prime1, genericBottom$prime(dictGenericBottom1))\n };\n };\n};\nvar genericBottomSum = function (dictGenericBottom) {\n return {\n \"genericBottom'\": new Data_Generic_Rep.Inl(genericBottom$prime(dictGenericBottom))\n };\n};\nvar genericBottom = function (dictGeneric) {\n var to = Data_Generic_Rep.to(dictGeneric);\n return function (dictGenericBottom) {\n return to(genericBottom$prime(dictGenericBottom));\n };\n};\nexport {\n genericBottom$prime,\n genericBottom,\n genericTop$prime,\n genericTop,\n genericBottomNoArguments,\n genericBottomArgument,\n genericBottomSum,\n genericBottomProduct,\n genericBottomConstructor,\n genericTopNoArguments,\n genericTopArgument,\n genericTopSum,\n genericTopProduct,\n genericTopConstructor\n};\n","export function toCharCode(c) {\n return c.charCodeAt(0);\n}\n\nexport function fromCharCode(c) {\n return String.fromCharCode(c);\n}\n","// Generated by purs version 0.15.7\nimport * as Control_Alt from \"../Control.Alt/index.js\";\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Apply from \"../Control.Apply/index.js\";\nimport * as Control_Plus from \"../Control.Plus/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nvar guard = function (dictAlternative) {\n var pure = Control_Applicative.pure(dictAlternative.Applicative0());\n var empty = Control_Plus.empty(dictAlternative.Plus1());\n return function (v) {\n if (v) {\n return pure(Data_Unit.unit);\n };\n if (!v) {\n return empty;\n };\n throw new Error(\"Failed pattern match at Control.Alternative (line 48, column 1 - line 48, column 54): \" + [ v.constructor.name ]);\n };\n};\nvar alternativeArray = {\n Applicative0: function () {\n return Control_Applicative.applicativeArray;\n },\n Plus1: function () {\n return Control_Plus.plusArray;\n }\n};\nexport {\n guard,\n alternativeArray\n};\nexport {\n alt\n} from \"../Control.Alt/index.js\";\nexport {\n liftA1,\n pure,\n unless,\n when\n} from \"../Control.Applicative/index.js\";\nexport {\n apply\n} from \"../Control.Apply/index.js\";\nexport {\n empty\n} from \"../Control.Plus/index.js\";\nexport {\n map,\n void\n} from \"../Data.Functor/index.js\";\n","// Generated by purs version 0.15.7\nimport * as $foreign from \"./foreign.js\";\nimport * as Control_Alternative from \"../Control.Alternative/index.js\";\nimport * as Control_Apply from \"../Control.Apply/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Data_Boolean from \"../Data.Boolean/index.js\";\nimport * as Data_Bounded from \"../Data.Bounded/index.js\";\nimport * as Data_Either from \"../Data.Either/index.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Data_Ordering from \"../Data.Ordering/index.js\";\nimport * as Data_Show from \"../Data.Show/index.js\";\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nimport * as Data_Unfoldable from \"../Data.Unfoldable/index.js\";\nimport * as Data_Unfoldable1 from \"../Data.Unfoldable1/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nvar apply = /* #__PURE__ */ Control_Apply.apply(Control_Apply.applyFn);\nvar show = /* #__PURE__ */ Data_Show.show(Data_Show.showInt);\nvar map = /* #__PURE__ */ Data_Functor.map(Data_Maybe.functorMaybe);\nvar top = /* #__PURE__ */ Data_Bounded.top(Data_Bounded.boundedInt);\nvar bottom = /* #__PURE__ */ Data_Bounded.bottom(Data_Bounded.boundedInt);\nvar bind = /* #__PURE__ */ Control_Bind.bind(Data_Maybe.bindMaybe);\nvar voidLeft = /* #__PURE__ */ Data_Functor.voidLeft(Data_Maybe.functorMaybe);\nvar guard = /* #__PURE__ */ Control_Alternative.guard(Data_Maybe.alternativeMaybe);\nvar fromJust = /* #__PURE__ */ Data_Maybe.fromJust();\nvar Cardinality = function (x) {\n return x;\n};\nvar toEnum = function (dict) {\n return dict.toEnum;\n};\nvar succ = function (dict) {\n return dict.succ;\n};\nvar upFromIncluding = function (dictEnum) {\n var succ1 = succ(dictEnum);\n return function (dictUnfoldable1) {\n return Data_Unfoldable1.unfoldr1(dictUnfoldable1)(apply(Data_Tuple.Tuple.create)(succ1));\n };\n};\nvar showCardinality = {\n show: function (v) {\n return \"(Cardinality \" + (show(v) + \")\");\n }\n};\nvar pred = function (dict) {\n return dict.pred;\n};\nvar ordCardinality = Data_Ord.ordInt;\nvar newtypeCardinality = {\n Coercible0: function () {\n return undefined;\n }\n};\nvar fromEnum = function (dict) {\n return dict.fromEnum;\n};\nvar toEnumWithDefaults = function (dictBoundedEnum) {\n var toEnum1 = toEnum(dictBoundedEnum);\n var fromEnum1 = fromEnum(dictBoundedEnum);\n var bottom1 = Data_Bounded.bottom(dictBoundedEnum.Bounded0());\n return function (low) {\n return function (high) {\n return function (x) {\n var v = toEnum1(x);\n if (v instanceof Data_Maybe.Just) {\n return v.value0;\n };\n if (v instanceof Data_Maybe.Nothing) {\n var $140 = x < fromEnum1(bottom1);\n if ($140) {\n return low;\n };\n return high;\n };\n throw new Error(\"Failed pattern match at Data.Enum (line 158, column 33 - line 160, column 62): \" + [ v.constructor.name ]);\n };\n };\n };\n};\nvar eqCardinality = Data_Eq.eqInt;\nvar enumUnit = /* #__PURE__ */ (function () {\n return {\n succ: Data_Function[\"const\"](Data_Maybe.Nothing.value),\n pred: Data_Function[\"const\"](Data_Maybe.Nothing.value),\n Ord0: function () {\n return Data_Ord.ordUnit;\n }\n };\n})();\nvar enumTuple = function (dictEnum) {\n var succ1 = succ(dictEnum);\n var pred1 = pred(dictEnum);\n var ordTuple = Data_Tuple.ordTuple(dictEnum.Ord0());\n return function (dictBoundedEnum) {\n var Bounded0 = dictBoundedEnum.Bounded0();\n var bottom1 = Data_Bounded.bottom(Bounded0);\n var Enum1 = dictBoundedEnum.Enum1();\n var succ2 = succ(Enum1);\n var top1 = Data_Bounded.top(Bounded0);\n var pred2 = pred(Enum1);\n var ordTuple1 = ordTuple(Enum1.Ord0());\n return {\n succ: function (v) {\n return Data_Maybe.maybe(map(Data_Function.flip(Data_Tuple.Tuple.create)(bottom1))(succ1(v.value0)))((function () {\n var $183 = Data_Tuple.Tuple.create(v.value0);\n return function ($184) {\n return Data_Maybe.Just.create($183($184));\n };\n })())(succ2(v.value1));\n },\n pred: function (v) {\n return Data_Maybe.maybe(map(Data_Function.flip(Data_Tuple.Tuple.create)(top1))(pred1(v.value0)))((function () {\n var $185 = Data_Tuple.Tuple.create(v.value0);\n return function ($186) {\n return Data_Maybe.Just.create($185($186));\n };\n })())(pred2(v.value1));\n },\n Ord0: function () {\n return ordTuple1;\n }\n };\n };\n};\nvar enumOrdering = {\n succ: function (v) {\n if (v instanceof Data_Ordering.LT) {\n return new Data_Maybe.Just(Data_Ordering.EQ.value);\n };\n if (v instanceof Data_Ordering.EQ) {\n return new Data_Maybe.Just(Data_Ordering.GT.value);\n };\n if (v instanceof Data_Ordering.GT) {\n return Data_Maybe.Nothing.value;\n };\n throw new Error(\"Failed pattern match at Data.Enum (line 72, column 1 - line 78, column 20): \" + [ v.constructor.name ]);\n },\n pred: function (v) {\n if (v instanceof Data_Ordering.LT) {\n return Data_Maybe.Nothing.value;\n };\n if (v instanceof Data_Ordering.EQ) {\n return new Data_Maybe.Just(Data_Ordering.LT.value);\n };\n if (v instanceof Data_Ordering.GT) {\n return new Data_Maybe.Just(Data_Ordering.EQ.value);\n };\n throw new Error(\"Failed pattern match at Data.Enum (line 72, column 1 - line 78, column 20): \" + [ v.constructor.name ]);\n },\n Ord0: function () {\n return Data_Ord.ordOrdering;\n }\n};\nvar enumMaybe = function (dictBoundedEnum) {\n var bottom1 = Data_Bounded.bottom(dictBoundedEnum.Bounded0());\n var Enum1 = dictBoundedEnum.Enum1();\n var succ1 = succ(Enum1);\n var pred1 = pred(Enum1);\n var ordMaybe = Data_Maybe.ordMaybe(Enum1.Ord0());\n return {\n succ: function (v) {\n if (v instanceof Data_Maybe.Nothing) {\n return new Data_Maybe.Just(new Data_Maybe.Just(bottom1));\n };\n if (v instanceof Data_Maybe.Just) {\n return map(Data_Maybe.Just.create)(succ1(v.value0));\n };\n throw new Error(\"Failed pattern match at Data.Enum (line 80, column 1 - line 84, column 32): \" + [ v.constructor.name ]);\n },\n pred: function (v) {\n if (v instanceof Data_Maybe.Nothing) {\n return Data_Maybe.Nothing.value;\n };\n if (v instanceof Data_Maybe.Just) {\n return new Data_Maybe.Just(pred1(v.value0));\n };\n throw new Error(\"Failed pattern match at Data.Enum (line 80, column 1 - line 84, column 32): \" + [ v.constructor.name ]);\n },\n Ord0: function () {\n return ordMaybe;\n }\n };\n};\nvar enumInt = {\n succ: function (n) {\n var $153 = n < top;\n if ($153) {\n return new Data_Maybe.Just(n + 1 | 0);\n };\n return Data_Maybe.Nothing.value;\n },\n pred: function (n) {\n var $154 = n > bottom;\n if ($154) {\n return new Data_Maybe.Just(n - 1 | 0);\n };\n return Data_Maybe.Nothing.value;\n },\n Ord0: function () {\n return Data_Ord.ordInt;\n }\n};\nvar enumFromTo = function (dictEnum) {\n var Ord0 = dictEnum.Ord0();\n var eq1 = Data_Eq.eq(Ord0.Eq0());\n var lessThan1 = Data_Ord.lessThan(Ord0);\n var succ1 = succ(dictEnum);\n var lessThanOrEq1 = Data_Ord.lessThanOrEq(Ord0);\n var pred1 = pred(dictEnum);\n var greaterThanOrEq1 = Data_Ord.greaterThanOrEq(Ord0);\n return function (dictUnfoldable1) {\n var singleton = Data_Unfoldable1.singleton(dictUnfoldable1);\n var unfoldr1 = Data_Unfoldable1.unfoldr1(dictUnfoldable1);\n var go = function (step) {\n return function (op) {\n return function (to) {\n return function (a) {\n return new Data_Tuple.Tuple(a, bind(step(a))(function (a$prime) {\n return voidLeft(guard(op(a$prime)(to)))(a$prime);\n }));\n };\n };\n };\n };\n return function (v) {\n return function (v1) {\n if (eq1(v)(v1)) {\n return singleton(v);\n };\n if (lessThan1(v)(v1)) {\n return unfoldr1(go(succ1)(lessThanOrEq1)(v1))(v);\n };\n if (Data_Boolean.otherwise) {\n return unfoldr1(go(pred1)(greaterThanOrEq1)(v1))(v);\n };\n throw new Error(\"Failed pattern match at Data.Enum (line 186, column 14 - line 190, column 51): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n };\n };\n};\nvar enumFromThenTo = function (dictUnfoldable) {\n var unfoldr = Data_Unfoldable.unfoldr(dictUnfoldable);\n return function (dictFunctor) {\n var map1 = Data_Functor.map(dictFunctor);\n return function (dictBoundedEnum) {\n var fromEnum1 = fromEnum(dictBoundedEnum);\n var toEnum1 = toEnum(dictBoundedEnum);\n var go = function (step) {\n return function (to) {\n return function (e) {\n if (e <= to) {\n return new Data_Maybe.Just(new Data_Tuple.Tuple(e, e + step | 0));\n };\n if (Data_Boolean.otherwise) {\n return Data_Maybe.Nothing.value;\n };\n throw new Error(\"Failed pattern match at Data.Enum (line 217, column 5 - line 219, column 28): \" + [ step.constructor.name, to.constructor.name, e.constructor.name ]);\n };\n };\n };\n return function (a) {\n return function (b) {\n return function (c) {\n var c$prime = fromEnum1(c);\n var b$prime = fromEnum1(b);\n var a$prime = fromEnum1(a);\n return map1(function ($187) {\n return fromJust(toEnum1($187));\n })(unfoldr(go(b$prime - a$prime | 0)(c$prime))(a$prime));\n };\n };\n };\n };\n };\n};\nvar enumEither = function (dictBoundedEnum) {\n var Enum1 = dictBoundedEnum.Enum1();\n var succ1 = succ(Enum1);\n var pred1 = pred(Enum1);\n var top1 = Data_Bounded.top(dictBoundedEnum.Bounded0());\n var ordEither = Data_Either.ordEither(Enum1.Ord0());\n return function (dictBoundedEnum1) {\n var bottom1 = Data_Bounded.bottom(dictBoundedEnum1.Bounded0());\n var Enum11 = dictBoundedEnum1.Enum1();\n var succ2 = succ(Enum11);\n var pred2 = pred(Enum11);\n var ordEither1 = ordEither(Enum11.Ord0());\n return {\n succ: function (v) {\n if (v instanceof Data_Either.Left) {\n return Data_Maybe.maybe(new Data_Maybe.Just(new Data_Either.Right(bottom1)))(function ($188) {\n return Data_Maybe.Just.create(Data_Either.Left.create($188));\n })(succ1(v.value0));\n };\n if (v instanceof Data_Either.Right) {\n return Data_Maybe.maybe(Data_Maybe.Nothing.value)(function ($189) {\n return Data_Maybe.Just.create(Data_Either.Right.create($189));\n })(succ2(v.value0));\n };\n throw new Error(\"Failed pattern match at Data.Enum (line 86, column 1 - line 90, column 69): \" + [ v.constructor.name ]);\n },\n pred: function (v) {\n if (v instanceof Data_Either.Left) {\n return Data_Maybe.maybe(Data_Maybe.Nothing.value)(function ($190) {\n return Data_Maybe.Just.create(Data_Either.Left.create($190));\n })(pred1(v.value0));\n };\n if (v instanceof Data_Either.Right) {\n return Data_Maybe.maybe(new Data_Maybe.Just(new Data_Either.Left(top1)))(function ($191) {\n return Data_Maybe.Just.create(Data_Either.Right.create($191));\n })(pred2(v.value0));\n };\n throw new Error(\"Failed pattern match at Data.Enum (line 86, column 1 - line 90, column 69): \" + [ v.constructor.name ]);\n },\n Ord0: function () {\n return ordEither1;\n }\n };\n };\n};\nvar enumBoolean = {\n succ: function (v) {\n if (!v) {\n return new Data_Maybe.Just(true);\n };\n return Data_Maybe.Nothing.value;\n },\n pred: function (v) {\n if (v) {\n return new Data_Maybe.Just(false);\n };\n return Data_Maybe.Nothing.value;\n },\n Ord0: function () {\n return Data_Ord.ordBoolean;\n }\n};\nvar downFromIncluding = function (dictEnum) {\n var pred1 = pred(dictEnum);\n return function (dictUnfoldable1) {\n return Data_Unfoldable1.unfoldr1(dictUnfoldable1)(apply(Data_Tuple.Tuple.create)(pred1));\n };\n};\nvar diag = function (a) {\n return new Data_Tuple.Tuple(a, a);\n};\nvar downFrom = function (dictEnum) {\n var pred1 = pred(dictEnum);\n return function (dictUnfoldable) {\n return Data_Unfoldable.unfoldr(dictUnfoldable)((function () {\n var $192 = map(diag);\n return function ($193) {\n return $192(pred1($193));\n };\n })());\n };\n};\nvar upFrom = function (dictEnum) {\n var succ1 = succ(dictEnum);\n return function (dictUnfoldable) {\n return Data_Unfoldable.unfoldr(dictUnfoldable)((function () {\n var $194 = map(diag);\n return function ($195) {\n return $194(succ1($195));\n };\n })());\n };\n};\nvar defaultToEnum = function (dictBounded) {\n var bottom1 = Data_Bounded.bottom(dictBounded);\n return function (dictEnum) {\n var succ1 = succ(dictEnum);\n return function (i$prime) {\n var go = function ($copy_i) {\n return function ($copy_x) {\n var $tco_var_i = $copy_i;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(i, x) {\n var $168 = i === 0;\n if ($168) {\n $tco_done = true;\n return new Data_Maybe.Just(x);\n };\n var v = succ1(x);\n if (v instanceof Data_Maybe.Just) {\n $tco_var_i = i - 1 | 0;\n $copy_x = v.value0;\n return;\n };\n if (v instanceof Data_Maybe.Nothing) {\n $tco_done = true;\n return Data_Maybe.Nothing.value;\n };\n throw new Error(\"Failed pattern match at Data.Enum (line 296, column 12 - line 298, column 33): \" + [ v.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_i, $copy_x);\n };\n return $tco_result;\n };\n };\n var $171 = i$prime < 0;\n if ($171) {\n return Data_Maybe.Nothing.value;\n };\n return go(i$prime)(bottom1);\n };\n };\n};\nvar defaultSucc = function (toEnum$prime) {\n return function (fromEnum$prime) {\n return function (a) {\n return toEnum$prime(fromEnum$prime(a) + 1 | 0);\n };\n };\n};\nvar defaultPred = function (toEnum$prime) {\n return function (fromEnum$prime) {\n return function (a) {\n return toEnum$prime(fromEnum$prime(a) - 1 | 0);\n };\n };\n};\nvar defaultFromEnum = function (dictEnum) {\n var pred1 = pred(dictEnum);\n var go = function ($copy_i) {\n return function ($copy_x) {\n var $tco_var_i = $copy_i;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(i, x) {\n var v = pred1(x);\n if (v instanceof Data_Maybe.Just) {\n $tco_var_i = i + 1 | 0;\n $copy_x = v.value0;\n return;\n };\n if (v instanceof Data_Maybe.Nothing) {\n $tco_done = true;\n return i;\n };\n throw new Error(\"Failed pattern match at Data.Enum (line 309, column 5 - line 311, column 19): \" + [ v.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_i, $copy_x);\n };\n return $tco_result;\n };\n };\n return go(0);\n};\nvar defaultCardinality = function (dictBounded) {\n var bottom1 = Data_Bounded.bottom(dictBounded);\n return function (dictEnum) {\n var succ1 = succ(dictEnum);\n var go = function ($copy_i) {\n return function ($copy_x) {\n var $tco_var_i = $copy_i;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(i, x) {\n var v = succ1(x);\n if (v instanceof Data_Maybe.Just) {\n $tco_var_i = i + 1 | 0;\n $copy_x = v.value0;\n return;\n };\n if (v instanceof Data_Maybe.Nothing) {\n $tco_done = true;\n return i;\n };\n throw new Error(\"Failed pattern match at Data.Enum (line 276, column 5 - line 278, column 19): \" + [ v.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_i, $copy_x);\n };\n return $tco_result;\n };\n };\n return go(1)(bottom1);\n };\n};\nvar charToEnum = function (v) {\n if (v >= bottom && v <= top) {\n return new Data_Maybe.Just($foreign.fromCharCode(v));\n };\n return Data_Maybe.Nothing.value;\n};\nvar enumChar = {\n succ: /* #__PURE__ */ defaultSucc(charToEnum)($foreign.toCharCode),\n pred: /* #__PURE__ */ defaultPred(charToEnum)($foreign.toCharCode),\n Ord0: function () {\n return Data_Ord.ordChar;\n }\n};\nvar cardinality = function (dict) {\n return dict.cardinality;\n};\nvar boundedEnumUnit = {\n cardinality: 1,\n toEnum: function (v) {\n if (v === 0) {\n return new Data_Maybe.Just(Data_Unit.unit);\n };\n return Data_Maybe.Nothing.value;\n },\n fromEnum: /* #__PURE__ */ Data_Function[\"const\"](0),\n Bounded0: function () {\n return Data_Bounded.boundedUnit;\n },\n Enum1: function () {\n return enumUnit;\n }\n};\nvar boundedEnumOrdering = {\n cardinality: 3,\n toEnum: function (v) {\n if (v === 0) {\n return new Data_Maybe.Just(Data_Ordering.LT.value);\n };\n if (v === 1) {\n return new Data_Maybe.Just(Data_Ordering.EQ.value);\n };\n if (v === 2) {\n return new Data_Maybe.Just(Data_Ordering.GT.value);\n };\n return Data_Maybe.Nothing.value;\n },\n fromEnum: function (v) {\n if (v instanceof Data_Ordering.LT) {\n return 0;\n };\n if (v instanceof Data_Ordering.EQ) {\n return 1;\n };\n if (v instanceof Data_Ordering.GT) {\n return 2;\n };\n throw new Error(\"Failed pattern match at Data.Enum (line 137, column 1 - line 145, column 18): \" + [ v.constructor.name ]);\n },\n Bounded0: function () {\n return Data_Bounded.boundedOrdering;\n },\n Enum1: function () {\n return enumOrdering;\n }\n};\nvar boundedEnumChar = /* #__PURE__ */ (function () {\n return {\n cardinality: $foreign.toCharCode(Data_Bounded.top(Data_Bounded.boundedChar)) - $foreign.toCharCode(Data_Bounded.bottom(Data_Bounded.boundedChar)) | 0,\n toEnum: charToEnum,\n fromEnum: $foreign.toCharCode,\n Bounded0: function () {\n return Data_Bounded.boundedChar;\n },\n Enum1: function () {\n return enumChar;\n }\n };\n})();\nvar boundedEnumBoolean = {\n cardinality: 2,\n toEnum: function (v) {\n if (v === 0) {\n return new Data_Maybe.Just(false);\n };\n if (v === 1) {\n return new Data_Maybe.Just(true);\n };\n return Data_Maybe.Nothing.value;\n },\n fromEnum: function (v) {\n if (!v) {\n return 0;\n };\n if (v) {\n return 1;\n };\n throw new Error(\"Failed pattern match at Data.Enum (line 118, column 1 - line 124, column 20): \" + [ v.constructor.name ]);\n },\n Bounded0: function () {\n return Data_Bounded.boundedBoolean;\n },\n Enum1: function () {\n return enumBoolean;\n }\n};\nexport {\n succ,\n pred,\n cardinality,\n toEnum,\n fromEnum,\n toEnumWithDefaults,\n Cardinality,\n enumFromTo,\n enumFromThenTo,\n upFrom,\n upFromIncluding,\n downFrom,\n downFromIncluding,\n defaultSucc,\n defaultPred,\n defaultCardinality,\n defaultToEnum,\n defaultFromEnum,\n enumBoolean,\n enumInt,\n enumChar,\n enumUnit,\n enumOrdering,\n enumMaybe,\n enumEither,\n enumTuple,\n boundedEnumBoolean,\n boundedEnumChar,\n boundedEnumUnit,\n boundedEnumOrdering,\n newtypeCardinality,\n eqCardinality,\n ordCardinality,\n showCardinality\n};\n","// Generated by purs version 0.15.7\nimport * as Control_Apply from \"../Control.Apply/index.js\";\nimport * as Data_Boolean from \"../Data.Boolean/index.js\";\nimport * as Data_Bounded_Generic from \"../Data.Bounded.Generic/index.js\";\nimport * as Data_Enum from \"../Data.Enum/index.js\";\nimport * as Data_EuclideanRing from \"../Data.EuclideanRing/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Generic_Rep from \"../Data.Generic.Rep/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Newtype from \"../Data.Newtype/index.js\";\nvar map = /* #__PURE__ */ Data_Functor.map(Data_Maybe.functorMaybe);\nvar unwrap = /* #__PURE__ */ Data_Newtype.unwrap();\nvar apply = /* #__PURE__ */ Control_Apply.apply(Data_Maybe.applyMaybe);\nvar div = /* #__PURE__ */ Data_EuclideanRing.div(Data_EuclideanRing.euclideanRingInt);\nvar mod = /* #__PURE__ */ Data_EuclideanRing.mod(Data_EuclideanRing.euclideanRingInt);\nvar genericToEnum$prime = function (dict) {\n return dict[\"genericToEnum'\"];\n};\nvar genericToEnum = function (dictGeneric) {\n var to = Data_Generic_Rep.to(dictGeneric);\n return function (dictGenericBoundedEnum) {\n var $153 = map(to);\n var $154 = genericToEnum$prime(dictGenericBoundedEnum);\n return function ($155) {\n return $153($154($155));\n };\n };\n};\nvar genericSucc$prime = function (dict) {\n return dict[\"genericSucc'\"];\n};\nvar genericSucc = function (dictGeneric) {\n var to = Data_Generic_Rep.to(dictGeneric);\n var from = Data_Generic_Rep.from(dictGeneric);\n return function (dictGenericEnum) {\n var $156 = map(to);\n var $157 = genericSucc$prime(dictGenericEnum);\n return function ($158) {\n return $156($157(from($158)));\n };\n };\n};\nvar genericPred$prime = function (dict) {\n return dict[\"genericPred'\"];\n};\nvar genericPred = function (dictGeneric) {\n var to = Data_Generic_Rep.to(dictGeneric);\n var from = Data_Generic_Rep.from(dictGeneric);\n return function (dictGenericEnum) {\n var $159 = map(to);\n var $160 = genericPred$prime(dictGenericEnum);\n return function ($161) {\n return $159($160(from($161)));\n };\n };\n};\nvar genericFromEnum$prime = function (dict) {\n return dict[\"genericFromEnum'\"];\n};\nvar genericFromEnum = function (dictGeneric) {\n var from = Data_Generic_Rep.from(dictGeneric);\n return function (dictGenericBoundedEnum) {\n var $162 = genericFromEnum$prime(dictGenericBoundedEnum);\n return function ($163) {\n return $162(from($163));\n };\n };\n};\nvar genericEnumSum = function (dictGenericEnum) {\n var genericPred$prime1 = genericPred$prime(dictGenericEnum);\n var genericSucc$prime1 = genericSucc$prime(dictGenericEnum);\n return function (dictGenericTop) {\n var genericTop$prime = Data_Bounded_Generic[\"genericTop$prime\"](dictGenericTop);\n return function (dictGenericEnum1) {\n var genericPred$prime2 = genericPred$prime(dictGenericEnum1);\n var genericSucc$prime2 = genericSucc$prime(dictGenericEnum1);\n return function (dictGenericBottom) {\n var genericBottom$prime = Data_Bounded_Generic[\"genericBottom$prime\"](dictGenericBottom);\n return {\n \"genericPred'\": function (v) {\n if (v instanceof Data_Generic_Rep.Inl) {\n return map(Data_Generic_Rep.Inl.create)(genericPred$prime1(v.value0));\n };\n if (v instanceof Data_Generic_Rep.Inr) {\n var v1 = genericPred$prime2(v.value0);\n if (v1 instanceof Data_Maybe.Nothing) {\n return new Data_Maybe.Just(new Data_Generic_Rep.Inl(genericTop$prime));\n };\n if (v1 instanceof Data_Maybe.Just) {\n return new Data_Maybe.Just(new Data_Generic_Rep.Inr(v1.value0));\n };\n throw new Error(\"Failed pattern match at Data.Enum.Generic (line 30, column 14 - line 32, column 31): \" + [ v1.constructor.name ]);\n };\n throw new Error(\"Failed pattern match at Data.Enum.Generic (line 28, column 18 - line 32, column 31): \" + [ v.constructor.name ]);\n },\n \"genericSucc'\": function (v) {\n if (v instanceof Data_Generic_Rep.Inl) {\n var v1 = genericSucc$prime1(v.value0);\n if (v1 instanceof Data_Maybe.Nothing) {\n return new Data_Maybe.Just(new Data_Generic_Rep.Inr(genericBottom$prime));\n };\n if (v1 instanceof Data_Maybe.Just) {\n return new Data_Maybe.Just(new Data_Generic_Rep.Inl(v1.value0));\n };\n throw new Error(\"Failed pattern match at Data.Enum.Generic (line 34, column 14 - line 36, column 31): \" + [ v1.constructor.name ]);\n };\n if (v instanceof Data_Generic_Rep.Inr) {\n return map(Data_Generic_Rep.Inr.create)(genericSucc$prime2(v.value0));\n };\n throw new Error(\"Failed pattern match at Data.Enum.Generic (line 33, column 18 - line 37, column 36): \" + [ v.constructor.name ]);\n }\n };\n };\n };\n };\n};\nvar genericEnumProduct = function (dictGenericEnum) {\n var genericPred$prime1 = genericPred$prime(dictGenericEnum);\n var genericSucc$prime1 = genericSucc$prime(dictGenericEnum);\n return function (dictGenericTop) {\n return function (dictGenericBottom) {\n return function (dictGenericEnum1) {\n var genericPred$prime2 = genericPred$prime(dictGenericEnum1);\n var genericSucc$prime2 = genericSucc$prime(dictGenericEnum1);\n return function (dictGenericTop1) {\n var genericTop$prime = Data_Bounded_Generic[\"genericTop$prime\"](dictGenericTop1);\n return function (dictGenericBottom1) {\n var genericBottom$prime = Data_Bounded_Generic[\"genericBottom$prime\"](dictGenericBottom1);\n return {\n \"genericPred'\": function (v) {\n var v1 = genericPred$prime2(v.value1);\n if (v1 instanceof Data_Maybe.Just) {\n return new Data_Maybe.Just(new Data_Generic_Rep.Product(v.value0, v1.value0));\n };\n if (v1 instanceof Data_Maybe.Nothing) {\n return map(Data_Function.flip(Data_Generic_Rep.Product.create)(genericTop$prime))(genericPred$prime1(v.value0));\n };\n throw new Error(\"Failed pattern match at Data.Enum.Generic (line 40, column 32 - line 42, column 59): \" + [ v1.constructor.name ]);\n },\n \"genericSucc'\": function (v) {\n var v1 = genericSucc$prime2(v.value1);\n if (v1 instanceof Data_Maybe.Just) {\n return new Data_Maybe.Just(new Data_Generic_Rep.Product(v.value0, v1.value0));\n };\n if (v1 instanceof Data_Maybe.Nothing) {\n return map(Data_Function.flip(Data_Generic_Rep.Product.create)(genericBottom$prime))(genericSucc$prime1(v.value0));\n };\n throw new Error(\"Failed pattern match at Data.Enum.Generic (line 43, column 32 - line 45, column 62): \" + [ v1.constructor.name ]);\n }\n };\n };\n };\n };\n };\n };\n};\nvar genericEnumNoArguments = {\n \"genericPred'\": function (v) {\n return Data_Maybe.Nothing.value;\n },\n \"genericSucc'\": function (v) {\n return Data_Maybe.Nothing.value;\n }\n};\nvar genericEnumConstructor = function (dictGenericEnum) {\n var genericPred$prime1 = genericPred$prime(dictGenericEnum);\n var genericSucc$prime1 = genericSucc$prime(dictGenericEnum);\n return {\n \"genericPred'\": function (v) {\n return map(Data_Generic_Rep.Constructor)(genericPred$prime1(v));\n },\n \"genericSucc'\": function (v) {\n return map(Data_Generic_Rep.Constructor)(genericSucc$prime1(v));\n }\n };\n};\nvar genericEnumArgument = function (dictEnum) {\n var pred = Data_Enum.pred(dictEnum);\n var succ = Data_Enum.succ(dictEnum);\n return {\n \"genericPred'\": function (v) {\n return map(Data_Generic_Rep.Argument)(pred(v));\n },\n \"genericSucc'\": function (v) {\n return map(Data_Generic_Rep.Argument)(succ(v));\n }\n };\n};\nvar genericCardinality$prime = function (dict) {\n return dict[\"genericCardinality'\"];\n};\nvar genericCardinality = function (dictGeneric) {\n return function (dictGenericBoundedEnum) {\n return unwrap(genericCardinality$prime(dictGenericBoundedEnum));\n };\n};\nvar genericBoundedEnumSum = function (dictGenericBoundedEnum) {\n var genericCardinality$prime1 = genericCardinality$prime(dictGenericBoundedEnum);\n var genericToEnum$prime1 = genericToEnum$prime(dictGenericBoundedEnum);\n var genericFromEnum$prime1 = genericFromEnum$prime(dictGenericBoundedEnum);\n return function (dictGenericBoundedEnum1) {\n var genericToEnum$prime2 = genericToEnum$prime(dictGenericBoundedEnum1);\n var genericFromEnum$prime2 = genericFromEnum$prime(dictGenericBoundedEnum1);\n return {\n \"genericCardinality'\": unwrap(genericCardinality$prime1) + unwrap(genericCardinality$prime(dictGenericBoundedEnum1)) | 0,\n \"genericToEnum'\": function (n) {\n var to = function (v) {\n if (n >= 0 && n < v) {\n return map(Data_Generic_Rep.Inl.create)(genericToEnum$prime1(n));\n };\n if (Data_Boolean.otherwise) {\n return map(Data_Generic_Rep.Inr.create)(genericToEnum$prime2(n - v | 0));\n };\n throw new Error(\"Failed pattern match at Data.Enum.Generic (line 83, column 5 - line 83, column 43): \" + [ v.constructor.name ]);\n };\n return to(genericCardinality$prime1);\n },\n \"genericFromEnum'\": function (v) {\n if (v instanceof Data_Generic_Rep.Inl) {\n return genericFromEnum$prime1(v.value0);\n };\n if (v instanceof Data_Generic_Rep.Inr) {\n return genericFromEnum$prime2(v.value0) + unwrap(genericCardinality$prime1) | 0;\n };\n throw new Error(\"Failed pattern match at Data.Enum.Generic (line 87, column 22 - line 89, column 80): \" + [ v.constructor.name ]);\n }\n };\n };\n};\nvar genericBoundedEnumProduct = function (dictGenericBoundedEnum) {\n var genericCardinality$prime1 = genericCardinality$prime(dictGenericBoundedEnum);\n var genericToEnum$prime1 = genericToEnum$prime(dictGenericBoundedEnum);\n var genericFromEnum$prime1 = genericFromEnum$prime(dictGenericBoundedEnum);\n return function (dictGenericBoundedEnum1) {\n var genericCardinality$prime2 = genericCardinality$prime(dictGenericBoundedEnum1);\n var genericToEnum$prime2 = genericToEnum$prime(dictGenericBoundedEnum1);\n var genericFromEnum$prime2 = genericFromEnum$prime(dictGenericBoundedEnum1);\n return {\n \"genericCardinality'\": unwrap(genericCardinality$prime1) * unwrap(genericCardinality$prime2) | 0,\n \"genericToEnum'\": function (n) {\n var to = function (v) {\n return apply(map(Data_Generic_Rep.Product.create)(genericToEnum$prime1(div(n)(v))))(genericToEnum$prime2(mod(n)(v)));\n };\n return to(genericCardinality$prime2);\n },\n \"genericFromEnum'\": (function () {\n var from = function (v) {\n return function (v1) {\n return (genericFromEnum$prime1(v1.value0) * v | 0) + genericFromEnum$prime2(v1.value1) | 0;\n };\n };\n return from(genericCardinality$prime2);\n })()\n };\n };\n};\nvar genericBoundedEnumNoArguments = {\n \"genericCardinality'\": 1,\n \"genericToEnum'\": function (i) {\n var $150 = i === 0;\n if ($150) {\n return new Data_Maybe.Just(Data_Generic_Rep.NoArguments.value);\n };\n return Data_Maybe.Nothing.value;\n },\n \"genericFromEnum'\": function (v) {\n return 0;\n }\n};\nvar genericBoundedEnumConstructor = function (dictGenericBoundedEnum) {\n var genericToEnum$prime1 = genericToEnum$prime(dictGenericBoundedEnum);\n var genericFromEnum$prime1 = genericFromEnum$prime(dictGenericBoundedEnum);\n return {\n \"genericCardinality'\": unwrap(genericCardinality$prime(dictGenericBoundedEnum)),\n \"genericToEnum'\": function (i) {\n return map(Data_Generic_Rep.Constructor)(genericToEnum$prime1(i));\n },\n \"genericFromEnum'\": function (v) {\n return genericFromEnum$prime1(v);\n }\n };\n};\nvar genericBoundedEnumArgument = function (dictBoundedEnum) {\n var toEnum = Data_Enum.toEnum(dictBoundedEnum);\n var fromEnum = Data_Enum.fromEnum(dictBoundedEnum);\n return {\n \"genericCardinality'\": unwrap(Data_Enum.cardinality(dictBoundedEnum)),\n \"genericToEnum'\": function (i) {\n return map(Data_Generic_Rep.Argument)(toEnum(i));\n },\n \"genericFromEnum'\": function (v) {\n return fromEnum(v);\n }\n };\n};\nexport {\n genericCardinality$prime,\n genericFromEnum$prime,\n genericPred$prime,\n genericSucc$prime,\n genericToEnum$prime,\n genericPred,\n genericSucc,\n genericCardinality,\n genericToEnum,\n genericFromEnum,\n genericEnumNoArguments,\n genericEnumArgument,\n genericEnumConstructor,\n genericEnumSum,\n genericEnumProduct,\n genericBoundedEnumNoArguments,\n genericBoundedEnumArgument,\n genericBoundedEnumConstructor,\n genericBoundedEnumSum,\n genericBoundedEnumProduct\n};\n","// Generated by purs version 0.15.7\nimport * as Data_Const from \"../Data.Const/index.js\";\nimport * as Data_Either from \"../Data.Either/index.js\";\nimport * as Data_Monoid from \"../Data.Monoid/index.js\";\nimport * as Data_Newtype from \"../Data.Newtype/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nvar alaF = /* #__PURE__ */ Data_Newtype.alaF()()()();\nvar Forget = function (x) {\n return x;\n};\nvar semigroupForget = function (dictSemigroup) {\n return Data_Semigroup.semigroupFn(dictSemigroup);\n};\nvar profunctorForget = {\n dimap: function (f) {\n return function (v) {\n return function (v1) {\n return function ($36) {\n return v1(f($36));\n };\n };\n };\n }\n};\nvar strongForget = {\n first: function (v) {\n return function ($37) {\n return v(Data_Tuple.fst($37));\n };\n },\n second: function (v) {\n return function ($38) {\n return v(Data_Tuple.snd($38));\n };\n },\n Profunctor0: function () {\n return profunctorForget;\n }\n};\nvar newtypeForget = {\n Coercible0: function () {\n return undefined;\n }\n};\nvar monoidForget = function (dictMonoid) {\n return Data_Monoid.monoidFn(dictMonoid);\n};\nvar cochoiceForget = {\n unleft: function (v) {\n return function ($39) {\n return v(Data_Either.Left.create($39));\n };\n },\n unright: function (v) {\n return function ($40) {\n return v(Data_Either.Right.create($40));\n };\n },\n Profunctor0: function () {\n return profunctorForget;\n }\n};\nvar choiceForget = function (dictMonoid) {\n var mempty = Data_Monoid.mempty(Data_Monoid.monoidFn(dictMonoid));\n return {\n left: function (v) {\n return Data_Either.either(v)(mempty);\n },\n right: function (v) {\n return Data_Either.either(mempty)(v);\n },\n Profunctor0: function () {\n return profunctorForget;\n }\n };\n};\nvar wanderForget = function (dictMonoid) {\n var applicativeConst = Data_Const.applicativeConst(dictMonoid);\n var choiceForget1 = choiceForget(dictMonoid);\n return {\n wander: function (f) {\n return function (v) {\n return alaF(Data_Const.Const)(f(applicativeConst))(v);\n };\n },\n Strong0: function () {\n return strongForget;\n },\n Choice1: function () {\n return choiceForget1;\n }\n };\n};\nexport {\n Forget,\n newtypeForget,\n semigroupForget,\n monoidForget,\n profunctorForget,\n choiceForget,\n strongForget,\n cochoiceForget,\n wanderForget\n};\n","// Generated by purs version 0.15.7\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Data_Newtype from \"../Data.Newtype/index.js\";\nvar identity = /* #__PURE__ */ Control_Category.identity(Control_Category.categoryFn);\nvar wrap = /* #__PURE__ */ Data_Newtype.wrap();\nvar unwrap = /* #__PURE__ */ Data_Newtype.unwrap();\nvar profunctorFn = {\n dimap: function (a2b) {\n return function (c2d) {\n return function (b2c) {\n return function ($18) {\n return c2d(b2c(a2b($18)));\n };\n };\n };\n }\n};\nvar dimap = function (dict) {\n return dict.dimap;\n};\nvar lcmap = function (dictProfunctor) {\n var dimap1 = dimap(dictProfunctor);\n return function (a2b) {\n return dimap1(a2b)(identity);\n };\n};\nvar rmap = function (dictProfunctor) {\n var dimap1 = dimap(dictProfunctor);\n return function (b2c) {\n return dimap1(identity)(b2c);\n };\n};\nvar unwrapIso = function (dictProfunctor) {\n var dimap1 = dimap(dictProfunctor);\n return function () {\n return dimap1(wrap)(unwrap);\n };\n};\nvar wrapIso = function (dictProfunctor) {\n var dimap1 = dimap(dictProfunctor);\n return function () {\n return function (v) {\n return dimap1(unwrap)(wrap);\n };\n };\n};\nvar arr = function (dictCategory) {\n var identity1 = Control_Category.identity(dictCategory);\n return function (dictProfunctor) {\n var rmap1 = rmap(dictProfunctor);\n return function (f) {\n return rmap1(f)(identity1);\n };\n };\n};\nexport {\n dimap,\n lcmap,\n rmap,\n arr,\n unwrapIso,\n wrapIso,\n profunctorFn\n};\n","// Generated by purs version 0.15.7\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Control_Semigroupoid from \"../Control.Semigroupoid/index.js\";\nimport * as Data_Either from \"../Data.Either/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Profunctor from \"../Data.Profunctor/index.js\";\nvar identity = /* #__PURE__ */ Control_Category.identity(Control_Category.categoryFn);\nvar right = function (dict) {\n return dict.right;\n};\nvar left = function (dict) {\n return dict.left;\n};\nvar splitChoice = function (dictCategory) {\n var composeFlipped = Control_Semigroupoid.composeFlipped(dictCategory.Semigroupoid0());\n return function (dictChoice) {\n var left1 = left(dictChoice);\n var right1 = right(dictChoice);\n return function (l) {\n return function (r) {\n return composeFlipped(left1(l))(right1(r));\n };\n };\n };\n};\nvar fanin = function (dictCategory) {\n var identity1 = Control_Category.identity(dictCategory);\n var composeFlipped = Control_Semigroupoid.composeFlipped(dictCategory.Semigroupoid0());\n var splitChoice1 = splitChoice(dictCategory);\n return function (dictChoice) {\n var dimap = Data_Profunctor.dimap(dictChoice.Profunctor0());\n var splitChoice2 = splitChoice1(dictChoice);\n return function (l) {\n return function (r) {\n var join = dimap(Data_Either.either(identity)(identity))(identity)(identity1);\n return composeFlipped(splitChoice2(l)(r))(join);\n };\n };\n };\n};\nvar choiceFn = {\n left: function (v) {\n return function (v1) {\n if (v1 instanceof Data_Either.Left) {\n return new Data_Either.Left(v(v1.value0));\n };\n if (v1 instanceof Data_Either.Right) {\n return new Data_Either.Right(v1.value0);\n };\n throw new Error(\"Failed pattern match at Data.Profunctor.Choice (line 32, column 1 - line 35, column 16): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n },\n right: /* #__PURE__ */ Data_Functor.map(Data_Either.functorEither),\n Profunctor0: function () {\n return Data_Profunctor.profunctorFn;\n }\n};\nexport {\n left,\n right,\n splitChoice,\n fanin,\n choiceFn\n};\n","// Generated by purs version 0.15.7\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Control_Semigroupoid from \"../Control.Semigroupoid/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Profunctor from \"../Data.Profunctor/index.js\";\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nvar identity = /* #__PURE__ */ Control_Category.identity(Control_Category.categoryFn);\nvar strongFn = {\n first: function (a2b) {\n return function (v) {\n return new Data_Tuple.Tuple(a2b(v.value0), v.value1);\n };\n },\n second: /* #__PURE__ */ Data_Functor.map(Data_Tuple.functorTuple),\n Profunctor0: function () {\n return Data_Profunctor.profunctorFn;\n }\n};\nvar second = function (dict) {\n return dict.second;\n};\nvar first = function (dict) {\n return dict.first;\n};\nvar splitStrong = function (dictCategory) {\n var composeFlipped = Control_Semigroupoid.composeFlipped(dictCategory.Semigroupoid0());\n return function (dictStrong) {\n var first1 = first(dictStrong);\n var second1 = second(dictStrong);\n return function (l) {\n return function (r) {\n return composeFlipped(first1(l))(second1(r));\n };\n };\n };\n};\nvar fanout = function (dictCategory) {\n var identity1 = Control_Category.identity(dictCategory);\n var composeFlipped = Control_Semigroupoid.composeFlipped(dictCategory.Semigroupoid0());\n var splitStrong1 = splitStrong(dictCategory);\n return function (dictStrong) {\n var dimap = Data_Profunctor.dimap(dictStrong.Profunctor0());\n var splitStrong2 = splitStrong1(dictStrong);\n return function (l) {\n return function (r) {\n var split = dimap(identity)(function (a) {\n return new Data_Tuple.Tuple(a, a);\n })(identity1);\n return composeFlipped(split)(splitStrong2(l)(r));\n };\n };\n };\n};\nexport {\n first,\n second,\n splitStrong,\n fanout,\n strongFn\n};\n","// Generated by purs version 0.15.7\nimport * as Data_Identity from \"../Data.Identity/index.js\";\nimport * as Data_Newtype from \"../Data.Newtype/index.js\";\nimport * as Data_Profunctor_Choice from \"../Data.Profunctor.Choice/index.js\";\nimport * as Data_Profunctor_Star from \"../Data.Profunctor.Star/index.js\";\nimport * as Data_Profunctor_Strong from \"../Data.Profunctor.Strong/index.js\";\nvar alaF = /* #__PURE__ */ Data_Newtype.alaF()()()();\nvar wanderStar = function (dictApplicative) {\n var strongStar = Data_Profunctor_Star.strongStar((dictApplicative.Apply0()).Functor0());\n var choiceStar = Data_Profunctor_Star.choiceStar(dictApplicative);\n return {\n wander: function (t) {\n return function (v) {\n return t(dictApplicative)(v);\n };\n },\n Strong0: function () {\n return strongStar;\n },\n Choice1: function () {\n return choiceStar;\n }\n };\n};\nvar wanderFunction = {\n wander: function (t) {\n return alaF(Data_Identity.Identity)(t(Data_Identity.applicativeIdentity));\n },\n Strong0: function () {\n return Data_Profunctor_Strong.strongFn;\n },\n Choice1: function () {\n return Data_Profunctor_Choice.choiceFn;\n }\n};\nvar wander = function (dict) {\n return dict.wander;\n};\nexport {\n wander,\n wanderFunction,\n wanderStar\n};\n","// Generated by purs version 0.15.7\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Data_Boolean from \"../Data.Boolean/index.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Lens_Internal_Exchange from \"../Data.Lens.Internal.Exchange/index.js\";\nimport * as Data_Lens_Types from \"../Data.Lens.Types/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Newtype from \"../Data.Newtype/index.js\";\nimport * as Data_Profunctor from \"../Data.Profunctor/index.js\";\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nimport * as Safe_Coerce from \"../Safe.Coerce/index.js\";\nvar identity = /* #__PURE__ */ Control_Category.identity(Control_Category.categoryFn);\nvar unwrap = /* #__PURE__ */ Data_Newtype.unwrap();\nvar coerce = /* #__PURE__ */ Safe_Coerce.coerce();\nvar withIso = function (l) {\n return function (f) {\n var v = l(new Data_Lens_Internal_Exchange.Exchange(identity, identity));\n return f(v.value0)(v.value1);\n };\n};\nvar under = function (l) {\n return withIso(l)(function (sa) {\n return function (bt) {\n return function (ts) {\n return function ($31) {\n return sa(ts(bt($31)));\n };\n };\n };\n });\n};\nvar re = function (t) {\n return unwrap(t(identity));\n};\nvar iso = function (f) {\n return function (g) {\n return function (dictProfunctor) {\n var dimap = Data_Profunctor.dimap(dictProfunctor);\n return function (pab) {\n return dimap(f)(g)(pab);\n };\n };\n };\n};\nvar mapping = function (dictFunctor) {\n var map = Data_Functor.map(dictFunctor);\n return function (dictFunctor1) {\n var map1 = Data_Functor.map(dictFunctor1);\n return function (l) {\n return function (dictProfunctor) {\n return withIso(l)(function (sa) {\n return function (bt) {\n return iso(map(sa))(map1(bt))(dictProfunctor);\n };\n });\n };\n };\n };\n};\nvar non = function (dictEq) {\n var eq = Data_Eq.eq(dictEq);\n return function (def) {\n return function (dictProfunctor) {\n var g = function (a) {\n if (eq(a)(def)) {\n return Data_Maybe.Nothing.value;\n };\n if (Data_Boolean.otherwise) {\n return new Data_Maybe.Just(a);\n };\n throw new Error(\"Failed pattern match at Data.Lens.Iso (line 60, column 3 - line 62, column 25): \" + [ a.constructor.name ]);\n };\n return iso(Data_Maybe.fromMaybe(def))(g)(dictProfunctor);\n };\n };\n};\nvar uncurried = function (dictProfunctor) {\n return iso(Data_Tuple.uncurry)(Data_Tuple.curry)(dictProfunctor);\n};\nvar flipped = function (dictProfunctor) {\n return iso(Data_Function.flip)(Data_Function.flip)(dictProfunctor);\n};\nvar dimapping = function (dictProfunctor) {\n var dimap = Data_Profunctor.dimap(dictProfunctor);\n return function (dictProfunctor1) {\n var dimap1 = Data_Profunctor.dimap(dictProfunctor1);\n return function (f) {\n return function (g) {\n return function (dictProfunctor2) {\n return withIso(f)(function (sa) {\n return function (bt) {\n return withIso(g)(function (ssaa) {\n return function (bbtt) {\n return iso(dimap(sa)(ssaa))(dimap1(bt)(bbtt))(dictProfunctor2);\n };\n });\n };\n });\n };\n };\n };\n };\n};\nvar curried = function (dictProfunctor) {\n return iso(Data_Tuple.curry)(Data_Tuple.uncurry)(dictProfunctor);\n};\nvar coerced = function () {\n return function () {\n return function (dictProfunctor) {\n return iso(coerce)(coerce)(dictProfunctor);\n };\n };\n};\nvar cloneIso = function (l) {\n return function (dictProfunctor) {\n return withIso(l)(function (x) {\n return function (y) {\n return function (p) {\n return iso(x)(y)(dictProfunctor)(p);\n };\n };\n });\n };\n};\nvar auf = function (dictProfunctor) {\n var rmap = Data_Profunctor.rmap(dictProfunctor);\n return function (l) {\n return withIso(l)(function (sa) {\n return function (bt) {\n return function (f) {\n return function (g) {\n return function (e) {\n return bt(f(rmap(sa)(g))(e));\n };\n };\n };\n };\n });\n };\n};\nvar au = function (l) {\n return withIso(l)(function (sa) {\n return function (bt) {\n return function (f) {\n return function (e) {\n return sa(f(bt)(e));\n };\n };\n };\n });\n};\nexport {\n iso,\n withIso,\n cloneIso,\n re,\n au,\n auf,\n under,\n non,\n curried,\n uncurried,\n flipped,\n mapping,\n dimapping,\n coerced\n};\nexport {\n Exchange,\n Re\n} from \"../Data.Lens.Types/index.js\";\n","// Generated by purs version 0.15.7\nimport * as Control_Apply from \"../Control.Apply/index.js\";\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Data_Lens_Internal_Indexed from \"../Data.Lens.Internal.Indexed/index.js\";\nimport * as Data_Lens_Internal_Shop from \"../Data.Lens.Internal.Shop/index.js\";\nimport * as Data_Lens_Types from \"../Data.Lens.Types/index.js\";\nimport * as Data_Newtype from \"../Data.Newtype/index.js\";\nimport * as Data_Profunctor from \"../Data.Profunctor/index.js\";\nimport * as Data_Profunctor_Strong from \"../Data.Profunctor.Strong/index.js\";\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nvar identity = /* #__PURE__ */ Control_Category.identity(Control_Category.categoryFn);\nvar lift2 = /* #__PURE__ */ Control_Apply.lift2(Control_Apply.applyFn);\nvar un = /* #__PURE__ */ Data_Newtype.un();\nvar withLens = function (l) {\n return function (f) {\n var v = l(new Data_Lens_Internal_Shop.Shop(identity, function (v1) {\n return function (b) {\n return b;\n };\n }));\n return f(v.value0)(v.value1);\n };\n};\nvar withIndexedLens = function (l) {\n return function (f) {\n var v = l(new Data_Lens_Internal_Shop.Shop(identity, function (v1) {\n return function (b) {\n return b;\n };\n }));\n return f(v.value0)(v.value1);\n };\n};\nvar lensStore = function (l) {\n return withLens(l)(lift2(Data_Tuple.Tuple.create));\n};\nvar lens$prime = function (to) {\n return function (dictStrong) {\n var dimap = Data_Profunctor.dimap(dictStrong.Profunctor0());\n var first = Data_Profunctor_Strong.first(dictStrong);\n return function (pab) {\n return dimap(to)(function (v) {\n return v.value1(v.value0);\n })(first(pab));\n };\n };\n};\nvar lens = function (get) {\n return function (set) {\n return function (dictStrong) {\n return lens$prime(function (s) {\n return new Data_Tuple.Tuple(get(s), function (b) {\n return set(s)(b);\n });\n })(dictStrong);\n };\n };\n};\nvar ilens$prime = function (to) {\n return function (dictStrong) {\n var dimap = Data_Profunctor.dimap(dictStrong.Profunctor0());\n var first = Data_Profunctor_Strong.first(dictStrong);\n return function (pab) {\n return dimap(to)(function (v) {\n return v.value1(v.value0);\n })(first(un(Data_Lens_Internal_Indexed.Indexed)(pab)));\n };\n };\n};\nvar ilens = function (get) {\n return function (set) {\n return function (dictStrong) {\n return ilens$prime(function (s) {\n return new Data_Tuple.Tuple(get(s), function (b) {\n return set(s)(b);\n });\n })(dictStrong);\n };\n };\n};\nvar cloneLens = function (l) {\n return function (dictStrong) {\n return withLens(l)(function (x) {\n return function (y) {\n return function (p) {\n return lens(x)(y)(dictStrong)(p);\n };\n };\n });\n };\n};\nvar cloneIndexedLens = function (l) {\n return function (dictStrong) {\n return withIndexedLens(l)(function (x) {\n return function (y) {\n return function (p) {\n return ilens(x)(y)(dictStrong)(p);\n };\n };\n });\n };\n};\nexport {\n lens,\n lens$prime,\n withLens,\n cloneLens,\n ilens,\n ilens$prime,\n withIndexedLens,\n cloneIndexedLens,\n lensStore\n};\n","// Generated by purs version 0.15.7\nimport * as Control_Alternative from \"../Control.Alternative/index.js\";\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Data_Either from \"../Data.Either/index.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_HeytingAlgebra from \"../Data.HeytingAlgebra/index.js\";\nimport * as Data_Lens_Internal_Market from \"../Data.Lens.Internal.Market/index.js\";\nimport * as Data_Lens_Internal_Tagged from \"../Data.Lens.Internal.Tagged/index.js\";\nimport * as Data_Lens_Types from \"../Data.Lens.Types/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Newtype from \"../Data.Newtype/index.js\";\nimport * as Data_Profunctor from \"../Data.Profunctor/index.js\";\nimport * as Data_Profunctor_Choice from \"../Data.Profunctor.Choice/index.js\";\nimport * as Data_Traversable from \"../Data.Traversable/index.js\";\nvar identity = /* #__PURE__ */ Control_Category.identity(Control_Category.categoryFn);\nvar guard = /* #__PURE__ */ Control_Alternative.guard(Data_Maybe.alternativeMaybe);\nvar withPrism = function (l) {\n return function (f) {\n var v = l(new Data_Lens_Internal_Market.Market(identity, Data_Either.Right.create));\n return f(v.value0)(v.value1);\n };\n};\nvar review = /* #__PURE__ */ Data_Newtype.under()()(Data_Lens_Internal_Tagged.Tagged);\nvar prism = function (to) {\n return function (fro) {\n return function (dictChoice) {\n var Profunctor0 = dictChoice.Profunctor0();\n var dimap = Data_Profunctor.dimap(Profunctor0);\n var right = Data_Profunctor_Choice.right(dictChoice);\n var rmap = Data_Profunctor.rmap(Profunctor0);\n return function (pab) {\n return dimap(fro)(Data_Either.either(identity)(identity))(right(rmap(to)(pab)));\n };\n };\n };\n};\nvar prism$prime = function (to) {\n return function (fro) {\n return function (dictChoice) {\n return prism(to)(function (s) {\n return Data_Maybe.maybe(new Data_Either.Left(s))(Data_Either.Right.create)(fro(s));\n })(dictChoice);\n };\n };\n};\nvar nearly = function (x) {\n return function (f) {\n return function (dictChoice) {\n return prism$prime(Data_Function[\"const\"](x))(function ($38) {\n return guard(f($38));\n })(dictChoice);\n };\n };\n};\nvar only = function (dictEq) {\n var eq = Data_Eq.eq(dictEq);\n return function (x) {\n return function (dictChoice) {\n return nearly(x)(function (v) {\n return eq(v)(x);\n })(dictChoice);\n };\n };\n};\nvar matching = function (l) {\n return withPrism(l)(function (v) {\n return function (f) {\n return f;\n };\n });\n};\nvar is = function (dictHeytingAlgebra) {\n var ff = Data_HeytingAlgebra.ff(dictHeytingAlgebra);\n var tt = Data_HeytingAlgebra.tt(dictHeytingAlgebra);\n return function (l) {\n var $39 = Data_Either.either(Data_Function[\"const\"](ff))(Data_Function[\"const\"](tt));\n var $40 = matching(l);\n return function ($41) {\n return $39($40($41));\n };\n };\n};\nvar isn$primet = function (dictHeytingAlgebra) {\n var not = Data_HeytingAlgebra.not(dictHeytingAlgebra);\n var is1 = is(dictHeytingAlgebra);\n return function (l) {\n var $42 = is1(l);\n return function ($43) {\n return not($42($43));\n };\n };\n};\nvar clonePrism = function (l) {\n return function (dictChoice) {\n return withPrism(l)(function (x) {\n return function (y) {\n return function (p) {\n return prism(x)(y)(dictChoice)(p);\n };\n };\n });\n };\n};\nvar below = function (dictTraversable) {\n var map = Data_Functor.map(dictTraversable.Functor0());\n var traverse = Data_Traversable.traverse(dictTraversable)(Data_Either.applicativeEither);\n return function (k) {\n return function (dictChoice) {\n return withPrism(k)(function (bt) {\n return function (seta) {\n return prism(map(bt))(function (s) {\n var v = traverse(seta)(s);\n if (v instanceof Data_Either.Left) {\n return new Data_Either.Left(s);\n };\n if (v instanceof Data_Either.Right) {\n return new Data_Either.Right(v.value0);\n };\n throw new Error(\"Failed pattern match at Data.Lens.Prism (line 199, column 7 - line 201, column 27): \" + [ v.constructor.name ]);\n })(dictChoice);\n };\n });\n };\n };\n};\nexport {\n prism$prime,\n prism,\n only,\n nearly,\n review,\n is,\n isn$primet,\n matching,\n clonePrism,\n withPrism,\n below\n};\n","// Generated by purs version 0.15.7\nimport * as Data_Either from \"../Data.Either/index.js\";\nimport * as Data_Generic_Rep from \"../Data.Generic.Rep/index.js\";\nimport * as Data_Lens_Iso from \"../Data.Lens.Iso/index.js\";\nimport * as Data_Lens_Lens from \"../Data.Lens.Lens/index.js\";\nimport * as Data_Lens_Lens_Unit from \"../Data.Lens.Lens.Unit/index.js\";\nimport * as Data_Lens_Prism from \"../Data.Lens.Prism/index.js\";\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nvar _ToGeneric = function (dictGeneric) {\n var from = Data_Generic_Rep.from(dictGeneric);\n var to = Data_Generic_Rep.to(dictGeneric);\n return function (dictProfunctor) {\n return Data_Lens_Iso.iso(from)(to)(dictProfunctor);\n };\n};\nvar _SumRight = function (dictChoice) {\n return Data_Lens_Prism.prism(Data_Generic_Rep.Inr.create)(function (v) {\n if (v instanceof Data_Generic_Rep.Inr) {\n return new Data_Either.Right(v.value0);\n };\n return new Data_Either.Left(v);\n })(dictChoice);\n};\nvar _SumLeft = function (dictChoice) {\n return Data_Lens_Prism.prism(Data_Generic_Rep.Inl.create)(function (v) {\n if (v instanceof Data_Generic_Rep.Inl) {\n return new Data_Either.Right(v.value0);\n };\n return new Data_Either.Left(v);\n })(dictChoice);\n};\nvar _ProductRight = function (dictStrong) {\n return Data_Lens_Lens[\"lens$prime\"](function (v) {\n return new Data_Tuple.Tuple(v.value1, function (b) {\n return new Data_Generic_Rep.Product(v.value0, b);\n });\n })(dictStrong);\n};\nvar _ProductLeft = function (dictStrong) {\n return Data_Lens_Lens[\"lens$prime\"](function (v) {\n return new Data_Tuple.Tuple(v.value0, function (a) {\n return new Data_Generic_Rep.Product(a, v.value1);\n });\n })(dictStrong);\n};\nvar _NoArguments = function (dictStrong) {\n return Data_Lens_Lens_Unit.united(dictStrong);\n};\nvar _Constructor = function (dictProfunctor) {\n var wrapC = function (a) {\n return a;\n };\n var unwrapC = function (v) {\n return v;\n };\n return Data_Lens_Iso.iso(unwrapC)(wrapC)(dictProfunctor);\n};\nvar _Argument = function (dictProfunctor) {\n var wrapA = function (a) {\n return a;\n };\n var unwrapA = function (v) {\n return v;\n };\n return Data_Lens_Iso.iso(unwrapA)(wrapA)(dictProfunctor);\n};\nexport {\n _SumRight,\n _SumLeft,\n _ProductLeft,\n _ProductRight,\n _Constructor,\n _Argument,\n _NoArguments,\n _ToGeneric\n};\n","// Generated by purs version 0.15.7\nimport * as Data_Lens_Iso from \"../Data.Lens.Iso/index.js\";\nvar coerced = /* #__PURE__ */ Data_Lens_Iso.coerced()();\nvar _Newtype = function () {\n return function () {\n return function (dictProfunctor) {\n return coerced(dictProfunctor);\n };\n };\n};\nvar _Newtype1 = /* #__PURE__ */ _Newtype()();\nvar unto = function () {\n return function (v) {\n return function (dictProfunctor) {\n return _Newtype1(dictProfunctor);\n };\n };\n};\nexport {\n _Newtype,\n unto\n};\n","// Generated by purs version 0.15.7\nimport * as Data_Either from \"../Data.Either/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Lens_Prism from \"../Data.Lens.Prism/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nvar _Nothing = function (dictChoice) {\n return Data_Lens_Prism.prism(Data_Function[\"const\"](Data_Maybe.Nothing.value))(Data_Maybe.maybe(new Data_Either.Right(Data_Unit.unit))(Data_Function[\"const\"](new Data_Either.Left(Data_Maybe.Nothing.value))))(dictChoice);\n};\nvar _Just = function (dictChoice) {\n return Data_Lens_Prism.prism(Data_Maybe.Just.create)(Data_Maybe.maybe(new Data_Either.Left(Data_Maybe.Nothing.value))(Data_Either.Right.create))(dictChoice);\n};\nexport {\n _Nothing,\n _Just\n};\n","// module Data.Function.Uncurried\n\nexport const mkFn0 = function (fn) {\n return function () {\n return fn();\n };\n};\n\nexport const mkFn2 = function (fn) {\n /* jshint maxparams: 2 */\n return function (a, b) {\n return fn(a)(b);\n };\n};\n\nexport const mkFn3 = function (fn) {\n /* jshint maxparams: 3 */\n return function (a, b, c) {\n return fn(a)(b)(c);\n };\n};\n\nexport const mkFn4 = function (fn) {\n /* jshint maxparams: 4 */\n return function (a, b, c, d) {\n return fn(a)(b)(c)(d);\n };\n};\n\nexport const mkFn5 = function (fn) {\n /* jshint maxparams: 5 */\n return function (a, b, c, d, e) {\n return fn(a)(b)(c)(d)(e);\n };\n};\n\nexport const mkFn6 = function (fn) {\n /* jshint maxparams: 6 */\n return function (a, b, c, d, e, f) {\n return fn(a)(b)(c)(d)(e)(f);\n };\n};\n\nexport const mkFn7 = function (fn) {\n /* jshint maxparams: 7 */\n return function (a, b, c, d, e, f, g) {\n return fn(a)(b)(c)(d)(e)(f)(g);\n };\n};\n\nexport const mkFn8 = function (fn) {\n /* jshint maxparams: 8 */\n return function (a, b, c, d, e, f, g, h) {\n return fn(a)(b)(c)(d)(e)(f)(g)(h);\n };\n};\n\nexport const mkFn9 = function (fn) {\n /* jshint maxparams: 9 */\n return function (a, b, c, d, e, f, g, h, i) {\n return fn(a)(b)(c)(d)(e)(f)(g)(h)(i);\n };\n};\n\nexport const mkFn10 = function (fn) {\n /* jshint maxparams: 10 */\n return function (a, b, c, d, e, f, g, h, i, j) {\n return fn(a)(b)(c)(d)(e)(f)(g)(h)(i)(j);\n };\n};\n\nexport const runFn0 = function (fn) {\n return fn();\n};\n\nexport const runFn2 = function (fn) {\n return function (a) {\n return function (b) {\n return fn(a, b);\n };\n };\n};\n\nexport const runFn3 = function (fn) {\n return function (a) {\n return function (b) {\n return function (c) {\n return fn(a, b, c);\n };\n };\n };\n};\n\nexport const runFn4 = function (fn) {\n return function (a) {\n return function (b) {\n return function (c) {\n return function (d) {\n return fn(a, b, c, d);\n };\n };\n };\n };\n};\n\nexport const runFn5 = function (fn) {\n return function (a) {\n return function (b) {\n return function (c) {\n return function (d) {\n return function (e) {\n return fn(a, b, c, d, e);\n };\n };\n };\n };\n };\n};\n\nexport const runFn6 = function (fn) {\n return function (a) {\n return function (b) {\n return function (c) {\n return function (d) {\n return function (e) {\n return function (f) {\n return fn(a, b, c, d, e, f);\n };\n };\n };\n };\n };\n };\n};\n\nexport const runFn7 = function (fn) {\n return function (a) {\n return function (b) {\n return function (c) {\n return function (d) {\n return function (e) {\n return function (f) {\n return function (g) {\n return fn(a, b, c, d, e, f, g);\n };\n };\n };\n };\n };\n };\n };\n};\n\nexport const runFn8 = function (fn) {\n return function (a) {\n return function (b) {\n return function (c) {\n return function (d) {\n return function (e) {\n return function (f) {\n return function (g) {\n return function (h) {\n return fn(a, b, c, d, e, f, g, h);\n };\n };\n };\n };\n };\n };\n };\n };\n};\n\nexport const runFn9 = function (fn) {\n return function (a) {\n return function (b) {\n return function (c) {\n return function (d) {\n return function (e) {\n return function (f) {\n return function (g) {\n return function (h) {\n return function (i) {\n return fn(a, b, c, d, e, f, g, h, i);\n };\n };\n };\n };\n };\n };\n };\n };\n };\n};\n\nexport const runFn10 = function (fn) {\n return function (a) {\n return function (b) {\n return function (c) {\n return function (d) {\n return function (e) {\n return function (f) {\n return function (g) {\n return function (h) {\n return function (i) {\n return function (j) {\n return fn(a, b, c, d, e, f, g, h, i, j);\n };\n };\n };\n };\n };\n };\n };\n };\n };\n };\n};\n","// Generated by purs version 0.15.7\nimport * as $foreign from \"./foreign.js\";\nvar runFn1 = function (f) {\n return f;\n};\nvar mkFn1 = function (f) {\n return f;\n};\nexport {\n mkFn0,\n mkFn2,\n mkFn3,\n mkFn4,\n mkFn5,\n mkFn6,\n mkFn7,\n mkFn8,\n mkFn9,\n mkFn10,\n runFn0,\n runFn2,\n runFn3,\n runFn4,\n runFn5,\n runFn6,\n runFn7,\n runFn8,\n runFn9,\n runFn10\n} from \"./foreign.js\";\nexport {\n mkFn1,\n runFn1\n};\n","// Generated by purs version 0.15.7\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Symbol from \"../Data.Symbol/index.js\";\nimport * as Record_Unsafe from \"../Record.Unsafe/index.js\";\nimport * as Record_Unsafe_Union from \"../Record.Unsafe.Union/index.js\";\nimport * as Type_Proxy from \"../Type.Proxy/index.js\";\nimport * as Unsafe_Coerce from \"../Unsafe.Coerce/index.js\";\nvar union = function () {\n return function (l) {\n return function (r) {\n return Record_Unsafe_Union.unsafeUnionFn(l, r);\n };\n };\n};\nvar set = function (dictIsSymbol) {\n var reflectSymbol = Data_Symbol.reflectSymbol(dictIsSymbol);\n return function () {\n return function () {\n return function (l) {\n return function (b) {\n return function (r) {\n return Record_Unsafe.unsafeSet(reflectSymbol(l))(b)(r);\n };\n };\n };\n };\n };\n};\nvar nub = function () {\n return Unsafe_Coerce.unsafeCoerce;\n};\nvar merge = function () {\n return function () {\n return function (l) {\n return function (r) {\n return Record_Unsafe_Union.unsafeUnionFn(l, r);\n };\n };\n };\n};\nvar insert = function (dictIsSymbol) {\n var reflectSymbol = Data_Symbol.reflectSymbol(dictIsSymbol);\n return function () {\n return function () {\n return function (l) {\n return function (a) {\n return function (r) {\n return Record_Unsafe.unsafeSet(reflectSymbol(l))(a)(r);\n };\n };\n };\n };\n };\n};\nvar get = function (dictIsSymbol) {\n var reflectSymbol = Data_Symbol.reflectSymbol(dictIsSymbol);\n return function () {\n return function (l) {\n return function (r) {\n return Record_Unsafe.unsafeGet(reflectSymbol(l))(r);\n };\n };\n };\n};\nvar modify = function (dictIsSymbol) {\n var set1 = set(dictIsSymbol)()();\n var get1 = get(dictIsSymbol)();\n return function () {\n return function () {\n return function (l) {\n return function (f) {\n return function (r) {\n return set1(l)(f(get1(l)(r)))(r);\n };\n };\n };\n };\n };\n};\nvar equalFieldsNil = {\n equalFields: function (v) {\n return function (v1) {\n return function (v2) {\n return true;\n };\n };\n }\n};\nvar equalFields = function (dict) {\n return dict.equalFields;\n};\nvar equalFieldsCons = function (dictIsSymbol) {\n var get1 = get(dictIsSymbol)();\n return function (dictEq) {\n var eq = Data_Eq.eq(dictEq);\n return function () {\n return function (dictEqualFields) {\n var equalFields1 = equalFields(dictEqualFields);\n return {\n equalFields: function (v) {\n return function (a) {\n return function (b) {\n var get$prime = get1(Type_Proxy[\"Proxy\"].value);\n var equalRest = equalFields1(Type_Proxy[\"Proxy\"].value);\n return eq(get$prime(a))(get$prime(b)) && equalRest(a)(b);\n };\n };\n }\n };\n };\n };\n };\n};\nvar equal = function () {\n return function (dictEqualFields) {\n var equalFields1 = equalFields(dictEqualFields);\n return function (a) {\n return function (b) {\n return equalFields1(Type_Proxy[\"Proxy\"].value)(a)(b);\n };\n };\n };\n};\nvar disjointUnion = function () {\n return function () {\n return function (l) {\n return function (r) {\n return Record_Unsafe_Union.unsafeUnionFn(l, r);\n };\n };\n };\n};\nvar $$delete = function (dictIsSymbol) {\n var reflectSymbol = Data_Symbol.reflectSymbol(dictIsSymbol);\n return function () {\n return function () {\n return function (l) {\n return function (r) {\n return Record_Unsafe.unsafeDelete(reflectSymbol(l))(r);\n };\n };\n };\n };\n};\nvar rename = function (dictIsSymbol) {\n var get1 = get(dictIsSymbol)();\n var delete1 = $$delete(dictIsSymbol)()();\n return function (dictIsSymbol1) {\n var insert1 = insert(dictIsSymbol1)()();\n return function () {\n return function () {\n return function () {\n return function () {\n return function (prev) {\n return function (next) {\n return function (record) {\n return insert1(next)(get1(prev)(record))(delete1(prev)(record));\n };\n };\n };\n };\n };\n };\n };\n };\n};\nexport {\n get,\n set,\n modify,\n insert,\n $$delete as delete,\n rename,\n equal,\n merge,\n union,\n disjointUnion,\n nub,\n equalFields,\n equalFieldsCons,\n equalFieldsNil\n};\n","// Generated by purs version 0.15.7\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Lens_Lens from \"../Data.Lens.Lens/index.js\";\nimport * as Record from \"../Record/index.js\";\nvar prop = function (dictIsSymbol) {\n var get = Record.get(dictIsSymbol)();\n var set = Record.set(dictIsSymbol)()();\n return function () {\n return function () {\n return function (l) {\n return function (dictStrong) {\n return Data_Lens_Lens.lens(get(l))(Data_Function.flip(set(l)))(dictStrong);\n };\n };\n };\n };\n};\nexport {\n prop\n};\n","// Generated by purs version 0.15.7\nimport * as Control_Alt from \"../Control.Alt/index.js\";\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Apply from \"../Control.Apply/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Control_Monad from \"../Control.Monad/index.js\";\nimport * as Control_Monad_Cont_Class from \"../Control.Monad.Cont.Class/index.js\";\nimport * as Control_Monad_Error_Class from \"../Control.Monad.Error.Class/index.js\";\nimport * as Control_Monad_Reader_Class from \"../Control.Monad.Reader.Class/index.js\";\nimport * as Control_Monad_Rec_Class from \"../Control.Monad.Rec.Class/index.js\";\nimport * as Control_Monad_State_Class from \"../Control.Monad.State.Class/index.js\";\nimport * as Control_Monad_Trans_Class from \"../Control.Monad.Trans.Class/index.js\";\nimport * as Control_Monad_Writer_Class from \"../Control.Monad.Writer.Class/index.js\";\nimport * as Control_Plus from \"../Control.Plus/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Monoid from \"../Data.Monoid/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nimport * as Effect_Class from \"../Effect.Class/index.js\";\nvar StateT = function (x) {\n return x;\n};\nvar withStateT = function (f) {\n return function (v) {\n return function ($193) {\n return v(f($193));\n };\n };\n};\nvar runStateT = function (v) {\n return v;\n};\nvar newtypeStateT = {\n Coercible0: function () {\n return undefined;\n }\n};\nvar monadTransStateT = {\n lift: function (dictMonad) {\n var bind = Control_Bind.bind(dictMonad.Bind1());\n var pure = Control_Applicative.pure(dictMonad.Applicative0());\n return function (m) {\n return function (s) {\n return bind(m)(function (x) {\n return pure(new Data_Tuple.Tuple(x, s));\n });\n };\n };\n }\n};\nvar lift = /* #__PURE__ */ Control_Monad_Trans_Class.lift(monadTransStateT);\nvar mapStateT = function (f) {\n return function (v) {\n return function ($194) {\n return f(v($194));\n };\n };\n};\nvar lazyStateT = {\n defer: function (f) {\n return function (s) {\n var v = f(Data_Unit.unit);\n return v(s);\n };\n }\n};\nvar functorStateT = function (dictFunctor) {\n var map = Data_Functor.map(dictFunctor);\n return {\n map: function (f) {\n return function (v) {\n return function (s) {\n return map(function (v1) {\n return new Data_Tuple.Tuple(f(v1.value0), v1.value1);\n })(v(s));\n };\n };\n }\n };\n};\nvar execStateT = function (dictFunctor) {\n var map = Data_Functor.map(dictFunctor);\n return function (v) {\n return function (s) {\n return map(Data_Tuple.snd)(v(s));\n };\n };\n};\nvar evalStateT = function (dictFunctor) {\n var map = Data_Functor.map(dictFunctor);\n return function (v) {\n return function (s) {\n return map(Data_Tuple.fst)(v(s));\n };\n };\n};\nvar monadStateT = function (dictMonad) {\n return {\n Applicative0: function () {\n return applicativeStateT(dictMonad);\n },\n Bind1: function () {\n return bindStateT(dictMonad);\n }\n };\n};\nvar bindStateT = function (dictMonad) {\n var bind = Control_Bind.bind(dictMonad.Bind1());\n return {\n bind: function (v) {\n return function (f) {\n return function (s) {\n return bind(v(s))(function (v1) {\n var v3 = f(v1.value0);\n return v3(v1.value1);\n });\n };\n };\n },\n Apply0: function () {\n return applyStateT(dictMonad);\n }\n };\n};\nvar applyStateT = function (dictMonad) {\n var functorStateT1 = functorStateT(((dictMonad.Bind1()).Apply0()).Functor0());\n return {\n apply: Control_Monad.ap(monadStateT(dictMonad)),\n Functor0: function () {\n return functorStateT1;\n }\n };\n};\nvar applicativeStateT = function (dictMonad) {\n var pure = Control_Applicative.pure(dictMonad.Applicative0());\n return {\n pure: function (a) {\n return function (s) {\n return pure(new Data_Tuple.Tuple(a, s));\n };\n },\n Apply0: function () {\n return applyStateT(dictMonad);\n }\n };\n};\nvar semigroupStateT = function (dictMonad) {\n var lift2 = Control_Apply.lift2(applyStateT(dictMonad));\n return function (dictSemigroup) {\n return {\n append: lift2(Data_Semigroup.append(dictSemigroup))\n };\n };\n};\nvar monadAskStateT = function (dictMonadAsk) {\n var Monad0 = dictMonadAsk.Monad0();\n var monadStateT1 = monadStateT(Monad0);\n return {\n ask: lift(Monad0)(Control_Monad_Reader_Class.ask(dictMonadAsk)),\n Monad0: function () {\n return monadStateT1;\n }\n };\n};\nvar monadReaderStateT = function (dictMonadReader) {\n var monadAskStateT1 = monadAskStateT(dictMonadReader.MonadAsk0());\n return {\n local: (function () {\n var $195 = Control_Monad_Reader_Class.local(dictMonadReader);\n return function ($196) {\n return mapStateT($195($196));\n };\n })(),\n MonadAsk0: function () {\n return monadAskStateT1;\n }\n };\n};\nvar monadContStateT = function (dictMonadCont) {\n var callCC = Control_Monad_Cont_Class.callCC(dictMonadCont);\n var monadStateT1 = monadStateT(dictMonadCont.Monad0());\n return {\n callCC: function (f) {\n return function (s) {\n return callCC(function (c) {\n var v = f(function (a) {\n return function (s$prime) {\n return c(new Data_Tuple.Tuple(a, s$prime));\n };\n });\n return v(s);\n });\n };\n },\n Monad0: function () {\n return monadStateT1;\n }\n };\n};\nvar monadEffectState = function (dictMonadEffect) {\n var Monad0 = dictMonadEffect.Monad0();\n var monadStateT1 = monadStateT(Monad0);\n return {\n liftEffect: (function () {\n var $197 = lift(Monad0);\n var $198 = Effect_Class.liftEffect(dictMonadEffect);\n return function ($199) {\n return $197($198($199));\n };\n })(),\n Monad0: function () {\n return monadStateT1;\n }\n };\n};\nvar monadRecStateT = function (dictMonadRec) {\n var Monad0 = dictMonadRec.Monad0();\n var bind = Control_Bind.bind(Monad0.Bind1());\n var pure = Control_Applicative.pure(Monad0.Applicative0());\n var tailRecM = Control_Monad_Rec_Class.tailRecM(dictMonadRec);\n var monadStateT1 = monadStateT(Monad0);\n return {\n tailRecM: function (f) {\n return function (a) {\n var f$prime = function (v) {\n var v1 = f(v.value0);\n return bind(v1(v.value1))(function (v2) {\n return pure((function () {\n if (v2.value0 instanceof Control_Monad_Rec_Class.Loop) {\n return new Control_Monad_Rec_Class.Loop(new Data_Tuple.Tuple(v2.value0.value0, v2.value1));\n };\n if (v2.value0 instanceof Control_Monad_Rec_Class.Done) {\n return new Control_Monad_Rec_Class.Done(new Data_Tuple.Tuple(v2.value0.value0, v2.value1));\n };\n throw new Error(\"Failed pattern match at Control.Monad.State.Trans (line 87, column 16 - line 89, column 40): \" + [ v2.value0.constructor.name ]);\n })());\n });\n };\n return function (s) {\n return tailRecM(f$prime)(new Data_Tuple.Tuple(a, s));\n };\n };\n },\n Monad0: function () {\n return monadStateT1;\n }\n };\n};\nvar monadStateStateT = function (dictMonad) {\n var pure = Control_Applicative.pure(dictMonad.Applicative0());\n var monadStateT1 = monadStateT(dictMonad);\n return {\n state: function (f) {\n return function ($200) {\n return pure(f($200));\n };\n },\n Monad0: function () {\n return monadStateT1;\n }\n };\n};\nvar monadTellStateT = function (dictMonadTell) {\n var Monad1 = dictMonadTell.Monad1();\n var Semigroup0 = dictMonadTell.Semigroup0();\n var monadStateT1 = monadStateT(Monad1);\n return {\n tell: (function () {\n var $201 = lift(Monad1);\n var $202 = Control_Monad_Writer_Class.tell(dictMonadTell);\n return function ($203) {\n return $201($202($203));\n };\n })(),\n Semigroup0: function () {\n return Semigroup0;\n },\n Monad1: function () {\n return monadStateT1;\n }\n };\n};\nvar monadWriterStateT = function (dictMonadWriter) {\n var MonadTell1 = dictMonadWriter.MonadTell1();\n var Monad1 = MonadTell1.Monad1();\n var bind = Control_Bind.bind(Monad1.Bind1());\n var listen = Control_Monad_Writer_Class.listen(dictMonadWriter);\n var pure = Control_Applicative.pure(Monad1.Applicative0());\n var pass = Control_Monad_Writer_Class.pass(dictMonadWriter);\n var Monoid0 = dictMonadWriter.Monoid0();\n var monadTellStateT1 = monadTellStateT(MonadTell1);\n return {\n listen: function (m) {\n return function (s) {\n return bind(listen(m(s)))(function (v) {\n return pure(new Data_Tuple.Tuple(new Data_Tuple.Tuple(v.value0.value0, v.value1), v.value0.value1));\n });\n };\n },\n pass: function (m) {\n return function (s) {\n return pass(bind(m(s))(function (v) {\n return pure(new Data_Tuple.Tuple(new Data_Tuple.Tuple(v.value0.value0, v.value1), v.value0.value1));\n }));\n };\n },\n Monoid0: function () {\n return Monoid0;\n },\n MonadTell1: function () {\n return monadTellStateT1;\n }\n };\n};\nvar monadThrowStateT = function (dictMonadThrow) {\n var Monad0 = dictMonadThrow.Monad0();\n var lift1 = lift(Monad0);\n var throwError = Control_Monad_Error_Class.throwError(dictMonadThrow);\n var monadStateT1 = monadStateT(Monad0);\n return {\n throwError: function (e) {\n return lift1(throwError(e));\n },\n Monad0: function () {\n return monadStateT1;\n }\n };\n};\nvar monadErrorStateT = function (dictMonadError) {\n var catchError = Control_Monad_Error_Class.catchError(dictMonadError);\n var monadThrowStateT1 = monadThrowStateT(dictMonadError.MonadThrow0());\n return {\n catchError: function (v) {\n return function (h) {\n return function (s) {\n return catchError(v(s))(function (e) {\n var v1 = h(e);\n return v1(s);\n });\n };\n };\n },\n MonadThrow0: function () {\n return monadThrowStateT1;\n }\n };\n};\nvar monoidStateT = function (dictMonad) {\n var pure = Control_Applicative.pure(applicativeStateT(dictMonad));\n var semigroupStateT1 = semigroupStateT(dictMonad);\n return function (dictMonoid) {\n var semigroupStateT2 = semigroupStateT1(dictMonoid.Semigroup0());\n return {\n mempty: pure(Data_Monoid.mempty(dictMonoid)),\n Semigroup0: function () {\n return semigroupStateT2;\n }\n };\n };\n};\nvar altStateT = function (dictMonad) {\n return function (dictAlt) {\n var alt = Control_Alt.alt(dictAlt);\n var functorStateT1 = functorStateT(dictAlt.Functor0());\n return {\n alt: function (v) {\n return function (v1) {\n return function (s) {\n return alt(v(s))(v1(s));\n };\n };\n },\n Functor0: function () {\n return functorStateT1;\n }\n };\n };\n};\nvar plusStateT = function (dictMonad) {\n var altStateT1 = altStateT(dictMonad);\n return function (dictPlus) {\n var empty = Control_Plus.empty(dictPlus);\n var altStateT2 = altStateT1(dictPlus.Alt0());\n return {\n empty: function (v) {\n return empty;\n },\n Alt0: function () {\n return altStateT2;\n }\n };\n };\n};\nvar alternativeStateT = function (dictMonad) {\n var applicativeStateT1 = applicativeStateT(dictMonad);\n var plusStateT1 = plusStateT(dictMonad);\n return function (dictAlternative) {\n var plusStateT2 = plusStateT1(dictAlternative.Plus1());\n return {\n Applicative0: function () {\n return applicativeStateT1;\n },\n Plus1: function () {\n return plusStateT2;\n }\n };\n };\n};\nvar monadPlusStateT = function (dictMonadPlus) {\n var Monad0 = dictMonadPlus.Monad0();\n var monadStateT1 = monadStateT(Monad0);\n var alternativeStateT1 = alternativeStateT(Monad0)(dictMonadPlus.Alternative1());\n return {\n Monad0: function () {\n return monadStateT1;\n },\n Alternative1: function () {\n return alternativeStateT1;\n }\n };\n};\nexport {\n StateT,\n runStateT,\n evalStateT,\n execStateT,\n mapStateT,\n withStateT,\n newtypeStateT,\n functorStateT,\n applyStateT,\n applicativeStateT,\n altStateT,\n plusStateT,\n alternativeStateT,\n bindStateT,\n monadStateT,\n monadRecStateT,\n monadPlusStateT,\n monadTransStateT,\n lazyStateT,\n monadEffectState,\n monadContStateT,\n monadThrowStateT,\n monadErrorStateT,\n monadAskStateT,\n monadReaderStateT,\n monadStateStateT,\n monadTellStateT,\n monadWriterStateT,\n semigroupStateT,\n monoidStateT\n};\nexport {\n get,\n gets,\n modify,\n modify_,\n put,\n state\n} from \"../Control.Monad.State.Class/index.js\";\nexport {\n lift\n} from \"../Control.Monad.Trans.Class/index.js\";\n","// Generated by purs version 0.15.7\nimport * as Control_Monad_State_Class from \"../Control.Monad.State.Class/index.js\";\nimport * as Data_EuclideanRing from \"../Data.EuclideanRing/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_HeytingAlgebra from \"../Data.HeytingAlgebra/index.js\";\nimport * as Data_Lens_Types from \"../Data.Lens.Types/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Ring from \"../Data.Ring/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nimport * as Data_Semiring from \"../Data.Semiring/index.js\";\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nvar over = function (l) {\n return l;\n};\nvar set = function (l) {\n return function (b) {\n return over(l)(Data_Function[\"const\"](b));\n };\n};\nvar setJust = function (p) {\n var $59 = set(p);\n return function ($60) {\n return $59(Data_Maybe.Just.create($60));\n };\n};\nvar subOver = function (dictRing) {\n var sub = Data_Ring.sub(dictRing);\n return function (p) {\n var $61 = over(p);\n var $62 = Data_Function.flip(sub);\n return function ($63) {\n return $61($62($63));\n };\n };\n};\nvar mulOver = function (dictSemiring) {\n var mul = Data_Semiring.mul(dictSemiring);\n return function (p) {\n var $64 = over(p);\n var $65 = Data_Function.flip(mul);\n return function ($66) {\n return $64($65($66));\n };\n };\n};\nvar modifying = function (dictMonadState) {\n var $$void = Data_Functor[\"void\"]((((dictMonadState.Monad0()).Bind1()).Apply0()).Functor0());\n var modify = Control_Monad_State_Class.modify(dictMonadState);\n return function (p) {\n return function (f) {\n return $$void(modify(over(p)(f)));\n };\n };\n};\nvar mulModifying = function (dictMonadState) {\n var modifying1 = modifying(dictMonadState);\n return function (dictSemiring) {\n var mul = Data_Semiring.mul(dictSemiring);\n return function (p) {\n var $67 = modifying1(p);\n var $68 = Data_Function.flip(mul);\n return function ($69) {\n return $67($68($69));\n };\n };\n };\n};\nvar subModifying = function (dictMonadState) {\n var modifying1 = modifying(dictMonadState);\n return function (dictRing) {\n var sub = Data_Ring.sub(dictRing);\n return function (p) {\n var $70 = modifying1(p);\n var $71 = Data_Function.flip(sub);\n return function ($72) {\n return $70($71($72));\n };\n };\n };\n};\nvar iover = function (l) {\n return function (f) {\n return l(Data_Tuple.uncurry(f));\n };\n};\nvar divOver = function (dictEuclideanRing) {\n var div = Data_EuclideanRing.div(dictEuclideanRing);\n return function (p) {\n var $73 = over(p);\n var $74 = Data_Function.flip(div);\n return function ($75) {\n return $73($74($75));\n };\n };\n};\nvar divModifying = function (dictMonadState) {\n var modifying1 = modifying(dictMonadState);\n return function (dictEuclideanRing) {\n var div = Data_EuclideanRing.div(dictEuclideanRing);\n return function (p) {\n var $76 = modifying1(p);\n var $77 = Data_Function.flip(div);\n return function ($78) {\n return $76($77($78));\n };\n };\n };\n};\nvar disjOver = function (dictHeytingAlgebra) {\n var disj = Data_HeytingAlgebra.disj(dictHeytingAlgebra);\n return function (p) {\n var $79 = over(p);\n var $80 = Data_Function.flip(disj);\n return function ($81) {\n return $79($80($81));\n };\n };\n};\nvar disjModifying = function (dictMonadState) {\n var modifying1 = modifying(dictMonadState);\n return function (dictHeytingAlgebra) {\n var disj = Data_HeytingAlgebra.disj(dictHeytingAlgebra);\n return function (p) {\n var $82 = modifying1(p);\n var $83 = Data_Function.flip(disj);\n return function ($84) {\n return $82($83($84));\n };\n };\n };\n};\nvar conjOver = function (dictHeytingAlgebra) {\n var conj = Data_HeytingAlgebra.conj(dictHeytingAlgebra);\n return function (p) {\n var $85 = over(p);\n var $86 = Data_Function.flip(conj);\n return function ($87) {\n return $85($86($87));\n };\n };\n};\nvar conjModifying = function (dictMonadState) {\n var modifying1 = modifying(dictMonadState);\n return function (dictHeytingAlgebra) {\n var conj = Data_HeytingAlgebra.conj(dictHeytingAlgebra);\n return function (p) {\n var $88 = modifying1(p);\n var $89 = Data_Function.flip(conj);\n return function ($90) {\n return $88($89($90));\n };\n };\n };\n};\nvar assign = function (dictMonadState) {\n var $$void = Data_Functor[\"void\"]((((dictMonadState.Monad0()).Bind1()).Apply0()).Functor0());\n var modify = Control_Monad_State_Class.modify(dictMonadState);\n return function (p) {\n return function (b) {\n return $$void(modify(set(p)(b)));\n };\n };\n};\nvar assignJust = function (dictMonadState) {\n var assign1 = assign(dictMonadState);\n return function (p) {\n var $91 = assign1(p);\n return function ($92) {\n return $91(Data_Maybe.Just.create($92));\n };\n };\n};\nvar appendOver = function (dictSemigroup) {\n var append = Data_Semigroup.append(dictSemigroup);\n return function (p) {\n var $93 = over(p);\n var $94 = Data_Function.flip(append);\n return function ($95) {\n return $93($94($95));\n };\n };\n};\nvar appendModifying = function (dictMonadState) {\n var modifying1 = modifying(dictMonadState);\n return function (dictSemigroup) {\n var append = Data_Semigroup.append(dictSemigroup);\n return function (p) {\n var $96 = modifying1(p);\n var $97 = Data_Function.flip(append);\n return function ($98) {\n return $96($97($98));\n };\n };\n };\n};\nvar addOver = function (dictSemiring) {\n var add = Data_Semiring.add(dictSemiring);\n return function (p) {\n var $99 = over(p);\n return function ($100) {\n return $99(add($100));\n };\n };\n};\nvar addModifying = function (dictMonadState) {\n var modifying1 = modifying(dictMonadState);\n return function (dictSemiring) {\n var add = Data_Semiring.add(dictSemiring);\n return function (p) {\n var $101 = modifying1(p);\n return function ($102) {\n return $101(add($102));\n };\n };\n };\n};\nexport {\n over,\n iover,\n set,\n addOver,\n subOver,\n mulOver,\n divOver,\n disjOver,\n conjOver,\n appendOver,\n setJust,\n assign,\n modifying,\n addModifying,\n mulModifying,\n subModifying,\n divModifying,\n disjModifying,\n conjModifying,\n appendModifying,\n assignJust\n};\nexport {\n Indexed\n} from \"../Data.Lens.Types/index.js\";\n","// Generated by purs version 0.15.7\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Control_Plus from \"../Control.Plus/index.js\";\nimport * as Data_Bitraversable from \"../Data.Bitraversable/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Lens_Indexed from \"../Data.Lens.Indexed/index.js\";\nimport * as Data_Lens_Internal_Bazaar from \"../Data.Lens.Internal.Bazaar/index.js\";\nimport * as Data_Lens_Internal_Indexed from \"../Data.Lens.Internal.Indexed/index.js\";\nimport * as Data_Lens_Internal_Wander from \"../Data.Lens.Internal.Wander/index.js\";\nimport * as Data_Lens_Types from \"../Data.Lens.Types/index.js\";\nimport * as Data_Newtype from \"../Data.Newtype/index.js\";\nimport * as Data_Profunctor_Star from \"../Data.Profunctor.Star/index.js\";\nimport * as Data_Traversable from \"../Data.Traversable/index.js\";\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nvar under = /* #__PURE__ */ Data_Newtype.under()();\nvar identity = /* #__PURE__ */ Control_Category.identity(Control_Category.categoryFn);\nvar unwrap = /* #__PURE__ */ Data_Newtype.unwrap();\nvar join = /* #__PURE__ */ Control_Bind.join(Control_Bind.bindFn);\nvar traversed = function (dictTraversable) {\n var traverse = Data_Traversable.traverse(dictTraversable);\n return function (dictWander) {\n return Data_Lens_Internal_Wander.wander(dictWander)(function (dictApplicative) {\n return traverse(dictApplicative);\n });\n };\n};\nvar traverseOf = /* #__PURE__ */ under(Data_Profunctor_Star.Star);\nvar sequenceOf = function (t) {\n return traverseOf(t)(identity);\n};\nvar itraverseOf = function (t) {\n var $53 = under(Data_Profunctor_Star.Star)(function ($55) {\n return t(Data_Lens_Internal_Indexed.Indexed($55));\n });\n return function ($54) {\n return $53(Data_Tuple.uncurry($54));\n };\n};\nvar iforOf = function ($56) {\n return Data_Function.flip(itraverseOf($56));\n};\nvar failover = function (dictAlternative) {\n var pure = Control_Applicative.pure(dictAlternative.Applicative0());\n var empty = Control_Plus.empty(dictAlternative.Plus1());\n return function (t) {\n return function (f) {\n return function (s) {\n var v = unwrap(t((function () {\n var $57 = Data_Tuple.Tuple.create(true);\n return function ($58) {\n return $57(f($58));\n };\n })()))(s);\n if (v.value0) {\n return pure(v.value1);\n };\n if (!v.value0) {\n return empty;\n };\n throw new Error(\"Failed pattern match at Data.Lens.Traversal (line 98, column 18 - line 100, column 32): \" + [ v.constructor.name ]);\n };\n };\n };\n};\nvar elementsOf = function (dictWander) {\n return function (tr) {\n return function (pr) {\n return Data_Lens_Indexed.iwander(function (dictApplicative) {\n var tr1 = tr(Data_Lens_Internal_Wander.wanderStar(dictApplicative));\n var pure = Control_Applicative.pure(dictApplicative);\n return function (f) {\n return unwrap(tr1(function (v) {\n var $50 = pr(v.value0);\n if ($50) {\n return f(v.value0)(v.value1);\n };\n return pure(v.value1);\n }));\n };\n })(dictWander);\n };\n };\n};\nvar element = function (dictWander) {\n var unIndex = Data_Lens_Indexed.unIndex((dictWander.Choice1()).Profunctor0());\n var elementsOf1 = elementsOf(dictWander);\n return function (n) {\n return function (tr) {\n return unIndex(elementsOf1(function (dictWander1) {\n return Data_Lens_Indexed.positions(function (dictWander2) {\n return tr(dictWander2);\n })(dictWander1);\n })(function (v) {\n return v === n;\n }));\n };\n };\n};\nvar cloneTraversal = function (l) {\n return function (dictWander) {\n return Data_Lens_Internal_Wander.wander(dictWander)(function (dictApplicative) {\n return Data_Lens_Internal_Bazaar.runBazaar(l(function (dictApplicative1) {\n return identity;\n }))(dictApplicative);\n });\n };\n};\nvar both = function (dictBitraversable) {\n var bitraverse = Data_Bitraversable.bitraverse(dictBitraversable);\n return function (dictWander) {\n return Data_Lens_Internal_Wander.wander(dictWander)(function (dictApplicative) {\n return join(bitraverse(dictApplicative));\n });\n };\n};\nexport {\n traversed,\n element,\n traverseOf,\n sequenceOf,\n failover,\n elementsOf,\n itraverseOf,\n iforOf,\n cloneTraversal,\n both\n};\n","// Generated by purs version 0.15.7\nimport * as Data_Lens_Barlow_Generic from \"../Data.Lens.Barlow.Generic/index.js\";\nimport * as Data_Lens_Iso_Newtype from \"../Data.Lens.Iso.Newtype/index.js\";\nimport * as Data_Lens_Prism_Either from \"../Data.Lens.Prism.Either/index.js\";\nimport * as Data_Lens_Prism_Maybe from \"../Data.Lens.Prism.Maybe/index.js\";\nimport * as Data_Lens_Record from \"../Data.Lens.Record/index.js\";\nimport * as Data_Lens_Traversal from \"../Data.Lens.Traversal/index.js\";\nimport * as Type_Proxy from \"../Type.Proxy/index.js\";\nvar _Newtype = /* #__PURE__ */ Data_Lens_Iso_Newtype[\"_Newtype\"]()();\nvar constructBarlowTConsRight = function (dictChoice) {\n var _Right = Data_Lens_Prism_Either[\"_Right\"](dictChoice);\n return {\n constructBarlow: function (v) {\n return _Right;\n }\n };\n};\nvar constructBarlowTConsRecor = function (dictIsSymbol) {\n var prop = Data_Lens_Record.prop(dictIsSymbol)()();\n return function () {\n return function () {\n return function (dictStrong) {\n return {\n constructBarlow: function (v) {\n return prop(Type_Proxy[\"Proxy\"].value)(dictStrong);\n }\n };\n };\n };\n };\n};\nvar constructBarlowTConsQuest = function (dictChoice) {\n var _Just = Data_Lens_Prism_Maybe[\"_Just\"](dictChoice);\n return {\n constructBarlow: function (v) {\n return _Just;\n }\n };\n};\nvar constructBarlowTConsPlusT = function (dictWander) {\n return function (dictTraversable) {\n var traversed = Data_Lens_Traversal.traversed(dictTraversable)(dictWander);\n return {\n constructBarlow: function (v) {\n return traversed;\n }\n };\n };\n};\nvar constructBarlowTConsLeftA = function (dictChoice) {\n var _Left = Data_Lens_Prism_Either[\"_Left\"](dictChoice);\n return {\n constructBarlow: function (v) {\n return _Left;\n }\n };\n};\nvar constructBarlowGenericTCo = function (dictProfunctor) {\n var _Argument = Data_Lens_Barlow_Generic[\"_Argument\"](dictProfunctor);\n return {\n constructBarlowGeneric: function (v) {\n return _Argument;\n }\n };\n};\nvar constructBarlowGenericTCo1 = function (dictStrong) {\n var _ProductLeft = Data_Lens_Barlow_Generic[\"_ProductLeft\"](dictStrong);\n var _Argument = Data_Lens_Barlow_Generic[\"_Argument\"](dictStrong.Profunctor0());\n return {\n constructBarlowGeneric: function (v) {\n return function ($198) {\n return _ProductLeft(_Argument($198));\n };\n }\n };\n};\nvar constructBarlowGenericTCo2 = function (dictChoice) {\n var _SumRight = Data_Lens_Barlow_Generic[\"_SumRight\"](dictChoice);\n var Profunctor0 = dictChoice.Profunctor0();\n var _Constructor = Data_Lens_Barlow_Generic[\"_Constructor\"](Profunctor0);\n var _Argument = Data_Lens_Barlow_Generic[\"_Argument\"](Profunctor0);\n return {\n constructBarlowGeneric: function (v) {\n return function ($199) {\n return _SumRight(_Constructor(_Argument($199)));\n };\n }\n };\n};\nvar constructBarlowGenericTCo3 = function (dictChoice) {\n var _SumRight = Data_Lens_Barlow_Generic[\"_SumRight\"](dictChoice);\n var _Constructor = Data_Lens_Barlow_Generic[\"_Constructor\"](dictChoice.Profunctor0());\n return function (dictStrong) {\n var _NoArguments = Data_Lens_Barlow_Generic[\"_NoArguments\"](dictStrong);\n return {\n constructBarlowGeneric: function (v) {\n return function ($200) {\n return _SumRight(_Constructor(_NoArguments($200)));\n };\n }\n };\n };\n};\nvar constructBarlowGenericTCo4 = function (dictChoice) {\n var _SumLeft = Data_Lens_Barlow_Generic[\"_SumLeft\"](dictChoice);\n var Profunctor0 = dictChoice.Profunctor0();\n var _Constructor = Data_Lens_Barlow_Generic[\"_Constructor\"](Profunctor0);\n var _Argument = Data_Lens_Barlow_Generic[\"_Argument\"](Profunctor0);\n return {\n constructBarlowGeneric: function (v) {\n return function ($201) {\n return _SumLeft(_Constructor(_Argument($201)));\n };\n }\n };\n};\nvar constructBarlowGenericTCo5 = function (dictChoice) {\n var _SumLeft = Data_Lens_Barlow_Generic[\"_SumLeft\"](dictChoice);\n var _Constructor = Data_Lens_Barlow_Generic[\"_Constructor\"](dictChoice.Profunctor0());\n return function (dictStrong) {\n var _NoArguments = Data_Lens_Barlow_Generic[\"_NoArguments\"](dictStrong);\n return {\n constructBarlowGeneric: function (v) {\n return function ($202) {\n return _SumLeft(_Constructor(_NoArguments($202)));\n };\n }\n };\n };\n};\nvar constructBarlowGenericTCo6 = function (dictProfunctor) {\n var _Constructor = Data_Lens_Barlow_Generic[\"_Constructor\"](dictProfunctor);\n var _Argument = Data_Lens_Barlow_Generic[\"_Argument\"](dictProfunctor);\n return {\n constructBarlowGeneric: function (v) {\n return function ($203) {\n return _Constructor(_Argument($203));\n };\n }\n };\n};\nvar constructBarlowGenericTCo7 = function (dictStrong) {\n var _Constructor = Data_Lens_Barlow_Generic[\"_Constructor\"](dictStrong.Profunctor0());\n var _NoArguments = Data_Lens_Barlow_Generic[\"_NoArguments\"](dictStrong);\n return {\n constructBarlowGeneric: function (v) {\n return function ($204) {\n return _Constructor(_NoArguments($204));\n };\n }\n };\n};\nvar constructBarlowNilExclamationMark = function (dictProfunctor) {\n var _Newtype1 = _Newtype(dictProfunctor);\n return function () {\n return {\n constructBarlow: function (v) {\n return _Newtype1;\n }\n };\n };\n};\nvar constructBarlowGeneric = function (dict) {\n return dict.constructBarlowGeneric;\n};\nvar constructBarlow1 = function (dictGeneric) {\n var _ToGeneric = Data_Lens_Barlow_Generic[\"_ToGeneric\"](dictGeneric);\n return function (dictConstructBarlowGeneric) {\n var constructBarlowGeneric1 = constructBarlowGeneric(dictConstructBarlowGeneric);\n return function (dictProfunctor) {\n var _ToGeneric1 = _ToGeneric(dictProfunctor);\n return {\n constructBarlow: function (v) {\n var $205 = constructBarlowGeneric1(Type_Proxy[\"Proxy\"].value);\n return function ($206) {\n return _ToGeneric1($205($206));\n };\n }\n };\n };\n };\n};\nvar constructBarlowGenericTCo8 = function (dictConstructBarlowGeneric) {\n var constructBarlowGeneric1 = constructBarlowGeneric(dictConstructBarlowGeneric);\n return function (dictProfunctor) {\n var _Constructor = Data_Lens_Barlow_Generic[\"_Constructor\"](dictProfunctor);\n return {\n constructBarlowGeneric: function (v) {\n var $207 = constructBarlowGeneric1(Type_Proxy[\"Proxy\"].value);\n return function ($208) {\n return _Constructor($207($208));\n };\n }\n };\n };\n};\nvar constructBarlowGenericTCo9 = function (dictConstructBarlowGeneric) {\n var constructBarlowGeneric1 = constructBarlowGeneric(dictConstructBarlowGeneric);\n return function (dictChoice) {\n var _SumLeft = Data_Lens_Barlow_Generic[\"_SumLeft\"](dictChoice);\n var _Constructor = Data_Lens_Barlow_Generic[\"_Constructor\"](dictChoice.Profunctor0());\n return {\n constructBarlowGeneric: function (v) {\n var $209 = constructBarlowGeneric1(Type_Proxy[\"Proxy\"].value);\n return function ($210) {\n return _SumLeft(_Constructor($209($210)));\n };\n }\n };\n };\n};\nvar constructBarlowGenericTCo10 = function (dictConstructBarlowGeneric) {\n var constructBarlowGeneric1 = constructBarlowGeneric(dictConstructBarlowGeneric);\n return function (dictChoice) {\n var _SumRight = Data_Lens_Barlow_Generic[\"_SumRight\"](dictChoice);\n return {\n constructBarlowGeneric: function (v) {\n var $211 = constructBarlowGeneric1(Type_Proxy[\"Proxy\"].value);\n return function ($212) {\n return _SumRight($211($212));\n };\n }\n };\n };\n};\nvar constructBarlowGenericTCo11 = function (dictConstructBarlowGeneric) {\n var constructBarlowGeneric1 = constructBarlowGeneric(dictConstructBarlowGeneric);\n return function (dictStrong) {\n var _ProductRight = Data_Lens_Barlow_Generic[\"_ProductRight\"](dictStrong);\n return {\n constructBarlowGeneric: function (v) {\n var $213 = constructBarlowGeneric1(Type_Proxy[\"Proxy\"].value);\n return function ($214) {\n return _ProductRight($213($214));\n };\n }\n };\n };\n};\nvar constructBarlow = function (dict) {\n return dict.constructBarlow;\n};\nvar constructBarlowGenericTCo12 = function (dictConstructBarlow) {\n var constructBarlow2 = constructBarlow(dictConstructBarlow);\n return function (dictProfunctor) {\n var _Constructor = Data_Lens_Barlow_Generic[\"_Constructor\"](dictProfunctor);\n var _Argument = Data_Lens_Barlow_Generic[\"_Argument\"](dictProfunctor);\n return {\n constructBarlowGeneric: function (v) {\n var $215 = constructBarlow2(Type_Proxy[\"Proxy\"].value);\n return function ($216) {\n return _Constructor(_Argument($215($216)));\n };\n }\n };\n };\n};\nvar constructBarlowGenericTCo13 = function (dictConstructBarlow) {\n var constructBarlow2 = constructBarlow(dictConstructBarlow);\n return function (dictChoice) {\n var _SumLeft = Data_Lens_Barlow_Generic[\"_SumLeft\"](dictChoice);\n var Profunctor0 = dictChoice.Profunctor0();\n var _Constructor = Data_Lens_Barlow_Generic[\"_Constructor\"](Profunctor0);\n var _Argument = Data_Lens_Barlow_Generic[\"_Argument\"](Profunctor0);\n return {\n constructBarlowGeneric: function (v) {\n var $217 = constructBarlow2(Type_Proxy[\"Proxy\"].value);\n return function ($218) {\n return _SumLeft(_Constructor(_Argument($217($218))));\n };\n }\n };\n };\n};\nvar constructBarlowGenericTCo14 = function (dictConstructBarlow) {\n var constructBarlow2 = constructBarlow(dictConstructBarlow);\n return function (dictChoice) {\n var _SumRight = Data_Lens_Barlow_Generic[\"_SumRight\"](dictChoice);\n var Profunctor0 = dictChoice.Profunctor0();\n var _Constructor = Data_Lens_Barlow_Generic[\"_Constructor\"](Profunctor0);\n var _Argument = Data_Lens_Barlow_Generic[\"_Argument\"](Profunctor0);\n return {\n constructBarlowGeneric: function (v) {\n var $219 = constructBarlow2(Type_Proxy[\"Proxy\"].value);\n return function ($220) {\n return _SumRight(_Constructor(_Argument($219($220))));\n };\n }\n };\n };\n};\nvar constructBarlowGenericTCo15 = function (dictConstructBarlow) {\n var constructBarlow2 = constructBarlow(dictConstructBarlow);\n return function (dictStrong) {\n var _ProductLeft = Data_Lens_Barlow_Generic[\"_ProductLeft\"](dictStrong);\n var _Argument = Data_Lens_Barlow_Generic[\"_Argument\"](dictStrong.Profunctor0());\n return {\n constructBarlowGeneric: function (v) {\n var $221 = constructBarlow2(Type_Proxy[\"Proxy\"].value);\n return function ($222) {\n return _ProductLeft(_Argument($221($222)));\n };\n }\n };\n };\n};\nvar constructBarlowGenericTCo16 = function (dictConstructBarlow) {\n var constructBarlow2 = constructBarlow(dictConstructBarlow);\n return function (dictProfunctor) {\n var _Argument = Data_Lens_Barlow_Generic[\"_Argument\"](dictProfunctor);\n return {\n constructBarlowGeneric: function (v) {\n var $223 = constructBarlow2(Type_Proxy[\"Proxy\"].value);\n return function ($224) {\n return _Argument($223($224));\n };\n }\n };\n };\n};\nvar constructBarlowTConsExcla = function (dictConstructBarlow) {\n var constructBarlow2 = constructBarlow(dictConstructBarlow);\n return function () {\n return function (dictProfunctor) {\n var _Newtype1 = _Newtype(dictProfunctor);\n return {\n constructBarlow: function (v) {\n var $225 = constructBarlow2(Type_Proxy[\"Proxy\"].value);\n return function ($226) {\n return _Newtype1($225($226));\n };\n }\n };\n };\n };\n};\nvar constructBarlowTConsLeftA1 = function (dictConstructBarlow) {\n var constructBarlow2 = constructBarlow(dictConstructBarlow);\n return function (dictChoice) {\n var _Left = Data_Lens_Prism_Either[\"_Left\"](dictChoice);\n return {\n constructBarlow: function (v) {\n var $227 = constructBarlow2(Type_Proxy[\"Proxy\"].value);\n return function ($228) {\n return _Left($227($228));\n };\n }\n };\n };\n};\nvar constructBarlowTConsPlus = function (dictConstructBarlow) {\n var constructBarlow2 = constructBarlow(dictConstructBarlow);\n return function (dictWander) {\n return function (dictTraversable) {\n var traversed = Data_Lens_Traversal.traversed(dictTraversable)(dictWander);\n return {\n constructBarlow: function (v) {\n var $229 = constructBarlow2(Type_Proxy[\"Proxy\"].value);\n return function ($230) {\n return traversed($229($230));\n };\n }\n };\n };\n };\n};\nvar constructBarlowTConsQuest1 = function (dictConstructBarlow) {\n var constructBarlow2 = constructBarlow(dictConstructBarlow);\n return function (dictChoice) {\n var _Just = Data_Lens_Prism_Maybe[\"_Just\"](dictChoice);\n return {\n constructBarlow: function (v) {\n var $231 = constructBarlow2(Type_Proxy[\"Proxy\"].value);\n return function ($232) {\n return _Just($231($232));\n };\n }\n };\n };\n};\nvar constructBarlowTConsRecor1 = function (dictIsSymbol) {\n var prop = Data_Lens_Record.prop(dictIsSymbol)()();\n return function (dictConstructBarlow) {\n var constructBarlow2 = constructBarlow(dictConstructBarlow);\n return function () {\n return function () {\n return function (dictStrong) {\n return {\n constructBarlow: function (v) {\n var $233 = prop(Type_Proxy[\"Proxy\"].value)(dictStrong);\n var $234 = constructBarlow2(Type_Proxy[\"Proxy\"].value);\n return function ($235) {\n return $233($234($235));\n };\n }\n };\n };\n };\n };\n };\n};\nvar constructBarlowTConsRight1 = function (dictConstructBarlow) {\n var constructBarlow2 = constructBarlow(dictConstructBarlow);\n return function (dictChoice) {\n var _Right = Data_Lens_Prism_Either[\"_Right\"](dictChoice);\n return {\n constructBarlow: function (v) {\n var $236 = constructBarlow2(Type_Proxy[\"Proxy\"].value);\n return function ($237) {\n return _Right($236($237));\n };\n }\n };\n };\n};\nexport {\n constructBarlow,\n constructBarlowGeneric,\n constructBarlowGenericTCo7,\n constructBarlowGenericTCo6,\n constructBarlowGenericTCo12,\n constructBarlowGenericTCo8,\n constructBarlowGenericTCo5,\n constructBarlowGenericTCo4,\n constructBarlowGenericTCo13,\n constructBarlowGenericTCo9,\n constructBarlowGenericTCo3,\n constructBarlowGenericTCo2,\n constructBarlowGenericTCo14,\n constructBarlowGenericTCo10,\n constructBarlowGenericTCo1,\n constructBarlowGenericTCo15,\n constructBarlowGenericTCo,\n constructBarlowGenericTCo16,\n constructBarlowGenericTCo11,\n constructBarlowTConsQuest,\n constructBarlowTConsRight,\n constructBarlowTConsLeftA,\n constructBarlowTConsPlusT,\n constructBarlowNilExclamationMark,\n constructBarlowTConsRecor,\n constructBarlowTConsQuest1,\n constructBarlowTConsRight1,\n constructBarlowTConsLeftA1,\n constructBarlowTConsPlus,\n constructBarlowTConsExcla,\n constructBarlowTConsRecor1,\n constructBarlow1\n};\n","// Generated by purs version 0.15.7\nimport * as Data_Lens_Barlow_Construction from \"../Data.Lens.Barlow.Construction/index.js\";\nimport * as Type_Proxy from \"../Type.Proxy/index.js\";\nvar key = /* #__PURE__ */ (function () {\n return Type_Proxy[\"Proxy\"].value;\n})();\nvar barlowInstance = function () {\n return function (dictConstructBarlow) {\n var constructBarlow = Data_Lens_Barlow_Construction.constructBarlow(dictConstructBarlow);\n return {\n barlow: function (v) {\n return constructBarlow(Type_Proxy[\"Proxy\"].value);\n }\n };\n };\n};\nvar barlow = function (dict) {\n return dict.barlow;\n};\nexport {\n barlow,\n key,\n barlowInstance\n};\n","// Generated by purs version 0.15.7\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Generic_Rep from \"../Data.Generic.Rep/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nimport * as Data_Show from \"../Data.Show/index.js\";\nimport * as Data_Symbol from \"../Data.Symbol/index.js\";\nimport * as Type_Proxy from \"../Type.Proxy/index.js\";\nvar append = /* #__PURE__ */ Data_Semigroup.append(Data_Semigroup.semigroupArray);\nvar genericShowArgsNoArguments = {\n genericShowArgs: function (v) {\n return [ ];\n }\n};\nvar genericShowArgsArgument = function (dictShow) {\n var show = Data_Show.show(dictShow);\n return {\n genericShowArgs: function (v) {\n return [ show(v) ];\n }\n };\n};\nvar genericShowArgs = function (dict) {\n return dict.genericShowArgs;\n};\nvar genericShowArgsProduct = function (dictGenericShowArgs) {\n var genericShowArgs1 = genericShowArgs(dictGenericShowArgs);\n return function (dictGenericShowArgs1) {\n var genericShowArgs2 = genericShowArgs(dictGenericShowArgs1);\n return {\n genericShowArgs: function (v) {\n return append(genericShowArgs1(v.value0))(genericShowArgs2(v.value1));\n }\n };\n };\n};\nvar genericShowConstructor = function (dictGenericShowArgs) {\n var genericShowArgs1 = genericShowArgs(dictGenericShowArgs);\n return function (dictIsSymbol) {\n var reflectSymbol = Data_Symbol.reflectSymbol(dictIsSymbol);\n return {\n \"genericShow'\": function (v) {\n var ctor = reflectSymbol(Type_Proxy[\"Proxy\"].value);\n var v1 = genericShowArgs1(v);\n if (v1.length === 0) {\n return ctor;\n };\n return \"(\" + ($foreign.intercalate(\" \")(append([ ctor ])(v1)) + \")\");\n }\n };\n };\n};\nvar genericShow$prime = function (dict) {\n return dict[\"genericShow'\"];\n};\nvar genericShowNoConstructors = {\n \"genericShow'\": function (a) {\n return genericShow$prime(genericShowNoConstructors)(a);\n }\n};\nvar genericShowSum = function (dictGenericShow) {\n var genericShow$prime1 = genericShow$prime(dictGenericShow);\n return function (dictGenericShow1) {\n var genericShow$prime2 = genericShow$prime(dictGenericShow1);\n return {\n \"genericShow'\": function (v) {\n if (v instanceof Data_Generic_Rep.Inl) {\n return genericShow$prime1(v.value0);\n };\n if (v instanceof Data_Generic_Rep.Inr) {\n return genericShow$prime2(v.value0);\n };\n throw new Error(\"Failed pattern match at Data.Show.Generic (line 26, column 1 - line 28, column 40): \" + [ v.constructor.name ]);\n }\n };\n };\n};\nvar genericShow = function (dictGeneric) {\n var from = Data_Generic_Rep.from(dictGeneric);\n return function (dictGenericShow) {\n var genericShow$prime1 = genericShow$prime(dictGenericShow);\n return function (x) {\n return genericShow$prime1(from(x));\n };\n };\n};\nexport {\n genericShow$prime,\n genericShow,\n genericShowArgs,\n genericShowNoConstructors,\n genericShowArgsNoArguments,\n genericShowSum,\n genericShowArgsProduct,\n genericShowConstructor,\n genericShowArgsArgument\n};\n","export const intercalate = function (separator) {\n return function (xs) {\n return xs.join(separator);\n };\n};\n","/* global Symbol */\n\nvar hasArrayFrom = typeof Array.from === \"function\";\nvar hasStringIterator =\n typeof Symbol !== \"undefined\" &&\n Symbol != null &&\n typeof Symbol.iterator !== \"undefined\" &&\n typeof String.prototype[Symbol.iterator] === \"function\";\nvar hasFromCodePoint = typeof String.prototype.fromCodePoint === \"function\";\nvar hasCodePointAt = typeof String.prototype.codePointAt === \"function\";\n\nexport const _unsafeCodePointAt0 = function (fallback) {\n return hasCodePointAt\n ? function (str) { return str.codePointAt(0); }\n : fallback;\n};\n\nexport const _codePointAt = function (fallback) {\n return function (Just) {\n return function (Nothing) {\n return function (unsafeCodePointAt0) {\n return function (index) {\n return function (str) {\n var length = str.length;\n if (index < 0 || index >= length) return Nothing;\n if (hasStringIterator) {\n var iter = str[Symbol.iterator]();\n for (var i = index;; --i) {\n var o = iter.next();\n if (o.done) return Nothing;\n if (i === 0) return Just(unsafeCodePointAt0(o.value));\n }\n }\n return fallback(index)(str);\n };\n };\n };\n };\n };\n};\n\nexport const _countPrefix = function (fallback) {\n return function (unsafeCodePointAt0) {\n if (hasStringIterator) {\n return function (pred) {\n return function (str) {\n var iter = str[Symbol.iterator]();\n for (var cpCount = 0; ; ++cpCount) {\n var o = iter.next();\n if (o.done) return cpCount;\n var cp = unsafeCodePointAt0(o.value);\n if (!pred(cp)) return cpCount;\n }\n };\n };\n }\n return fallback;\n };\n};\n\nexport const _fromCodePointArray = function (singleton) {\n return hasFromCodePoint\n ? function (cps) {\n // Function.prototype.apply will fail for very large second parameters,\n // so we don't use it for arrays with 10,000 or more entries.\n if (cps.length < 10e3) {\n return String.fromCodePoint.apply(String, cps);\n }\n return cps.map(singleton).join(\"\");\n }\n : function (cps) {\n return cps.map(singleton).join(\"\");\n };\n};\n\nexport const _singleton = function (fallback) {\n return hasFromCodePoint ? String.fromCodePoint : fallback;\n};\n\nexport const _take = function (fallback) {\n return function (n) {\n if (hasStringIterator) {\n return function (str) {\n var accum = \"\";\n var iter = str[Symbol.iterator]();\n for (var i = 0; i < n; ++i) {\n var o = iter.next();\n if (o.done) return accum;\n accum += o.value;\n }\n return accum;\n };\n }\n return fallback(n);\n };\n};\n\nexport const _toCodePointArray = function (fallback) {\n return function (unsafeCodePointAt0) {\n if (hasArrayFrom) {\n return function (str) {\n return Array.from(str, unsafeCodePointAt0);\n };\n }\n return fallback;\n };\n};\n","// Generated by purs version 0.15.7\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Array from \"../Data.Array/index.js\";\nimport * as Data_Boolean from \"../Data.Boolean/index.js\";\nimport * as Data_Bounded from \"../Data.Bounded/index.js\";\nimport * as Data_Enum from \"../Data.Enum/index.js\";\nimport * as Data_EuclideanRing from \"../Data.EuclideanRing/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Int from \"../Data.Int/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Data_String_CodeUnits from \"../Data.String.CodeUnits/index.js\";\nimport * as Data_String_Common from \"../Data.String.Common/index.js\";\nimport * as Data_String_Unsafe from \"../Data.String.Unsafe/index.js\";\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nimport * as Data_Unfoldable from \"../Data.Unfoldable/index.js\";\nvar $runtime_lazy = function (name, moduleName, init) {\n var state = 0;\n var val;\n return function (lineNumber) {\n if (state === 2) return val;\n if (state === 1) throw new ReferenceError(name + \" was needed before it finished initializing (module \" + moduleName + \", line \" + lineNumber + \")\", moduleName, lineNumber);\n state = 1;\n val = init();\n state = 2;\n return val;\n };\n};\nvar fromEnum = /* #__PURE__ */ Data_Enum.fromEnum(Data_Enum.boundedEnumChar);\nvar map = /* #__PURE__ */ Data_Functor.map(Data_Maybe.functorMaybe);\nvar unfoldr = /* #__PURE__ */ Data_Unfoldable.unfoldr(Data_Unfoldable.unfoldableArray);\nvar div = /* #__PURE__ */ Data_EuclideanRing.div(Data_EuclideanRing.euclideanRingInt);\nvar mod = /* #__PURE__ */ Data_EuclideanRing.mod(Data_EuclideanRing.euclideanRingInt);\nvar compare = /* #__PURE__ */ Data_Ord.compare(Data_Ord.ordInt);\nvar CodePoint = function (x) {\n return x;\n};\nvar unsurrogate = function (lead) {\n return function (trail) {\n return (((lead - 55296 | 0) * 1024 | 0) + (trail - 56320 | 0) | 0) + 65536 | 0;\n };\n};\nvar showCodePoint = {\n show: function (v) {\n return \"(CodePoint 0x\" + (Data_String_Common.toUpper(Data_Int.toStringAs(Data_Int.hexadecimal)(v)) + \")\");\n }\n};\nvar isTrail = function (cu) {\n return 56320 <= cu && cu <= 57343;\n};\nvar isLead = function (cu) {\n return 55296 <= cu && cu <= 56319;\n};\nvar uncons = function (s) {\n var v = Data_String_CodeUnits.length(s);\n if (v === 0) {\n return Data_Maybe.Nothing.value;\n };\n if (v === 1) {\n return new Data_Maybe.Just({\n head: fromEnum(Data_String_Unsafe.charAt(0)(s)),\n tail: \"\"\n });\n };\n var cu1 = fromEnum(Data_String_Unsafe.charAt(1)(s));\n var cu0 = fromEnum(Data_String_Unsafe.charAt(0)(s));\n var $43 = isLead(cu0) && isTrail(cu1);\n if ($43) {\n return new Data_Maybe.Just({\n head: unsurrogate(cu0)(cu1),\n tail: Data_String_CodeUnits.drop(2)(s)\n });\n };\n return new Data_Maybe.Just({\n head: cu0,\n tail: Data_String_CodeUnits.drop(1)(s)\n });\n};\nvar unconsButWithTuple = function (s) {\n return map(function (v) {\n return new Data_Tuple.Tuple(v.head, v.tail);\n })(uncons(s));\n};\nvar toCodePointArrayFallback = function (s) {\n return unfoldr(unconsButWithTuple)(s);\n};\nvar unsafeCodePointAt0Fallback = function (s) {\n var cu0 = fromEnum(Data_String_Unsafe.charAt(0)(s));\n var $47 = isLead(cu0) && Data_String_CodeUnits.length(s) > 1;\n if ($47) {\n var cu1 = fromEnum(Data_String_Unsafe.charAt(1)(s));\n var $48 = isTrail(cu1);\n if ($48) {\n return unsurrogate(cu0)(cu1);\n };\n return cu0;\n };\n return cu0;\n};\nvar unsafeCodePointAt0 = /* #__PURE__ */ $foreign[\"_unsafeCodePointAt0\"](unsafeCodePointAt0Fallback);\nvar toCodePointArray = /* #__PURE__ */ $foreign[\"_toCodePointArray\"](toCodePointArrayFallback)(unsafeCodePointAt0);\nvar length = function ($74) {\n return Data_Array.length(toCodePointArray($74));\n};\nvar lastIndexOf = function (p) {\n return function (s) {\n return map(function (i) {\n return length(Data_String_CodeUnits.take(i)(s));\n })(Data_String_CodeUnits.lastIndexOf(p)(s));\n };\n};\nvar indexOf = function (p) {\n return function (s) {\n return map(function (i) {\n return length(Data_String_CodeUnits.take(i)(s));\n })(Data_String_CodeUnits.indexOf(p)(s));\n };\n};\nvar fromCharCode = /* #__PURE__ */ (function () {\n var $75 = Data_Enum.toEnumWithDefaults(Data_Enum.boundedEnumChar)(Data_Bounded.bottom(Data_Bounded.boundedChar))(Data_Bounded.top(Data_Bounded.boundedChar));\n return function ($76) {\n return Data_String_CodeUnits.singleton($75($76));\n };\n})();\nvar singletonFallback = function (v) {\n if (v <= 65535) {\n return fromCharCode(v);\n };\n var lead = div(v - 65536 | 0)(1024) + 55296 | 0;\n var trail = mod(v - 65536 | 0)(1024) + 56320 | 0;\n return fromCharCode(lead) + fromCharCode(trail);\n};\nvar fromCodePointArray = /* #__PURE__ */ $foreign[\"_fromCodePointArray\"](singletonFallback);\nvar singleton = /* #__PURE__ */ $foreign[\"_singleton\"](singletonFallback);\nvar takeFallback = function (v) {\n return function (v1) {\n if (v < 1) {\n return \"\";\n };\n var v2 = uncons(v1);\n if (v2 instanceof Data_Maybe.Just) {\n return singleton(v2.value0.head) + takeFallback(v - 1 | 0)(v2.value0.tail);\n };\n return v1;\n };\n};\nvar take = /* #__PURE__ */ $foreign[\"_take\"](takeFallback);\nvar lastIndexOf$prime = function (p) {\n return function (i) {\n return function (s) {\n var i$prime = Data_String_CodeUnits.length(take(i)(s));\n return map(function (k) {\n return length(Data_String_CodeUnits.take(k)(s));\n })(Data_String_CodeUnits[\"lastIndexOf$prime\"](p)(i$prime)(s));\n };\n };\n};\nvar splitAt = function (i) {\n return function (s) {\n var before = take(i)(s);\n return {\n before: before,\n after: Data_String_CodeUnits.drop(Data_String_CodeUnits.length(before))(s)\n };\n };\n};\nvar eqCodePoint = {\n eq: function (x) {\n return function (y) {\n return x === y;\n };\n }\n};\nvar ordCodePoint = {\n compare: function (x) {\n return function (y) {\n return compare(x)(y);\n };\n },\n Eq0: function () {\n return eqCodePoint;\n }\n};\nvar drop = function (n) {\n return function (s) {\n return Data_String_CodeUnits.drop(Data_String_CodeUnits.length(take(n)(s)))(s);\n };\n};\nvar indexOf$prime = function (p) {\n return function (i) {\n return function (s) {\n var s$prime = drop(i)(s);\n return map(function (k) {\n return i + length(Data_String_CodeUnits.take(k)(s$prime)) | 0;\n })(Data_String_CodeUnits.indexOf(p)(s$prime));\n };\n };\n};\nvar countTail = function ($copy_p) {\n return function ($copy_s) {\n return function ($copy_accum) {\n var $tco_var_p = $copy_p;\n var $tco_var_s = $copy_s;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(p, s, accum) {\n var v = uncons(s);\n if (v instanceof Data_Maybe.Just) {\n var $61 = p(v.value0.head);\n if ($61) {\n $tco_var_p = p;\n $tco_var_s = v.value0.tail;\n $copy_accum = accum + 1 | 0;\n return;\n };\n $tco_done = true;\n return accum;\n };\n $tco_done = true;\n return accum;\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_p, $tco_var_s, $copy_accum);\n };\n return $tco_result;\n };\n };\n};\nvar countFallback = function (p) {\n return function (s) {\n return countTail(p)(s)(0);\n };\n};\nvar countPrefix = /* #__PURE__ */ $foreign[\"_countPrefix\"](countFallback)(unsafeCodePointAt0);\nvar dropWhile = function (p) {\n return function (s) {\n return drop(countPrefix(p)(s))(s);\n };\n};\nvar takeWhile = function (p) {\n return function (s) {\n return take(countPrefix(p)(s))(s);\n };\n};\nvar codePointFromChar = function ($77) {\n return CodePoint(fromEnum($77));\n};\nvar codePointAtFallback = function ($copy_n) {\n return function ($copy_s) {\n var $tco_var_n = $copy_n;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(n, s) {\n var v = uncons(s);\n if (v instanceof Data_Maybe.Just) {\n var $66 = n === 0;\n if ($66) {\n $tco_done = true;\n return new Data_Maybe.Just(v.value0.head);\n };\n $tco_var_n = n - 1 | 0;\n $copy_s = v.value0.tail;\n return;\n };\n $tco_done = true;\n return Data_Maybe.Nothing.value;\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_n, $copy_s);\n };\n return $tco_result;\n };\n};\nvar codePointAt = function (v) {\n return function (v1) {\n if (v < 0) {\n return Data_Maybe.Nothing.value;\n };\n if (v === 0 && v1 === \"\") {\n return Data_Maybe.Nothing.value;\n };\n if (v === 0) {\n return new Data_Maybe.Just(unsafeCodePointAt0(v1));\n };\n return $foreign[\"_codePointAt\"](codePointAtFallback)(Data_Maybe.Just.create)(Data_Maybe.Nothing.value)(unsafeCodePointAt0)(v)(v1);\n };\n};\nvar boundedCodePoint = {\n bottom: 0,\n top: 1114111,\n Ord0: function () {\n return ordCodePoint;\n }\n};\nvar boundedEnumCodePoint = /* #__PURE__ */ (function () {\n return {\n cardinality: 1114111 + 1 | 0,\n fromEnum: function (v) {\n return v;\n },\n toEnum: function (n) {\n if (n >= 0 && n <= 1114111) {\n return new Data_Maybe.Just(n);\n };\n if (Data_Boolean.otherwise) {\n return Data_Maybe.Nothing.value;\n };\n throw new Error(\"Failed pattern match at Data.String.CodePoints (line 63, column 1 - line 68, column 26): \" + [ n.constructor.name ]);\n },\n Bounded0: function () {\n return boundedCodePoint;\n },\n Enum1: function () {\n return $lazy_enumCodePoint(0);\n }\n };\n})();\nvar $lazy_enumCodePoint = /* #__PURE__ */ $runtime_lazy(\"enumCodePoint\", \"Data.String.CodePoints\", function () {\n return {\n succ: Data_Enum.defaultSucc(Data_Enum.toEnum(boundedEnumCodePoint))(Data_Enum.fromEnum(boundedEnumCodePoint)),\n pred: Data_Enum.defaultPred(Data_Enum.toEnum(boundedEnumCodePoint))(Data_Enum.fromEnum(boundedEnumCodePoint)),\n Ord0: function () {\n return ordCodePoint;\n }\n };\n});\nvar enumCodePoint = /* #__PURE__ */ $lazy_enumCodePoint(59);\nexport {\n codePointFromChar,\n singleton,\n fromCodePointArray,\n toCodePointArray,\n codePointAt,\n uncons,\n length,\n countPrefix,\n indexOf,\n indexOf$prime,\n lastIndexOf,\n lastIndexOf$prime,\n take,\n takeWhile,\n drop,\n dropWhile,\n splitAt,\n eqCodePoint,\n ordCodePoint,\n showCodePoint,\n boundedCodePoint,\n enumCodePoint,\n boundedEnumCodePoint\n};\nexport {\n contains,\n stripPrefix,\n stripSuffix\n} from \"../Data.String.CodeUnits/index.js\";\n","export const showRegexImpl = function (r) {\n return \"\" + r;\n};\n\nexport const regexImpl = function (left) {\n return function (right) {\n return function (s1) {\n return function (s2) {\n try {\n return right(new RegExp(s1, s2));\n } catch (e) {\n return left(e.message);\n }\n };\n };\n };\n};\n\nexport const source = function (r) {\n return r.source;\n};\n\nexport const flagsImpl = function (r) {\n return {\n multiline: r.multiline,\n ignoreCase: r.ignoreCase,\n global: r.global,\n dotAll: r.dotAll,\n sticky: !!r.sticky,\n unicode: !!r.unicode\n };\n};\n\nexport const test = function (r) {\n return function (s) {\n var lastIndex = r.lastIndex;\n var result = r.test(s);\n r.lastIndex = lastIndex;\n return result;\n };\n};\n\nexport const _match = function (just) {\n return function (nothing) {\n return function (r) {\n return function (s) {\n var m = s.match(r);\n if (m == null || m.length === 0) {\n return nothing;\n } else {\n for (var i = 0; i < m.length; i++) {\n m[i] = m[i] == null ? nothing : just(m[i]);\n }\n return just(m);\n }\n };\n };\n };\n};\n\nexport const replace = function (r) {\n return function (s1) {\n return function (s2) {\n return s2.replace(r, s1);\n };\n };\n};\n\nexport const _replaceBy = function (just) {\n return function (nothing) {\n return function (r) {\n return function (f) {\n return function (s) {\n return s.replace(r, function (match) {\n var groups = [];\n var group, i = 1;\n while (typeof (group = arguments[i++]) !== \"number\") {\n groups.push(group == null ? nothing : just(group));\n }\n return f(match)(groups);\n });\n };\n };\n };\n };\n};\n\nexport const _search = function (just) {\n return function (nothing) {\n return function (r) {\n return function (s) {\n var result = s.search(r);\n return result === -1 ? nothing : just(result);\n };\n };\n };\n};\n\nexport const split = function (r) {\n return function (s) {\n return s.split(r);\n };\n};\n","// Generated by purs version 0.15.7\nimport * as Control_Alternative from \"../Control.Alternative/index.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nimport * as Data_String_Common from \"../Data.String.Common/index.js\";\nvar append = /* #__PURE__ */ Data_Semigroup.append(Data_Semigroup.semigroupArray);\nvar voidLeft = /* #__PURE__ */ Data_Functor.voidLeft(Data_Functor.functorArray);\nvar guard = /* #__PURE__ */ Control_Alternative.guard(Control_Alternative.alternativeArray);\nvar eq = /* #__PURE__ */ Data_Eq.eq(/* #__PURE__ */ Data_Eq.eqArray(Data_Eq.eqString));\nvar RegexFlags = function (x) {\n return x;\n};\nvar unicode = {\n global: false,\n ignoreCase: false,\n multiline: false,\n dotAll: false,\n sticky: false,\n unicode: true\n};\nvar sticky = {\n global: false,\n ignoreCase: false,\n multiline: false,\n dotAll: false,\n sticky: true,\n unicode: false\n};\nvar showRegexFlags = {\n show: function (v) {\n var usedFlags = append([ ])(append(voidLeft(guard(v.global))(\"global\"))(append(voidLeft(guard(v.ignoreCase))(\"ignoreCase\"))(append(voidLeft(guard(v.multiline))(\"multiline\"))(append(voidLeft(guard(v.dotAll))(\"dotAll\"))(append(voidLeft(guard(v.sticky))(\"sticky\"))(voidLeft(guard(v.unicode))(\"unicode\")))))));\n var $43 = eq(usedFlags)([ ]);\n if ($43) {\n return \"noFlags\";\n };\n return \"(\" + (Data_String_Common.joinWith(\" <> \")(usedFlags) + \")\");\n }\n};\nvar semigroupRegexFlags = {\n append: function (v) {\n return function (v1) {\n return {\n global: v.global || v1.global,\n ignoreCase: v.ignoreCase || v1.ignoreCase,\n multiline: v.multiline || v1.multiline,\n dotAll: v.dotAll || v1.dotAll,\n sticky: v.sticky || v1.sticky,\n unicode: v.unicode || v1.unicode\n };\n };\n }\n};\nvar noFlags = {\n global: false,\n ignoreCase: false,\n multiline: false,\n dotAll: false,\n sticky: false,\n unicode: false\n};\nvar newtypeRegexFlags = {\n Coercible0: function () {\n return undefined;\n }\n};\nvar multiline = {\n global: false,\n ignoreCase: false,\n multiline: true,\n dotAll: false,\n sticky: false,\n unicode: false\n};\nvar monoidRegexFlags = {\n mempty: noFlags,\n Semigroup0: function () {\n return semigroupRegexFlags;\n }\n};\nvar ignoreCase = {\n global: false,\n ignoreCase: true,\n multiline: false,\n dotAll: false,\n sticky: false,\n unicode: false\n};\nvar global = {\n global: true,\n ignoreCase: false,\n multiline: false,\n dotAll: false,\n sticky: false,\n unicode: false\n};\nvar eqRegexFlags = /* #__PURE__ */ Data_Eq.eqRec()(/* #__PURE__ */ Data_Eq.eqRowCons(/* #__PURE__ */ Data_Eq.eqRowCons(/* #__PURE__ */ Data_Eq.eqRowCons(/* #__PURE__ */ Data_Eq.eqRowCons(/* #__PURE__ */ Data_Eq.eqRowCons(/* #__PURE__ */ Data_Eq.eqRowCons(Data_Eq.eqRowNil)()({\n reflectSymbol: function () {\n return \"unicode\";\n }\n})(Data_Eq.eqBoolean))()({\n reflectSymbol: function () {\n return \"sticky\";\n }\n})(Data_Eq.eqBoolean))()({\n reflectSymbol: function () {\n return \"multiline\";\n }\n})(Data_Eq.eqBoolean))()({\n reflectSymbol: function () {\n return \"ignoreCase\";\n }\n})(Data_Eq.eqBoolean))()({\n reflectSymbol: function () {\n return \"global\";\n }\n})(Data_Eq.eqBoolean))()({\n reflectSymbol: function () {\n return \"dotAll\";\n }\n})(Data_Eq.eqBoolean));\nvar dotAll = {\n global: false,\n ignoreCase: false,\n multiline: false,\n dotAll: true,\n sticky: false,\n unicode: false\n};\nexport {\n RegexFlags,\n noFlags,\n global,\n ignoreCase,\n multiline,\n sticky,\n unicode,\n dotAll,\n newtypeRegexFlags,\n semigroupRegexFlags,\n monoidRegexFlags,\n eqRegexFlags,\n showRegexFlags\n};\n","// Generated by purs version 0.15.7\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Either from \"../Data.Either/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_String_CodeUnits from \"../Data.String.CodeUnits/index.js\";\nimport * as Data_String_Regex_Flags from \"../Data.String.Regex.Flags/index.js\";\nvar showRegex = {\n show: $foreign.showRegexImpl\n};\nvar search = /* #__PURE__ */ (function () {\n return $foreign[\"_search\"](Data_Maybe.Just.create)(Data_Maybe.Nothing.value);\n})();\nvar replace$prime = /* #__PURE__ */ (function () {\n return $foreign[\"_replaceBy\"](Data_Maybe.Just.create)(Data_Maybe.Nothing.value);\n})();\nvar renderFlags = function (v) {\n return (function () {\n if (v.global) {\n return \"g\";\n };\n return \"\";\n })() + ((function () {\n if (v.ignoreCase) {\n return \"i\";\n };\n return \"\";\n })() + ((function () {\n if (v.multiline) {\n return \"m\";\n };\n return \"\";\n })() + ((function () {\n if (v.dotAll) {\n return \"s\";\n };\n return \"\";\n })() + ((function () {\n if (v.sticky) {\n return \"y\";\n };\n return \"\";\n })() + (function () {\n if (v.unicode) {\n return \"u\";\n };\n return \"\";\n })()))));\n};\nvar regex = function (s) {\n return function (f) {\n return $foreign.regexImpl(Data_Either.Left.create)(Data_Either.Right.create)(s)(renderFlags(f));\n };\n};\nvar parseFlags = function (s) {\n return {\n global: Data_String_CodeUnits.contains(\"g\")(s),\n ignoreCase: Data_String_CodeUnits.contains(\"i\")(s),\n multiline: Data_String_CodeUnits.contains(\"m\")(s),\n dotAll: Data_String_CodeUnits.contains(\"s\")(s),\n sticky: Data_String_CodeUnits.contains(\"y\")(s),\n unicode: Data_String_CodeUnits.contains(\"u\")(s)\n };\n};\nvar match = /* #__PURE__ */ (function () {\n return $foreign[\"_match\"](Data_Maybe.Just.create)(Data_Maybe.Nothing.value);\n})();\nvar flags = function ($10) {\n return Data_String_Regex_Flags.RegexFlags($foreign.flagsImpl($10));\n};\nexport {\n source,\n test,\n replace,\n split\n} from \"./foreign.js\";\nexport {\n regex,\n flags,\n renderFlags,\n parseFlags,\n match,\n replace$prime,\n search,\n showRegex\n};\n","// Generated by purs version 0.15.7\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Data_Either from \"../Data.Either/index.js\";\nimport * as Data_String_Regex from \"../Data.String.Regex/index.js\";\nimport * as Partial_Unsafe from \"../Partial.Unsafe/index.js\";\nvar identity = /* #__PURE__ */ Control_Category.identity(Control_Category.categoryFn);\nvar unsafeRegex = function (s) {\n return function (f) {\n return Data_Either.either(Partial_Unsafe.unsafeCrashWith)(identity)(Data_String_Regex.regex(s)(f));\n };\n};\nexport {\n unsafeRegex\n};\n","// Generated by purs version 0.15.7\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Array from \"../Data.Array/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Show from \"../Data.Show/index.js\";\nimport * as Data_String_CodePoints from \"../Data.String.CodePoints/index.js\";\nimport * as Data_String_CodeUnits from \"../Data.String.CodeUnits/index.js\";\nimport * as Data_String_Common from \"../Data.String.Common/index.js\";\nimport * as Data_String_Regex from \"../Data.String.Regex/index.js\";\nimport * as Data_String_Regex_Flags from \"../Data.String.Regex.Flags/index.js\";\nimport * as Data_String_Regex_Unsafe from \"../Data.String.Regex.Unsafe/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nvar map = /* #__PURE__ */ Data_Functor.map(Data_Functor.functorArray);\nvar NFC = /* #__PURE__ */ (function () {\n function NFC() {\n\n };\n NFC.value = new NFC();\n return NFC;\n})();\nvar NFD = /* #__PURE__ */ (function () {\n function NFD() {\n\n };\n NFD.value = new NFD();\n return NFD;\n})();\nvar NFKC = /* #__PURE__ */ (function () {\n function NFKC() {\n\n };\n NFKC.value = new NFKC();\n return NFKC;\n})();\nvar NFKD = /* #__PURE__ */ (function () {\n function NFKD() {\n\n };\n NFKD.value = new NFKD();\n return NFKD;\n})();\nvar words = function (s) {\n return $foreign.wordsImpl(s);\n};\nvar unsafeRepeat = function (n) {\n return function (s) {\n return $foreign.unsafeRepeatImpl(n, s);\n };\n};\nvar unsafeCodePointAt$prime = function (n) {\n return function (s) {\n return $foreign.unsafeCodePointAtPrimeImpl(n, s);\n };\n};\nvar unsafeCodePointAt = function (n) {\n return function (s) {\n return $foreign.unsafeCodePointAtImpl(n, s);\n };\n};\nvar trimStart = function (s) {\n return s.trimStart(Data_Unit.unit);\n};\nvar trimEnd = function (s) {\n return s.trimEnd(Data_Unit.unit);\n};\nvar toCharArray = function (s) {\n return $foreign.toCharArrayImpl(s);\n};\nvar stripDiacritics = function (s) {\n return $foreign.stripDiacriticsImpl(s);\n};\nvar stripChars = function (chars) {\n return function (s) {\n return $foreign.stripCharsImpl(chars, s);\n };\n};\nvar startsWith$prime = function (searchString) {\n return function (position) {\n return function (s) {\n return $foreign.startsWithPrimeImpl(searchString, position, s);\n };\n };\n};\nvar startsWith = function (searchString) {\n return function (s) {\n return $foreign.startsWithImpl(searchString, s);\n };\n};\nvar showNormalizationForm = {\n show: function (v) {\n if (v instanceof NFC) {\n return \"NFC\";\n };\n if (v instanceof NFD) {\n return \"NFD\";\n };\n if (v instanceof NFKC) {\n return \"NFKC\";\n };\n if (v instanceof NFKD) {\n return \"NFKD\";\n };\n throw new Error(\"Failed pattern match at Data.String.Utils (line 264, column 1 - line 268, column 21): \" + [ v.constructor.name ]);\n }\n};\nvar show = /* #__PURE__ */ Data_Show.show(showNormalizationForm);\nvar repeat = function (n) {\n return function (s) {\n return $foreign.repeatImpl(Data_Maybe.Just.create, Data_Maybe.Nothing.value, n, s);\n };\n};\nvar padStart$prime = function (n) {\n return function (s) {\n return $foreign.padStartPrimeImpl(n, s);\n };\n};\nvar padStart = function (n) {\n return function (s) {\n var numberOfCodeUnits = Data_String_CodeUnits.length(s);\n var numberOfCodePoints = Data_String_CodePoints.length(s);\n return padStart$prime((n + numberOfCodeUnits | 0) - numberOfCodePoints | 0)(s);\n };\n};\nvar padEnd$prime = function (n) {\n return function (s) {\n return $foreign.padEndPrimeImpl(n, s);\n };\n};\nvar padEnd = function (n) {\n return function (s) {\n var numberOfCodeUnits = Data_String_CodeUnits.length(s);\n var numberOfCodePoints = Data_String_CodePoints.length(s);\n return padEnd$prime((n + numberOfCodeUnits | 0) - numberOfCodePoints | 0)(s);\n };\n};\nvar normalize$prime = function (nf) {\n return function (s) {\n return $foreign.normalizePrimeImpl(show(nf), s);\n };\n};\nvar normalize = function (s) {\n return $foreign.normalizeImpl(s);\n};\nvar lines = function (s) {\n return $foreign.linesImpl(s);\n};\nvar stripMarginWith = function (delimiter) {\n var go = function (line) {\n var trimmed = trimStart(line);\n var $7 = startsWith(delimiter)(trimmed);\n if ($7) {\n return Data_String_CodePoints.drop(Data_String_CodePoints.length(delimiter))(trimmed);\n };\n return line;\n };\n var $8 = Data_String_Common.joinWith(\"\\x0a\");\n var $9 = map(go);\n return function ($10) {\n return $8($9(lines(Data_String_Common.trim($10))));\n };\n};\nvar stripMargin = /* #__PURE__ */ stripMarginWith(\"|\");\nvar length = function () {\n return function (s) {\n return $foreign.lengthImpl(s);\n };\n};\nvar includes$prime = function (needle) {\n return function (position) {\n return function (haystack) {\n return $foreign.includesPrimeImpl(needle, position, haystack);\n };\n };\n};\nvar includes = function (searchString) {\n return function (s) {\n return $foreign.includesImpl(searchString, s);\n };\n};\nvar fromCharArray = function (arr) {\n return $foreign.fromCharArrayImpl(arr);\n};\nvar mapChars = function (f) {\n var $11 = map(f);\n return function ($12) {\n return fromCharArray($11(toCharArray($12)));\n };\n};\nvar filter = function (p) {\n var $13 = Data_Array.filter(p);\n return function ($14) {\n return fromCharArray($13(toCharArray($14)));\n };\n};\nvar escapeRegex = function (s) {\n return $foreign.escapeRegexImpl(s);\n};\nvar replaceAll = function () {\n var mkRegex = function (str) {\n return Data_String_Regex_Unsafe.unsafeRegex(escapeRegex(str))(Data_String_Regex_Flags.global);\n };\n return function ($15) {\n return Data_String_Regex.replace(mkRegex($15));\n };\n};\nvar endsWith$prime = function (searchString) {\n return function (position) {\n return function (s) {\n return $foreign.endsWithPrimeImpl(searchString, position, s);\n };\n };\n};\nvar endsWith = function (searchString) {\n return function (s) {\n return $foreign.endsWithImpl(searchString, s);\n };\n};\nvar codePointAt$prime = function (n) {\n return function (s) {\n return $foreign.codePointAtPrimeImpl(Data_Maybe.Just.create, Data_Maybe.Nothing.value, n, s);\n };\n};\nvar codePointAt = function () {\n return function (n) {\n return function (s) {\n return $foreign.codePointAtImpl(Data_Maybe.Just.create, Data_Maybe.Nothing.value, n, s);\n };\n };\n};\nvar charAt = function (n) {\n return function (str) {\n return Data_Array.index(toCharArray(str))(n);\n };\n};\nexport {\n NFC,\n NFD,\n NFKC,\n NFKD,\n charAt,\n codePointAt,\n codePointAt$prime,\n endsWith,\n endsWith$prime,\n escapeRegex,\n filter,\n fromCharArray,\n includes,\n includes$prime,\n length,\n lines,\n mapChars,\n normalize,\n normalize$prime,\n padEnd,\n padEnd$prime,\n padStart,\n padStart$prime,\n repeat,\n replaceAll,\n startsWith,\n startsWith$prime,\n stripChars,\n stripDiacritics,\n stripMargin,\n stripMarginWith,\n toCharArray,\n trimEnd,\n trimStart,\n unsafeCodePointAt,\n unsafeCodePointAt$prime,\n unsafeRepeat,\n words,\n showNormalizationForm\n};\n","\"use strict\";\n\nexport function codePointAtImpl (just, nothing, i, s) {\n var codePointArray = Array.from(s);\n var isWithinRange = i >= 0 && i < codePointArray.length;\n\n return isWithinRange ? just(codePointArray[i].codePointAt(0)) : nothing;\n}\n\nexport function codePointAtPrimeImpl (just, nothing, i, s) {\n return i >= 0 && i < s.length ? just(s.codePointAt(i)) : nothing;\n}\n\nexport function endsWithImpl (searchString, s) {\n return s.endsWith(searchString);\n}\n\nexport function endsWithPrimeImpl (searchString, position, s) {\n return s.endsWith(searchString, position);\n}\n\nexport function escapeRegexImpl (str) {\n return str.replace(/[.*+?^${}()|[\\]\\-\\\\]/g, \"\\\\$&\");\n}\n\nexport function fromCharArrayImpl (array) {\n return array.join(\"\");\n}\n\nexport function includesImpl (searchString, str) {\n return str.includes(searchString);\n}\n\nexport function includesPrimeImpl (needle, position, haystack) {\n // For negative `position` values, we search from the beginning of the\n // string. This is in accordance with the native\n // `String.prototype.include` function.\n var pos = Math.max(0, position);\n\n // Converting to arrays takes care of any surrogate code points\n var needleA = Array.from(needle);\n var haystackA = Array.from(haystack).slice(pos);\n var needleALen = needleA.length;\n\n var maxIndex = haystackA.length + 1 - needleALen;\n var found = false;\n var i;\n\n // Naive implementation, at some point we should check whether Boyer-Moore\n // or Knuth-Morris-Pratt are worthwhile\n for (i = 0; i < maxIndex; i++) {\n if (needleA.every(function (e, j) { return e === haystackA[i+j]; })) {\n found = true;\n break;\n }\n }\n\n return found;\n}\n\nexport function lengthImpl (str) {\n return Array.from(str).length;\n}\n\nexport function linesImpl (str) {\n // See http://www.unicode.org/reports/tr18/#RL1.6\n return str.split(/\\r\\n|[\\n\\v\\f\\r\\u0085\\u2028\\u2029]/);\n}\n\nexport function normalizeImpl (str) {\n return str.normalize();\n}\n\nexport function normalizePrimeImpl (normalizationForm, str) {\n return str.normalize(normalizationForm);\n}\n\nexport function padEndPrimeImpl (targetLength, str) {\n return str.padEnd(targetLength);\n}\n\nexport function padStartPrimeImpl (targetLength, str) {\n return str.padStart(targetLength);\n}\n\nexport function repeatImpl (just, nothing, n, str) {\n var result;\n\n try {\n result = just(str.repeat(n));\n }\n catch (error) {\n result = nothing;\n }\n\n return result;\n}\n\nexport function startsWithImpl (searchString, s) {\n return s.startsWith(searchString);\n}\n\nexport function startsWithPrimeImpl (searchString, position, s) {\n return s.startsWith(searchString, position);\n}\n\nexport function stripCharsImpl (chars, s) {\n return s.replace(RegExp(\"[\" + escapeRegexImpl(chars) + \"]\", \"g\"), \"\");\n}\n\nexport function stripDiacriticsImpl (str) {\n return str.normalize(\"NFD\").replace(/[\\u0300-\\u036f]/g, \"\");\n}\n\nexport function toCharArrayImpl (str) {\n return Array.from(str);\n}\n\nexport function unsafeCodePointAtImpl (i, s) {\n var codePointArray = Array.from(s);\n var isWithinRange = i >= 0 && i < codePointArray.length;\n\n if (isWithinRange) {\n return codePointArray[i].codePointAt(0);\n }\n else {\n throw new Error(\"Data.String.Utils.unsafeCodePointAt: Invalid index\");\n }\n}\n\nexport function unsafeCodePointAtPrimeImpl (i, s) {\n if (i >= 0 && i < s.length) {\n return s.codePointAt(i);\n }\n else {\n throw new Error(\"Data.String.Utils.unsafeCodePointAt': Invalid index\");\n }\n}\n\nexport function unsafeRepeatImpl (n, str) {\n try {\n return str.repeat(n);\n }\n catch (error) {\n throw new Error(\"Data.String.Utils.unsafeRepeat: Invalid count\");\n }\n}\n\nexport function wordsImpl (s) {\n // Split at every Unicode whitespace character (25 as of Unicode 12.1)\n return s.split(/[\\u000a-\\u000d\\u0085\\u2028\\u2029\\u0009\\u0020\\u00a0\\u1680\\u2000-\\u200a\\u202f\\u205f\\u3000]+/);\n}\n","// Generated by purs version 0.15.7\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Apply from \"../Control.Apply/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Control_Monad from \"../Control.Monad/index.js\";\nimport * as Control_Monad_Cont_Class from \"../Control.Monad.Cont.Class/index.js\";\nimport * as Control_Monad_Error_Class from \"../Control.Monad.Error.Class/index.js\";\nimport * as Control_Monad_Reader_Class from \"../Control.Monad.Reader.Class/index.js\";\nimport * as Control_Monad_Rec_Class from \"../Control.Monad.Rec.Class/index.js\";\nimport * as Control_Monad_State_Class from \"../Control.Monad.State.Class/index.js\";\nimport * as Control_Monad_Trans_Class from \"../Control.Monad.Trans.Class/index.js\";\nimport * as Control_Monad_Writer_Class from \"../Control.Monad.Writer.Class/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Monoid from \"../Data.Monoid/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nimport * as Effect_Class from \"../Effect.Class/index.js\";\nvar map = /* #__PURE__ */ Data_Functor.map(Data_Maybe.functorMaybe);\nvar identity = /* #__PURE__ */ Control_Category.identity(Control_Category.categoryFn);\nvar MaybeT = function (x) {\n return x;\n};\nvar runMaybeT = function (v) {\n return v;\n};\nvar newtypeMaybeT = {\n Coercible0: function () {\n return undefined;\n }\n};\nvar monadTransMaybeT = {\n lift: function (dictMonad) {\n var $157 = Control_Monad.liftM1(dictMonad)(Data_Maybe.Just.create);\n return function ($158) {\n return MaybeT($157($158));\n };\n }\n};\nvar lift = /* #__PURE__ */ Control_Monad_Trans_Class.lift(monadTransMaybeT);\nvar mapMaybeT = function (f) {\n return function (v) {\n return f(v);\n };\n};\nvar functorMaybeT = function (dictFunctor) {\n var map1 = Data_Functor.map(dictFunctor);\n return {\n map: function (f) {\n return function (v) {\n return map1(map(f))(v);\n };\n }\n };\n};\nvar monadMaybeT = function (dictMonad) {\n return {\n Applicative0: function () {\n return applicativeMaybeT(dictMonad);\n },\n Bind1: function () {\n return bindMaybeT(dictMonad);\n }\n };\n};\nvar bindMaybeT = function (dictMonad) {\n var bind = Control_Bind.bind(dictMonad.Bind1());\n var pure = Control_Applicative.pure(dictMonad.Applicative0());\n return {\n bind: function (v) {\n return function (f) {\n return bind(v)(function (v1) {\n if (v1 instanceof Data_Maybe.Nothing) {\n return pure(Data_Maybe.Nothing.value);\n };\n if (v1 instanceof Data_Maybe.Just) {\n var v2 = f(v1.value0);\n return v2;\n };\n throw new Error(\"Failed pattern match at Control.Monad.Maybe.Trans (line 54, column 11 - line 56, column 42): \" + [ v1.constructor.name ]);\n });\n };\n },\n Apply0: function () {\n return applyMaybeT(dictMonad);\n }\n };\n};\nvar applyMaybeT = function (dictMonad) {\n var functorMaybeT1 = functorMaybeT(((dictMonad.Bind1()).Apply0()).Functor0());\n return {\n apply: Control_Monad.ap(monadMaybeT(dictMonad)),\n Functor0: function () {\n return functorMaybeT1;\n }\n };\n};\nvar applicativeMaybeT = function (dictMonad) {\n return {\n pure: (function () {\n var $159 = Control_Applicative.pure(dictMonad.Applicative0());\n return function ($160) {\n return MaybeT($159(Data_Maybe.Just.create($160)));\n };\n })(),\n Apply0: function () {\n return applyMaybeT(dictMonad);\n }\n };\n};\nvar semigroupMaybeT = function (dictMonad) {\n var lift2 = Control_Apply.lift2(applyMaybeT(dictMonad));\n return function (dictSemigroup) {\n return {\n append: lift2(Data_Semigroup.append(dictSemigroup))\n };\n };\n};\nvar monadAskMaybeT = function (dictMonadAsk) {\n var Monad0 = dictMonadAsk.Monad0();\n var monadMaybeT1 = monadMaybeT(Monad0);\n return {\n ask: lift(Monad0)(Control_Monad_Reader_Class.ask(dictMonadAsk)),\n Monad0: function () {\n return monadMaybeT1;\n }\n };\n};\nvar monadReaderMaybeT = function (dictMonadReader) {\n var local = Control_Monad_Reader_Class.local(dictMonadReader);\n var monadAskMaybeT1 = monadAskMaybeT(dictMonadReader.MonadAsk0());\n return {\n local: function (f) {\n return mapMaybeT(local(f));\n },\n MonadAsk0: function () {\n return monadAskMaybeT1;\n }\n };\n};\nvar monadContMaybeT = function (dictMonadCont) {\n var callCC = Control_Monad_Cont_Class.callCC(dictMonadCont);\n var monadMaybeT1 = monadMaybeT(dictMonadCont.Monad0());\n return {\n callCC: function (f) {\n return callCC(function (c) {\n var v = f(function (a) {\n return c(new Data_Maybe.Just(a));\n });\n return v;\n });\n },\n Monad0: function () {\n return monadMaybeT1;\n }\n };\n};\nvar monadEffectMaybe = function (dictMonadEffect) {\n var Monad0 = dictMonadEffect.Monad0();\n var monadMaybeT1 = monadMaybeT(Monad0);\n return {\n liftEffect: (function () {\n var $161 = lift(Monad0);\n var $162 = Effect_Class.liftEffect(dictMonadEffect);\n return function ($163) {\n return $161($162($163));\n };\n })(),\n Monad0: function () {\n return monadMaybeT1;\n }\n };\n};\nvar monadRecMaybeT = function (dictMonadRec) {\n var tailRecM = Control_Monad_Rec_Class.tailRecM(dictMonadRec);\n var Monad0 = dictMonadRec.Monad0();\n var bind = Control_Bind.bind(Monad0.Bind1());\n var pure = Control_Applicative.pure(Monad0.Applicative0());\n var monadMaybeT1 = monadMaybeT(Monad0);\n return {\n tailRecM: function (f) {\n var $164 = tailRecM(function (a) {\n var v = f(a);\n return bind(v)(function (m$prime) {\n return pure((function () {\n if (m$prime instanceof Data_Maybe.Nothing) {\n return new Control_Monad_Rec_Class.Done(Data_Maybe.Nothing.value);\n };\n if (m$prime instanceof Data_Maybe.Just && m$prime.value0 instanceof Control_Monad_Rec_Class.Loop) {\n return new Control_Monad_Rec_Class.Loop(m$prime.value0.value0);\n };\n if (m$prime instanceof Data_Maybe.Just && m$prime.value0 instanceof Control_Monad_Rec_Class.Done) {\n return new Control_Monad_Rec_Class.Done(new Data_Maybe.Just(m$prime.value0.value0));\n };\n throw new Error(\"Failed pattern match at Control.Monad.Maybe.Trans (line 82, column 16 - line 85, column 43): \" + [ m$prime.constructor.name ]);\n })());\n });\n });\n return function ($165) {\n return MaybeT($164($165));\n };\n },\n Monad0: function () {\n return monadMaybeT1;\n }\n };\n};\nvar monadStateMaybeT = function (dictMonadState) {\n var Monad0 = dictMonadState.Monad0();\n var lift1 = lift(Monad0);\n var state = Control_Monad_State_Class.state(dictMonadState);\n var monadMaybeT1 = monadMaybeT(Monad0);\n return {\n state: function (f) {\n return lift1(state(f));\n },\n Monad0: function () {\n return monadMaybeT1;\n }\n };\n};\nvar monadTellMaybeT = function (dictMonadTell) {\n var Monad1 = dictMonadTell.Monad1();\n var Semigroup0 = dictMonadTell.Semigroup0();\n var monadMaybeT1 = monadMaybeT(Monad1);\n return {\n tell: (function () {\n var $166 = lift(Monad1);\n var $167 = Control_Monad_Writer_Class.tell(dictMonadTell);\n return function ($168) {\n return $166($167($168));\n };\n })(),\n Semigroup0: function () {\n return Semigroup0;\n },\n Monad1: function () {\n return monadMaybeT1;\n }\n };\n};\nvar monadWriterMaybeT = function (dictMonadWriter) {\n var MonadTell1 = dictMonadWriter.MonadTell1();\n var Monad1 = MonadTell1.Monad1();\n var bind = Control_Bind.bind(Monad1.Bind1());\n var listen = Control_Monad_Writer_Class.listen(dictMonadWriter);\n var pure = Control_Applicative.pure(Monad1.Applicative0());\n var pass = Control_Monad_Writer_Class.pass(dictMonadWriter);\n var Monoid0 = dictMonadWriter.Monoid0();\n var monadTellMaybeT1 = monadTellMaybeT(MonadTell1);\n return {\n listen: mapMaybeT(function (m) {\n return bind(listen(m))(function (v) {\n return pure(map(function (r) {\n return new Data_Tuple.Tuple(r, v.value1);\n })(v.value0));\n });\n }),\n pass: mapMaybeT(function (m) {\n return pass(bind(m)(function (a) {\n return pure((function () {\n if (a instanceof Data_Maybe.Nothing) {\n return new Data_Tuple.Tuple(Data_Maybe.Nothing.value, identity);\n };\n if (a instanceof Data_Maybe.Just) {\n return new Data_Tuple.Tuple(new Data_Maybe.Just(a.value0.value0), a.value0.value1);\n };\n throw new Error(\"Failed pattern match at Control.Monad.Maybe.Trans (line 119, column 10 - line 121, column 43): \" + [ a.constructor.name ]);\n })());\n }));\n }),\n Monoid0: function () {\n return Monoid0;\n },\n MonadTell1: function () {\n return monadTellMaybeT1;\n }\n };\n};\nvar monadThrowMaybeT = function (dictMonadThrow) {\n var Monad0 = dictMonadThrow.Monad0();\n var lift1 = lift(Monad0);\n var throwError = Control_Monad_Error_Class.throwError(dictMonadThrow);\n var monadMaybeT1 = monadMaybeT(Monad0);\n return {\n throwError: function (e) {\n return lift1(throwError(e));\n },\n Monad0: function () {\n return monadMaybeT1;\n }\n };\n};\nvar monadErrorMaybeT = function (dictMonadError) {\n var catchError = Control_Monad_Error_Class.catchError(dictMonadError);\n var monadThrowMaybeT1 = monadThrowMaybeT(dictMonadError.MonadThrow0());\n return {\n catchError: function (v) {\n return function (h) {\n return catchError(v)(function (a) {\n var v1 = h(a);\n return v1;\n });\n };\n },\n MonadThrow0: function () {\n return monadThrowMaybeT1;\n }\n };\n};\nvar monoidMaybeT = function (dictMonad) {\n var pure = Control_Applicative.pure(applicativeMaybeT(dictMonad));\n var semigroupMaybeT1 = semigroupMaybeT(dictMonad);\n return function (dictMonoid) {\n var semigroupMaybeT2 = semigroupMaybeT1(dictMonoid.Semigroup0());\n return {\n mempty: pure(Data_Monoid.mempty(dictMonoid)),\n Semigroup0: function () {\n return semigroupMaybeT2;\n }\n };\n };\n};\nvar altMaybeT = function (dictMonad) {\n var Bind1 = dictMonad.Bind1();\n var bind = Control_Bind.bind(Bind1);\n var pure = Control_Applicative.pure(dictMonad.Applicative0());\n var functorMaybeT1 = functorMaybeT((Bind1.Apply0()).Functor0());\n return {\n alt: function (v) {\n return function (v1) {\n return bind(v)(function (m) {\n if (m instanceof Data_Maybe.Nothing) {\n return v1;\n };\n return pure(m);\n });\n };\n },\n Functor0: function () {\n return functorMaybeT1;\n }\n };\n};\nvar plusMaybeT = function (dictMonad) {\n var altMaybeT1 = altMaybeT(dictMonad);\n return {\n empty: Control_Applicative.pure(dictMonad.Applicative0())(Data_Maybe.Nothing.value),\n Alt0: function () {\n return altMaybeT1;\n }\n };\n};\nvar alternativeMaybeT = function (dictMonad) {\n var applicativeMaybeT1 = applicativeMaybeT(dictMonad);\n var plusMaybeT1 = plusMaybeT(dictMonad);\n return {\n Applicative0: function () {\n return applicativeMaybeT1;\n },\n Plus1: function () {\n return plusMaybeT1;\n }\n };\n};\nvar monadPlusMaybeT = function (dictMonad) {\n var monadMaybeT1 = monadMaybeT(dictMonad);\n var alternativeMaybeT1 = alternativeMaybeT(dictMonad);\n return {\n Monad0: function () {\n return monadMaybeT1;\n },\n Alternative1: function () {\n return alternativeMaybeT1;\n }\n };\n};\nexport {\n MaybeT,\n runMaybeT,\n mapMaybeT,\n newtypeMaybeT,\n functorMaybeT,\n applyMaybeT,\n applicativeMaybeT,\n bindMaybeT,\n monadMaybeT,\n monadTransMaybeT,\n altMaybeT,\n plusMaybeT,\n alternativeMaybeT,\n monadPlusMaybeT,\n monadRecMaybeT,\n monadEffectMaybe,\n monadContMaybeT,\n monadThrowMaybeT,\n monadErrorMaybeT,\n monadAskMaybeT,\n monadReaderMaybeT,\n monadStateMaybeT,\n monadTellMaybeT,\n monadWriterMaybeT,\n semigroupMaybeT,\n monoidMaybeT\n};\nexport {\n lift\n} from \"../Control.Monad.Trans.Class/index.js\";\n","// Generated by purs version 0.15.7\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Control_Monad_Maybe_Trans from \"../Control.Monad.Maybe.Trans/index.js\";\nimport * as Data_Array from \"../Data.Array/index.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_List_Types from \"../Data.List.Types/index.js\";\nimport * as Data_Monoid from \"../Data.Monoid/index.js\";\nimport * as Data_String_Regex from \"../Data.String.Regex/index.js\";\nimport * as Data_String_Regex_Flags from \"../Data.String.Regex.Flags/index.js\";\nimport * as Data_String_Regex_Unsafe from \"../Data.String.Regex.Unsafe/index.js\";\nimport * as Data_Traversable from \"../Data.Traversable/index.js\";\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nvar traverse = /* #__PURE__ */ Data_Traversable.traverse(Data_Traversable.traversableArray);\nvar identity = /* #__PURE__ */ Control_Category.identity(Control_Category.categoryFn);\nvar mempty = /* #__PURE__ */ Data_Monoid.mempty(Data_Monoid.monoidArray);\nvar discard = /* #__PURE__ */ Control_Bind.discard(Control_Bind.discardUnit);\nvar unsafeTestRegex = function (patternString) {\n return function (text) {\n return Data_String_Regex.test(Data_String_Regex_Unsafe.unsafeRegex(patternString)(Data_String_Regex_Flags.noFlags))(text);\n };\n};\nvar succ$prime = function (dict) {\n return dict[\"succ'\"];\n};\nvar print = function (dict) {\n return dict.print;\n};\nvar pred$prime = function (dict) {\n return dict[\"pred'\"];\n};\nvar mapMaybeT = function (dictMonad) {\n var bind = Control_Bind.bind(dictMonad.Bind1());\n var Applicative0 = dictMonad.Applicative0();\n var traverse1 = traverse(Applicative0);\n var pure = Control_Applicative.pure(Applicative0);\n return function (f) {\n return function (array) {\n return bind(traverse1(function ($59) {\n return Control_Monad_Maybe_Trans.runMaybeT(f($59));\n })(array))(function (maybes) {\n return bind(pure(Data_Array.mapMaybe(identity)(maybes)))(function (values) {\n return pure(values);\n });\n });\n };\n };\n};\nvar mapMaybeM = function (dictMonad) {\n var bind = Control_Bind.bind(dictMonad.Bind1());\n var Applicative0 = dictMonad.Applicative0();\n var traverse1 = traverse(Applicative0);\n var pure = Control_Applicative.pure(Applicative0);\n return function (f) {\n return function (array) {\n return bind(traverse1(f)(array))(function (maybes) {\n return bind(pure(Data_Array.mapMaybe(identity)(maybes)))(function (values) {\n return pure(values);\n });\n });\n };\n };\n};\nvar hoistMaybeT$prime = function (dictMonad) {\n var bind = Control_Bind.bind(dictMonad.Bind1());\n var pure = Control_Applicative.pure(dictMonad.Applicative0());\n return function (maybeT) {\n return bind(Control_Monad_Maybe_Trans.runMaybeT(maybeT))(function (maybeA) {\n return pure(new Data_Tuple.Tuple(maybeA, mempty));\n });\n };\n};\nvar hoistMaybe$prime = function (dictMonad) {\n var pure = Control_Applicative.pure(dictMonad.Applicative0());\n return function (maybe) {\n return pure(new Data_Tuple.Tuple(maybe, mempty));\n };\n};\nvar foreachM = function (dictMonadState) {\n var Monad0 = dictMonadState.Monad0();\n var pure = Control_Applicative.pure(Monad0.Applicative0());\n var discard1 = discard(Monad0.Bind1());\n return function (v) {\n return function (v1) {\n if (v instanceof Data_List_Types.Nil) {\n return pure(Data_Unit.unit);\n };\n if (v instanceof Data_List_Types.Cons) {\n return discard1(v1(v.value0))(function () {\n return foreachM(dictMonadState)(v.value1)(v1);\n });\n };\n throw new Error(\"Failed pattern match at Utils (line 47, column 1 - line 47, column 78): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n };\n};\nvar foreach$prime = function ($copy_v) {\n return function ($copy_v1) {\n return function ($copy_v2) {\n var $tco_var_v = $copy_v;\n var $tco_var_v1 = $copy_v1;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(v, v1, v2) {\n if (v1 instanceof Data_List_Types.Nil) {\n $tco_done = true;\n return v;\n };\n if (v1 instanceof Data_List_Types.Cons) {\n var nextState = v2(v)(v1.value0);\n $tco_var_v = nextState;\n $tco_var_v1 = v1.value1;\n $copy_v2 = v2;\n return;\n };\n throw new Error(\"Failed pattern match at Utils (line 41, column 1 - line 41, column 58): \" + [ v.constructor.name, v1.constructor.name, v2.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_v, $tco_var_v1, $copy_v2);\n };\n return $tco_result;\n };\n };\n};\nvar foreach = function (v) {\n return function (v1) {\n return function (v2) {\n if (v1 instanceof Data_List_Types.Nil) {\n return Data_List_Types.Nil.value;\n };\n if (v1 instanceof Data_List_Types.Cons) {\n var next = v2(v)(v1.value0);\n return new Data_List_Types.Cons(Data_Tuple.snd(next), foreach(Data_Tuple.fst(next))(v1.value1)(v2));\n };\n throw new Error(\"Failed pattern match at Utils (line 35, column 1 - line 35, column 72): \" + [ v.constructor.name, v1.constructor.name, v2.constructor.name ]);\n };\n };\n};\nvar applyUntilIdempotent = function (dictEq) {\n var eq = Data_Eq.eq(dictEq);\n return function (f) {\n return function (x) {\n var result = f(x);\n var $58 = eq(result)(x);\n if ($58) {\n return result;\n };\n return applyUntilIdempotent(dictEq)(f)(result);\n };\n };\n};\nexport {\n pred$prime,\n print,\n succ$prime,\n applyUntilIdempotent,\n unsafeTestRegex,\n foreach,\n foreach$prime,\n foreachM,\n mapMaybeM,\n mapMaybeT,\n hoistMaybe$prime,\n hoistMaybeT$prime\n};\n","// Generated by purs version 0.15.7\nimport * as Data_Bounded_Generic from \"../Data.Bounded.Generic/index.js\";\nimport * as Data_Enum from \"../Data.Enum/index.js\";\nimport * as Data_Enum_Generic from \"../Data.Enum.Generic/index.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Foldable from \"../Data.Foldable/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Generic_Rep from \"../Data.Generic.Rep/index.js\";\nimport * as Data_Lens_Barlow from \"../Data.Lens.Barlow/index.js\";\nimport * as Data_Lens_Barlow_Construction from \"../Data.Lens.Barlow.Construction/index.js\";\nimport * as Data_Lens_Prism from \"../Data.Lens.Prism/index.js\";\nimport * as Data_List from \"../Data.List/index.js\";\nimport * as Data_List_Types from \"../Data.List.Types/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Data_Ordering from \"../Data.Ordering/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nimport * as Data_Show from \"../Data.Show/index.js\";\nimport * as Data_Show_Generic from \"../Data.Show.Generic/index.js\";\nimport * as Data_String_Common from \"../Data.String.Common/index.js\";\nimport * as Data_String_Utils from \"../Data.String.Utils/index.js\";\nimport * as Utils from \"../Utils/index.js\";\nvar append = /* #__PURE__ */ Data_Semigroup.append(Data_Semigroup.semigroupString);\nvar show = /* #__PURE__ */ Data_Show.show(Data_Show.showInt);\nvar genericShowConstructor = /* #__PURE__ */ Data_Show_Generic.genericShowConstructor(Data_Show_Generic.genericShowArgsNoArguments);\nvar foldr = /* #__PURE__ */ Data_Foldable.foldr(Data_List_Types.foldableList);\nvar map = /* #__PURE__ */ Data_Functor.map(Data_List_Types.functorList);\nvar mapFlipped = /* #__PURE__ */ Data_Functor.mapFlipped(Data_Maybe.functorMaybe);\nvar compare = /* #__PURE__ */ Data_Ord.compare(Data_Ord.ordInt);\nvar genericEnumConstructor = /* #__PURE__ */ Data_Enum_Generic.genericEnumConstructor(Data_Enum_Generic.genericEnumNoArguments);\nvar genericEnumSum = /* #__PURE__ */ Data_Enum_Generic.genericEnumSum(genericEnumConstructor)(/* #__PURE__ */ Data_Bounded_Generic.genericTopConstructor(Data_Bounded_Generic.genericTopNoArguments));\nvar genericBottomConstructor = /* #__PURE__ */ Data_Bounded_Generic.genericBottomConstructor(Data_Bounded_Generic.genericBottomNoArguments);\nvar genericBottomSum = /* #__PURE__ */ Data_Bounded_Generic.genericBottomSum(genericBottomConstructor);\nvar genericEnumSum1 = /* #__PURE__ */ genericEnumSum(/* #__PURE__ */ genericEnumSum(/* #__PURE__ */ genericEnumSum(/* #__PURE__ */ genericEnumSum(/* #__PURE__ */ genericEnumSum(/* #__PURE__ */ genericEnumSum(genericEnumConstructor)(genericBottomConstructor))(genericBottomSum))(genericBottomSum))(genericBottomSum))(genericBottomSum))(genericBottomSum);\nvar fromJust = /* #__PURE__ */ Data_Maybe.fromJust();\nvar barlowInstance = /* #__PURE__ */ Data_Lens_Barlow.barlowInstance();\nvar constructBarlowTConsRecor = /* #__PURE__ */ Data_Lens_Barlow_Construction.constructBarlowTConsRecor({\n reflectSymbol: function () {\n return \"type\";\n }\n})()();\nvar constructBarlowTConsRecor1 = /* #__PURE__ */ Data_Lens_Barlow_Construction.constructBarlowTConsRecor({\n reflectSymbol: function () {\n return \"spaceSuffix\";\n }\n})()();\nvar constructBarlowTConsRecor2 = /* #__PURE__ */ Data_Lens_Barlow_Construction.constructBarlowTConsRecor({\n reflectSymbol: function () {\n return \"root\";\n }\n})()();\nvar letterIsSymbol = {\n reflectSymbol: function () {\n return \"letter\";\n }\n};\nvar constructBarlowTConsRecor11 = /* #__PURE__ */ Data_Lens_Barlow_Construction.constructBarlowTConsRecor1(letterIsSymbol);\nvar constructBarlowTConsRecor3 = /* #__PURE__ */ Data_Lens_Barlow_Construction.constructBarlowTConsRecor({\n reflectSymbol: function () {\n return \"primitive\";\n }\n})()();\nvar constructBarlowTConsRecor4 = /* #__PURE__ */ Data_Lens_Barlow_Construction.constructBarlowTConsRecor({\n reflectSymbol: function () {\n return \"mods\";\n }\n})()();\nvar constructBarlowTConsRecor5 = /* #__PURE__ */ Data_Lens_Barlow_Construction.constructBarlowTConsRecor({\n reflectSymbol: function () {\n return \"mod\";\n }\n})()();\nvar constructBarlowTConsRecor6 = /* #__PURE__ */ Data_Lens_Barlow_Construction.constructBarlowTConsRecor({\n reflectSymbol: function () {\n return \"lowercase\";\n }\n})()();\nvar constructBarlowTConsRecor7 = /* #__PURE__ */ Data_Lens_Barlow_Construction.constructBarlowTConsRecor(letterIsSymbol)()();\nvar constructBarlowTConsRecor8 = /* #__PURE__ */ Data_Lens_Barlow_Construction.constructBarlowTConsRecor({\n reflectSymbol: function () {\n return \"elem\";\n }\n})()();\nvar constructBarlowTConsRecor9 = /* #__PURE__ */ Data_Lens_Barlow_Construction.constructBarlowTConsRecor({\n reflectSymbol: function () {\n return \"bass\";\n }\n})()();\nvar Transposition = function (x) {\n return x;\n};\nvar Title = /* #__PURE__ */ (function () {\n function Title(value0) {\n this.value0 = value0;\n };\n Title.create = function (value0) {\n return new Title(value0);\n };\n return Title;\n})();\nvar TitleOther = /* #__PURE__ */ (function () {\n function TitleOther(value0) {\n this.value0 = value0;\n };\n TitleOther.create = function (value0) {\n return new TitleOther(value0);\n };\n return TitleOther;\n})();\nvar Spaced = function (x) {\n return x;\n};\nvar A = /* #__PURE__ */ (function () {\n function A() {\n\n };\n A.value = new A();\n return A;\n})();\nvar B = /* #__PURE__ */ (function () {\n function B() {\n\n };\n B.value = new B();\n return B;\n})();\nvar C = /* #__PURE__ */ (function () {\n function C() {\n\n };\n C.value = new C();\n return C;\n})();\nvar D = /* #__PURE__ */ (function () {\n function D() {\n\n };\n D.value = new D();\n return D;\n})();\nvar E = /* #__PURE__ */ (function () {\n function E() {\n\n };\n E.value = new E();\n return E;\n})();\nvar F = /* #__PURE__ */ (function () {\n function F() {\n\n };\n F.value = new F();\n return F;\n})();\nvar G = /* #__PURE__ */ (function () {\n function G() {\n\n };\n G.value = new G();\n return G;\n})();\nvar NoteLetter = function (x) {\n return x;\n};\nvar Note = function (x) {\n return x;\n};\nvar Prefix = /* #__PURE__ */ (function () {\n function Prefix(value0) {\n this.value0 = value0;\n };\n Prefix.create = function (value0) {\n return new Prefix(value0);\n };\n return Prefix;\n})();\nvar Tuning = /* #__PURE__ */ (function () {\n function Tuning(value0) {\n this.value0 = value0;\n };\n Tuning.create = function (value0) {\n return new Tuning(value0);\n };\n return Tuning;\n})();\nvar TimelineConnection = /* #__PURE__ */ (function () {\n function TimelineConnection(value0) {\n this.value0 = value0;\n };\n TimelineConnection.create = function (value0) {\n return new TimelineConnection(value0);\n };\n return TimelineConnection;\n})();\nvar TimelineSep = /* #__PURE__ */ (function () {\n function TimelineSep(value0) {\n this.value0 = value0;\n };\n TimelineSep.create = function (value0) {\n return new TimelineSep(value0);\n };\n return TimelineSep;\n})();\nvar TimelineSpace = /* #__PURE__ */ (function () {\n function TimelineSpace(value0) {\n this.value0 = value0;\n };\n TimelineSpace.create = function (value0) {\n return new TimelineSpace(value0);\n };\n return TimelineSpace;\n})();\nvar Fret = /* #__PURE__ */ (function () {\n function Fret(value0) {\n this.value0 = value0;\n };\n Fret.create = function (value0) {\n return new Fret(value0);\n };\n return Fret;\n})();\nvar Special = /* #__PURE__ */ (function () {\n function Special(value0) {\n this.value0 = value0;\n };\n Special.create = function (value0) {\n return new Special(value0);\n };\n return Special;\n})();\nvar Suffix = /* #__PURE__ */ (function () {\n function Suffix(value0) {\n this.value0 = value0;\n };\n Suffix.create = function (value0) {\n return new Suffix(value0);\n };\n return Suffix;\n})();\nvar Header = /* #__PURE__ */ (function () {\n function Header(value0) {\n this.value0 = value0;\n };\n Header.create = function (value0) {\n return new Header(value0);\n };\n return Header;\n})();\nvar HeaderSuffix = /* #__PURE__ */ (function () {\n function HeaderSuffix(value0) {\n this.value0 = value0;\n };\n HeaderSuffix.create = function (value0) {\n return new HeaderSuffix(value0);\n };\n return HeaderSuffix;\n})();\nvar ChordMod = function (x) {\n return x;\n};\nvar ChordFret = /* #__PURE__ */ (function () {\n function ChordFret(value0) {\n this.value0 = value0;\n };\n ChordFret.create = function (value0) {\n return new ChordFret(value0);\n };\n return ChordFret;\n})();\nvar ChordSpecial = /* #__PURE__ */ (function () {\n function ChordSpecial(value0) {\n this.value0 = value0;\n };\n ChordSpecial.create = function (value0) {\n return new ChordSpecial(value0);\n };\n return ChordSpecial;\n})();\nvar Chord = function (x) {\n return x;\n};\nvar ChordLineChord = /* #__PURE__ */ (function () {\n function ChordLineChord(value0) {\n this.value0 = value0;\n };\n ChordLineChord.create = function (value0) {\n return new ChordLineChord(value0);\n };\n return ChordLineChord;\n})();\nvar ChordComment = /* #__PURE__ */ (function () {\n function ChordComment(value0) {\n this.value0 = value0;\n };\n ChordComment.create = function (value0) {\n return new ChordComment(value0);\n };\n return ChordComment;\n})();\nvar Text = /* #__PURE__ */ (function () {\n function Text(value0) {\n this.value0 = value0;\n };\n Text.create = function (value0) {\n return new Text(value0);\n };\n return Text;\n})();\nvar Spaces = /* #__PURE__ */ (function () {\n function Spaces(value0) {\n this.value0 = value0;\n };\n Spaces.create = function (value0) {\n return new Spaces(value0);\n };\n return Spaces;\n})();\nvar TextLineChord = /* #__PURE__ */ (function () {\n function TextLineChord(value0) {\n this.value0 = value0;\n };\n TextLineChord.create = function (value0) {\n return new TextLineChord(value0);\n };\n return TextLineChord;\n})();\nvar ChordLegend = /* #__PURE__ */ (function () {\n function ChordLegend(value0) {\n this.value0 = value0;\n };\n ChordLegend.create = function (value0) {\n return new ChordLegend(value0);\n };\n return ChordLegend;\n})();\nvar TitleLine = /* #__PURE__ */ (function () {\n function TitleLine(value0) {\n this.value0 = value0;\n };\n TitleLine.create = function (value0) {\n return new TitleLine(value0);\n };\n return TitleLine;\n})();\nvar HeaderLine = /* #__PURE__ */ (function () {\n function HeaderLine(value0) {\n this.value0 = value0;\n };\n HeaderLine.create = function (value0) {\n return new HeaderLine(value0);\n };\n return HeaderLine;\n})();\nvar TablatureLine = /* #__PURE__ */ (function () {\n function TablatureLine(value0) {\n this.value0 = value0;\n };\n TablatureLine.create = function (value0) {\n return new TablatureLine(value0);\n };\n return TablatureLine;\n})();\nvar ChordLine = /* #__PURE__ */ (function () {\n function ChordLine(value0) {\n this.value0 = value0;\n };\n ChordLine.create = function (value0) {\n return new ChordLine(value0);\n };\n return ChordLine;\n})();\nvar TextLine = /* #__PURE__ */ (function () {\n function TextLine(value0) {\n this.value0 = value0;\n };\n TextLine.create = function (value0) {\n return new TextLine(value0);\n };\n return TextLine;\n})();\nvar showTransposition = {\n show: function (v) {\n var $380 = v >= 0;\n if ($380) {\n return \"+\" + show(v);\n };\n return show(v);\n }\n};\nvar showTitleLineElem = {\n show: function (v) {\n if (v instanceof Title) {\n return v.value0;\n };\n if (v instanceof TitleOther) {\n return v.value0;\n };\n throw new Error(\"Failed pattern match at TablatureDocument (line 301, column 1 - line 303, column 36): \" + [ v.constructor.name ]);\n }\n};\nvar show1 = /* #__PURE__ */ Data_Show.show(/* #__PURE__ */ Data_List_Types.showList(showTitleLineElem));\nvar showHeaderLineElem = {\n show: function (v) {\n if (v instanceof Header) {\n return v.value0;\n };\n if (v instanceof HeaderSuffix) {\n return v.value0;\n };\n throw new Error(\"Failed pattern match at TablatureDocument (line 297, column 1 - line 299, column 38): \" + [ v.constructor.name ]);\n }\n};\nvar show2 = /* #__PURE__ */ Data_Show.show(/* #__PURE__ */ Data_List_Types.showList(showHeaderLineElem));\nvar showChordMod = {\n show: function (v) {\n return v.pre + (v.interval + v.post);\n }\n};\nvar printSpaced = function (dictPrint) {\n var print5 = Utils.print(dictPrint);\n return {\n print: function (v) {\n return print5(v.elem) + Data_Maybe.fromMaybe(\"\")(Data_String_Utils.repeat(v.spaceSuffix)(\" \"));\n }\n };\n};\nvar printChordMod = {\n print: function (v) {\n return v.pre + (v.interval + v.post);\n }\n};\nvar newtypeSpaced_ = {\n Coercible0: function () {\n return undefined;\n }\n};\nvar newtypeNote_ = {\n Coercible0: function () {\n return undefined;\n }\n};\nvar newtypeNoteLetter_ = {\n Coercible0: function () {\n return undefined;\n }\n};\nvar newtypeChord_ = {\n Coercible0: function () {\n return undefined;\n }\n};\nvar genericTitleLineElem_ = {\n to: function (x) {\n if (x instanceof Data_Generic_Rep.Inl) {\n return new Title(x.value0);\n };\n if (x instanceof Data_Generic_Rep.Inr) {\n return new TitleOther(x.value0);\n };\n throw new Error(\"Failed pattern match at TablatureDocument (line 70, column 1 - line 70, column 40): \" + [ x.constructor.name ]);\n },\n from: function (x) {\n if (x instanceof Title) {\n return new Data_Generic_Rep.Inl(x.value0);\n };\n if (x instanceof TitleOther) {\n return new Data_Generic_Rep.Inr(x.value0);\n };\n throw new Error(\"Failed pattern match at TablatureDocument (line 70, column 1 - line 70, column 40): \" + [ x.constructor.name ]);\n }\n};\nvar genericTablatureDocumentL = {\n to: function (x) {\n if (x instanceof Data_Generic_Rep.Inl) {\n return new TitleLine(x.value0);\n };\n if (x instanceof Data_Generic_Rep.Inr && x.value0 instanceof Data_Generic_Rep.Inl) {\n return new HeaderLine(x.value0.value0);\n };\n if (x instanceof Data_Generic_Rep.Inr && (x.value0 instanceof Data_Generic_Rep.Inr && x.value0.value0 instanceof Data_Generic_Rep.Inl)) {\n return new TablatureLine(x.value0.value0.value0);\n };\n if (x instanceof Data_Generic_Rep.Inr && (x.value0 instanceof Data_Generic_Rep.Inr && (x.value0.value0 instanceof Data_Generic_Rep.Inr && x.value0.value0.value0 instanceof Data_Generic_Rep.Inl))) {\n return new ChordLine(x.value0.value0.value0.value0);\n };\n if (x instanceof Data_Generic_Rep.Inr && (x.value0 instanceof Data_Generic_Rep.Inr && (x.value0.value0 instanceof Data_Generic_Rep.Inr && x.value0.value0.value0 instanceof Data_Generic_Rep.Inr))) {\n return new TextLine(x.value0.value0.value0.value0);\n };\n throw new Error(\"Failed pattern match at TablatureDocument (line 29, column 1 - line 29, column 48): \" + [ x.constructor.name ]);\n },\n from: function (x) {\n if (x instanceof TitleLine) {\n return new Data_Generic_Rep.Inl(x.value0);\n };\n if (x instanceof HeaderLine) {\n return new Data_Generic_Rep.Inr(new Data_Generic_Rep.Inl(x.value0));\n };\n if (x instanceof TablatureLine) {\n return new Data_Generic_Rep.Inr(new Data_Generic_Rep.Inr(new Data_Generic_Rep.Inl(x.value0)));\n };\n if (x instanceof ChordLine) {\n return new Data_Generic_Rep.Inr(new Data_Generic_Rep.Inr(new Data_Generic_Rep.Inr(new Data_Generic_Rep.Inl(x.value0))));\n };\n if (x instanceof TextLine) {\n return new Data_Generic_Rep.Inr(new Data_Generic_Rep.Inr(new Data_Generic_Rep.Inr(new Data_Generic_Rep.Inr(x.value0))));\n };\n throw new Error(\"Failed pattern match at TablatureDocument (line 29, column 1 - line 29, column 48): \" + [ x.constructor.name ]);\n }\n};\nvar constructBarlow1 = /* #__PURE__ */ Data_Lens_Barlow_Construction.constructBarlow1(genericTablatureDocumentL);\nvar genericNoteLetterPrimitiv = {\n to: function (x) {\n if (x instanceof Data_Generic_Rep.Inl) {\n return A.value;\n };\n if (x instanceof Data_Generic_Rep.Inr && x.value0 instanceof Data_Generic_Rep.Inl) {\n return B.value;\n };\n if (x instanceof Data_Generic_Rep.Inr && (x.value0 instanceof Data_Generic_Rep.Inr && x.value0.value0 instanceof Data_Generic_Rep.Inl)) {\n return C.value;\n };\n if (x instanceof Data_Generic_Rep.Inr && (x.value0 instanceof Data_Generic_Rep.Inr && (x.value0.value0 instanceof Data_Generic_Rep.Inr && x.value0.value0.value0 instanceof Data_Generic_Rep.Inl))) {\n return D.value;\n };\n if (x instanceof Data_Generic_Rep.Inr && (x.value0 instanceof Data_Generic_Rep.Inr && (x.value0.value0 instanceof Data_Generic_Rep.Inr && (x.value0.value0.value0 instanceof Data_Generic_Rep.Inr && x.value0.value0.value0.value0 instanceof Data_Generic_Rep.Inl)))) {\n return E.value;\n };\n if (x instanceof Data_Generic_Rep.Inr && (x.value0 instanceof Data_Generic_Rep.Inr && (x.value0.value0 instanceof Data_Generic_Rep.Inr && (x.value0.value0.value0 instanceof Data_Generic_Rep.Inr && (x.value0.value0.value0.value0 instanceof Data_Generic_Rep.Inr && x.value0.value0.value0.value0.value0 instanceof Data_Generic_Rep.Inl))))) {\n return F.value;\n };\n if (x instanceof Data_Generic_Rep.Inr && (x.value0 instanceof Data_Generic_Rep.Inr && (x.value0.value0 instanceof Data_Generic_Rep.Inr && (x.value0.value0.value0 instanceof Data_Generic_Rep.Inr && (x.value0.value0.value0.value0 instanceof Data_Generic_Rep.Inr && x.value0.value0.value0.value0.value0 instanceof Data_Generic_Rep.Inr))))) {\n return G.value;\n };\n throw new Error(\"Failed pattern match at TablatureDocument (line 209, column 1 - line 209, column 46): \" + [ x.constructor.name ]);\n },\n from: function (x) {\n if (x instanceof A) {\n return new Data_Generic_Rep.Inl(Data_Generic_Rep.NoArguments.value);\n };\n if (x instanceof B) {\n return new Data_Generic_Rep.Inr(new Data_Generic_Rep.Inl(Data_Generic_Rep.NoArguments.value));\n };\n if (x instanceof C) {\n return new Data_Generic_Rep.Inr(new Data_Generic_Rep.Inr(new Data_Generic_Rep.Inl(Data_Generic_Rep.NoArguments.value)));\n };\n if (x instanceof D) {\n return new Data_Generic_Rep.Inr(new Data_Generic_Rep.Inr(new Data_Generic_Rep.Inr(new Data_Generic_Rep.Inl(Data_Generic_Rep.NoArguments.value))));\n };\n if (x instanceof E) {\n return new Data_Generic_Rep.Inr(new Data_Generic_Rep.Inr(new Data_Generic_Rep.Inr(new Data_Generic_Rep.Inr(new Data_Generic_Rep.Inl(Data_Generic_Rep.NoArguments.value)))));\n };\n if (x instanceof F) {\n return new Data_Generic_Rep.Inr(new Data_Generic_Rep.Inr(new Data_Generic_Rep.Inr(new Data_Generic_Rep.Inr(new Data_Generic_Rep.Inr(new Data_Generic_Rep.Inl(Data_Generic_Rep.NoArguments.value))))));\n };\n if (x instanceof G) {\n return new Data_Generic_Rep.Inr(new Data_Generic_Rep.Inr(new Data_Generic_Rep.Inr(new Data_Generic_Rep.Inr(new Data_Generic_Rep.Inr(new Data_Generic_Rep.Inr(Data_Generic_Rep.NoArguments.value))))));\n };\n throw new Error(\"Failed pattern match at TablatureDocument (line 209, column 1 - line 209, column 46): \" + [ x.constructor.name ]);\n }\n};\nvar genericSucc = /* #__PURE__ */ Data_Enum_Generic.genericSucc(genericNoteLetterPrimitiv)(genericEnumSum1);\nvar genericPred = /* #__PURE__ */ Data_Enum_Generic.genericPred(genericNoteLetterPrimitiv)(genericEnumSum1);\nvar printNoteLetterPrimitive = {\n print: /* #__PURE__ */ Data_Show_Generic.genericShow(genericNoteLetterPrimitiv)(/* #__PURE__ */ Data_Show_Generic.genericShowSum(/* #__PURE__ */ genericShowConstructor({\n reflectSymbol: function () {\n return \"A\";\n }\n }))(/* #__PURE__ */ Data_Show_Generic.genericShowSum(/* #__PURE__ */ genericShowConstructor({\n reflectSymbol: function () {\n return \"B\";\n }\n }))(/* #__PURE__ */ Data_Show_Generic.genericShowSum(/* #__PURE__ */ genericShowConstructor({\n reflectSymbol: function () {\n return \"C\";\n }\n }))(/* #__PURE__ */ Data_Show_Generic.genericShowSum(/* #__PURE__ */ genericShowConstructor({\n reflectSymbol: function () {\n return \"D\";\n }\n }))(/* #__PURE__ */ Data_Show_Generic.genericShowSum(/* #__PURE__ */ genericShowConstructor({\n reflectSymbol: function () {\n return \"E\";\n }\n }))(/* #__PURE__ */ Data_Show_Generic.genericShowSum(/* #__PURE__ */ genericShowConstructor({\n reflectSymbol: function () {\n return \"F\";\n }\n }))(/* #__PURE__ */ genericShowConstructor({\n reflectSymbol: function () {\n return \"G\";\n }\n }))))))))\n};\nvar print = /* #__PURE__ */ Utils.print(printNoteLetterPrimitive);\nvar printNoteLetter = {\n print: function (v) {\n var uppercase = print(v.primitive);\n if (v.lowercase) {\n return Data_String_Common.toLower(uppercase);\n };\n return uppercase;\n }\n};\nvar print1 = /* #__PURE__ */ Utils.print(printNoteLetter);\nvar printNote = {\n print: function (v) {\n return print1(v.letter) + v.mod;\n }\n};\nvar print2 = /* #__PURE__ */ Utils.print(printNote);\nvar print3 = /* #__PURE__ */ Utils.print(/* #__PURE__ */ printSpaced(printNote));\nvar printChord = {\n print: function (v) {\n return print2(v.root) + (v.type + (foldr(append)(\"\")(map(function (v1) {\n return v1.pre + (v1.interval + v1.post);\n })(v.mods)) + Data_Maybe.fromMaybe(\"\")(mapFlipped(v.bass)(print2))));\n }\n};\nvar print4 = /* #__PURE__ */ Utils.print(/* #__PURE__ */ printSpaced(printChord));\nvar showChordLineElem = {\n show: function (v) {\n if (v instanceof ChordLineChord) {\n return print4(v.value0);\n };\n if (v instanceof ChordComment) {\n return v.value0;\n };\n throw new Error(\"Failed pattern match at TablatureDocument (line 290, column 1 - line 292, column 38): \" + [ v.constructor.name ]);\n }\n};\nvar show3 = /* #__PURE__ */ Data_Show.show(/* #__PURE__ */ Data_List_Types.showList(showChordLineElem));\nvar showTextLineElem = {\n show: function (v) {\n if (v instanceof Text) {\n return v.value0;\n };\n if (v instanceof Spaces) {\n return v.value0;\n };\n if (v instanceof TextLineChord) {\n return print4(v.value0);\n };\n if (v instanceof ChordLegend) {\n return \"legend\";\n };\n throw new Error(\"Failed pattern match at TablatureDocument (line 284, column 1 - line 288, column 34): \" + [ v.constructor.name ]);\n }\n};\nvar show4 = /* #__PURE__ */ Data_Show.show(/* #__PURE__ */ Data_List_Types.showList(showTextLineElem));\nvar printTablatureLineElem = {\n print: function (v) {\n if (v instanceof Prefix) {\n return v.value0;\n };\n if (v instanceof Tuning) {\n return print3(v.value0);\n };\n if (v instanceof TimelineSep) {\n return v.value0;\n };\n if (v instanceof TimelineConnection) {\n return v.value0;\n };\n if (v instanceof TimelineSpace) {\n return v.value0;\n };\n if (v instanceof Fret) {\n return v.value0;\n };\n if (v instanceof Special) {\n return v.value0;\n };\n if (v instanceof Suffix) {\n return v.value0;\n };\n throw new Error(\"Failed pattern match at TablatureDocument (line 274, column 1 - line 282, column 33): \" + [ v.constructor.name ]);\n }\n};\nvar showTablatureLineElem = {\n show: /* #__PURE__ */ Utils.print(printTablatureLineElem)\n};\nvar show5 = /* #__PURE__ */ Data_Show.show(/* #__PURE__ */ Data_List_Types.showList(showTablatureLineElem));\nvar showTablatureDocumentLine = {\n show: function (v) {\n if (v instanceof TitleLine) {\n return \"Title: \" + show1(v.value0);\n };\n if (v instanceof TablatureLine) {\n return \"Tab: \" + show5(v.value0);\n };\n if (v instanceof TextLine) {\n return \"Text: \" + show4(v.value0);\n };\n if (v instanceof ChordLine) {\n return \"Chords: \" + show3(v.value0);\n };\n if (v instanceof HeaderLine) {\n return \"Header: \" + show2(v.value0);\n };\n throw new Error(\"Failed pattern match at TablatureDocument (line 264, column 1 - line 269, column 53): \" + [ v.constructor.name ]);\n }\n};\nvar eqTransposition = {\n eq: function (v) {\n return function (v1) {\n return v === v1;\n };\n }\n};\nvar ordTransposition = {\n compare: function (v) {\n return function (v1) {\n return compare(v)(v1);\n };\n },\n Eq0: function () {\n return eqTransposition;\n }\n};\nvar eqNoteLetterPrimitive = {\n eq: function (x) {\n return function (y) {\n if (x instanceof A && y instanceof A) {\n return true;\n };\n if (x instanceof B && y instanceof B) {\n return true;\n };\n if (x instanceof C && y instanceof C) {\n return true;\n };\n if (x instanceof D && y instanceof D) {\n return true;\n };\n if (x instanceof E && y instanceof E) {\n return true;\n };\n if (x instanceof F && y instanceof F) {\n return true;\n };\n if (x instanceof G && y instanceof G) {\n return true;\n };\n return false;\n };\n }\n};\nvar eq3 = /* #__PURE__ */ Data_Eq.eq(eqNoteLetterPrimitive);\nvar ordNoteLetterPrimitive = {\n compare: function (x) {\n return function (y) {\n if (x instanceof A && y instanceof A) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof A) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof A) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof B && y instanceof B) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof B) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof B) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof C && y instanceof C) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof C) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof C) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof D && y instanceof D) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof D) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof D) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof E && y instanceof E) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof E) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof E) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof F && y instanceof F) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof F) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof F) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof G && y instanceof G) {\n return Data_Ordering.EQ.value;\n };\n throw new Error(\"Failed pattern match at TablatureDocument (line 0, column 0 - line 0, column 0): \" + [ x.constructor.name, y.constructor.name ]);\n };\n },\n Eq0: function () {\n return eqNoteLetterPrimitive;\n }\n};\nvar compare1 = /* #__PURE__ */ Data_Ord.compare(ordNoteLetterPrimitive);\nvar eqNoteLetter = {\n eq: function (x) {\n return function (y) {\n return x.lowercase === y.lowercase && eq3(x.primitive)(y.primitive);\n };\n }\n};\nvar eq4 = /* #__PURE__ */ Data_Eq.eq(eqNoteLetter);\nvar ordNoteLetter = {\n compare: function (v) {\n return function (v1) {\n return compare1(v.primitive)(v1.primitive);\n };\n },\n Eq0: function () {\n return eqNoteLetter;\n }\n};\nvar eqNote = {\n eq: function (x) {\n return function (y) {\n return eq4(x.letter)(y.letter) && x.mod === y.mod;\n };\n }\n};\nvar eq5 = /* #__PURE__ */ Data_Eq.eq(/* #__PURE__ */ Data_Maybe.eqMaybe(eqNote));\nvar eq6 = /* #__PURE__ */ Data_Eq.eq(eqNote);\nvar eqChordMod = {\n eq: function (x) {\n return function (y) {\n return x.interval === y.interval && x.post === y.post && x.pre === y.pre;\n };\n }\n};\nvar eq7 = /* #__PURE__ */ Data_Eq.eq(/* #__PURE__ */ Data_List_Types.eqList(eqChordMod));\nvar eqChord = {\n eq: function (x) {\n return function (y) {\n return eq5(x.bass)(y.bass) && eq7(x.mods)(y.mods) && eq6(x.root)(y.root) && x.type === y.type;\n };\n }\n};\nvar enumNoteLetterPrimitive = {\n succ: function (v) {\n if (v instanceof G) {\n return new Data_Maybe.Just(A.value);\n };\n return genericSucc(v);\n },\n pred: function (v) {\n if (v instanceof A) {\n return new Data_Maybe.Just(G.value);\n };\n return genericPred(v);\n },\n Ord0: function () {\n return ordNoteLetterPrimitive;\n }\n};\nvar succ = /* #__PURE__ */ Data_Enum.succ(enumNoteLetterPrimitive);\nvar pred = /* #__PURE__ */ Data_Enum.pred(enumNoteLetterPrimitive);\nvar cyclicEnumNoteLetterPrimi = {\n \"succ'\": function (x) {\n return fromJust(succ(x));\n },\n \"pred'\": function (x) {\n return fromJust(pred(x));\n },\n Enum0: function () {\n return enumNoteLetterPrimitive;\n }\n};\nvar succTransposition = function (v) {\n return v + 1 | 0;\n};\nvar predTransposition = function (v) {\n return v - 1 | 0;\n};\nvar identityTransposition = 0;\nvar getTitle = function (tablatureDocument) {\n var isTitleLine = function (v) {\n if (v instanceof TitleLine) {\n return true;\n };\n return false;\n };\n var isTitle = function (v) {\n if (v instanceof Title) {\n return true;\n };\n return false;\n };\n var findElement = function (p) {\n return function (l) {\n var v = Data_List.findIndex(p)(l);\n if (v instanceof Data_Maybe.Nothing) {\n return Data_Maybe.Nothing.value;\n };\n if (v instanceof Data_Maybe.Just) {\n var v1 = Data_List.index(l)(v.value0);\n if (v1 instanceof Data_Maybe.Nothing) {\n return Data_Maybe.Nothing.value;\n };\n if (v1 instanceof Data_Maybe.Just) {\n return new Data_Maybe.Just(v1.value0);\n };\n throw new Error(\"Failed pattern match at TablatureDocument (line 50, column 21 - line 52, column 31): \" + [ v1.constructor.name ]);\n };\n throw new Error(\"Failed pattern match at TablatureDocument (line 48, column 5 - line 52, column 31): \" + [ v.constructor.name ]);\n };\n };\n var v = findElement(isTitleLine)(tablatureDocument);\n if (v instanceof Data_Maybe.Just && v.value0 instanceof TitleLine) {\n var v1 = findElement(isTitle)(v.value0.value0);\n if (v1 instanceof Data_Maybe.Just && v1.value0 instanceof Title) {\n return new Data_Maybe.Just(v1.value0.value0);\n };\n return Data_Maybe.Nothing.value;\n };\n return Data_Maybe.Nothing.value;\n};\nvar fromString = function (v) {\n if (v === \"A\") {\n return new Data_Maybe.Just(A.value);\n };\n if (v === \"B\") {\n return new Data_Maybe.Just(B.value);\n };\n if (v === \"C\") {\n return new Data_Maybe.Just(C.value);\n };\n if (v === \"D\") {\n return new Data_Maybe.Just(D.value);\n };\n if (v === \"E\") {\n return new Data_Maybe.Just(E.value);\n };\n if (v === \"F\") {\n return new Data_Maybe.Just(F.value);\n };\n if (v === \"G\") {\n return new Data_Maybe.Just(G.value);\n };\n return Data_Maybe.Nothing.value;\n};\nvar _type = function (dictStrong) {\n return Data_Lens_Barlow.barlow(barlowInstance(Data_Lens_Barlow_Construction.constructBarlowTConsExcla(constructBarlowTConsRecor(dictStrong))()(dictStrong.Profunctor0())))(Data_Lens_Barlow.key);\n};\nvar _spaceSuffix = function (dictStrong) {\n return Data_Lens_Barlow.barlow(barlowInstance(Data_Lens_Barlow_Construction.constructBarlowTConsExcla(constructBarlowTConsRecor1(dictStrong))()(dictStrong.Profunctor0())))(Data_Lens_Barlow.key);\n};\nvar _root = function (dictStrong) {\n return Data_Lens_Barlow.barlow(barlowInstance(Data_Lens_Barlow_Construction.constructBarlowTConsExcla(constructBarlowTConsRecor2(dictStrong))()(dictStrong.Profunctor0())))(Data_Lens_Barlow.key);\n};\nvar _primitive = function (dictStrong) {\n var Profunctor0 = dictStrong.Profunctor0();\n return Data_Lens_Barlow.barlow(barlowInstance(Data_Lens_Barlow_Construction.constructBarlowTConsExcla(constructBarlowTConsRecor11(Data_Lens_Barlow_Construction.constructBarlowTConsExcla(constructBarlowTConsRecor3(dictStrong))()(Profunctor0))()()(dictStrong))()(Profunctor0)))(Data_Lens_Barlow.key);\n};\nvar _mods = function (dictStrong) {\n return Data_Lens_Barlow.barlow(barlowInstance(Data_Lens_Barlow_Construction.constructBarlowTConsExcla(constructBarlowTConsRecor4(dictStrong))()(dictStrong.Profunctor0())))(Data_Lens_Barlow.key);\n};\nvar _mod = function (dictStrong) {\n return Data_Lens_Barlow.barlow(barlowInstance(Data_Lens_Barlow_Construction.constructBarlowTConsExcla(constructBarlowTConsRecor5(dictStrong))()(dictStrong.Profunctor0())))(Data_Lens_Barlow.key);\n};\nvar _lowercase = function (dictStrong) {\n var Profunctor0 = dictStrong.Profunctor0();\n return Data_Lens_Barlow.barlow(barlowInstance(Data_Lens_Barlow_Construction.constructBarlowTConsExcla(constructBarlowTConsRecor11(Data_Lens_Barlow_Construction.constructBarlowTConsExcla(constructBarlowTConsRecor6(dictStrong))()(Profunctor0))()()(dictStrong))()(Profunctor0)))(Data_Lens_Barlow.key);\n};\nvar _letter = function (dictStrong) {\n return Data_Lens_Barlow.barlow(barlowInstance(Data_Lens_Barlow_Construction.constructBarlowTConsExcla(constructBarlowTConsRecor7(dictStrong))()(dictStrong.Profunctor0())))(Data_Lens_Barlow.key);\n};\nvar _elem = function (dictStrong) {\n return Data_Lens_Barlow.barlow(barlowInstance(Data_Lens_Barlow_Construction.constructBarlowTConsExcla(constructBarlowTConsRecor8(dictStrong))()(dictStrong.Profunctor0())))(Data_Lens_Barlow.key);\n};\nvar _bass = function (dictStrong) {\n return Data_Lens_Barlow.barlow(barlowInstance(Data_Lens_Barlow_Construction.constructBarlowTConsExcla(constructBarlowTConsRecor9(dictStrong))()(dictStrong.Profunctor0())))(Data_Lens_Barlow.key);\n};\nvar _Tuning = function (dictChoice) {\n return Data_Lens_Prism[\"prism$prime\"](Tuning.create)(function (v) {\n if (v instanceof Tuning) {\n return new Data_Maybe.Just(v.value0);\n };\n return Data_Maybe.Nothing.value;\n })(dictChoice);\n};\nvar _TitleLine = function (dictChoice) {\n return Data_Lens_Barlow.barlow(barlowInstance(constructBarlow1(Data_Lens_Barlow_Construction.constructBarlowGenericTCo4(dictChoice))(dictChoice.Profunctor0())))(Data_Lens_Barlow.key);\n};\nvar _Title = function (dictConstructBarlow) {\n return Data_Lens_Barlow.barlow(barlowInstance(dictConstructBarlow))(Data_Lens_Barlow.key);\n};\nvar _TextLineChord = function (dictChoice) {\n return Data_Lens_Prism[\"prism$prime\"](TextLineChord.create)(function (v) {\n if (v instanceof TextLineChord) {\n return new Data_Maybe.Just(v.value0);\n };\n return Data_Maybe.Nothing.value;\n })(dictChoice);\n};\nvar _TextLine = function (dictChoice) {\n return Data_Lens_Barlow.barlow(barlowInstance(constructBarlow1(Data_Lens_Barlow_Construction.constructBarlowGenericTCo10(Data_Lens_Barlow_Construction.constructBarlowGenericTCo10(Data_Lens_Barlow_Construction.constructBarlowGenericTCo10(Data_Lens_Barlow_Construction.constructBarlowGenericTCo2(dictChoice))(dictChoice))(dictChoice))(dictChoice))(dictChoice.Profunctor0())))(Data_Lens_Barlow.key);\n};\nvar _TablatureLine = function (dictChoice) {\n return Data_Lens_Barlow.barlow(barlowInstance(constructBarlow1(Data_Lens_Barlow_Construction.constructBarlowGenericTCo10(Data_Lens_Barlow_Construction.constructBarlowGenericTCo10(Data_Lens_Barlow_Construction.constructBarlowGenericTCo4(dictChoice))(dictChoice))(dictChoice))(dictChoice.Profunctor0())))(Data_Lens_Barlow.key);\n};\nvar _ChordLineChord = function (dictChoice) {\n return Data_Lens_Prism[\"prism$prime\"](ChordLineChord.create)(function (v) {\n if (v instanceof ChordLineChord) {\n return new Data_Maybe.Just(v.value0);\n };\n return Data_Maybe.Nothing.value;\n })(dictChoice);\n};\nvar _ChordLine = function (dictChoice) {\n return Data_Lens_Barlow.barlow(barlowInstance(constructBarlow1(Data_Lens_Barlow_Construction.constructBarlowGenericTCo10(Data_Lens_Barlow_Construction.constructBarlowGenericTCo10(Data_Lens_Barlow_Construction.constructBarlowGenericTCo10(Data_Lens_Barlow_Construction.constructBarlowGenericTCo4(dictChoice))(dictChoice))(dictChoice))(dictChoice))(dictChoice.Profunctor0())))(Data_Lens_Barlow.key);\n};\nexport {\n TitleLine,\n HeaderLine,\n TablatureLine,\n ChordLine,\n TextLine,\n getTitle,\n _TitleLine,\n _TablatureLine,\n _ChordLine,\n _TextLine,\n Title,\n TitleOther,\n _Title,\n Header,\n HeaderSuffix,\n Prefix,\n Tuning,\n TimelineConnection,\n TimelineSep,\n TimelineSpace,\n Fret,\n Special,\n Suffix,\n _Tuning,\n Text,\n Spaces,\n TextLineChord,\n ChordLegend,\n _TextLineChord,\n ChordFret,\n ChordSpecial,\n ChordLineChord,\n ChordComment,\n _ChordLineChord,\n Spaced,\n _elem,\n _spaceSuffix,\n Chord,\n _root,\n _type,\n _bass,\n _mods,\n ChordMod,\n Note,\n _letter,\n _mod,\n NoteLetter,\n _primitive,\n _lowercase,\n A,\n B,\n C,\n D,\n E,\n F,\n G,\n fromString,\n Transposition,\n identityTransposition,\n succTransposition,\n predTransposition,\n genericTablatureDocumentL,\n genericTitleLineElem_,\n newtypeSpaced_,\n printSpaced,\n newtypeChord_,\n eqChord,\n printChord,\n printNote,\n printChordMod,\n eqChordMod,\n newtypeNote_,\n eqNote,\n newtypeNoteLetter_,\n eqNoteLetterPrimitive,\n ordNoteLetterPrimitive,\n genericNoteLetterPrimitiv,\n enumNoteLetterPrimitive,\n cyclicEnumNoteLetterPrimi,\n printNoteLetterPrimitive,\n eqNoteLetter,\n ordNoteLetter,\n printNoteLetter,\n showTransposition,\n eqTransposition,\n ordTransposition,\n showTablatureDocumentLine,\n showTablatureLineElem,\n printTablatureLineElem,\n showTextLineElem,\n showChordLineElem,\n showChordMod,\n showHeaderLineElem,\n showTitleLineElem\n};\n","// Generated by purs version 0.15.7\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Apply from \"../Control.Apply/index.js\";\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Data_Array from \"../Data.Array/index.js\";\nimport * as Data_Either from \"../Data.Either/index.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Foldable from \"../Data.Foldable/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_HeytingAlgebra from \"../Data.HeytingAlgebra/index.js\";\nimport * as Data_Lens_Internal_Forget from \"../Data.Lens.Internal.Forget/index.js\";\nimport * as Data_Lens_Types from \"../Data.Lens.Types/index.js\";\nimport * as Data_List_Types from \"../Data.List.Types/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Maybe_First from \"../Data.Maybe.First/index.js\";\nimport * as Data_Maybe_Last from \"../Data.Maybe.Last/index.js\";\nimport * as Data_Monoid from \"../Data.Monoid/index.js\";\nimport * as Data_Monoid_Additive from \"../Data.Monoid.Additive/index.js\";\nimport * as Data_Monoid_Conj from \"../Data.Monoid.Conj/index.js\";\nimport * as Data_Monoid_Disj from \"../Data.Monoid.Disj/index.js\";\nimport * as Data_Monoid_Dual from \"../Data.Monoid.Dual/index.js\";\nimport * as Data_Monoid_Endo from \"../Data.Monoid.Endo/index.js\";\nimport * as Data_Monoid_Multiplicative from \"../Data.Monoid.Multiplicative/index.js\";\nimport * as Data_Newtype from \"../Data.Newtype/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Data_Profunctor from \"../Data.Profunctor/index.js\";\nimport * as Data_Profunctor_Choice from \"../Data.Profunctor.Choice/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nvar $runtime_lazy = function (name, moduleName, init) {\n var state = 0;\n var val;\n return function (lineNumber) {\n if (state === 2) return val;\n if (state === 1) throw new ReferenceError(name + \" was needed before it finished initializing (module \" + moduleName + \", line \" + lineNumber + \")\", moduleName, lineNumber);\n state = 1;\n val = init();\n state = 2;\n return val;\n };\n};\nvar unwrap = /* #__PURE__ */ Data_Newtype.unwrap();\nvar identity = /* #__PURE__ */ Control_Category.identity(Control_Category.categoryFn);\nvar fromFoldable = /* #__PURE__ */ Data_Array.fromFoldable(Data_List_Types.foldableList);\nvar unfolded = function (dictMonoid) {\n var mempty = Data_Monoid.mempty(dictMonoid);\n var append = Data_Semigroup.append(dictMonoid.Semigroup0());\n return function (f) {\n return function (p) {\n var $lazy_go = $runtime_lazy(\"go\", \"Data.Lens.Fold\", function () {\n var $89 = Data_Maybe.maybe(mempty)(function (v) {\n return append(unwrap(p)(v.value0))($lazy_go(232)(v.value1));\n });\n return function ($90) {\n return $89(f($90));\n };\n });\n var go = $lazy_go(232);\n return go;\n };\n };\n};\nvar replicated = function (dictMonoid) {\n var mempty = Data_Monoid.mempty(Data_Monoid.monoidFn(dictMonoid));\n var append = Data_Semigroup.append(Data_Semigroup.semigroupFn(dictMonoid.Semigroup0()));\n return function (i) {\n return function (v) {\n var go = function (v1) {\n return function (v2) {\n if (v1 === 0) {\n return mempty;\n };\n return append(v2)(go(v1 - 1 | 0)(v2));\n };\n };\n return go(i)(v);\n };\n };\n};\nvar ifoldMapOf = function (p) {\n return function (f) {\n return unwrap(p(Data_Tuple.uncurry(f)));\n };\n};\nvar ifoldlOf = function (p) {\n return function (f) {\n return function (r) {\n var $91 = Data_Function.flip(unwrap)(r);\n var $92 = ifoldMapOf(p)(function (i) {\n var $94 = Data_Function.flip(f(i));\n return function ($95) {\n return Data_Monoid_Dual.Dual(Data_Monoid_Endo.Endo($94($95)));\n };\n });\n return function ($93) {\n return $91(unwrap($92($93)));\n };\n };\n };\n};\nvar ifoldrOf = function (p) {\n return function (f) {\n return function (r) {\n var $96 = Data_Function.flip(unwrap)(r);\n var $97 = ifoldMapOf(p)(function (i) {\n var $99 = f(i);\n return function ($100) {\n return Data_Monoid_Endo.Endo($99($100));\n };\n });\n return function ($98) {\n return $96($97($98));\n };\n };\n };\n};\nvar itoListOf = function (p) {\n return ifoldrOf(p)(function (i) {\n return function (x) {\n return function (xs) {\n return new Data_List_Types.Cons(new Data_Tuple.Tuple(i, x), xs);\n };\n };\n })(Data_List_Types.Nil.value);\n};\nvar itraverseOf_ = function (dictApplicative) {\n var Apply0 = dictApplicative.Apply0();\n var applySecond = Control_Apply.applySecond(Apply0);\n var $$void = Data_Functor[\"void\"](Apply0.Functor0());\n var pure = Control_Applicative.pure(dictApplicative);\n return function (p) {\n return function (f) {\n return ifoldrOf(p)(function (i) {\n return function (a) {\n return function (fu) {\n return applySecond($$void(f(i)(a)))(fu);\n };\n };\n })(pure(Data_Unit.unit));\n };\n };\n};\nvar iforOf_ = function (dictApplicative) {\n var $101 = itraverseOf_(dictApplicative);\n return function ($102) {\n return Data_Function.flip($101($102));\n };\n};\nvar ifindOf = function (p) {\n return function (f) {\n return ifoldrOf(p)(function (i) {\n return function (a) {\n return Data_Maybe.maybe((function () {\n var $83 = f(i)(a);\n if ($83) {\n return new Data_Maybe.Just(a);\n };\n return Data_Maybe.Nothing.value;\n })())(Data_Maybe.Just.create);\n };\n })(Data_Maybe.Nothing.value);\n };\n};\nvar ianyOf = function (dictHeytingAlgebra) {\n return function (p) {\n return function (f) {\n var $103 = ifoldMapOf(p)(function (i) {\n var $105 = f(i);\n return function ($106) {\n return Data_Monoid_Disj.Disj($105($106));\n };\n });\n return function ($104) {\n return unwrap($103($104));\n };\n };\n };\n};\nvar iallOf = function (dictHeytingAlgebra) {\n return function (p) {\n return function (f) {\n var $107 = ifoldMapOf(p)(function (i) {\n var $109 = f(i);\n return function ($110) {\n return Data_Monoid_Conj.Conj($109($110));\n };\n });\n return function ($108) {\n return unwrap($107($108));\n };\n };\n };\n};\nvar folded = function (dictMonoid) {\n return function (dictFoldable) {\n var foldMap = Data_Foldable.foldMap(dictFoldable)(dictMonoid);\n return function (v) {\n return foldMap(v);\n };\n };\n};\nvar foldMapOf = /* #__PURE__ */ Data_Newtype.under()()(Data_Lens_Internal_Forget.Forget);\nvar foldOf = function (p) {\n return foldMapOf(p)(identity);\n};\nvar foldlOf = function (p) {\n return function (f) {\n return function (r) {\n var $111 = Data_Function.flip(unwrap)(r);\n var $112 = foldMapOf(p)((function () {\n var $114 = Data_Function.flip(f);\n return function ($115) {\n return Data_Monoid_Dual.Dual(Data_Monoid_Endo.Endo($114($115)));\n };\n })());\n return function ($113) {\n return $111(unwrap($112($113)));\n };\n };\n };\n};\nvar foldrOf = function (p) {\n return function (f) {\n return function (r) {\n var $116 = Data_Function.flip(unwrap)(r);\n var $117 = foldMapOf(p)(function ($119) {\n return Data_Monoid_Endo.Endo(f($119));\n });\n return function ($118) {\n return $116($117($118));\n };\n };\n };\n};\nvar maximumOf = function (dictOrd) {\n var greaterThan = Data_Ord.greaterThan(dictOrd);\n return function (p) {\n var max = function (a) {\n return function (b) {\n var $85 = greaterThan(a)(b);\n if ($85) {\n return a;\n };\n return b;\n };\n };\n return foldrOf(p)(function (a) {\n var $120 = Data_Maybe.maybe(a)(max(a));\n return function ($121) {\n return Data_Maybe.Just.create($120($121));\n };\n })(Data_Maybe.Nothing.value);\n };\n};\nvar minimumOf = function (dictOrd) {\n var lessThan = Data_Ord.lessThan(dictOrd);\n return function (p) {\n var min = function (a) {\n return function (b) {\n var $86 = lessThan(a)(b);\n if ($86) {\n return a;\n };\n return b;\n };\n };\n return foldrOf(p)(function (a) {\n var $122 = Data_Maybe.maybe(a)(min(a));\n return function ($123) {\n return Data_Maybe.Just.create($122($123));\n };\n })(Data_Maybe.Nothing.value);\n };\n};\nvar toListOf = function (p) {\n return foldrOf(p)(Data_List_Types.Cons.create)(Data_List_Types.Nil.value);\n};\nvar toArrayOf = function (p) {\n var $124 = toListOf(p);\n return function ($125) {\n return fromFoldable($124($125));\n };\n};\nvar toArrayOfOn = function (s) {\n return function (p) {\n return toArrayOf(p)(s);\n };\n};\nvar toListOfOn = function (s) {\n return function (p) {\n return toListOf(p)(s);\n };\n};\nvar traverseOf_ = function (dictApplicative) {\n var Apply0 = dictApplicative.Apply0();\n var applySecond = Control_Apply.applySecond(Apply0);\n var $$void = Data_Functor[\"void\"](Apply0.Functor0());\n var pure = Control_Applicative.pure(dictApplicative);\n return function (p) {\n return function (f) {\n return foldrOf(p)(function (a) {\n return function (fu) {\n return applySecond($$void(f(a)))(fu);\n };\n })(pure(Data_Unit.unit));\n };\n };\n};\nvar has = function (dictHeytingAlgebra) {\n var tt = Data_HeytingAlgebra.tt(dictHeytingAlgebra);\n return function (p) {\n var $126 = foldMapOf(p)(Data_Function[\"const\"](tt));\n return function ($127) {\n return unwrap($126($127));\n };\n };\n};\nvar hasn$primet = function (dictHeytingAlgebra) {\n var ff = Data_HeytingAlgebra.ff(dictHeytingAlgebra);\n return function (p) {\n var $128 = foldMapOf(p)(Data_Function[\"const\"](ff));\n return function ($129) {\n return unwrap($128($129));\n };\n };\n};\nvar lastOf = function (p) {\n var $130 = foldMapOf(p)(function ($132) {\n return Data_Maybe_Last.Last(Data_Maybe.Just.create($132));\n });\n return function ($131) {\n return unwrap($130($131));\n };\n};\nvar lengthOf = function (p) {\n var $133 = foldMapOf(p)(Data_Function[\"const\"](1));\n return function ($134) {\n return unwrap($133($134));\n };\n};\nvar preview = function (p) {\n var $135 = foldMapOf(p)(function ($137) {\n return Data_Maybe_First.First(Data_Maybe.Just.create($137));\n });\n return function ($136) {\n return unwrap($135($136));\n };\n};\nvar previewOn = function (s) {\n return function (p) {\n return preview(p)(s);\n };\n};\nvar productOf = function (dictSemiring) {\n return function (p) {\n var $138 = foldMapOf(p)(Data_Monoid_Multiplicative.Multiplicative);\n return function ($139) {\n return unwrap($138($139));\n };\n };\n};\nvar sequenceOf_ = function (dictApplicative) {\n var pure = Control_Applicative.pure(dictApplicative);\n var applySecond = Control_Apply.applySecond(dictApplicative.Apply0());\n return function (p) {\n var $140 = Data_Function.flip(unwrap)(pure(Data_Unit.unit));\n var $141 = foldMapOf(p)(function (f) {\n return function (v) {\n return applySecond(f)(v);\n };\n });\n return function ($142) {\n return $140($141($142));\n };\n };\n};\nvar sumOf = function (dictSemiring) {\n return function (p) {\n var $143 = foldMapOf(p)(Data_Monoid_Additive.Additive);\n return function ($144) {\n return unwrap($143($144));\n };\n };\n};\nvar firstOf = function (p) {\n var $145 = foldMapOf(p)(function ($147) {\n return Data_Maybe_First.First(Data_Maybe.Just.create($147));\n });\n return function ($146) {\n return unwrap($145($146));\n };\n};\nvar findOf = function (p) {\n return function (f) {\n return foldrOf(p)(function (a) {\n return Data_Maybe.maybe((function () {\n var $87 = f(a);\n if ($87) {\n return new Data_Maybe.Just(a);\n };\n return Data_Maybe.Nothing.value;\n })())(Data_Maybe.Just.create);\n })(Data_Maybe.Nothing.value);\n };\n};\nvar filtered = function (dictChoice) {\n var right = Data_Profunctor_Choice.right(dictChoice);\n var dimap = Data_Profunctor.dimap(dictChoice.Profunctor0());\n return function (f) {\n var $148 = dimap(function (x) {\n var $88 = f(x);\n if ($88) {\n return new Data_Either.Right(x);\n };\n return new Data_Either.Left(x);\n })(Data_Either.either(identity)(identity));\n return function ($149) {\n return $148(right($149));\n };\n };\n};\nvar anyOf = function (dictHeytingAlgebra) {\n return function (p) {\n return function (f) {\n var $150 = foldMapOf(p)(function ($152) {\n return Data_Monoid_Disj.Disj(f($152));\n });\n return function ($151) {\n return unwrap($150($151));\n };\n };\n };\n};\nvar anyOf1 = /* #__PURE__ */ anyOf(Data_HeytingAlgebra.heytingAlgebraBoolean);\nvar elemOf = function (dictEq) {\n var eq = Data_Eq.eq(dictEq);\n return function (p) {\n return function (a) {\n return anyOf1(p)(function (v) {\n return eq(v)(a);\n });\n };\n };\n};\nvar orOf = function (dictHeytingAlgebra) {\n var anyOf2 = anyOf(dictHeytingAlgebra);\n return function (p) {\n return anyOf2(p)(identity);\n };\n};\nvar allOf = function (dictHeytingAlgebra) {\n return function (p) {\n return function (f) {\n var $153 = foldMapOf(p)(function ($155) {\n return Data_Monoid_Conj.Conj(f($155));\n });\n return function ($154) {\n return unwrap($153($154));\n };\n };\n };\n};\nvar allOf1 = /* #__PURE__ */ allOf(Data_HeytingAlgebra.heytingAlgebraBoolean);\nvar andOf = function (dictHeytingAlgebra) {\n var allOf2 = allOf(dictHeytingAlgebra);\n return function (p) {\n return allOf2(p)(identity);\n };\n};\nvar notElemOf = function (dictEq) {\n var notEq = Data_Eq.notEq(dictEq);\n return function (p) {\n return function (a) {\n return allOf1(p)(function (v) {\n return notEq(v)(a);\n });\n };\n };\n};\nexport {\n previewOn,\n toListOfOn,\n preview,\n foldOf,\n foldMapOf,\n foldrOf,\n foldlOf,\n toListOf,\n firstOf,\n lastOf,\n maximumOf,\n minimumOf,\n allOf,\n anyOf,\n andOf,\n orOf,\n elemOf,\n notElemOf,\n sumOf,\n productOf,\n lengthOf,\n findOf,\n sequenceOf_,\n traverseOf_,\n has,\n hasn$primet,\n replicated,\n filtered,\n folded,\n unfolded,\n toArrayOf,\n toArrayOfOn,\n ifoldMapOf,\n ifoldrOf,\n ifoldlOf,\n iallOf,\n ianyOf,\n ifindOf,\n itoListOf,\n itraverseOf_,\n iforOf_\n};\n","// Generated by purs version 0.15.7\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Control_Monad_State_Class from \"../Control.Monad.State.Class/index.js\";\nimport * as Data_Lens_Types from \"../Data.Lens.Types/index.js\";\nimport * as Data_Newtype from \"../Data.Newtype/index.js\";\nimport * as Data_Profunctor_Strong from \"../Data.Profunctor.Strong/index.js\";\nvar unwrap = /* #__PURE__ */ Data_Newtype.unwrap();\nvar identity = /* #__PURE__ */ Control_Category.identity(Control_Category.categoryFn);\nvar fanout = /* #__PURE__ */ Data_Profunctor_Strong.fanout(Control_Category.categoryFn)(Data_Profunctor_Strong.strongFn);\nvar view = function (l) {\n return unwrap(l(identity));\n};\nvar viewOn = function (s) {\n return function (l) {\n return view(l)(s);\n };\n};\nvar use = function (dictMonadState) {\n var gets = Control_Monad_State_Class.gets(dictMonadState);\n return function (p) {\n return gets(function (v) {\n return viewOn(v)(p);\n });\n };\n};\nvar to = function (f) {\n return function (p) {\n var $10 = unwrap(p);\n return function ($11) {\n return $10(f($11));\n };\n };\n};\nvar takeBoth = function (l) {\n return function (r) {\n return to(fanout(view(l))(view(r)));\n };\n};\nvar iview = function (l) {\n return unwrap(l(identity));\n};\nvar iuse = function (dictMonadState) {\n var gets = Control_Monad_State_Class.gets(dictMonadState);\n return function (p) {\n return gets(iview(p));\n };\n};\nvar cloneGetter = function (g) {\n return to(view(g));\n};\nexport {\n viewOn,\n view,\n to,\n takeBoth,\n use,\n iview,\n iuse,\n cloneGetter\n};\nexport {\n Indexed\n} from \"../Data.Lens.Types/index.js\";\n","// Generated by purs version 0.15.7\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_HeytingAlgebra from \"../Data.HeytingAlgebra/index.js\";\nimport * as Data_Int from \"../Data.Int/index.js\";\nimport * as Data_Lens_Fold from \"../Data.Lens.Fold/index.js\";\nimport * as Data_Lens_Getter from \"../Data.Lens.Getter/index.js\";\nimport * as Data_Lens_Internal_Forget from \"../Data.Lens.Internal.Forget/index.js\";\nimport * as Data_Lens_Internal_Wander from \"../Data.Lens.Internal.Wander/index.js\";\nimport * as Data_Lens_Prism_Maybe from \"../Data.Lens.Prism.Maybe/index.js\";\nimport * as Data_Lens_Setter from \"../Data.Lens.Setter/index.js\";\nimport * as Data_Lens_Traversal from \"../Data.Lens.Traversal/index.js\";\nimport * as Data_List from \"../Data.List/index.js\";\nimport * as Data_List_Types from \"../Data.List.Types/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Monoid_Additive from \"../Data.Monoid.Additive/index.js\";\nimport * as Data_Monoid_Disj from \"../Data.Monoid.Disj/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Data_Profunctor_Choice from \"../Data.Profunctor.Choice/index.js\";\nimport * as Data_Profunctor_Strong from \"../Data.Profunctor.Strong/index.js\";\nimport * as Data_Ring from \"../Data.Ring/index.js\";\nimport * as Data_Semiring from \"../Data.Semiring/index.js\";\nimport * as Data_Show from \"../Data.Show/index.js\";\nimport * as Data_String_CodeUnits from \"../Data.String.CodeUnits/index.js\";\nimport * as Data_String_Common from \"../Data.String.Common/index.js\";\nimport * as Data_String_Utils from \"../Data.String.Utils/index.js\";\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nimport * as TablatureDocument from \"../TablatureDocument/index.js\";\nimport * as Utils from \"../Utils/index.js\";\nvar print = /* #__PURE__ */ Utils.print(TablatureDocument.printChord);\nvar print1 = /* #__PURE__ */ Utils.print(/* #__PURE__ */ TablatureDocument.printSpaced(TablatureDocument.printChord));\nvar anyOf = /* #__PURE__ */ Data_Lens_Fold.anyOf(Data_HeytingAlgebra.heytingAlgebraBoolean);\nvar monoidDisj = /* #__PURE__ */ Data_Monoid_Disj.monoidDisj(Data_HeytingAlgebra.heytingAlgebraBoolean);\nvar _TextLine = /* #__PURE__ */ TablatureDocument[\"_TextLine\"](/* #__PURE__ */ Data_Lens_Internal_Forget.choiceForget(monoidDisj));\nvar traversed = /* #__PURE__ */ Data_Lens_Traversal.traversed(Data_List_Types.traversableList);\nvar traversed1 = /* #__PURE__ */ traversed(/* #__PURE__ */ Data_Lens_Internal_Forget.wanderForget(monoidDisj));\nvar monoidAdditive = /* #__PURE__ */ Data_Monoid_Additive.monoidAdditive(Data_Semiring.semiringInt);\nvar choiceForget = /* #__PURE__ */ Data_Lens_Internal_Forget.choiceForget(monoidAdditive);\nvar _TextLine1 = /* #__PURE__ */ TablatureDocument[\"_TextLine\"](choiceForget);\nvar traversed2 = /* #__PURE__ */ traversed(/* #__PURE__ */ Data_Lens_Internal_Forget.wanderForget(monoidAdditive));\nvar filtered = /* #__PURE__ */ Data_Lens_Fold.filtered(choiceForget);\nvar _TextLine2 = /* #__PURE__ */ TablatureDocument[\"_TextLine\"](Data_Profunctor_Choice.choiceFn);\nvar traversed3 = /* #__PURE__ */ traversed(Data_Lens_Internal_Wander.wanderFunction);\nvar map = /* #__PURE__ */ Data_Functor.map(Data_List_Types.functorList);\nvar show = /* #__PURE__ */ Data_Show.show(Data_Show.showInt);\nvar _lowercase = /* #__PURE__ */ TablatureDocument[\"_lowercase\"](Data_Profunctor_Strong.strongFn);\nvar _mod = /* #__PURE__ */ TablatureDocument[\"_mod\"](Data_Lens_Internal_Forget.strongForget);\nvar _primitive = /* #__PURE__ */ TablatureDocument[\"_primitive\"](Data_Lens_Internal_Forget.strongForget);\nvar _primitive1 = /* #__PURE__ */ TablatureDocument[\"_primitive\"](Data_Profunctor_Strong.strongFn);\nvar _mod1 = /* #__PURE__ */ TablatureDocument[\"_mod\"](Data_Profunctor_Strong.strongFn);\nvar succ$prime = /* #__PURE__ */ Utils[\"succ$prime\"](TablatureDocument.cyclicEnumNoteLetterPrimi);\nvar eq1 = /* #__PURE__ */ Data_Eq.eq(TablatureDocument.eqNoteLetterPrimitive);\nvar pred$prime = /* #__PURE__ */ Utils[\"pred$prime\"](TablatureDocument.cyclicEnumNoteLetterPrimi);\nvar applyUntilIdempotent = /* #__PURE__ */ Utils.applyUntilIdempotent(TablatureDocument.eqNote);\nvar identity = /* #__PURE__ */ Control_Category.identity(Control_Category.categoryFn);\nvar abs = /* #__PURE__ */ Data_Ord.abs(Data_Ord.ordInt)(Data_Ring.ringInt);\nvar _TablatureLine = /* #__PURE__ */ TablatureDocument[\"_TablatureLine\"](Data_Profunctor_Choice.choiceFn);\nvar _Tuning = /* #__PURE__ */ TablatureDocument[\"_Tuning\"](Data_Profunctor_Choice.choiceFn);\nvar _TextLineChord = /* #__PURE__ */ TablatureDocument[\"_TextLineChord\"](Data_Profunctor_Choice.choiceFn);\nvar _ChordLine = /* #__PURE__ */ TablatureDocument[\"_ChordLine\"](Data_Profunctor_Choice.choiceFn);\nvar _ChordLineChord = /* #__PURE__ */ TablatureDocument[\"_ChordLineChord\"](Data_Profunctor_Choice.choiceFn);\nvar _root = /* #__PURE__ */ TablatureDocument[\"_root\"](Data_Profunctor_Strong.strongFn);\nvar _bass = /* #__PURE__ */ TablatureDocument[\"_bass\"](Data_Profunctor_Strong.strongFn);\nvar _Just = /* #__PURE__ */ Data_Lens_Prism_Maybe[\"_Just\"](Data_Profunctor_Choice.choiceFn);\nvar notEq = /* #__PURE__ */ Data_Eq.notEq(/* #__PURE__ */ Data_Maybe.eqMaybe(Data_Eq.eqChar));\nvar Flat = /* #__PURE__ */ (function () {\n function Flat() {\n\n };\n Flat.value = new Flat();\n return Flat;\n})();\nvar Sharp = /* #__PURE__ */ (function () {\n function Sharp() {\n\n };\n Sharp.value = new Sharp();\n return Sharp;\n})();\nvar Default = /* #__PURE__ */ (function () {\n function Default() {\n\n };\n Default.value = new Default();\n return Default;\n})();\nvar eqNoteOrientation = {\n eq: function (x) {\n return function (y) {\n if (x instanceof Flat && y instanceof Flat) {\n return true;\n };\n if (x instanceof Sharp && y instanceof Sharp) {\n return true;\n };\n if (x instanceof Default && y instanceof Default) {\n return true;\n };\n return false;\n };\n }\n};\nvar revertFalsePositiveChords = /* #__PURE__ */ (function () {\n var isPotentiallyAmbiguousChord = function (v) {\n if (v instanceof TablatureDocument.TextLineChord) {\n return Utils.unsafeTestRegex(\"^([Aa][Mm]?|[DdGg]o|[a-z]|Bob)$\")(print(v.value0.elem));\n };\n return false;\n };\n var isUnambiguousChord = function (elem) {\n if (elem instanceof TablatureDocument.TextLineChord) {\n return !isPotentiallyAmbiguousChord(elem);\n };\n return false;\n };\n var rewriteElement = function (v) {\n if (v instanceof TablatureDocument.TextLineChord) {\n var $89 = isPotentiallyAmbiguousChord(v);\n if ($89) {\n return new TablatureDocument.Text(print1(v.value0));\n };\n return v;\n };\n return v;\n };\n var isChordLegend = function (v) {\n if (v instanceof TablatureDocument.ChordLegend) {\n return true;\n };\n return false;\n };\n var containsChordLegend = function (line) {\n return anyOf(function ($140) {\n return _TextLine(traversed1($140));\n })(isChordLegend)(line);\n };\n var containsAtLeastOneUnambiguousChord = function (line) {\n return anyOf(function ($141) {\n return _TextLine(traversed1($141));\n })(isUnambiguousChord)(line);\n };\n var containsAtLeastFourAmbiguousChords = function (line) {\n return Data_Lens_Fold.lengthOf((function () {\n var $142 = filtered(isPotentiallyAmbiguousChord);\n return function ($143) {\n return _TextLine1(traversed2($142($143)));\n };\n })())(line) > 3;\n };\n var rewriteLine = function (line) {\n var $93 = containsChordLegend(line) || (containsAtLeastFourAmbiguousChords(line) || containsAtLeastOneUnambiguousChord(line));\n if ($93) {\n return line;\n };\n return Data_Lens_Setter.over(function ($144) {\n return _TextLine2(traversed3($144));\n })(rewriteElement)(line);\n };\n return map(rewriteLine);\n})();\nvar liftMappingSpaced = function (dictPrint) {\n var print2 = Utils.print(dictPrint);\n return function (mapping) {\n return function (v) {\n var newElem = mapping(v.elem);\n var newSuffix = (v.spaceSuffix + Data_String_CodeUnits.length(print2(v.elem)) | 0) - Data_String_CodeUnits.length(print2(newElem)) | 0;\n return {\n elem: newElem,\n spaceSuffix: newSuffix\n };\n };\n };\n};\nvar liftMappingSpaced1 = /* #__PURE__ */ liftMappingSpaced(TablatureDocument.printNote);\nvar liftMappingSpaced2 = /* #__PURE__ */ liftMappingSpaced(TablatureDocument.printChord);\nvar fixTimeLine = function (settings) {\n return function (doc) {\n var rewriteTablatureLineElem = function (v) {\n if (v instanceof TablatureDocument.TimelineConnection) {\n return new TablatureDocument.TimelineConnection(Data_String_Common.replaceAll(\"\\u2014\")(\"-\")(Data_String_Common.replaceAll(\" \")(\"-\")(v.value0)));\n };\n if (v instanceof TablatureDocument.TimelineSep) {\n return new TablatureDocument.TimelineSep(Data_String_Common.replaceAll(\"[\")(\"|\")(Data_String_Common.replaceAll(\"]\")(\"|\")(v.value0)));\n };\n return v;\n };\n var rewriteLine = function (v) {\n if (v instanceof TablatureDocument.TablatureLine) {\n return new TablatureDocument.TablatureLine(map(rewriteTablatureLineElem)(v.value0));\n };\n return v;\n };\n var $101 = !settings.normalizeTabs;\n if ($101) {\n return doc;\n };\n return map(rewriteLine)(doc);\n };\n};\nvar dozenalizeFrets = function (settings) {\n return function (doc) {\n var toDozenalString = function (s) {\n var v = Data_Int.fromString(s);\n if (v instanceof Data_Maybe.Nothing) {\n return s;\n };\n if (v instanceof Data_Maybe.Just) {\n var dozenal = Data_Maybe.fromMaybe(Data_Int.decimal)(Data_Int.radix(12));\n var $103 = v.value0 > 25;\n if ($103) {\n return show(v.value0);\n };\n return Data_String_Common.replaceAll(\"b\")(\"\\u218b\")(Data_String_Common.replaceAll(\"a\")(\"\\u218a\")(Data_Int.toStringAs(dozenal)(v.value0)));\n };\n throw new Error(\"Failed pattern match at TablatureRewriter (line 259, column 5 - line 268, column 47): \" + [ v.constructor.name ]);\n };\n var rewriteTablatureLineElems = function (elems) {\n return Utils.foreach(0)(elems)(function (pendingDashes) {\n return function (elem) {\n if (elem instanceof TablatureDocument.TimelineConnection) {\n return new Data_Tuple.Tuple(0, new TablatureDocument.TimelineConnection(Data_Maybe.fromMaybe(\"\")(Data_String_Utils.repeat(pendingDashes)(\"-\")) + elem.value0));\n };\n if (elem instanceof TablatureDocument.Fret) {\n var fretString = toDozenalString(elem.value0);\n return Data_Function.flip(Data_Tuple.Tuple.create)(new TablatureDocument.Fret(fretString))((function () {\n var $107 = fretString === \"\\u218a\" || fretString === \"\\u218b\";\n if ($107) {\n return pendingDashes + 1 | 0;\n };\n return pendingDashes;\n })());\n };\n return new Data_Tuple.Tuple(pendingDashes, elem);\n };\n });\n };\n var rewriteLine = function (v) {\n if (v instanceof TablatureDocument.TablatureLine) {\n return new TablatureDocument.TablatureLine(rewriteTablatureLineElems(v.value0));\n };\n return v;\n };\n var $111 = !settings.dozenalizeTabs;\n if ($111) {\n return doc;\n };\n return map(rewriteLine)(doc);\n };\n};\nvar canonicalizeNote = function (settings) {\n var toUpperCase = function (note) {\n return Data_Lens_Setter.set(_lowercase)(false)(note);\n };\n var toPreferredOrientation = function (note) {\n if (settings.noteOrientation instanceof Default) {\n var v = Data_Lens_Getter.view(_mod)(note);\n if (v === \"#\") {\n var v1 = Data_Lens_Getter.view(_primitive)(note);\n if (v1 instanceof TablatureDocument.A) {\n return Data_Lens_Setter.set(_primitive1)(TablatureDocument.B.value)(Data_Lens_Setter.set(_mod1)(\"b\")(note));\n };\n if (v1 instanceof TablatureDocument.D) {\n return Data_Lens_Setter.set(_primitive1)(TablatureDocument.E.value)(Data_Lens_Setter.set(_mod1)(\"b\")(note));\n };\n if (v1 instanceof TablatureDocument.G) {\n return Data_Lens_Setter.set(_primitive1)(TablatureDocument.A.value)(Data_Lens_Setter.set(_mod1)(\"b\")(note));\n };\n return note;\n };\n if (v === \"b\") {\n var v1 = Data_Lens_Getter.view(_primitive)(note);\n if (v1 instanceof TablatureDocument.D) {\n return Data_Lens_Setter.set(_primitive1)(TablatureDocument.C.value)(Data_Lens_Setter.set(_mod1)(\"#\")(note));\n };\n if (v1 instanceof TablatureDocument.G) {\n return Data_Lens_Setter.set(_primitive1)(TablatureDocument.F.value)(Data_Lens_Setter.set(_mod1)(\"#\")(note));\n };\n return note;\n };\n return note;\n };\n if (settings.noteOrientation instanceof Flat) {\n var v = Data_Lens_Getter.view(_mod)(note);\n if (v === \"#\") {\n var v1 = Data_Lens_Getter.view(_primitive)(note);\n if (v1 instanceof TablatureDocument.A) {\n return Data_Lens_Setter.set(_primitive1)(TablatureDocument.B.value)(Data_Lens_Setter.set(_mod1)(\"b\")(note));\n };\n if (v1 instanceof TablatureDocument.C) {\n return Data_Lens_Setter.set(_primitive1)(TablatureDocument.D.value)(Data_Lens_Setter.set(_mod1)(\"b\")(note));\n };\n if (v1 instanceof TablatureDocument.D) {\n return Data_Lens_Setter.set(_primitive1)(TablatureDocument.E.value)(Data_Lens_Setter.set(_mod1)(\"b\")(note));\n };\n if (v1 instanceof TablatureDocument.F) {\n return Data_Lens_Setter.set(_primitive1)(TablatureDocument.G.value)(Data_Lens_Setter.set(_mod1)(\"b\")(note));\n };\n if (v1 instanceof TablatureDocument.G) {\n return Data_Lens_Setter.set(_primitive1)(TablatureDocument.A.value)(Data_Lens_Setter.set(_mod1)(\"b\")(note));\n };\n return note;\n };\n return note;\n };\n if (settings.noteOrientation instanceof Sharp) {\n var v = Data_Lens_Getter.view(_mod)(note);\n if (v === \"b\") {\n var v1 = Data_Lens_Getter.view(_primitive)(note);\n if (v1 instanceof TablatureDocument.A) {\n return Data_Lens_Setter.set(_primitive1)(TablatureDocument.G.value)(Data_Lens_Setter.set(_mod1)(\"#\")(note));\n };\n if (v1 instanceof TablatureDocument.B) {\n return Data_Lens_Setter.set(_primitive1)(TablatureDocument.A.value)(Data_Lens_Setter.set(_mod1)(\"#\")(note));\n };\n if (v1 instanceof TablatureDocument.D) {\n return Data_Lens_Setter.set(_primitive1)(TablatureDocument.C.value)(Data_Lens_Setter.set(_mod1)(\"#\")(note));\n };\n if (v1 instanceof TablatureDocument.E) {\n return Data_Lens_Setter.set(_primitive1)(TablatureDocument.D.value)(Data_Lens_Setter.set(_mod1)(\"#\")(note));\n };\n if (v1 instanceof TablatureDocument.G) {\n return Data_Lens_Setter.set(_primitive1)(TablatureDocument.F.value)(Data_Lens_Setter.set(_mod1)(\"#\")(note));\n };\n return note;\n };\n return note;\n };\n throw new Error(\"Failed pattern match at TablatureRewriter (line 147, column 5 - line 179, column 20): \" + [ settings.noteOrientation.constructor.name ]);\n };\n var reduceSharps = function (note) {\n var substitute = function (p) {\n var v = Data_String_CodeUnits.stripPrefix(p)(Data_Lens_Getter.view(_mod)(note));\n if (v instanceof Data_Maybe.Nothing) {\n return note;\n };\n if (v instanceof Data_Maybe.Just) {\n return Data_Lens_Setter.over(_primitive1)(succ$prime)(Data_Lens_Setter.set(_mod1)(v.value0)(note));\n };\n throw new Error(\"Failed pattern match at TablatureRewriter (line 137, column 20 - line 139, column 68): \" + [ v.constructor.name ]);\n };\n var $122 = eq1(Data_Lens_Getter.view(_primitive)(note))(TablatureDocument.B.value) || eq1(Data_Lens_Getter.view(_primitive)(note))(TablatureDocument.E.value);\n if ($122) {\n return substitute(\"#\");\n };\n return substitute(\"##\");\n };\n var reduceFlats = function (note) {\n var substitute = function (p) {\n var v = Data_String_CodeUnits.stripPrefix(p)(Data_Lens_Getter.view(_mod)(note));\n if (v instanceof Data_Maybe.Nothing) {\n return note;\n };\n if (v instanceof Data_Maybe.Just) {\n return Data_Lens_Setter.over(_primitive1)(pred$prime)(Data_Lens_Setter.set(_mod1)(v.value0)(note));\n };\n throw new Error(\"Failed pattern match at TablatureRewriter (line 143, column 20 - line 145, column 68): \" + [ v.constructor.name ]);\n };\n var $125 = eq1(Data_Lens_Getter.view(_primitive)(note))(TablatureDocument.C.value) || eq1(Data_Lens_Getter.view(_primitive)(note))(TablatureDocument.F.value);\n if ($125) {\n return substitute(\"b\");\n };\n return substitute(\"bb\");\n };\n var collapseRedundants = function (note) {\n return Data_Lens_Setter.over(_mod1)((function () {\n var $145 = Data_String_Common.replace(\"b#\")(\"\");\n var $146 = Data_String_Common.replace(\"#b\")(\"\");\n return function ($147) {\n return $145($146($147));\n };\n })())(note);\n };\n var $148 = applyUntilIdempotent(reduceFlats);\n var $149 = applyUntilIdempotent(reduceSharps);\n var $150 = applyUntilIdempotent(collapseRedundants);\n return function ($151) {\n return toUpperCase(toPreferredOrientation($148($149($150($151)))));\n };\n};\nvar transposeNote = function (settings) {\n var appendSuffix = function (suffix) {\n return Data_Lens_Setter.over(_mod1)(function (v) {\n return v + suffix;\n });\n };\n if (settings.transposition === 0) {\n return identity;\n };\n if (settings.transposition > 0) {\n var $152 = canonicalizeNote(settings);\n var $153 = appendSuffix(Data_Maybe.fromMaybe(\"\")(Data_String_Utils.repeat(settings.transposition)(\"#\")));\n return function ($154) {\n return $152($153($154));\n };\n };\n var $155 = canonicalizeNote(settings);\n var $156 = appendSuffix(Data_Maybe.fromMaybe(\"\")(Data_String_Utils.repeat(abs(settings.transposition))(\"b\")));\n return function ($157) {\n return $155($156($157));\n };\n};\nvar transposeTuning = function (settings) {\n var noteMapping = (function () {\n var $158 = (function () {\n if (settings.normalizeChords) {\n return canonicalizeNote(settings);\n };\n return identity;\n })();\n var $159 = transposeNote(settings);\n return function ($160) {\n return $158($159($160));\n };\n })();\n var rewriteLine = Data_Lens_Setter.over(function ($161) {\n return _TablatureLine(traversed3(_Tuning($161)));\n })(liftMappingSpaced1(noteMapping));\n return map(rewriteLine);\n};\nvar applyChordMapping = function (chordMapping) {\n var mapping = liftMappingSpaced2(chordMapping);\n var rewriteChordsInChordLine = Data_Lens_Setter.over(function ($162) {\n return _TextLine2(traversed3(_TextLineChord($162)));\n })(mapping);\n var rewriteChordsInTextLine = Data_Lens_Setter.over(function ($163) {\n return _ChordLine(traversed3(_ChordLineChord($163)));\n })(mapping);\n return map(function ($164) {\n return rewriteChordsInChordLine(rewriteChordsInTextLine($164));\n });\n};\nvar dozenalizeChords = function (settings) {\n return function (doc) {\n var dozenalize = (function () {\n var $165 = Data_String_Common.replaceAll(\"13\")(\"11\");\n var $166 = Data_String_Common.replaceAll(\"11\")(\"\\u218b\");\n return function ($167) {\n return $165($166($167));\n };\n })();\n var rewriteChord = function (v) {\n var newType = dozenalize(v.type);\n var newMods = map(function (v1) {\n return {\n pre: v1.pre,\n interval: dozenalize(v1.interval),\n post: v1.post\n };\n })(v.mods);\n return {\n root: v.root,\n type: newType,\n mods: newMods,\n bass: v.bass\n };\n };\n var $130 = !settings.dozenalizeChords;\n if ($130) {\n return doc;\n };\n return applyChordMapping(rewriteChord)(doc);\n };\n};\nvar transposeChords = function (settings) {\n var noteMapping = (function () {\n var $168 = (function () {\n if (settings.normalizeChords) {\n return canonicalizeNote(settings);\n };\n return identity;\n })();\n var $169 = transposeNote(settings);\n return function ($170) {\n return $168($169($170));\n };\n })();\n var chordMapping = (function () {\n var $171 = Data_Lens_Setter.over(function ($174) {\n return _bass(_Just($174));\n })(noteMapping);\n var $172 = Data_Lens_Setter.over(_root)(noteMapping);\n return function ($173) {\n return $171($172($173));\n };\n })();\n return applyChordMapping(chordMapping);\n};\nvar addMissingClosingPipe = function (settings) {\n return function (doc) {\n var rewriteLastTimelinePiece = function (string) {\n var $132 = notEq(Data_String_CodeUnits.charAt(Data_String_CodeUnits.length(string) - 1 | 0)(string))(new Data_Maybe.Just(\"|\"));\n if ($132) {\n return string + \"|\";\n };\n return string;\n };\n var rewriteTablatureLine = function (elems) {\n return Data_List.reverse(Utils.foreach(false)(Data_List.reverse(elems))(function (done) {\n return function (elem) {\n if (elem instanceof TablatureDocument.TimelineSep) {\n return new Data_Tuple.Tuple(true, elem);\n };\n if (elem instanceof TablatureDocument.TimelineConnection) {\n return new Data_Tuple.Tuple(true, (function () {\n if (done) {\n return elem;\n };\n return new TablatureDocument.TimelineSep(rewriteLastTimelinePiece(elem.value0));\n })());\n };\n return new Data_Tuple.Tuple(done, elem);\n };\n }));\n };\n var rewriteLine = function (v) {\n if (v instanceof TablatureDocument.TablatureLine) {\n return new TablatureDocument.TablatureLine(rewriteTablatureLine(v.value0));\n };\n return v;\n };\n var $139 = !settings.normalizeTabs;\n if ($139) {\n return doc;\n };\n return map(rewriteLine)(doc);\n };\n};\nvar rewriteTablatureDocument = function (settings) {\n var $175 = transposeTuning(settings);\n var $176 = transposeChords(settings);\n var $177 = dozenalizeFrets(settings);\n var $178 = dozenalizeChords(settings);\n var $179 = addMissingClosingPipe(settings);\n var $180 = fixTimeLine(settings);\n return function ($181) {\n return $175($176($177($178($179($180(revertFalsePositiveChords($181)))))));\n };\n};\nexport {\n Flat,\n Sharp,\n Default,\n rewriteTablatureDocument,\n revertFalsePositiveChords,\n liftMappingSpaced,\n applyChordMapping,\n transposeChords,\n transposeTuning,\n transposeNote,\n canonicalizeNote,\n fixTimeLine,\n addMissingClosingPipe,\n dozenalizeChords,\n dozenalizeFrets,\n eqNoteOrientation\n};\n","// Generated by purs version 0.15.7\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Apply from \"../Control.Apply/index.js\";\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Data_Array from \"../Data.Array/index.js\";\nimport * as Data_Int from \"../Data.Int/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Show from \"../Data.Show/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nimport * as Effect from \"../Effect/index.js\";\nimport * as Effect_Class from \"../Effect.Class/index.js\";\nimport * as Effect_Console from \"../Effect.Console/index.js\";\nimport * as LZString from \"../LZString/index.js\";\nimport * as LocationString from \"../LocationString/index.js\";\nimport * as TablatureDocument from \"../TablatureDocument/index.js\";\nimport * as TablatureRewriter from \"../TablatureRewriter/index.js\";\nvar identity = /* #__PURE__ */ Control_Category.identity(Control_Category.categoryFn);\nvar show = /* #__PURE__ */ Data_Show.show(Data_Show.showInt);\nvar liftEffect = /* #__PURE__ */ Effect_Class.liftEffect(Effect_Class.monadEffectEffect);\nvar applySecond = /* #__PURE__ */ Control_Apply.applySecond(Effect.applyEffect);\nvar pure = /* #__PURE__ */ Control_Applicative.pure(Effect.applicativeEffect);\nvar setAppQueryString = function (params) {\n return LocationString.setQueryComponents(Data_Array.mapMaybe(identity)([ (function () {\n if (params.noteOrientation instanceof TablatureRewriter.Default) {\n return Data_Maybe.Nothing.value;\n };\n if (params.noteOrientation instanceof TablatureRewriter.Flat) {\n return new Data_Maybe.Just(\"o=0\");\n };\n if (params.noteOrientation instanceof TablatureRewriter.Sharp) {\n return new Data_Maybe.Just(\"o=1\");\n };\n throw new Error(\"Failed pattern match at AppUrl (line 74, column 5 - line 77, column 26): \" + [ params.noteOrientation.constructor.name ]);\n })(), (function () {\n if (params.transposition === 0) {\n return Data_Maybe.Nothing.value;\n };\n return new Data_Maybe.Just(\"t=\" + show(params.transposition));\n })() ]));\n};\nvar saveTablatureToUrl = function (tablatureText) {\n var v = LZString.compressToEncodedURIComponent(tablatureText);\n if (v instanceof Data_Maybe.Just) {\n return liftEffect(LocationString.setFragmentString(v.value0));\n };\n if (v instanceof Data_Maybe.Nothing) {\n return liftEffect(Effect_Console.error(\"Could not save tablature to URL\"));\n };\n throw new Error(\"Failed pattern match at AppUrl (line 23, column 3 - line 25, column 80): \" + [ v.constructor.name ]);\n};\nvar resetUrlParams = /* #__PURE__ */ LocationString.setQueryComponents([ ]);\nvar redirectToUrlInFragment = function __do() {\n var compressedUrl = LocationString.getFragmentString();\n var v = LZString.decompressFromEncodedURIComponent(compressedUrl);\n if (v instanceof Data_Maybe.Just) {\n return LocationString.setLocationString(v.value0)();\n };\n return applySecond(Effect_Console.error(\"Could not load decompressed shortlink URL\"))(pure(Data_Unit.unit))();\n};\nvar getTranspositionFromUrl = function __do() {\n var maybeTransposition = LocationString.getQueryParam(\"t\")();\n if (maybeTransposition instanceof Data_Maybe.Nothing) {\n return Data_Maybe.Nothing.value;\n };\n if (maybeTransposition instanceof Data_Maybe.Just) {\n var v = Data_Int.fromString(maybeTransposition.value0);\n if (v instanceof Data_Maybe.Just) {\n return new Data_Maybe.Just(v.value0);\n };\n return applySecond(Effect_Console.error(\"Could not parse transposition parameter\"))(pure(Data_Maybe.Nothing.value))();\n };\n throw new Error(\"Failed pattern match at AppUrl (line 45, column 3 - line 50, column 87): \" + [ maybeTransposition.constructor.name ]);\n};\nvar getTablatureTextFromUrl = function __do() {\n var fragment = liftEffect(LocationString.getFragmentString)();\n var $24 = fragment === \"\" || fragment === \"#\";\n if ($24) {\n return \"\";\n };\n var v = LZString.decompressFromEncodedURIComponent(fragment);\n if (v instanceof Data_Maybe.Just) {\n return v.value0;\n };\n if (v instanceof Data_Maybe.Nothing) {\n return applySecond(Effect_Console.error(\"Could not load tablature from URL\"))(pure(\"\"))();\n };\n throw new Error(\"Failed pattern match at AppUrl (line 31, column 8 - line 33, column 78): \" + [ v.constructor.name ]);\n};\nvar getNoteOrientationFromUrl = function __do() {\n var maybeNoteOrientation = LocationString.getQueryParam(\"o\")();\n if (maybeNoteOrientation instanceof Data_Maybe.Nothing) {\n return Data_Maybe.Nothing.value;\n };\n if (maybeNoteOrientation instanceof Data_Maybe.Just) {\n var v = Data_Int.fromString(maybeNoteOrientation.value0);\n if (v instanceof Data_Maybe.Just && v.value0 === 0) {\n return new Data_Maybe.Just(TablatureRewriter.Flat.value);\n };\n if (v instanceof Data_Maybe.Just && v.value0 === 1) {\n return new Data_Maybe.Just(TablatureRewriter.Sharp.value);\n };\n return applySecond(Effect_Console.error(\"Could not parse note orientation parameter\"))(pure(Data_Maybe.Nothing.value))();\n };\n throw new Error(\"Failed pattern match at AppUrl (line 55, column 3 - line 61, column 90): \" + [ maybeNoteOrientation.constructor.name ]);\n};\nvar getAppUrlParams = function __do() {\n var maybeTransposition = getTranspositionFromUrl();\n var maybeNoteOrientation = getNoteOrientationFromUrl();\n return {\n transposition: Data_Maybe.fromMaybe(TablatureDocument.identityTransposition)(maybeTransposition),\n noteOrientation: Data_Maybe.fromMaybe(TablatureRewriter.Default.value)(maybeNoteOrientation)\n };\n};\nexport {\n saveTablatureToUrl,\n getTablatureTextFromUrl,\n redirectToUrlInFragment,\n getTranspositionFromUrl,\n getNoteOrientationFromUrl,\n getAppUrlParams,\n setAppQueryString,\n resetUrlParams\n};\n","// Generated by purs version 0.15.7\nimport * as Data_Bounded_Generic from \"../Data.Bounded.Generic/index.js\";\nimport * as Data_Enum_Generic from \"../Data.Enum.Generic/index.js\";\nimport * as Data_Generic_Rep from \"../Data.Generic.Rep/index.js\";\nimport * as Data_Ordering from \"../Data.Ordering/index.js\";\nvar genericEnumConstructor = /* #__PURE__ */ Data_Enum_Generic.genericEnumConstructor(Data_Enum_Generic.genericEnumNoArguments);\nvar genericEnumSum = /* #__PURE__ */ Data_Enum_Generic.genericEnumSum(genericEnumConstructor)(/* #__PURE__ */ Data_Bounded_Generic.genericTopConstructor(Data_Bounded_Generic.genericTopNoArguments));\nvar genericBottomConstructor = /* #__PURE__ */ Data_Bounded_Generic.genericBottomConstructor(Data_Bounded_Generic.genericBottomNoArguments);\nvar genericBottomSum = /* #__PURE__ */ Data_Bounded_Generic.genericBottomSum(genericBottomConstructor);\nvar genericEnumSum1 = /* #__PURE__ */ genericEnumSum(/* #__PURE__ */ genericEnumSum(/* #__PURE__ */ genericEnumSum(/* #__PURE__ */ genericEnumSum(/* #__PURE__ */ genericEnumSum(genericEnumConstructor)(genericBottomConstructor))(genericBottomSum))(genericBottomSum))(genericBottomSum))(genericBottomSum);\nvar Slowest = /* #__PURE__ */ (function () {\n function Slowest() {\n\n };\n Slowest.value = new Slowest();\n return Slowest;\n})();\nvar Slower = /* #__PURE__ */ (function () {\n function Slower() {\n\n };\n Slower.value = new Slower();\n return Slower;\n})();\nvar Slow = /* #__PURE__ */ (function () {\n function Slow() {\n\n };\n Slow.value = new Slow();\n return Slow;\n})();\nvar Normal = /* #__PURE__ */ (function () {\n function Normal() {\n\n };\n Normal.value = new Normal();\n return Normal;\n})();\nvar Fast = /* #__PURE__ */ (function () {\n function Fast() {\n\n };\n Fast.value = new Fast();\n return Fast;\n})();\nvar Fastest = /* #__PURE__ */ (function () {\n function Fastest() {\n\n };\n Fastest.value = new Fastest();\n return Fastest;\n})();\nvar printAutoscrollSpeed = {\n print: function (v) {\n if (v instanceof Slowest) {\n return \"(0.2)\";\n };\n if (v instanceof Slower) {\n return \"(0.4)\";\n };\n if (v instanceof Slow) {\n return \"(0.6)\";\n };\n if (v instanceof Normal) {\n return \"(1.0)\";\n };\n if (v instanceof Fast) {\n return \"(2.0)\";\n };\n if (v instanceof Fastest) {\n return \"(4.0)\";\n };\n throw new Error(\"Failed pattern match at AutoscrollSpeed (line 18, column 1 - line 24, column 26): \" + [ v.constructor.name ]);\n }\n};\nvar speedToIntervalPixelDelta = function (v) {\n if (v instanceof Slowest) {\n return 1;\n };\n if (v instanceof Slower) {\n return 1;\n };\n if (v instanceof Slow) {\n return 1;\n };\n if (v instanceof Normal) {\n return 1;\n };\n if (v instanceof Fast) {\n return 1;\n };\n if (v instanceof Fastest) {\n return 2;\n };\n throw new Error(\"Failed pattern match at AutoscrollSpeed (line 41, column 1 - line 41, column 52): \" + [ v.constructor.name ]);\n};\nvar speedToIntervalMs = function (v) {\n if (v instanceof Slowest) {\n return 400;\n };\n if (v instanceof Slower) {\n return 200;\n };\n if (v instanceof Slow) {\n return 120;\n };\n if (v instanceof Normal) {\n return 80;\n };\n if (v instanceof Fast) {\n return 40;\n };\n if (v instanceof Fastest) {\n return 40;\n };\n throw new Error(\"Failed pattern match at AutoscrollSpeed (line 33, column 1 - line 33, column 44): \" + [ v.constructor.name ]);\n};\nvar genericAutoscrollSpeed = {\n to: function (x) {\n if (x instanceof Data_Generic_Rep.Inl) {\n return Slowest.value;\n };\n if (x instanceof Data_Generic_Rep.Inr && x.value0 instanceof Data_Generic_Rep.Inl) {\n return Slower.value;\n };\n if (x instanceof Data_Generic_Rep.Inr && (x.value0 instanceof Data_Generic_Rep.Inr && x.value0.value0 instanceof Data_Generic_Rep.Inl)) {\n return Slow.value;\n };\n if (x instanceof Data_Generic_Rep.Inr && (x.value0 instanceof Data_Generic_Rep.Inr && (x.value0.value0 instanceof Data_Generic_Rep.Inr && x.value0.value0.value0 instanceof Data_Generic_Rep.Inl))) {\n return Normal.value;\n };\n if (x instanceof Data_Generic_Rep.Inr && (x.value0 instanceof Data_Generic_Rep.Inr && (x.value0.value0 instanceof Data_Generic_Rep.Inr && (x.value0.value0.value0 instanceof Data_Generic_Rep.Inr && x.value0.value0.value0.value0 instanceof Data_Generic_Rep.Inl)))) {\n return Fast.value;\n };\n if (x instanceof Data_Generic_Rep.Inr && (x.value0 instanceof Data_Generic_Rep.Inr && (x.value0.value0 instanceof Data_Generic_Rep.Inr && (x.value0.value0.value0 instanceof Data_Generic_Rep.Inr && x.value0.value0.value0.value0 instanceof Data_Generic_Rep.Inr)))) {\n return Fastest.value;\n };\n throw new Error(\"Failed pattern match at AutoscrollSpeed (line 28, column 1 - line 28, column 68): \" + [ x.constructor.name ]);\n },\n from: function (x) {\n if (x instanceof Slowest) {\n return new Data_Generic_Rep.Inl(Data_Generic_Rep.NoArguments.value);\n };\n if (x instanceof Slower) {\n return new Data_Generic_Rep.Inr(new Data_Generic_Rep.Inl(Data_Generic_Rep.NoArguments.value));\n };\n if (x instanceof Slow) {\n return new Data_Generic_Rep.Inr(new Data_Generic_Rep.Inr(new Data_Generic_Rep.Inl(Data_Generic_Rep.NoArguments.value)));\n };\n if (x instanceof Normal) {\n return new Data_Generic_Rep.Inr(new Data_Generic_Rep.Inr(new Data_Generic_Rep.Inr(new Data_Generic_Rep.Inl(Data_Generic_Rep.NoArguments.value))));\n };\n if (x instanceof Fast) {\n return new Data_Generic_Rep.Inr(new Data_Generic_Rep.Inr(new Data_Generic_Rep.Inr(new Data_Generic_Rep.Inr(new Data_Generic_Rep.Inl(Data_Generic_Rep.NoArguments.value)))));\n };\n if (x instanceof Fastest) {\n return new Data_Generic_Rep.Inr(new Data_Generic_Rep.Inr(new Data_Generic_Rep.Inr(new Data_Generic_Rep.Inr(new Data_Generic_Rep.Inr(Data_Generic_Rep.NoArguments.value)))));\n };\n throw new Error(\"Failed pattern match at AutoscrollSpeed (line 28, column 1 - line 28, column 68): \" + [ x.constructor.name ]);\n }\n};\nvar eqAutoscrollSpeed = {\n eq: function (x) {\n return function (y) {\n if (x instanceof Slowest && y instanceof Slowest) {\n return true;\n };\n if (x instanceof Slower && y instanceof Slower) {\n return true;\n };\n if (x instanceof Slow && y instanceof Slow) {\n return true;\n };\n if (x instanceof Normal && y instanceof Normal) {\n return true;\n };\n if (x instanceof Fast && y instanceof Fast) {\n return true;\n };\n if (x instanceof Fastest && y instanceof Fastest) {\n return true;\n };\n return false;\n };\n }\n};\nvar ordAutoscrollSpeed = {\n compare: function (x) {\n return function (y) {\n if (x instanceof Slowest && y instanceof Slowest) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof Slowest) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof Slowest) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof Slower && y instanceof Slower) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof Slower) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof Slower) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof Slow && y instanceof Slow) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof Slow) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof Slow) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof Normal && y instanceof Normal) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof Normal) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof Normal) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof Fast && y instanceof Fast) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof Fast) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof Fast) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof Fastest && y instanceof Fastest) {\n return Data_Ordering.EQ.value;\n };\n throw new Error(\"Failed pattern match at AutoscrollSpeed (line 0, column 0 - line 0, column 0): \" + [ x.constructor.name, y.constructor.name ]);\n };\n },\n Eq0: function () {\n return eqAutoscrollSpeed;\n }\n};\nvar enumAutoscrollSpeed = {\n succ: /* #__PURE__ */ Data_Enum_Generic.genericSucc(genericAutoscrollSpeed)(genericEnumSum1),\n pred: /* #__PURE__ */ Data_Enum_Generic.genericPred(genericAutoscrollSpeed)(genericEnumSum1),\n Ord0: function () {\n return ordAutoscrollSpeed;\n }\n};\nexport {\n Slowest,\n Slower,\n Slow,\n Normal,\n Fast,\n Fastest,\n speedToIntervalMs,\n speedToIntervalPixelDelta,\n printAutoscrollSpeed,\n eqAutoscrollSpeed,\n ordAutoscrollSpeed,\n genericAutoscrollSpeed,\n enumAutoscrollSpeed\n};\n","// Generated by purs version 0.15.7\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Control_Monad_State_Class from \"../Control.Monad.State.Class/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Lens_Getter from \"../Data.Lens.Getter/index.js\";\nimport * as Data_Lens_Internal_Forget from \"../Data.Lens.Internal.Forget/index.js\";\nimport * as Data_Lens_Setter from \"../Data.Lens.Setter/index.js\";\nimport * as Data_List_Types from \"../Data.List.Types/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Profunctor_Strong from \"../Data.Profunctor.Strong/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nimport * as Utils from \"../Utils/index.js\";\nvar discard = /* #__PURE__ */ Control_Bind.discard(Control_Bind.discardUnit);\nvar Flush = /* #__PURE__ */ (function () {\n function Flush(value0) {\n this.value0 = value0;\n };\n Flush.create = function (value0) {\n return new Flush(value0);\n };\n return Flush;\n})();\nvar Fetch = /* #__PURE__ */ (function () {\n function Fetch(value0) {\n this.value0 = value0;\n };\n Fetch.create = function (value0) {\n return new Fetch(value0);\n };\n return Fetch;\n})();\nvar Cached = /* #__PURE__ */ (function () {\n function Cached(value0) {\n this.value0 = value0;\n };\n Cached.create = function (value0) {\n return new Cached(value0);\n };\n return Cached;\n})();\nvar NoValue = /* #__PURE__ */ (function () {\n function NoValue() {\n\n };\n NoValue.value = new NoValue();\n return NoValue;\n})();\nvar AnyEntryKey = function (x) {\n return x;\n};\nvar EntryKey = function (x) {\n return x;\n};\nvar runFlush = function (v) {\n return v.value0;\n};\nvar runFetch = function (v) {\n return v.value0;\n};\nvar runEntryKey = function (v) {\n return function (dictStrong) {\n return v(dictStrong);\n };\n};\nvar viewEntry$prime = function (key) {\n return Data_Lens_Getter.view(runEntryKey(key)(Data_Lens_Internal_Forget.strongForget));\n};\nvar viewEntry = function (dictMonadState) {\n var mapFlipped = Data_Functor.mapFlipped((((dictMonadState.Monad0()).Bind1()).Apply0()).Functor0());\n var get = Control_Monad_State_Class.get(dictMonadState);\n return function (key) {\n return mapFlipped(get)(viewEntry$prime(key));\n };\n};\nvar peek$prime = function (_key) {\n return function (state) {\n var entry = viewEntry$prime(_key)(state);\n return entry.value;\n };\n};\nvar peek = function (_key) {\n return function (state) {\n var entry = viewEntry$prime(_key)(state);\n if (entry.value instanceof NoValue) {\n return entry[\"default\"];\n };\n if (entry.value instanceof Cached) {\n return entry.value.value0;\n };\n throw new Error(\"Failed pattern match at Cache (line 86, column 3 - line 88, column 28): \" + [ entry.value.constructor.name ]);\n };\n};\nvar overEntry = function (dictMonadState) {\n var Bind1 = (dictMonadState.Monad0()).Bind1();\n var bind = Control_Bind.bind(Bind1);\n var mapFlipped = Data_Functor.mapFlipped((Bind1.Apply0()).Functor0());\n var get = Control_Monad_State_Class.get(dictMonadState);\n var put = Control_Monad_State_Class.put(dictMonadState);\n return function (key) {\n return function (f) {\n return bind(mapFlipped(get)(Data_Lens_Setter.over(runEntryKey(key)(Data_Profunctor_Strong.strongFn))(f)))(put);\n };\n };\n};\nvar read = function (dictMonadState) {\n var Monad0 = dictMonadState.Monad0();\n var Bind1 = Monad0.Bind1();\n var bind = Control_Bind.bind(Bind1);\n var viewEntry1 = viewEntry(dictMonadState);\n var pure = Control_Applicative.pure(Monad0.Applicative0());\n var discard1 = discard(Bind1);\n var overEntry1 = overEntry(dictMonadState);\n return function (cache) {\n return bind(viewEntry1(cache.entry))(function (entry) {\n if (entry.value instanceof Cached) {\n return pure(entry.value.value0);\n };\n if (entry.value instanceof NoValue) {\n return bind(runFetch(cache.fetch))(function (maybeValue) {\n return bind(pure(Data_Maybe.fromMaybe(entry[\"default\"])(maybeValue)))(function (value) {\n return discard1(overEntry1(cache.entry)(function (v) {\n return {\n value: new Cached(value),\n \"default\": v[\"default\"],\n dependants: v.dependants\n };\n }))(function () {\n return pure(value);\n });\n });\n });\n };\n throw new Error(\"Failed pattern match at Cache (line 124, column 3 - line 130, column 17): \" + [ entry.value.constructor.name ]);\n });\n };\n};\nvar mkAnyEntryKey = function (x) {\n return function (f) {\n return f(x);\n };\n};\nvar mapAnyEntryKey = function (f) {\n return function (v) {\n return v(f);\n };\n};\nvar invalidateDependants = function (dictMonadState) {\n var foreachM = Utils.foreachM(dictMonadState);\n return function (entry) {\n return foreachM(entry.dependants)(mapAnyEntryKey(invalidate(dictMonadState)));\n };\n};\nvar invalidate = function (dictMonadState) {\n var Monad0 = dictMonadState.Monad0();\n var Bind1 = Monad0.Bind1();\n var bind = Control_Bind.bind(Bind1);\n var viewEntry1 = viewEntry(dictMonadState);\n var pure = Control_Applicative.pure(Monad0.Applicative0());\n var discard1 = discard(Bind1);\n var overEntry1 = overEntry(dictMonadState);\n return function (_key) {\n return bind(viewEntry1(_key))(function (entry) {\n if (entry.value instanceof NoValue) {\n return pure(Data_Unit.unit);\n };\n if (entry.value instanceof Cached) {\n return discard1(overEntry1(_key)(function (v) {\n return {\n value: NoValue.value,\n \"default\": v[\"default\"],\n dependants: Data_List_Types.Nil.value\n };\n }))(function () {\n return invalidateDependants(dictMonadState)(entry);\n });\n };\n throw new Error(\"Failed pattern match at Cache (line 95, column 3 - line 99, column 33): \" + [ entry.value.constructor.name ]);\n });\n };\n};\nvar write = function (dictMonadState) {\n var Bind1 = (dictMonadState.Monad0()).Bind1();\n var bind = Control_Bind.bind(Bind1);\n var viewEntry1 = viewEntry(dictMonadState);\n var discard1 = discard(Bind1);\n var invalidateDependants1 = invalidateDependants(dictMonadState);\n var overEntry1 = overEntry(dictMonadState);\n return function (cache) {\n return function (value) {\n return bind(viewEntry1(cache.entry))(function (entry) {\n return discard1(runFlush(cache.flush)(value))(function () {\n return discard1(invalidateDependants1(entry))(function () {\n return overEntry1(cache.entry)(function (v) {\n return {\n value: new Cached(value),\n \"default\": v[\"default\"],\n dependants: v.dependants\n };\n });\n });\n });\n });\n };\n };\n};\nvar buildCache = function ($$default) {\n return {\n value: NoValue.value,\n \"default\": $$default,\n dependants: Data_List_Types.Nil.value\n };\n};\nvar addDependant = function (dictMonadState) {\n var overEntry1 = overEntry(dictMonadState);\n return function (dependency) {\n return function (_dependant) {\n return overEntry1(dependency.entry)(function (entry) {\n return {\n value: entry.value,\n \"default\": entry[\"default\"],\n dependants: new Data_List_Types.Cons(mkAnyEntryKey(_dependant), entry.dependants)\n };\n });\n };\n };\n};\nvar subscribe = function (dictMonadState) {\n var Monad0 = dictMonadState.Monad0();\n var Bind1 = Monad0.Bind1();\n var bind = Control_Bind.bind(Bind1);\n var read1 = read(dictMonadState);\n var discard1 = discard(Bind1);\n var addDependant1 = addDependant(dictMonadState);\n var pure = Control_Applicative.pure(Monad0.Applicative0());\n return function (_dependant) {\n return function (dependency) {\n return bind(read1(dependency))(function (dependencyValue) {\n return discard1(addDependant1(dependency)(_dependant))(function () {\n return pure(dependencyValue);\n });\n });\n };\n };\n};\nexport {\n Cached,\n NoValue,\n AnyEntryKey,\n mkAnyEntryKey,\n mapAnyEntryKey,\n buildCache,\n EntryKey,\n runEntryKey,\n viewEntry$prime,\n viewEntry,\n overEntry,\n Fetch,\n runFetch,\n Flush,\n runFlush,\n peek$prime,\n peek,\n invalidate,\n invalidateDependants,\n subscribe,\n addDependant,\n write,\n read\n};\n","// Generated by purs version 0.15.7\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Show from \"../Data.Show/index.js\";\nvar show = /* #__PURE__ */ Data_Show.show(Data_Show.showBoolean);\nvar setLocalStorageBoolean = function (key) {\n return function (value) {\n return $foreign.setLocalStorage(key)(show(value));\n };\n};\nvar getLocalStorageBoolean = function (key) {\n return function __do() {\n var result = $foreign.getLocalStorage(key)();\n if (result === \"true\") {\n return new Data_Maybe.Just(true);\n };\n if (result === \"false\") {\n return new Data_Maybe.Just(false);\n };\n return Data_Maybe.Nothing.value;\n };\n};\nvar getLocalStorageBooleanWithDefault = function (key) {\n return function ($$default) {\n return function __do() {\n var result = getLocalStorageBoolean(key)();\n if (result instanceof Data_Maybe.Nothing) {\n return $$default;\n };\n if (result instanceof Data_Maybe.Just) {\n return result.value0;\n };\n throw new Error(\"Failed pattern match at LocalStorage (line 25, column 3 - line 27, column 27): \" + [ result.constructor.name ]);\n };\n };\n};\nexport {\n setLocalStorage,\n getLocalStorage\n} from \"./foreign.js\";\nexport {\n getLocalStorageBoolean,\n setLocalStorageBoolean,\n getLocalStorageBooleanWithDefault\n};\n","'use strict';\n\nfunction setLocalStorage(key) {\n return function (value) {\n return function () {\n window.localStorage.setItem(key, value);\n }\n }\n}\n\nfunction getLocalStorage(key) {\n return function () {\n return window.localStorage.getItem(key);\n }\n}\n\nexport { setLocalStorage, getLocalStorage }\n","export const unsafePerformEffect = function (f) {\n return f();\n};\n","export const foldr1Impl = function (f) {\n return function (xs) {\n var acc = xs[xs.length - 1];\n for (var i = xs.length - 2; i >= 0; i--) {\n acc = f(xs[i])(acc);\n }\n return acc;\n };\n};\n\nexport const foldl1Impl = function (f) {\n return function (xs) {\n var acc = xs[0];\n var len = xs.length;\n for (var i = 1; i < len; i++) {\n acc = f(acc)(xs[i]);\n }\n return acc;\n };\n};\n\nexport const traverse1Impl = function () {\n function Cont(fn) {\n this.fn = fn;\n }\n\n var emptyList = {};\n\n var ConsCell = function (head, tail) {\n this.head = head;\n this.tail = tail;\n };\n\n function finalCell(head) {\n return new ConsCell(head, emptyList);\n }\n\n function consList(x) {\n return function (xs) {\n return new ConsCell(x, xs);\n };\n }\n\n function listToArray(list) {\n var arr = [];\n var xs = list;\n while (xs !== emptyList) {\n arr.push(xs.head);\n xs = xs.tail;\n }\n return arr;\n }\n\n return function (apply) {\n return function (map) {\n return function (f) {\n var buildFrom = function (x, ys) {\n return apply(map(consList)(f(x)))(ys);\n };\n\n var go = function (acc, currentLen, xs) {\n if (currentLen === 0) {\n return acc;\n } else {\n var last = xs[currentLen - 1];\n return new Cont(function () {\n var built = go(buildFrom(last, acc), currentLen - 1, xs);\n return built;\n });\n }\n };\n\n return function (array) {\n var acc = map(finalCell)(f(array[array.length - 1]));\n var result = go(acc, array.length - 1, array);\n while (result instanceof Cont) {\n result = result.fn();\n }\n\n return map(listToArray)(result);\n };\n };\n };\n };\n}();\n","// Generated by purs version 0.15.7\nimport * as $foreign from \"./foreign.js\";\nimport * as Control_Alt from \"../Control.Alt/index.js\";\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Apply from \"../Control.Apply/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Control_Monad from \"../Control.Monad/index.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Foldable from \"../Data.Foldable/index.js\";\nimport * as Data_FoldableWithIndex from \"../Data.FoldableWithIndex/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_FunctorWithIndex from \"../Data.FunctorWithIndex/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nimport * as Data_Semigroup_Foldable from \"../Data.Semigroup.Foldable/index.js\";\nimport * as Data_Semigroup_Traversable from \"../Data.Semigroup.Traversable/index.js\";\nimport * as Data_Show from \"../Data.Show/index.js\";\nimport * as Data_Traversable from \"../Data.Traversable/index.js\";\nimport * as Data_TraversableWithIndex from \"../Data.TraversableWithIndex/index.js\";\nimport * as Data_Unfoldable1 from \"../Data.Unfoldable1/index.js\";\nvar NonEmptyArray = function (x) {\n return x;\n};\nvar unfoldable1NonEmptyArray = Data_Unfoldable1.unfoldable1Array;\nvar traversableWithIndexNonEmptyArray = Data_TraversableWithIndex.traversableWithIndexArray;\nvar traversableNonEmptyArray = Data_Traversable.traversableArray;\nvar showNonEmptyArray = function (dictShow) {\n var show = Data_Show.show(Data_Show.showArray(dictShow));\n return {\n show: function (v) {\n return \"(NonEmptyArray \" + (show(v) + \")\");\n }\n };\n};\nvar semigroupNonEmptyArray = Data_Semigroup.semigroupArray;\nvar ordNonEmptyArray = function (dictOrd) {\n return Data_Ord.ordArray(dictOrd);\n};\nvar ord1NonEmptyArray = Data_Ord.ord1Array;\nvar monadNonEmptyArray = Control_Monad.monadArray;\nvar functorWithIndexNonEmptyArray = Data_FunctorWithIndex.functorWithIndexArray;\nvar functorNonEmptyArray = Data_Functor.functorArray;\nvar foldableWithIndexNonEmptyArray = Data_FoldableWithIndex.foldableWithIndexArray;\nvar foldableNonEmptyArray = Data_Foldable.foldableArray;\nvar foldable1NonEmptyArray = {\n foldMap1: function (dictSemigroup) {\n return Data_Semigroup_Foldable.foldMap1DefaultL(foldable1NonEmptyArray)(functorNonEmptyArray)(dictSemigroup);\n },\n foldr1: $foreign.foldr1Impl,\n foldl1: $foreign.foldl1Impl,\n Foldable0: function () {\n return foldableNonEmptyArray;\n }\n};\nvar traversable1NonEmptyArray = {\n traverse1: function (dictApply) {\n return $foreign.traverse1Impl(Control_Apply.apply(dictApply))(Data_Functor.map(dictApply.Functor0()));\n },\n sequence1: function (dictApply) {\n return Data_Semigroup_Traversable.sequence1Default(traversable1NonEmptyArray)(dictApply);\n },\n Foldable10: function () {\n return foldable1NonEmptyArray;\n },\n Traversable1: function () {\n return traversableNonEmptyArray;\n }\n};\nvar eqNonEmptyArray = function (dictEq) {\n return Data_Eq.eqArray(dictEq);\n};\nvar eq1NonEmptyArray = Data_Eq.eq1Array;\nvar bindNonEmptyArray = Control_Bind.bindArray;\nvar applyNonEmptyArray = Control_Apply.applyArray;\nvar applicativeNonEmptyArray = Control_Applicative.applicativeArray;\nvar altNonEmptyArray = Control_Alt.altArray;\nexport {\n NonEmptyArray,\n showNonEmptyArray,\n eqNonEmptyArray,\n eq1NonEmptyArray,\n ordNonEmptyArray,\n ord1NonEmptyArray,\n semigroupNonEmptyArray,\n functorNonEmptyArray,\n functorWithIndexNonEmptyArray,\n foldableNonEmptyArray,\n foldableWithIndexNonEmptyArray,\n foldable1NonEmptyArray,\n unfoldable1NonEmptyArray,\n traversableNonEmptyArray,\n traversableWithIndexNonEmptyArray,\n traversable1NonEmptyArray,\n applyNonEmptyArray,\n applicativeNonEmptyArray,\n bindNonEmptyArray,\n monadNonEmptyArray,\n altNonEmptyArray\n};\n","// Generated by purs version 0.15.7\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Data_Array from \"../Data.Array/index.js\";\nimport * as Data_Array_NonEmpty_Internal from \"../Data.Array.NonEmpty.Internal/index.js\";\nimport * as Data_Bifunctor from \"../Data.Bifunctor/index.js\";\nimport * as Data_Boolean from \"../Data.Boolean/index.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_NonEmpty from \"../Data.NonEmpty/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nimport * as Data_Semigroup_Foldable from \"../Data.Semigroup.Foldable/index.js\";\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nimport * as Data_Unfoldable1 from \"../Data.Unfoldable1/index.js\";\nimport * as Unsafe_Coerce from \"../Unsafe.Coerce/index.js\";\nvar max = /* #__PURE__ */ Data_Ord.max(Data_Ord.ordInt);\nvar intercalate1 = /* #__PURE__ */ Data_Semigroup_Foldable.intercalate(Data_Array_NonEmpty_Internal.foldable1NonEmptyArray);\nvar foldMap11 = /* #__PURE__ */ Data_Semigroup_Foldable.foldMap1(Data_Array_NonEmpty_Internal.foldable1NonEmptyArray);\nvar fold11 = /* #__PURE__ */ Data_Semigroup_Foldable.fold1(Data_Array_NonEmpty_Internal.foldable1NonEmptyArray);\nvar append = /* #__PURE__ */ Data_Semigroup.append(Data_Semigroup.semigroupArray);\nvar fromJust = /* #__PURE__ */ Data_Maybe.fromJust();\nvar unsafeIndex1 = /* #__PURE__ */ Data_Array.unsafeIndex();\nvar unsafeFromArrayF = Unsafe_Coerce.unsafeCoerce;\nvar unsafeFromArray = Data_Array_NonEmpty_Internal.NonEmptyArray;\nvar toArray = function (v) {\n return v;\n};\nvar unionBy$prime = function (eq) {\n return function (xs) {\n var $98 = Data_Array.unionBy(eq)(toArray(xs));\n return function ($99) {\n return unsafeFromArray($98($99));\n };\n };\n};\nvar union$prime = function (dictEq) {\n return unionBy$prime(Data_Eq.eq(dictEq));\n};\nvar unionBy = function (eq) {\n return function (xs) {\n var $100 = unionBy$prime(eq)(xs);\n return function ($101) {\n return $100(toArray($101));\n };\n };\n};\nvar union = function (dictEq) {\n return unionBy(Data_Eq.eq(dictEq));\n};\nvar unzip = /* #__PURE__ */ (function () {\n var $102 = Data_Bifunctor.bimap(Data_Bifunctor.bifunctorTuple)(unsafeFromArray)(unsafeFromArray);\n return function ($103) {\n return $102(Data_Array.unzip(toArray($103)));\n };\n})();\nvar updateAt = function (i) {\n return function (x) {\n var $104 = Data_Array.updateAt(i)(x);\n return function ($105) {\n return unsafeFromArrayF($104(toArray($105)));\n };\n };\n};\nvar zip = function (xs) {\n return function (ys) {\n return unsafeFromArray(Data_Array.zip(toArray(xs))(toArray(ys)));\n };\n};\nvar zipWith = function (f) {\n return function (xs) {\n return function (ys) {\n return unsafeFromArray(Data_Array.zipWith(f)(toArray(xs))(toArray(ys)));\n };\n };\n};\nvar zipWithA = function (dictApplicative) {\n var zipWithA1 = Data_Array.zipWithA(dictApplicative);\n return function (f) {\n return function (xs) {\n return function (ys) {\n return unsafeFromArrayF(zipWithA1(f)(toArray(xs))(toArray(ys)));\n };\n };\n };\n};\nvar splitAt = function (i) {\n return function (xs) {\n return Data_Array.splitAt(i)(toArray(xs));\n };\n};\nvar some = function (dictAlternative) {\n var some1 = Data_Array.some(dictAlternative);\n return function (dictLazy) {\n var $106 = some1(dictLazy);\n return function ($107) {\n return unsafeFromArrayF($106($107));\n };\n };\n};\nvar snoc$prime = function (xs) {\n return function (x) {\n return unsafeFromArray(Data_Array.snoc(xs)(x));\n };\n};\nvar snoc = function (xs) {\n return function (x) {\n return unsafeFromArray(Data_Array.snoc(toArray(xs))(x));\n };\n};\nvar singleton = function ($108) {\n return unsafeFromArray(Data_Array.singleton($108));\n};\nvar replicate = function (i) {\n return function (x) {\n return unsafeFromArray(Data_Array.replicate(max(1)(i))(x));\n };\n};\nvar range = function (x) {\n return function (y) {\n return unsafeFromArray(Data_Array.range(x)(y));\n };\n};\nvar modifyAt = function (i) {\n return function (f) {\n var $109 = Data_Array.modifyAt(i)(f);\n return function ($110) {\n return unsafeFromArrayF($109(toArray($110)));\n };\n };\n};\nvar intersectBy$prime = function (eq) {\n return function (xs) {\n return Data_Array.intersectBy(eq)(toArray(xs));\n };\n};\nvar intersectBy = function (eq) {\n return function (xs) {\n var $111 = intersectBy$prime(eq)(xs);\n return function ($112) {\n return $111(toArray($112));\n };\n };\n};\nvar intersect$prime = function (dictEq) {\n return intersectBy$prime(Data_Eq.eq(dictEq));\n};\nvar intersect = function (dictEq) {\n return intersectBy(Data_Eq.eq(dictEq));\n};\nvar intercalate = function (dictSemigroup) {\n return intercalate1(dictSemigroup);\n};\nvar insertAt = function (i) {\n return function (x) {\n var $113 = Data_Array.insertAt(i)(x);\n return function ($114) {\n return unsafeFromArrayF($113(toArray($114)));\n };\n };\n};\nvar fromFoldable1 = function (dictFoldable1) {\n var $115 = Data_Array.fromFoldable(dictFoldable1.Foldable0());\n return function ($116) {\n return unsafeFromArray($115($116));\n };\n};\nvar fromArray = function (xs) {\n if (Data_Array.length(xs) > 0) {\n return new Data_Maybe.Just(unsafeFromArray(xs));\n };\n if (Data_Boolean.otherwise) {\n return Data_Maybe.Nothing.value;\n };\n throw new Error(\"Failed pattern match at Data.Array.NonEmpty (line 157, column 1 - line 157, column 58): \" + [ xs.constructor.name ]);\n};\nvar fromFoldable = function (dictFoldable) {\n var $117 = Data_Array.fromFoldable(dictFoldable);\n return function ($118) {\n return fromArray($117($118));\n };\n};\nvar foldr1 = /* #__PURE__ */ Data_Semigroup_Foldable.foldr1(Data_Array_NonEmpty_Internal.foldable1NonEmptyArray);\nvar foldl1 = /* #__PURE__ */ Data_Semigroup_Foldable.foldl1(Data_Array_NonEmpty_Internal.foldable1NonEmptyArray);\nvar foldMap1 = function (dictSemigroup) {\n return foldMap11(dictSemigroup);\n};\nvar fold1 = function (dictSemigroup) {\n return fold11(dictSemigroup);\n};\nvar difference$prime = function (dictEq) {\n var difference1 = Data_Array.difference(dictEq);\n return function (xs) {\n return difference1(toArray(xs));\n };\n};\nvar cons$prime = function (x) {\n return function (xs) {\n return unsafeFromArray(Data_Array.cons(x)(xs));\n };\n};\nvar fromNonEmpty = function (v) {\n return cons$prime(v.value0)(v.value1);\n};\nvar concatMap = /* #__PURE__ */ Data_Function.flip(/* #__PURE__ */ Control_Bind.bind(Data_Array_NonEmpty_Internal.bindNonEmptyArray));\nvar concat = /* #__PURE__ */ (function () {\n var $119 = Data_Functor.map(Data_Array_NonEmpty_Internal.functorNonEmptyArray)(toArray);\n return function ($120) {\n return unsafeFromArray(Data_Array.concat(toArray($119($120))));\n };\n})();\nvar appendArray = function (xs) {\n return function (ys) {\n return unsafeFromArray(append(toArray(xs))(ys));\n };\n};\nvar alterAt = function (i) {\n return function (f) {\n var $121 = Data_Array.alterAt(i)(f);\n return function ($122) {\n return $121(toArray($122));\n };\n };\n};\nvar adaptMaybe = function (f) {\n return function ($123) {\n return fromJust(f(toArray($123)));\n };\n};\nvar head = /* #__PURE__ */ adaptMaybe(Data_Array.head);\nvar init = /* #__PURE__ */ adaptMaybe(Data_Array.init);\nvar last = /* #__PURE__ */ adaptMaybe(Data_Array.last);\nvar tail = /* #__PURE__ */ adaptMaybe(Data_Array.tail);\nvar uncons = /* #__PURE__ */ adaptMaybe(Data_Array.uncons);\nvar toNonEmpty = function ($124) {\n return (function (v) {\n return new Data_NonEmpty.NonEmpty(v.head, v.tail);\n })(uncons($124));\n};\nvar unsnoc = /* #__PURE__ */ adaptMaybe(Data_Array.unsnoc);\nvar adaptAny = function (f) {\n return function ($125) {\n return f(toArray($125));\n };\n};\nvar all = function (p) {\n return adaptAny(Data_Array.all(p));\n};\nvar any = function (p) {\n return adaptAny(Data_Array.any(p));\n};\nvar catMaybes = /* #__PURE__ */ adaptAny(Data_Array.catMaybes);\nvar $$delete = function (dictEq) {\n var delete1 = Data_Array[\"delete\"](dictEq);\n return function (x) {\n return adaptAny(delete1(x));\n };\n};\nvar deleteAt = function (i) {\n return adaptAny(Data_Array.deleteAt(i));\n};\nvar deleteBy = function (f) {\n return function (x) {\n return adaptAny(Data_Array.deleteBy(f)(x));\n };\n};\nvar difference = function (dictEq) {\n var difference$prime1 = difference$prime(dictEq);\n return function (xs) {\n return adaptAny(difference$prime1(xs));\n };\n};\nvar drop = function (i) {\n return adaptAny(Data_Array.drop(i));\n};\nvar dropEnd = function (i) {\n return adaptAny(Data_Array.dropEnd(i));\n};\nvar dropWhile = function (f) {\n return adaptAny(Data_Array.dropWhile(f));\n};\nvar elem = function (dictEq) {\n var elem1 = Data_Array.elem(dictEq);\n return function (x) {\n return adaptAny(elem1(x));\n };\n};\nvar elemIndex = function (dictEq) {\n var elemIndex1 = Data_Array.elemIndex(dictEq);\n return function (x) {\n return adaptAny(elemIndex1(x));\n };\n};\nvar elemLastIndex = function (dictEq) {\n var elemLastIndex1 = Data_Array.elemLastIndex(dictEq);\n return function (x) {\n return adaptAny(elemLastIndex1(x));\n };\n};\nvar filter = function (f) {\n return adaptAny(Data_Array.filter(f));\n};\nvar filterA = function (dictApplicative) {\n var filterA1 = Data_Array.filterA(dictApplicative);\n return function (f) {\n return adaptAny(filterA1(f));\n };\n};\nvar find = function (p) {\n return adaptAny(Data_Array.find(p));\n};\nvar findIndex = function (p) {\n return adaptAny(Data_Array.findIndex(p));\n};\nvar findLastIndex = function (x) {\n return adaptAny(Data_Array.findLastIndex(x));\n};\nvar findMap = function (p) {\n return adaptAny(Data_Array.findMap(p));\n};\nvar foldM = function (dictMonad) {\n var foldM1 = Data_Array.foldM(dictMonad);\n return function (f) {\n return function (acc) {\n return adaptAny(foldM1(f)(acc));\n };\n };\n};\nvar foldRecM = function (dictMonadRec) {\n var foldRecM1 = Data_Array.foldRecM(dictMonadRec);\n return function (f) {\n return function (acc) {\n return adaptAny(foldRecM1(f)(acc));\n };\n };\n};\nvar index = /* #__PURE__ */ adaptAny(Data_Array.index);\nvar length = /* #__PURE__ */ adaptAny(Data_Array.length);\nvar mapMaybe = function (f) {\n return adaptAny(Data_Array.mapMaybe(f));\n};\nvar notElem = function (dictEq) {\n var notElem1 = Data_Array.notElem(dictEq);\n return function (x) {\n return adaptAny(notElem1(x));\n };\n};\nvar partition = function (f) {\n return adaptAny(Data_Array.partition(f));\n};\nvar slice = function (start) {\n return function (end) {\n return adaptAny(Data_Array.slice(start)(end));\n };\n};\nvar span = function (f) {\n return adaptAny(Data_Array.span(f));\n};\nvar take = function (i) {\n return adaptAny(Data_Array.take(i));\n};\nvar takeEnd = function (i) {\n return adaptAny(Data_Array.takeEnd(i));\n};\nvar takeWhile = function (f) {\n return adaptAny(Data_Array.takeWhile(f));\n};\nvar toUnfoldable = function (dictUnfoldable) {\n return adaptAny(Data_Array.toUnfoldable(dictUnfoldable));\n};\nvar unsafeAdapt = function (f) {\n var $126 = adaptAny(f);\n return function ($127) {\n return unsafeFromArray($126($127));\n };\n};\nvar cons = function (x) {\n return unsafeAdapt(Data_Array.cons(x));\n};\nvar group = function (dictEq) {\n return unsafeAdapt(Data_Array.group(dictEq));\n};\nvar groupAllBy = function (op) {\n return unsafeAdapt(Data_Array.groupAllBy(op));\n};\nvar groupAll = function (dictOrd) {\n return groupAllBy(Data_Ord.compare(dictOrd));\n};\nvar groupBy = function (op) {\n return unsafeAdapt(Data_Array.groupBy(op));\n};\nvar insert = function (dictOrd) {\n var insert1 = Data_Array.insert(dictOrd);\n return function (x) {\n return unsafeAdapt(insert1(x));\n };\n};\nvar insertBy = function (f) {\n return function (x) {\n return unsafeAdapt(Data_Array.insertBy(f)(x));\n };\n};\nvar intersperse = function (x) {\n return unsafeAdapt(Data_Array.intersperse(x));\n};\nvar mapWithIndex = function (f) {\n return unsafeAdapt(Data_Array.mapWithIndex(f));\n};\nvar modifyAtIndices = function (dictFoldable) {\n var modifyAtIndices1 = Data_Array.modifyAtIndices(dictFoldable);\n return function (is) {\n return function (f) {\n return unsafeAdapt(modifyAtIndices1(is)(f));\n };\n };\n};\nvar nub = function (dictOrd) {\n return unsafeAdapt(Data_Array.nub(dictOrd));\n};\nvar nubBy = function (f) {\n return unsafeAdapt(Data_Array.nubBy(f));\n};\nvar nubByEq = function (f) {\n return unsafeAdapt(Data_Array.nubByEq(f));\n};\nvar nubEq = function (dictEq) {\n return unsafeAdapt(Data_Array.nubEq(dictEq));\n};\nvar reverse = /* #__PURE__ */ unsafeAdapt(Data_Array.reverse);\nvar scanl = function (f) {\n return function (x) {\n return unsafeAdapt(Data_Array.scanl(f)(x));\n };\n};\nvar scanr = function (f) {\n return function (x) {\n return unsafeAdapt(Data_Array.scanr(f)(x));\n };\n};\nvar sort = function (dictOrd) {\n return unsafeAdapt(Data_Array.sort(dictOrd));\n};\nvar sortBy = function (f) {\n return unsafeAdapt(Data_Array.sortBy(f));\n};\nvar sortWith = function (dictOrd) {\n var sortWith1 = Data_Array.sortWith(dictOrd);\n return function (f) {\n return unsafeAdapt(sortWith1(f));\n };\n};\nvar updateAtIndices = function (dictFoldable) {\n var updateAtIndices1 = Data_Array.updateAtIndices(dictFoldable);\n return function (pairs) {\n return unsafeAdapt(updateAtIndices1(pairs));\n };\n};\nvar unsafeIndex = function () {\n return adaptAny(unsafeIndex1);\n};\nvar unsafeIndex2 = /* #__PURE__ */ unsafeIndex();\nvar toUnfoldable1 = function (dictUnfoldable1) {\n var unfoldr1 = Data_Unfoldable1.unfoldr1(dictUnfoldable1);\n return function (xs) {\n var len = length(xs);\n var f = function (i) {\n return new Data_Tuple.Tuple(unsafeIndex2(xs)(i), (function () {\n var $97 = i < (len - 1 | 0);\n if ($97) {\n return new Data_Maybe.Just(i + 1 | 0);\n };\n return Data_Maybe.Nothing.value;\n })());\n };\n return unfoldr1(f)(0);\n };\n};\nexport {\n fromArray,\n fromNonEmpty,\n toArray,\n toNonEmpty,\n fromFoldable,\n fromFoldable1,\n toUnfoldable,\n toUnfoldable1,\n singleton,\n range,\n replicate,\n some,\n length,\n cons,\n cons$prime,\n snoc,\n snoc$prime,\n appendArray,\n insert,\n insertBy,\n head,\n last,\n tail,\n init,\n uncons,\n unsnoc,\n index,\n elem,\n notElem,\n elemIndex,\n elemLastIndex,\n find,\n findMap,\n findIndex,\n findLastIndex,\n insertAt,\n deleteAt,\n updateAt,\n updateAtIndices,\n modifyAt,\n modifyAtIndices,\n alterAt,\n intersperse,\n reverse,\n concat,\n concatMap,\n filter,\n partition,\n splitAt,\n filterA,\n mapMaybe,\n catMaybes,\n mapWithIndex,\n foldl1,\n foldr1,\n foldMap1,\n fold1,\n intercalate,\n scanl,\n scanr,\n sort,\n sortBy,\n sortWith,\n slice,\n take,\n takeEnd,\n takeWhile,\n drop,\n dropEnd,\n dropWhile,\n span,\n group,\n groupAll,\n groupBy,\n groupAllBy,\n nub,\n nubBy,\n nubEq,\n nubByEq,\n union,\n union$prime,\n unionBy,\n unionBy$prime,\n $$delete as delete,\n deleteBy,\n difference,\n difference$prime,\n intersect,\n intersect$prime,\n intersectBy,\n intersectBy$prime,\n zipWith,\n zipWithA,\n zip,\n unzip,\n any,\n all,\n foldM,\n foldRecM,\n unsafeIndex\n};\n","// Generated by purs version 0.15.7\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Apply from \"../Control.Apply/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Control_Monad_Rec_Class from \"../Control.Monad.Rec.Class/index.js\";\nimport * as Data_Boolean from \"../Data.Boolean/index.js\";\nimport * as Data_Either from \"../Data.Either/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Monoid from \"../Data.Monoid/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nimport * as Data_Show from \"../Data.Show/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nvar map = /* #__PURE__ */ Data_Functor.map(Data_Either.functorEither);\nvar show = /* #__PURE__ */ Data_Show.show(Data_Show.showInt);\nvar bind = /* #__PURE__ */ Control_Bind.bind(Data_Either.bindEither);\nvar pure = /* #__PURE__ */ Control_Applicative.pure(Data_Either.applicativeEither);\nvar tailRecM = /* #__PURE__ */ Control_Monad_Rec_Class.tailRecM(Control_Monad_Rec_Class.monadRecEither);\nvar Parser = function (x) {\n return x;\n};\nvar unParser = function (v) {\n return v;\n};\nvar runParser = function (v) {\n return function (s) {\n return map(function (v1) {\n return v1.result;\n })(v({\n substring: s,\n position: 0\n }));\n };\n};\nvar printParserError = function (rec) {\n return rec.error + (\"; pos = \" + show(rec.pos));\n};\nvar lazyParser = {\n defer: function (f) {\n return function (str) {\n return unParser(f(Data_Unit.unit))(str);\n };\n }\n};\nvar functorParser = {\n map: function (f) {\n return function (v) {\n var $69 = map(function (v1) {\n return {\n result: f(v1.result),\n suffix: v1.suffix\n };\n });\n return function ($70) {\n return $69(v($70));\n };\n };\n }\n};\nvar fail = function (error) {\n return function (v) {\n return new Data_Either.Left({\n pos: v.position,\n error: error\n });\n };\n};\nvar applyParser = {\n apply: function (v) {\n return function (v1) {\n return function (s) {\n return bind(v(s))(function (v2) {\n return bind(v1(v2.suffix))(function (v3) {\n return pure({\n result: v2.result(v3.result),\n suffix: v3.suffix\n });\n });\n });\n };\n };\n },\n Functor0: function () {\n return functorParser;\n }\n};\nvar lift2 = /* #__PURE__ */ Control_Apply.lift2(applyParser);\nvar bindParser = {\n bind: function (v) {\n return function (f) {\n return function (s) {\n return bind(v(s))(function (v1) {\n return unParser(f(v1.result))(v1.suffix);\n });\n };\n };\n },\n Apply0: function () {\n return applyParser;\n }\n};\nvar semigroupParser = function (dictSemigroup) {\n return {\n append: lift2(Data_Semigroup.append(dictSemigroup))\n };\n};\nvar applicativeParser = {\n pure: function (a) {\n return function (s) {\n return new Data_Either.Right({\n result: a,\n suffix: s\n });\n };\n },\n Apply0: function () {\n return applyParser;\n }\n};\nvar pure1 = /* #__PURE__ */ Control_Applicative.pure(applicativeParser);\nvar monadParser = {\n Applicative0: function () {\n return applicativeParser;\n },\n Bind1: function () {\n return bindParser;\n }\n};\nvar monadRecParser = {\n tailRecM: function (f) {\n return function (a) {\n var split = function (v) {\n if (v.result instanceof Control_Monad_Rec_Class.Loop) {\n return new Control_Monad_Rec_Class.Loop({\n state: v.result.value0,\n str: v.suffix\n });\n };\n if (v.result instanceof Control_Monad_Rec_Class.Done) {\n return new Control_Monad_Rec_Class.Done({\n result: v.result.value0,\n suffix: v.suffix\n });\n };\n throw new Error(\"Failed pattern match at StringParser.Parser (line 87, column 5 - line 87, column 68): \" + [ v.constructor.name ]);\n };\n return function (str) {\n return tailRecM(function (st) {\n return map(split)(unParser(f(st.state))(st.str));\n })({\n state: a,\n str: str\n });\n };\n };\n },\n Monad0: function () {\n return monadParser;\n }\n};\nvar monoidParser = function (dictMonoid) {\n var semigroupParser1 = semigroupParser(dictMonoid.Semigroup0());\n return {\n mempty: pure1(Data_Monoid.mempty(dictMonoid)),\n Semigroup0: function () {\n return semigroupParser1;\n }\n };\n};\nvar altParser = {\n alt: function (v) {\n return function (v1) {\n return function (s) {\n var v2 = v(s);\n if (v2 instanceof Data_Either.Left) {\n if (s.position === v2.value0.pos) {\n return v1(s);\n };\n if (Data_Boolean.otherwise) {\n return new Data_Either.Left({\n error: v2.value0.error,\n pos: v2.value0.pos\n });\n };\n };\n return v2;\n };\n };\n },\n Functor0: function () {\n return functorParser;\n }\n};\nvar plusParser = {\n empty: /* #__PURE__ */ fail(\"No alternative\"),\n Alt0: function () {\n return altParser;\n }\n};\nvar alternativeParser = {\n Applicative0: function () {\n return applicativeParser;\n },\n Plus1: function () {\n return plusParser;\n }\n};\nvar monadPlusParser = {\n Monad0: function () {\n return monadParser;\n },\n Alternative1: function () {\n return alternativeParser;\n }\n};\nexport {\n Parser,\n unParser,\n runParser,\n printParserError,\n fail,\n functorParser,\n applyParser,\n applicativeParser,\n altParser,\n plusParser,\n alternativeParser,\n bindParser,\n monadParser,\n monadPlusParser,\n monadRecParser,\n lazyParser,\n semigroupParser,\n monoidParser\n};\n","// Generated by purs version 0.15.7\nimport * as Control_Alt from \"../Control.Alt/index.js\";\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Apply from \"../Control.Apply/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Control_Lazy from \"../Control.Lazy/index.js\";\nimport * as Control_Monad_Rec_Class from \"../Control.Monad.Rec.Class/index.js\";\nimport * as Data_Either from \"../Data.Either/index.js\";\nimport * as Data_Foldable from \"../Data.Foldable/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_List from \"../Data.List/index.js\";\nimport * as Data_List_NonEmpty from \"../Data.List.NonEmpty/index.js\";\nimport * as Data_List_Types from \"../Data.List.Types/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_NonEmpty from \"../Data.NonEmpty/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nimport * as StringParser_Parser from \"../StringParser.Parser/index.js\";\nvar alt = /* #__PURE__ */ Control_Alt.alt(StringParser_Parser.altParser);\nvar bind = /* #__PURE__ */ Control_Bind.bind(StringParser_Parser.bindParser);\nvar pure = /* #__PURE__ */ Control_Applicative.pure(StringParser_Parser.applicativeParser);\nvar map = /* #__PURE__ */ Data_Functor.map(StringParser_Parser.functorParser);\nvar mapFlipped = /* #__PURE__ */ Data_Functor.mapFlipped(StringParser_Parser.functorParser);\nvar voidLeft = /* #__PURE__ */ Data_Functor.voidLeft(StringParser_Parser.functorParser);\nvar applyFirst = /* #__PURE__ */ Control_Apply.applyFirst(StringParser_Parser.applyParser);\nvar applySecond = /* #__PURE__ */ Control_Apply.applySecond(StringParser_Parser.applyParser);\nvar apply = /* #__PURE__ */ Control_Apply.apply(StringParser_Parser.applyParser);\nvar tailRecM = /* #__PURE__ */ Control_Monad_Rec_Class.tailRecM(StringParser_Parser.monadRecParser);\nvar pure1 = /* #__PURE__ */ Control_Applicative.pure(Data_List_Types.applicativeNonEmptyList);\nvar withError = function (p) {\n return function (msg) {\n return alt(p)(StringParser_Parser.fail(msg));\n };\n};\nvar $$try = function (v) {\n return function (s) {\n var v1 = v(s);\n if (v1 instanceof Data_Either.Left) {\n return new Data_Either.Left({\n pos: s.position,\n error: v1.value0.error\n });\n };\n return v1;\n };\n};\nvar optional = function (p) {\n return alt(bind(p)(function (v) {\n return pure(Data_Unit.unit);\n }))(pure(Data_Unit.unit));\n};\nvar option = function (a) {\n return function (p) {\n return alt(p)(pure(a));\n };\n};\nvar optionMaybe = function (p) {\n return option(Data_Maybe.Nothing.value)(map(Data_Maybe.Just.create)(p));\n};\nvar lookAhead = function (v) {\n return function (s) {\n var v1 = v(s);\n if (v1 instanceof Data_Either.Right) {\n return new Data_Either.Right({\n result: v1.value0.result,\n suffix: s\n });\n };\n return v1;\n };\n};\nvar tryAhead = function ($36) {\n return $$try(lookAhead($36));\n};\nvar cons$prime = function (h) {\n return function (t) {\n return new Data_NonEmpty.NonEmpty(h, t);\n };\n};\nvar sepEndBy1 = function (p) {\n return function (sep) {\n return bind(p)(function (a) {\n return alt(bind(sep)(function () {\n return bind(sepEndBy(p)(sep))(function (as) {\n return pure(cons$prime(a)(as));\n });\n }))(pure(Data_List_NonEmpty.singleton(a)));\n });\n };\n};\nvar sepEndBy = function (p) {\n return function (sep) {\n return alt(mapFlipped(sepEndBy1(p)(sep))(Data_List_NonEmpty.toList))(alt(voidLeft(sep)(Data_List_Types.Nil.value))(pure(Data_List_Types.Nil.value)));\n };\n};\nvar choice = function (dictFoldable) {\n return Data_Foldable.foldl(dictFoldable)(alt)(StringParser_Parser.fail(\"Nothing to parse\"));\n};\nvar chainr1$prime = function (p) {\n return function (f) {\n return function (a) {\n return alt(bind(f)(function (f$prime) {\n return bind(chainr1(p)(f))(function (a$prime) {\n return pure(f$prime(a)(a$prime));\n });\n }))(pure(a));\n };\n };\n};\nvar chainr1 = function (p) {\n return function (f) {\n return bind(p)(function (a) {\n return chainr1$prime(p)(f)(a);\n });\n };\n};\nvar chainr = function (p) {\n return function (f) {\n return function (a) {\n return alt(chainr1(p)(f))(pure(a));\n };\n };\n};\nvar chainl1$prime = function (p) {\n return function (f) {\n return function (a) {\n return alt(bind(f)(function (f$prime) {\n return bind(p)(function (a$prime) {\n return chainl1$prime(p)(f)(f$prime(a)(a$prime));\n });\n }))(pure(a));\n };\n };\n};\nvar chainl1 = function (p) {\n return function (f) {\n return bind(p)(function (a) {\n return chainl1$prime(p)(f)(a);\n });\n };\n};\nvar chainl = function (p) {\n return function (f) {\n return function (a) {\n return alt(chainl1(p)(f))(pure(a));\n };\n };\n};\nvar between = function (open) {\n return function (close) {\n return function (p) {\n return applyFirst(applySecond(open)(p))(close);\n };\n };\n};\nvar assertConsume = function (v) {\n return function (s) {\n var v1 = v(s);\n if (v1 instanceof Data_Either.Right) {\n var $34 = s.position < v1.value0.suffix.position;\n if ($34) {\n return new Data_Either.Right(v1.value0);\n };\n return new Data_Either.Left({\n pos: s.position,\n error: \"Consumed no input.\"\n });\n };\n return v1;\n };\n};\nvar many = /* #__PURE__ */ (function () {\n var $37 = Data_List.manyRec(StringParser_Parser.monadRecParser)(StringParser_Parser.alternativeParser);\n return function ($38) {\n return $37(assertConsume($38));\n };\n})();\nvar many1 = function (p) {\n return apply(map(cons$prime)(p))(many(p));\n};\nvar endBy1 = function (p) {\n return function (sep) {\n return many1(applyFirst(p)(sep));\n };\n};\nvar endBy = function (p) {\n return function (sep) {\n return alt(mapFlipped(endBy1(p)(sep))(Data_List_NonEmpty.toList))(voidLeft(sep)(Data_List_Types.Nil.value));\n };\n};\nvar sepBy1 = function (p) {\n return function (sep) {\n return bind(p)(function (a) {\n return bind(many(applySecond(sep)(p)))(function (as) {\n return pure(cons$prime(a)(as));\n });\n });\n };\n};\nvar sepBy = function (p) {\n return function (sep) {\n return alt(map(Data_List_NonEmpty.toList)(sepBy1(p)(sep)))(pure(Data_List_Types.Nil.value));\n };\n};\nvar many1Till = function (p) {\n return function (end) {\n var ending = function (acc) {\n return bind(end)(function () {\n return pure(new Control_Monad_Rec_Class.Done(Data_List_NonEmpty.reverse(acc)));\n });\n };\n var $$continue = function (acc) {\n return bind(assertConsume(p))(function (c) {\n return pure(new Control_Monad_Rec_Class.Loop(Data_List_NonEmpty.cons(c)(acc)));\n });\n };\n var inner = function (acc) {\n return alt(ending(acc))($$continue(acc));\n };\n return bind(p)(function (x) {\n return tailRecM(inner)(pure1(x));\n });\n };\n};\nvar manyTill = function (p) {\n return function (end) {\n return alt(applySecond(end)(pure(Data_List_Types.Nil.value)))(map(Data_List_NonEmpty.toList)(many1Till(p)(end)));\n };\n};\nexport {\n $$try as try,\n lookAhead,\n tryAhead,\n many,\n many1,\n manyTill,\n many1Till,\n assertConsume,\n withError,\n between,\n option,\n optional,\n optionMaybe,\n sepBy,\n sepBy1,\n sepEndBy,\n sepEndBy1,\n endBy1,\n endBy,\n chainr,\n chainl,\n chainl1,\n chainr1,\n choice\n};\nexport {\n fix\n} from \"../Control.Lazy/index.js\";\n","// Generated by purs version 0.15.7\nimport * as Control_Alt from \"../Control.Alt/index.js\";\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Data_Array from \"../Data.Array/index.js\";\nimport * as Data_Array_NonEmpty from \"../Data.Array.NonEmpty/index.js\";\nimport * as Data_Char from \"../Data.Char/index.js\";\nimport * as Data_Either from \"../Data.Either/index.js\";\nimport * as Data_Enum from \"../Data.Enum/index.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Foldable from \"../Data.Foldable/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_List_Types from \"../Data.List.Types/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Monoid from \"../Data.Monoid/index.js\";\nimport * as Data_Show from \"../Data.Show/index.js\";\nimport * as Data_String_CodePoints from \"../Data.String.CodePoints/index.js\";\nimport * as Data_String_CodeUnits from \"../Data.String.CodeUnits/index.js\";\nimport * as Data_String_Regex from \"../Data.String.Regex/index.js\";\nimport * as Data_String_Regex_Flags from \"../Data.String.Regex.Flags/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nimport * as StringParser_CodeUnits from \"../StringParser.CodeUnits/index.js\";\nimport * as StringParser_Combinators from \"../StringParser.Combinators/index.js\";\nimport * as StringParser_Parser from \"../StringParser.Parser/index.js\";\nvar bind = /* #__PURE__ */ Control_Bind.bind(StringParser_Parser.bindParser);\nvar elem = /* #__PURE__ */ Data_Foldable.elem(Data_Foldable.foldableArray)(Data_Eq.eqInt);\nvar pure = /* #__PURE__ */ Control_Applicative.pure(StringParser_Parser.applicativeParser);\nvar show = /* #__PURE__ */ Data_Show.show(Data_Show.showChar);\nvar map = /* #__PURE__ */ Data_Functor.map(Data_Maybe.functorMaybe);\nvar alt = /* #__PURE__ */ Control_Alt.alt(StringParser_Parser.altParser);\nvar show1 = /* #__PURE__ */ Data_Show.show(Data_String_CodePoints.showCodePoint);\nvar eq1 = /* #__PURE__ */ Data_Eq.eq(Data_String_CodePoints.eqCodePoint);\nvar show2 = /* #__PURE__ */ Data_Show.show(Data_Show.showInt);\nvar foldMap = /* #__PURE__ */ Data_Foldable.foldMap(Data_List_Types.foldableList)(Data_Monoid.monoidString);\nvar upperCaseChar = /* #__PURE__ */ StringParser_Combinators[\"try\"](/* #__PURE__ */ bind(StringParser_CodeUnits.anyChar)(function (c) {\n var $42 = elem(Data_Char.toCharCode(c))(Data_Array.range(65)(90));\n if ($42) {\n return pure(c);\n };\n return StringParser_Parser.fail(\"Expected an upper case character but found \" + show(c));\n}));\nvar string = function (pattern) {\n return function (v) {\n var length = Data_String_CodePoints.length(pattern);\n var v1 = Data_String_CodePoints.splitAt(length)(v.substring);\n var $45 = v1.before === pattern;\n if ($45) {\n return new Data_Either.Right({\n result: pattern,\n suffix: {\n substring: v1.after,\n position: v.position + length | 0\n }\n });\n };\n return new Data_Either.Left({\n pos: v.position,\n error: \"Expected '\" + (pattern + \"'.\")\n });\n };\n};\nvar regex = function (pat) {\n var pattern = \"^(\" + (pat + \")\");\n var matchRegex = function (r) {\n return function (v) {\n var v1 = map(Data_Array_NonEmpty.head)(Data_String_Regex.match(r)(v.substring));\n if (v1 instanceof Data_Maybe.Just && v1.value0 instanceof Data_Maybe.Just) {\n return new Data_Either.Right({\n result: v1.value0.value0,\n suffix: {\n substring: Data_String_CodePoints.drop(Data_String_CodePoints.length(v1.value0.value0))(v.substring),\n position: v.position + Data_String_CodePoints.length(v1.value0.value0) | 0\n }\n });\n };\n return new Data_Either.Left({\n pos: v.position,\n error: \"no match\"\n });\n };\n };\n var v = Data_String_Regex.regex(pattern)(Data_String_Regex_Flags.noFlags);\n if (v instanceof Data_Either.Left) {\n return StringParser_Parser.fail(\"StringParser.String.regex': illegal regex \" + pat);\n };\n if (v instanceof Data_Either.Right) {\n return matchRegex(v.value0);\n };\n throw new Error(\"Failed pattern match at StringParser.CodePoints (line 158, column 3 - line 162, column 19): \" + [ v.constructor.name ]);\n};\nvar lowerCaseChar = /* #__PURE__ */ StringParser_Combinators[\"try\"](/* #__PURE__ */ bind(StringParser_CodeUnits.anyChar)(function (c) {\n var $59 = elem(Data_Char.toCharCode(c))(Data_Array.range(97)(122));\n if ($59) {\n return pure(c);\n };\n return StringParser_Parser.fail(\"Expected a lower case character but found \" + show(c));\n}));\nvar eof = function (s) {\n if (0 < Data_String_CodePoints.length(s.substring)) {\n return new Data_Either.Left({\n pos: s.position,\n error: \"Expected EOF\"\n });\n };\n return new Data_Either.Right({\n result: Data_Unit.unit,\n suffix: s\n });\n};\nvar anyLetter = /* #__PURE__ */ alt(lowerCaseChar)(/* #__PURE__ */ StringParser_Combinators.withError(upperCaseChar)(\"Expected a letter\"));\nvar anyDigit = /* #__PURE__ */ StringParser_Combinators[\"try\"](/* #__PURE__ */ bind(StringParser_CodeUnits.anyChar)(function (c) {\n var $63 = c >= \"0\" && c <= \"9\";\n if ($63) {\n return pure(c);\n };\n return StringParser_Parser.fail(\"Character \" + (show(c) + \" is not a digit\"));\n}));\nvar anyCodePoint = function (v) {\n var v1 = Data_String_CodePoints.uncons(v.substring);\n if (v1 instanceof Data_Maybe.Nothing) {\n return new Data_Either.Left({\n pos: v.position,\n error: \"Unexpected EOF\"\n });\n };\n if (v1 instanceof Data_Maybe.Just) {\n return new Data_Either.Right({\n result: v1.value0.head,\n suffix: {\n substring: v1.value0.tail,\n position: v.position + 1 | 0\n }\n });\n };\n throw new Error(\"Failed pattern match at StringParser.CodePoints (line 72, column 3 - line 74, column 103): \" + [ v1.constructor.name ]);\n};\nvar satisfyCodePoint = function (f) {\n return StringParser_Combinators[\"try\"](bind(anyCodePoint)(function (cp) {\n var $71 = f(cp);\n if ($71) {\n return pure(cp);\n };\n return StringParser_Parser.fail(\"Code point \" + (show1(cp) + \" did not satisfy predicate\"));\n }));\n};\nvar codePoint = function (c) {\n return StringParser_Combinators.withError(satisfyCodePoint(function (v) {\n return eq1(v)(c);\n }))(\"Could not match code point \" + show1(c));\n};\nvar anyChar = /* #__PURE__ */ (function () {\n var notAChar = function (cc) {\n return StringParser_Parser.fail(\"Code point \" + (show2(cc) + \" is not a character\"));\n };\n return bind(Data_Functor.mapFlipped(StringParser_Parser.functorParser)(anyCodePoint)(Data_Enum.fromEnum(Data_String_CodePoints.boundedEnumCodePoint)))(function (cc) {\n var v = Data_Char.fromCharCode(cc);\n if (v instanceof Data_Maybe.Just) {\n var $73 = cc > 65535;\n if ($73) {\n return notAChar(cc);\n };\n return pure(v.value0);\n };\n if (v instanceof Data_Maybe.Nothing) {\n return notAChar(cc);\n };\n throw new Error(\"Failed pattern match at StringParser.CodePoints (line 57, column 3 - line 65, column 27): \" + [ v.constructor.name ]);\n });\n})();\nvar satisfy = function (f) {\n return StringParser_Combinators[\"try\"](bind(anyChar)(function (c) {\n var $75 = f(c);\n if ($75) {\n return pure(c);\n };\n return StringParser_Parser.fail(\"Character \" + (show(c) + \" did not satisfy predicate\"));\n }));\n};\nvar $$char = function (c) {\n return StringParser_Combinators.withError(satisfy(function (v) {\n return v === c;\n }))(\"Could not match character \" + show(c));\n};\nvar noneOf = function (dictFoldable) {\n var $76 = Data_Function.flip(Data_Foldable.notElem(dictFoldable)(Data_Eq.eqChar));\n return function ($77) {\n return satisfy($76($77));\n };\n};\nvar oneOf = function (dictFoldable) {\n var $78 = Data_Function.flip(Data_Foldable.elem(dictFoldable)(Data_Eq.eqChar));\n return function ($79) {\n return satisfy($78($79));\n };\n};\nvar whiteSpace = /* #__PURE__ */ bind(/* #__PURE__ */ StringParser_Combinators.many(/* #__PURE__ */ satisfy(function (c) {\n return c === \"\\x0a\" || (c === \"\\x0d\" || (c === \" \" || c === \"\\x09\"));\n})))(function (cs) {\n return pure(foldMap(Data_String_CodeUnits.singleton)(cs));\n});\nvar skipSpaces = /* #__PURE__ */ Data_Functor[\"void\"](StringParser_Parser.functorParser)(whiteSpace);\nvar alphaNum = /* #__PURE__ */ alt(anyLetter)(/* #__PURE__ */ StringParser_Combinators.withError(anyDigit)(\"Expected a letter or a number\"));\nexport {\n eof,\n anyChar,\n anyCodePoint,\n anyDigit,\n string,\n satisfy,\n satisfyCodePoint,\n $$char as char,\n codePoint,\n whiteSpace,\n skipSpaces,\n oneOf,\n noneOf,\n lowerCaseChar,\n upperCaseChar,\n anyLetter,\n alphaNum,\n regex\n};\n","// Generated by purs version 0.15.7\nimport * as Control_Alt from \"../Control.Alt/index.js\";\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Apply from \"../Control.Apply/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Data_Either from \"../Data.Either/index.js\";\nimport * as Data_Foldable from \"../Data.Foldable/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_List from \"../Data.List/index.js\";\nimport * as Data_List_Types from \"../Data.List.Types/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Monoid from \"../Data.Monoid/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nimport * as Data_Semiring from \"../Data.Semiring/index.js\";\nimport * as Data_Show from \"../Data.Show/index.js\";\nimport * as Data_String_CodePoints from \"../Data.String.CodePoints/index.js\";\nimport * as Data_String_Common from \"../Data.String.Common/index.js\";\nimport * as Data_String_Regex from \"../Data.String.Regex/index.js\";\nimport * as Data_String_Regex_Flags from \"../Data.String.Regex.Flags/index.js\";\nimport * as Data_String_Regex_Unsafe from \"../Data.String.Regex.Unsafe/index.js\";\nimport * as Data_String_Utils from \"../Data.String.Utils/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nimport * as Effect_Console from \"../Effect.Console/index.js\";\nimport * as Effect_Unsafe from \"../Effect.Unsafe/index.js\";\nimport * as StringParser_CodePoints from \"../StringParser.CodePoints/index.js\";\nimport * as StringParser_Combinators from \"../StringParser.Combinators/index.js\";\nimport * as StringParser_Parser from \"../StringParser.Parser/index.js\";\nimport * as TablatureDocument from \"../TablatureDocument/index.js\";\nimport * as Utils from \"../Utils/index.js\";\nvar $runtime_lazy = function (name, moduleName, init) {\n var state = 0;\n var val;\n return function (lineNumber) {\n if (state === 2) return val;\n if (state === 1) throw new ReferenceError(name + \" was needed before it finished initializing (module \" + moduleName + \", line \" + lineNumber + \")\", moduleName, lineNumber);\n state = 1;\n val = init();\n state = 2;\n return val;\n };\n};\nvar applyFirst = /* #__PURE__ */ Control_Apply.applyFirst(StringParser_Parser.applyParser);\nvar show = /* #__PURE__ */ Data_Show.show(Data_Show.showInt);\nvar show1 = /* #__PURE__ */ Data_Show.show(Data_Show.showString);\nvar pure = /* #__PURE__ */ Control_Applicative.pure(Data_Maybe.applicativeMaybe);\nvar mapFlipped = /* #__PURE__ */ Data_Functor.mapFlipped(StringParser_Parser.functorParser);\nvar fromJust = /* #__PURE__ */ Data_Maybe.fromJust();\nvar bind = /* #__PURE__ */ Control_Bind.bind(StringParser_Parser.bindParser);\nvar pure1 = /* #__PURE__ */ Control_Applicative.pure(StringParser_Parser.applicativeParser);\nvar alt = /* #__PURE__ */ Control_Alt.alt(StringParser_Parser.altParser);\nvar append1 = /* #__PURE__ */ Data_Semigroup.append(Data_List_Types.semigroupList);\nvar applySecond = /* #__PURE__ */ Control_Apply.applySecond(StringParser_Parser.applyParser);\nvar print = /* #__PURE__ */ Utils.print(TablatureDocument.printTablatureLineElem);\nvar sum = /* #__PURE__ */ Data_Foldable.sum(Data_List_Types.foldableList)(Data_Semiring.semiringInt);\nvar mapFlipped1 = /* #__PURE__ */ Data_Functor.mapFlipped(Data_List_Types.functorList);\nvar fold = /* #__PURE__ */ Data_Foldable.fold(Data_List_Types.foldableList)(Data_Monoid.monoidString);\nvar append2 = /* #__PURE__ */ Data_Semigroup.append(/* #__PURE__ */ StringParser_Parser.semigroupParser(Data_Semigroup.semigroupString));\nvar discard = /* #__PURE__ */ Control_Bind.discard(Control_Bind.discardUnit)(StringParser_Parser.bindParser);\nvar append3 = /* #__PURE__ */ Data_Semigroup.append(/* #__PURE__ */ StringParser_Parser.semigroupParser(Data_List_Types.semigroupList));\nvar tryRunParser = function (dictShow) {\n return function (parser) {\n return function (inputString) {\n var v = StringParser_Parser.unParser(applyFirst(parser)(StringParser_CodePoints.eof))({\n substring: inputString,\n position: 0\n });\n if (v instanceof Data_Either.Left) {\n var msg = \"Position: \" + (show(v.value0.pos) + (\"\\x0aError: \" + (show1(v.value0.error) + (\"\\x0aIn input string: \" + (inputString + (\"\\x0aWith unparsed suffix: \" + show1(Data_String_CodePoints.drop(v.value0.pos)(inputString))))))));\n return (function (v1) {\n return Data_Maybe.Nothing.value;\n })(Effect_Unsafe.unsafePerformEffect(Effect_Console.error(msg)));\n };\n if (v instanceof Data_Either.Right) {\n return pure(v.value0.result);\n };\n throw new Error(\"Failed pattern match at TablatureParser (line 227, column 3 - line 237, column 33): \" + [ v.constructor.name ]);\n };\n };\n};\nvar tryRunParser1 = /* #__PURE__ */ tryRunParser(/* #__PURE__ */ Data_List_Types.showList(TablatureDocument.showTablatureDocumentLine));\nvar sanitizeInput = function (inputString) {\n return Data_String_Regex.replace(Data_String_Regex_Unsafe.unsafeRegex(\"[ \\x09]+\\x0a\")(Data_String_Regex_Flags.global))(\"\\x0a\")(Data_String_Regex.replace(Data_String_Regex_Unsafe.unsafeRegex(\"\\x0d\")(Data_String_Regex_Flags.global))(\"\")(inputString));\n};\nvar parseWord = /* #__PURE__ */ (function () {\n return mapFlipped(StringParser_CodePoints.regex(\"(? bkeys.length) return GT;\n var keys = akeys.concat(bkeys).sort();\n for (var j = 0; j < keys.length; j++) {\n var k = keys[j];\n if (a[k] === undefined) return LT;\n else if (b[k] === undefined) return GT;\n var ck = _compare(EQ, GT, LT, a[k], b[k]);\n if (ck !== EQ) return ck;\n }\n return EQ;\n }\n }\n}\n","export function _copyST(m) {\n return function () {\n var r = {};\n for (var k in m) {\n if (hasOwnProperty.call(m, k)) {\n r[k] = m[k];\n }\n }\n return r;\n };\n}\n\nexport const empty = {};\n\nexport function runST(f) {\n return f();\n}\n\nexport function _fmapObject(m0, f) {\n var m = {};\n for (var k in m0) {\n if (hasOwnProperty.call(m0, k)) {\n m[k] = f(m0[k]);\n }\n }\n return m;\n}\n\nexport function _mapWithKey(m0, f) {\n var m = {};\n for (var k in m0) {\n if (hasOwnProperty.call(m0, k)) {\n m[k] = f(k)(m0[k]);\n }\n }\n return m;\n}\n\nexport function _foldM(bind) {\n return function (f) {\n return function (mz) {\n return function (m) {\n var acc = mz;\n function g(k) {\n return function (z) {\n return f(z)(k)(m[k]);\n };\n }\n for (var k in m) {\n if (hasOwnProperty.call(m, k)) {\n acc = bind(acc)(g(k));\n }\n }\n return acc;\n };\n };\n };\n}\n\nexport function _foldSCObject(m, z, f, fromMaybe) {\n var acc = z;\n for (var k in m) {\n if (hasOwnProperty.call(m, k)) {\n var maybeR = f(acc)(k)(m[k]);\n var r = fromMaybe(null)(maybeR);\n if (r === null) return acc;\n else acc = r;\n }\n }\n return acc;\n}\n\nexport function all(f) {\n return function (m) {\n for (var k in m) {\n if (hasOwnProperty.call(m, k) && !f(k)(m[k])) return false;\n }\n return true;\n };\n}\n\nexport function size(m) {\n var s = 0;\n for (var k in m) {\n if (hasOwnProperty.call(m, k)) {\n ++s;\n }\n }\n return s;\n}\n\nexport function _lookup(no, yes, k, m) {\n return k in m ? yes(m[k]) : no;\n}\n\nexport function _lookupST(no, yes, k, m) {\n return function () {\n return k in m ? yes(m[k]) : no;\n };\n}\n\nexport function toArrayWithKey(f) {\n return function (m) {\n var r = [];\n for (var k in m) {\n if (hasOwnProperty.call(m, k)) {\n r.push(f(k)(m[k]));\n }\n }\n return r;\n };\n}\n\nexport const keys = Object.keys || toArrayWithKey(function (k) {\n return function () { return k; };\n});\n","const newImpl = function () {\n return {};\n};\nexport { newImpl as new };\n\nexport function peekImpl(just) {\n return function (nothing) {\n return function (k) {\n return function (m) {\n return function () {\n return {}.hasOwnProperty.call(m, k) ? just(m[k]) : nothing;\n };\n };\n };\n };\n}\n\nexport function poke(k) {\n return function (v) {\n return function (m) {\n return function () {\n m[k] = v;\n return m;\n };\n };\n };\n}\n\nconst deleteImpl = function (k) {\n return function (m) {\n return function () {\n delete m[k];\n return m;\n };\n };\n};\nexport { deleteImpl as delete };\n","// Generated by purs version 0.15.7\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nvar peek = /* #__PURE__ */ (function () {\n return $foreign.peekImpl(Data_Maybe.Just.create)(Data_Maybe.Nothing.value);\n})();\nexport {\n new,\n poke,\n delete\n} from \"./foreign.js\";\nexport {\n peek\n};\n","// Generated by purs version 0.15.7\nimport * as $foreign from \"./foreign.js\";\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Apply from \"../Control.Apply/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Control_Monad_ST_Internal from \"../Control.Monad.ST.Internal/index.js\";\nimport * as Data_Array from \"../Data.Array/index.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Foldable from \"../Data.Foldable/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Function_Uncurried from \"../Data.Function.Uncurried/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Monoid from \"../Data.Monoid/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nimport * as Data_Show from \"../Data.Show/index.js\";\nimport * as Data_Traversable from \"../Data.Traversable/index.js\";\nimport * as Data_TraversableWithIndex from \"../Data.TraversableWithIndex/index.js\";\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nimport * as Data_Unfoldable from \"../Data.Unfoldable/index.js\";\nimport * as Foreign_Object_ST from \"../Foreign.Object.ST/index.js\";\nimport * as Unsafe_Coerce from \"../Unsafe.Coerce/index.js\";\nvar sortWith = /* #__PURE__ */ Data_Array.sortWith(Data_Ord.ordString);\nvar bindFlipped = /* #__PURE__ */ Control_Bind.bindFlipped(Control_Monad_ST_Internal.bindST);\nvar showTuple = /* #__PURE__ */ Data_Tuple.showTuple(Data_Show.showString);\nvar pure = /* #__PURE__ */ Control_Applicative.pure(Control_Monad_ST_Internal.applicativeST);\nvar for_ = /* #__PURE__ */ Data_Foldable.for_(Control_Monad_ST_Internal.applicativeST);\nvar $$void = /* #__PURE__ */ Data_Functor[\"void\"](Control_Monad_ST_Internal.functorST);\nvar foldr = /* #__PURE__ */ Data_Foldable.foldr(Data_Foldable.foldableArray);\nvar identity = /* #__PURE__ */ Control_Category.identity(Control_Category.categoryFn);\nvar ordTuple = /* #__PURE__ */ Data_Tuple.ordTuple(Data_Ord.ordString);\nvar mapFlipped = /* #__PURE__ */ Data_Functor.mapFlipped(Data_Maybe.functorMaybe);\nvar values = /* #__PURE__ */ $foreign.toArrayWithKey(function (v) {\n return function (v1) {\n return v1;\n };\n});\nvar toUnfoldable = function (dictUnfoldable) {\n var $86 = Data_Array.toUnfoldable(dictUnfoldable);\n var $87 = $foreign.toArrayWithKey(Data_Tuple.Tuple.create);\n return function ($88) {\n return $86($87($88));\n };\n};\nvar toAscUnfoldable = function (dictUnfoldable) {\n var $89 = Data_Array.toUnfoldable(dictUnfoldable);\n var $90 = sortWith(Data_Tuple.fst);\n var $91 = $foreign.toArrayWithKey(Data_Tuple.Tuple.create);\n return function ($92) {\n return $89($90($91($92)));\n };\n};\nvar toAscArray = /* #__PURE__ */ toAscUnfoldable(Data_Unfoldable.unfoldableArray);\nvar toArray = /* #__PURE__ */ (function () {\n return $foreign.toArrayWithKey(Data_Tuple.Tuple.create);\n})();\nvar thawST = $foreign[\"_copyST\"];\nvar singleton = function (k) {\n return function (v) {\n return $foreign.runST(bindFlipped(Foreign_Object_ST.poke(k)(v))(Foreign_Object_ST[\"new\"]));\n };\n};\nvar showObject = function (dictShow) {\n var show = Data_Show.show(Data_Show.showArray(showTuple(dictShow)));\n return {\n show: function (m) {\n return \"(fromFoldable \" + (show(toArray(m)) + \")\");\n }\n };\n};\nvar mutate = function (f) {\n return function (m) {\n return $foreign.runST(function __do() {\n var s = thawST(m)();\n f(s)();\n return s;\n });\n };\n};\nvar member = /* #__PURE__ */ Data_Function_Uncurried.runFn4($foreign[\"_lookup\"])(false)(/* #__PURE__ */ Data_Function[\"const\"](true));\nvar mapWithKey = function (f) {\n return function (m) {\n return $foreign[\"_mapWithKey\"](m, f);\n };\n};\nvar lookup = /* #__PURE__ */ (function () {\n return Data_Function_Uncurried.runFn4($foreign[\"_lookup\"])(Data_Maybe.Nothing.value)(Data_Maybe.Just.create);\n})();\nvar isSubmap = function (dictEq) {\n var eq = Data_Eq.eq(dictEq);\n return function (m1) {\n return function (m2) {\n var f = function (k) {\n return function (v) {\n return $foreign[\"_lookup\"](false, eq(v), k, m2);\n };\n };\n return $foreign.all(f)(m1);\n };\n };\n};\nvar isEmpty = /* #__PURE__ */ $foreign.all(function (v) {\n return function (v1) {\n return false;\n };\n});\nvar insert = function (k) {\n return function (v) {\n return mutate(Foreign_Object_ST.poke(k)(v));\n };\n};\nvar functorObject = {\n map: function (f) {\n return function (m) {\n return $foreign[\"_fmapObject\"](m, f);\n };\n }\n};\nvar functorWithIndexObject = {\n mapWithIndex: mapWithKey,\n Functor0: function () {\n return functorObject;\n }\n};\nvar fromHomogeneous = function () {\n return Unsafe_Coerce.unsafeCoerce;\n};\nvar fromFoldableWith = function (dictFoldable) {\n var for_1 = for_(dictFoldable);\n return function (f) {\n return function (l) {\n return $foreign.runST(function __do() {\n var s = Foreign_Object_ST[\"new\"]();\n for_1(l)(function (v) {\n return function __do() {\n var v$prime = $foreign[\"_lookupST\"](v.value1, f(v.value1), v.value0, s)();\n return Foreign_Object_ST.poke(v.value0)(v$prime)(s)();\n };\n })();\n return s;\n });\n };\n };\n};\nvar fromFoldable = function (dictFoldable) {\n var fromFoldable1 = Data_Array.fromFoldable(dictFoldable);\n return function (l) {\n return $foreign.runST(function __do() {\n var s = Foreign_Object_ST[\"new\"]();\n Control_Monad_ST_Internal.foreach(fromFoldable1(l))(function (v) {\n return $$void(Foreign_Object_ST.poke(v.value0)(v.value1)(s));\n })();\n return s;\n });\n };\n};\nvar freezeST = $foreign[\"_copyST\"];\nvar foldMaybe = function (f) {\n return function (z) {\n return function (m) {\n return $foreign[\"_foldSCObject\"](m, z, f, Data_Maybe.fromMaybe);\n };\n };\n};\nvar foldM = function (dictMonad) {\n var bind1 = Control_Bind.bind(dictMonad.Bind1());\n var pure1 = Control_Applicative.pure(dictMonad.Applicative0());\n return function (f) {\n return function (z) {\n return $foreign[\"_foldM\"](bind1)(f)(pure1(z));\n };\n };\n};\nvar foldM1 = /* #__PURE__ */ foldM(Control_Monad_ST_Internal.monadST);\nvar union = function (m) {\n return mutate(function (s) {\n return foldM1(function (s$prime) {\n return function (k) {\n return function (v) {\n return Foreign_Object_ST.poke(k)(v)(s$prime);\n };\n };\n })(s)(m);\n });\n};\nvar unions = function (dictFoldable) {\n return Data_Foldable.foldl(dictFoldable)(union)($foreign.empty);\n};\nvar unionWith = function (f) {\n return function (m1) {\n return function (m2) {\n return mutate(function (s1) {\n return foldM1(function (s2) {\n return function (k) {\n return function (v1) {\n return Foreign_Object_ST.poke(k)($foreign[\"_lookup\"](v1, function (v2) {\n return f(v1)(v2);\n }, k, m2))(s2);\n };\n };\n })(s1)(m1);\n })(m2);\n };\n };\n};\nvar semigroupObject = function (dictSemigroup) {\n return {\n append: unionWith(Data_Semigroup.append(dictSemigroup))\n };\n};\nvar monoidObject = function (dictSemigroup) {\n var semigroupObject1 = semigroupObject(dictSemigroup);\n return {\n mempty: $foreign.empty,\n Semigroup0: function () {\n return semigroupObject1;\n }\n };\n};\nvar fold = /* #__PURE__ */ $foreign[\"_foldM\"](Data_Function.applyFlipped);\nvar foldMap = function (dictMonoid) {\n var append1 = Data_Semigroup.append(dictMonoid.Semigroup0());\n var mempty = Data_Monoid.mempty(dictMonoid);\n return function (f) {\n return fold(function (acc) {\n return function (k) {\n return function (v) {\n return append1(acc)(f(k)(v));\n };\n };\n })(mempty);\n };\n};\nvar foldableObject = {\n foldl: function (f) {\n return fold(function (z) {\n return function (v) {\n return f(z);\n };\n });\n },\n foldr: function (f) {\n return function (z) {\n return function (m) {\n return foldr(f)(z)(values(m));\n };\n };\n },\n foldMap: function (dictMonoid) {\n var foldMap1 = foldMap(dictMonoid);\n return function (f) {\n return foldMap1(Data_Function[\"const\"](f));\n };\n }\n};\nvar foldableWithIndexObject = {\n foldlWithIndex: function (f) {\n return fold(Data_Function.flip(f));\n },\n foldrWithIndex: function (f) {\n return function (z) {\n return function (m) {\n return foldr(Data_Tuple.uncurry(f))(z)($foreign.toArrayWithKey(Data_Tuple.Tuple.create)(m));\n };\n };\n },\n foldMapWithIndex: function (dictMonoid) {\n return foldMap(dictMonoid);\n },\n Foldable0: function () {\n return foldableObject;\n }\n};\nvar traversableWithIndexObject = {\n traverseWithIndex: function (dictApplicative) {\n var Apply0 = dictApplicative.Apply0();\n var apply = Control_Apply.apply(Apply0);\n var map = Data_Functor.map(Apply0.Functor0());\n var pure1 = Control_Applicative.pure(dictApplicative);\n return function (f) {\n return function (ms) {\n return fold(function (acc) {\n return function (k) {\n return function (v) {\n return apply(map(Data_Function.flip(insert(k)))(acc))(f(k)(v));\n };\n };\n })(pure1($foreign.empty))(ms);\n };\n };\n },\n FunctorWithIndex0: function () {\n return functorWithIndexObject;\n },\n FoldableWithIndex1: function () {\n return foldableWithIndexObject;\n },\n Traversable2: function () {\n return traversableObject;\n }\n};\nvar traversableObject = {\n traverse: function (dictApplicative) {\n var $93 = Data_TraversableWithIndex.traverseWithIndex(traversableWithIndexObject)(dictApplicative);\n return function ($94) {\n return $93(Data_Function[\"const\"]($94));\n };\n },\n sequence: function (dictApplicative) {\n return Data_Traversable.traverse(traversableObject)(dictApplicative)(identity);\n },\n Functor0: function () {\n return functorObject;\n },\n Foldable1: function () {\n return foldableObject;\n }\n};\nvar filterWithKey = function (predicate) {\n return function (m) {\n var go = (function () {\n var step = function (acc) {\n return function (k) {\n return function (v) {\n var $83 = predicate(k)(v);\n if ($83) {\n return Foreign_Object_ST.poke(k)(v)(acc);\n };\n return pure(acc);\n };\n };\n };\n return function __do() {\n var m$prime = Foreign_Object_ST[\"new\"]();\n return foldM1(step)(m$prime)(m)();\n };\n })();\n return $foreign.runST(go);\n };\n};\nvar filterKeys = function (predicate) {\n return filterWithKey(function ($95) {\n return Data_Function[\"const\"](predicate($95));\n });\n};\nvar filter = function (predicate) {\n return filterWithKey(Data_Function[\"const\"](predicate));\n};\nvar eqObject = function (dictEq) {\n var isSubmap1 = isSubmap(dictEq);\n return {\n eq: function (m1) {\n return function (m2) {\n return isSubmap1(m1)(m2) && isSubmap1(m2)(m1);\n };\n }\n };\n};\nvar ordObject = function (dictOrd) {\n var compare = Data_Ord.compare(Data_Ord.ordArray(ordTuple(dictOrd)));\n var eqObject1 = eqObject(dictOrd.Eq0());\n return {\n compare: function (m1) {\n return function (m2) {\n return compare(toAscArray(m1))(toAscArray(m2));\n };\n },\n Eq0: function () {\n return eqObject1;\n }\n };\n};\nvar eq1Object = {\n eq1: function (dictEq) {\n return Data_Eq.eq(eqObject(dictEq));\n }\n};\nvar $$delete = function (k) {\n return mutate(Foreign_Object_ST[\"delete\"](k));\n};\nvar pop = function (k) {\n return function (m) {\n return mapFlipped(lookup(k)(m))(function (a) {\n return new Data_Tuple.Tuple(a, $$delete(k)(m));\n });\n };\n};\nvar alter = function (f) {\n return function (k) {\n return function (m) {\n var v = f(lookup(k)(m));\n if (v instanceof Data_Maybe.Nothing) {\n return $$delete(k)(m);\n };\n if (v instanceof Data_Maybe.Just) {\n return insert(k)(v.value0)(m);\n };\n throw new Error(\"Failed pattern match at Foreign.Object (line 209, column 15 - line 211, column 25): \" + [ v.constructor.name ]);\n };\n };\n};\nvar update = function (f) {\n return function (k) {\n return function (m) {\n return alter(Data_Maybe.maybe(Data_Maybe.Nothing.value)(f))(k)(m);\n };\n };\n};\nexport {\n empty,\n size,\n keys,\n all,\n runST,\n toArrayWithKey\n} from \"./foreign.js\";\nexport {\n isEmpty,\n singleton,\n insert,\n lookup,\n toUnfoldable,\n toAscUnfoldable,\n fromFoldable,\n fromFoldableWith,\n fromHomogeneous,\n $$delete as delete,\n pop,\n member,\n alter,\n update,\n mapWithKey,\n filterWithKey,\n filterKeys,\n filter,\n values,\n union,\n unionWith,\n unions,\n isSubmap,\n fold,\n foldMap,\n foldM,\n foldMaybe,\n thawST,\n freezeST,\n functorObject,\n functorWithIndexObject,\n foldableObject,\n foldableWithIndexObject,\n traversableObject,\n traversableWithIndexObject,\n eqObject,\n eq1Object,\n ordObject,\n showObject,\n semigroupObject,\n monoidObject\n};\n","// Generated by purs version 0.15.7\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Data_Ordering from \"../Data.Ordering/index.js\";\nimport * as Foreign_Object from \"../Foreign.Object/index.js\";\nvar eq = /* #__PURE__ */ Data_Eq.eq(Data_Ordering.eqOrdering);\nvar verbJsonType = function (def) {\n return function (f) {\n return function (g) {\n return g(def)(f);\n };\n };\n};\nvar toJsonType = /* #__PURE__ */ (function () {\n return verbJsonType(Data_Maybe.Nothing.value)(Data_Maybe.Just.create);\n})();\nvar jsonZero = /* #__PURE__ */ $foreign.fromNumber(0.0);\nvar jsonTrue = /* #__PURE__ */ $foreign.fromBoolean(true);\nvar jsonSingletonObject = function (key) {\n return function (val) {\n return $foreign.fromObject(Foreign_Object.singleton(key)(val));\n };\n};\nvar jsonSingletonArray = function (j) {\n return $foreign.fromArray([ j ]);\n};\nvar jsonFalse = /* #__PURE__ */ $foreign.fromBoolean(false);\nvar jsonEmptyString = /* #__PURE__ */ $foreign.fromString(\"\");\nvar jsonEmptyObject = /* #__PURE__ */ $foreign.fromObject(Foreign_Object.empty);\nvar jsonEmptyArray = /* #__PURE__ */ $foreign.fromArray([ ]);\nvar isJsonType = /* #__PURE__ */ verbJsonType(false)(/* #__PURE__ */ Data_Function[\"const\"](true));\nvar ordJson = {\n compare: function (a) {\n return function (b) {\n return $foreign[\"_compare\"](Data_Ordering.EQ.value, Data_Ordering.GT.value, Data_Ordering.LT.value, a, b);\n };\n },\n Eq0: function () {\n return eqJson;\n }\n};\nvar eqJson = {\n eq: function (j1) {\n return function (j2) {\n return eq(Data_Ord.compare(ordJson)(j1)(j2))(Data_Ordering.EQ.value);\n };\n }\n};\nvar eqJNull = {\n eq: function (v) {\n return function (v1) {\n return true;\n };\n }\n};\nvar ordJNull = {\n compare: function (v) {\n return function (v1) {\n return Data_Ordering.EQ.value;\n };\n },\n Eq0: function () {\n return eqJNull;\n }\n};\nvar caseJsonString = function (d) {\n return function (f) {\n return function (j) {\n return $foreign[\"_caseJson\"](Data_Function[\"const\"](d), Data_Function[\"const\"](d), Data_Function[\"const\"](d), f, Data_Function[\"const\"](d), Data_Function[\"const\"](d), j);\n };\n };\n};\nvar isString = /* #__PURE__ */ isJsonType(caseJsonString);\nvar toString = /* #__PURE__ */ toJsonType(caseJsonString);\nvar caseJsonObject = function (d) {\n return function (f) {\n return function (j) {\n return $foreign[\"_caseJson\"](Data_Function[\"const\"](d), Data_Function[\"const\"](d), Data_Function[\"const\"](d), Data_Function[\"const\"](d), Data_Function[\"const\"](d), f, j);\n };\n };\n};\nvar isObject = /* #__PURE__ */ isJsonType(caseJsonObject);\nvar toObject = /* #__PURE__ */ toJsonType(caseJsonObject);\nvar caseJsonNumber = function (d) {\n return function (f) {\n return function (j) {\n return $foreign[\"_caseJson\"](Data_Function[\"const\"](d), Data_Function[\"const\"](d), f, Data_Function[\"const\"](d), Data_Function[\"const\"](d), Data_Function[\"const\"](d), j);\n };\n };\n};\nvar isNumber = /* #__PURE__ */ isJsonType(caseJsonNumber);\nvar toNumber = /* #__PURE__ */ toJsonType(caseJsonNumber);\nvar caseJsonNull = function (d) {\n return function (f) {\n return function (j) {\n return $foreign[\"_caseJson\"](f, Data_Function[\"const\"](d), Data_Function[\"const\"](d), Data_Function[\"const\"](d), Data_Function[\"const\"](d), Data_Function[\"const\"](d), j);\n };\n };\n};\nvar isNull = /* #__PURE__ */ isJsonType(caseJsonNull);\nvar toNull = /* #__PURE__ */ toJsonType(caseJsonNull);\nvar caseJsonBoolean = function (d) {\n return function (f) {\n return function (j) {\n return $foreign[\"_caseJson\"](Data_Function[\"const\"](d), f, Data_Function[\"const\"](d), Data_Function[\"const\"](d), Data_Function[\"const\"](d), Data_Function[\"const\"](d), j);\n };\n };\n};\nvar isBoolean = /* #__PURE__ */ isJsonType(caseJsonBoolean);\nvar toBoolean = /* #__PURE__ */ toJsonType(caseJsonBoolean);\nvar caseJsonArray = function (d) {\n return function (f) {\n return function (j) {\n return $foreign[\"_caseJson\"](Data_Function[\"const\"](d), Data_Function[\"const\"](d), Data_Function[\"const\"](d), Data_Function[\"const\"](d), f, Data_Function[\"const\"](d), j);\n };\n };\n};\nvar isArray = /* #__PURE__ */ isJsonType(caseJsonArray);\nvar toArray = /* #__PURE__ */ toJsonType(caseJsonArray);\nvar caseJson = function (a) {\n return function (b) {\n return function (c) {\n return function (d) {\n return function (e) {\n return function (f) {\n return function (json) {\n return $foreign[\"_caseJson\"](a, b, c, d, e, f, json);\n };\n };\n };\n };\n };\n };\n};\nexport {\n fromBoolean,\n fromNumber,\n fromString,\n fromArray,\n fromObject,\n jsonNull,\n stringify,\n stringifyWithIndent\n} from \"./foreign.js\";\nexport {\n caseJson,\n caseJsonNull,\n caseJsonBoolean,\n caseJsonNumber,\n caseJsonString,\n caseJsonArray,\n caseJsonObject,\n isNull,\n isBoolean,\n isNumber,\n isString,\n isArray,\n isObject,\n toNull,\n toBoolean,\n toNumber,\n toString,\n toArray,\n toObject,\n jsonTrue,\n jsonFalse,\n jsonZero,\n jsonEmptyString,\n jsonEmptyArray,\n jsonSingletonArray,\n jsonEmptyObject,\n jsonSingletonObject,\n eqJson,\n ordJson\n};\n","// Generated by purs version 0.15.7\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Either from \"../Data.Either/index.js\";\nvar jsonParser = function (j) {\n return $foreign[\"_jsonParser\"](Data_Either.Left.create, Data_Either.Right.create, j);\n};\nexport {\n jsonParser\n};\n","export function _jsonParser(fail, succ, s) {\n try {\n return succ(JSON.parse(s));\n }\n catch (e) {\n return fail(e.message);\n }\n}\n","// A helper which transforms the result ofencodeURIComponent to be compliant\n// with RFC3896, as described in the MDN documentation here:\n//\n// https://web.archive.org/web/20201206001047/https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/encodeURIComponent\nfunction toRFC3896(input) {\n return input.replace(/[!'()*]/g, function (c) {\n return \"%\" + c.charCodeAt(0).toString(16);\n });\n}\n\nexport const _encodeURIComponent = function encode(fail, succeed, input) {\n try {\n return succeed(toRFC3896(encodeURIComponent(input)));\n } catch (err) {\n return fail(err);\n }\n};\n\nexport const _encodeFormURLComponent = function encode(fail, succeed, input) {\n try {\n return succeed(toRFC3896(encodeURIComponent(input)).replace(/%20/g, \"+\"));\n } catch (err) {\n return fail(err);\n }\n};\n\nfunction _decodeURIComponent(fail, succeed, input) {\n try {\n return succeed(decodeURIComponent(input));\n } catch (err) {\n return fail(err);\n }\n}\n\nexport {_decodeURIComponent};\n\nexport const _decodeFormURLComponent = function encode(fail, succeed, input) {\n return _decodeURIComponent(fail, succeed, input.replace(/\\+/g, \" \"));\n};\n","// Generated by purs version 0.15.7\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Function_Uncurried from \"../Data.Function.Uncurried/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nvar $$encodeURIComponent = /* #__PURE__ */ (function () {\n return Data_Function_Uncurried.runFn3($foreign[\"_encodeURIComponent\"])(Data_Function[\"const\"](Data_Maybe.Nothing.value))(Data_Maybe.Just.create);\n})();\nvar encodeFormURLComponent = /* #__PURE__ */ (function () {\n return Data_Function_Uncurried.runFn3($foreign[\"_encodeFormURLComponent\"])(Data_Function[\"const\"](Data_Maybe.Nothing.value))(Data_Maybe.Just.create);\n})();\nvar $$decodeURIComponent = /* #__PURE__ */ (function () {\n return Data_Function_Uncurried.runFn3($foreign[\"_decodeURIComponent\"])(Data_Function[\"const\"](Data_Maybe.Nothing.value))(Data_Maybe.Just.create);\n})();\nvar decodeFormURLComponent = /* #__PURE__ */ (function () {\n return Data_Function_Uncurried.runFn3($foreign[\"_decodeFormURLComponent\"])(Data_Function[\"const\"](Data_Maybe.Nothing.value))(Data_Maybe.Just.create);\n})();\nexport {\n $$encodeURIComponent as encodeURIComponent,\n encodeFormURLComponent,\n $$decodeURIComponent as decodeURIComponent,\n decodeFormURLComponent\n};\n","// Generated by purs version 0.15.7\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Apply from \"../Control.Apply/index.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Monoid from \"../Data.Monoid/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nimport * as Data_Show from \"../Data.Show/index.js\";\nimport * as Data_String_Common from \"../Data.String.Common/index.js\";\nimport * as Data_Traversable from \"../Data.Traversable/index.js\";\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nimport * as JSURI from \"../JSURI/index.js\";\nvar show = /* #__PURE__ */ Data_Show.show(/* #__PURE__ */ Data_Show.showArray(/* #__PURE__ */ Data_Tuple.showTuple(Data_Show.showString)(/* #__PURE__ */ Data_Maybe.showMaybe(Data_Show.showString))));\nvar apply = /* #__PURE__ */ Control_Apply.apply(Data_Maybe.applyMaybe);\nvar map = /* #__PURE__ */ Data_Functor.map(Data_Maybe.functorMaybe);\nvar traverse = /* #__PURE__ */ Data_Traversable.traverse(Data_Traversable.traversableArray)(Data_Maybe.applicativeMaybe);\nvar pure = /* #__PURE__ */ Control_Applicative.pure(Data_Maybe.applicativeMaybe);\nvar FormURLEncoded = function (x) {\n return x;\n};\nvar toArray = function (v) {\n return v;\n};\nvar showFormUrlEncoded = {\n show: function (v) {\n return \"(FormURLEncoded \" + (show(v) + \")\");\n }\n};\nvar semigroupFormUrlEncoded = Data_Semigroup.semigroupArray;\nvar ordFormUrlEncoded = /* #__PURE__ */ Data_Ord.ordArray(/* #__PURE__ */ Data_Tuple.ordTuple(Data_Ord.ordString)(/* #__PURE__ */ Data_Maybe.ordMaybe(Data_Ord.ordString)));\nvar newtypeFormUrlEncoded = {\n Coercible0: function () {\n return undefined;\n }\n};\nvar monoidFormUrlEncoded = Data_Monoid.monoidArray;\nvar fromArray = FormURLEncoded;\nvar eqFormUrlEncoded = /* #__PURE__ */ Data_Eq.eqArray(/* #__PURE__ */ Data_Tuple.eqTuple(Data_Eq.eqString)(/* #__PURE__ */ Data_Maybe.eqMaybe(Data_Eq.eqString)));\nvar encode = /* #__PURE__ */ (function () {\n var encodePart = function (v) {\n if (v.value1 instanceof Data_Maybe.Nothing) {\n return JSURI.encodeFormURLComponent(v.value0);\n };\n if (v.value1 instanceof Data_Maybe.Just) {\n return apply(map(function (key) {\n return function (val) {\n return key + (\"=\" + val);\n };\n })(JSURI.encodeFormURLComponent(v.value0)))(JSURI.encodeFormURLComponent(v.value1.value0));\n };\n throw new Error(\"Failed pattern match at Data.FormURLEncoded (line 37, column 16 - line 39, column 114): \" + [ v.constructor.name ]);\n };\n var $37 = map(Data_String_Common.joinWith(\"&\"));\n var $38 = traverse(encodePart);\n return function ($39) {\n return $37($38(toArray($39)));\n };\n})();\nvar decode = /* #__PURE__ */ (function () {\n var decodePart = (function () {\n var $40 = Data_String_Common.split(\"=\");\n return function ($41) {\n return (function (v) {\n if (v.length === 2) {\n return apply(map(function (key) {\n return function (val) {\n return new Data_Tuple.Tuple(key, new Data_Maybe.Just(val));\n };\n })(JSURI.decodeFormURLComponent(v[0])))(JSURI.decodeFormURLComponent(v[1]));\n };\n if (v.length === 1) {\n return apply(map(Data_Tuple.Tuple.create)(JSURI.decodeFormURLComponent(v[0])))(pure(Data_Maybe.Nothing.value));\n };\n return Data_Maybe.Nothing.value;\n })($40($41));\n };\n })();\n var $42 = map(FormURLEncoded);\n var $43 = traverse(decodePart);\n var $44 = Data_String_Common.split(\"&\");\n return function ($45) {\n return $42($43($44($45)));\n };\n})();\nexport {\n FormURLEncoded,\n fromArray,\n toArray,\n encode,\n decode,\n newtypeFormUrlEncoded,\n eqFormUrlEncoded,\n ordFormUrlEncoded,\n semigroupFormUrlEncoded,\n monoidFormUrlEncoded,\n showFormUrlEncoded\n};\n","// Generated by purs version 0.15.7\nimport * as Data_Either from \"../Data.Either/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Data_Ordering from \"../Data.Ordering/index.js\";\nimport * as Data_Show from \"../Data.Show/index.js\";\nimport * as Data_String_Common from \"../Data.String.Common/index.js\";\nvar show = /* #__PURE__ */ Data_Show.show(Data_Show.showString);\nvar compare = /* #__PURE__ */ Data_Ord.compare(Data_Ord.ordString);\nvar OPTIONS = /* #__PURE__ */ (function () {\n function OPTIONS() {\n\n };\n OPTIONS.value = new OPTIONS();\n return OPTIONS;\n})();\nvar GET = /* #__PURE__ */ (function () {\n function GET() {\n\n };\n GET.value = new GET();\n return GET;\n})();\nvar HEAD = /* #__PURE__ */ (function () {\n function HEAD() {\n\n };\n HEAD.value = new HEAD();\n return HEAD;\n})();\nvar POST = /* #__PURE__ */ (function () {\n function POST() {\n\n };\n POST.value = new POST();\n return POST;\n})();\nvar PUT = /* #__PURE__ */ (function () {\n function PUT() {\n\n };\n PUT.value = new PUT();\n return PUT;\n})();\nvar DELETE = /* #__PURE__ */ (function () {\n function DELETE() {\n\n };\n DELETE.value = new DELETE();\n return DELETE;\n})();\nvar TRACE = /* #__PURE__ */ (function () {\n function TRACE() {\n\n };\n TRACE.value = new TRACE();\n return TRACE;\n})();\nvar CONNECT = /* #__PURE__ */ (function () {\n function CONNECT() {\n\n };\n CONNECT.value = new CONNECT();\n return CONNECT;\n})();\nvar PROPFIND = /* #__PURE__ */ (function () {\n function PROPFIND() {\n\n };\n PROPFIND.value = new PROPFIND();\n return PROPFIND;\n})();\nvar PROPPATCH = /* #__PURE__ */ (function () {\n function PROPPATCH() {\n\n };\n PROPPATCH.value = new PROPPATCH();\n return PROPPATCH;\n})();\nvar MKCOL = /* #__PURE__ */ (function () {\n function MKCOL() {\n\n };\n MKCOL.value = new MKCOL();\n return MKCOL;\n})();\nvar COPY = /* #__PURE__ */ (function () {\n function COPY() {\n\n };\n COPY.value = new COPY();\n return COPY;\n})();\nvar MOVE = /* #__PURE__ */ (function () {\n function MOVE() {\n\n };\n MOVE.value = new MOVE();\n return MOVE;\n})();\nvar LOCK = /* #__PURE__ */ (function () {\n function LOCK() {\n\n };\n LOCK.value = new LOCK();\n return LOCK;\n})();\nvar UNLOCK = /* #__PURE__ */ (function () {\n function UNLOCK() {\n\n };\n UNLOCK.value = new UNLOCK();\n return UNLOCK;\n})();\nvar PATCH = /* #__PURE__ */ (function () {\n function PATCH() {\n\n };\n PATCH.value = new PATCH();\n return PATCH;\n})();\nvar CustomMethod = function (x) {\n return x;\n};\nvar unCustomMethod = function (v) {\n return v;\n};\nvar showMethod = {\n show: function (v) {\n if (v instanceof OPTIONS) {\n return \"OPTIONS\";\n };\n if (v instanceof GET) {\n return \"GET\";\n };\n if (v instanceof HEAD) {\n return \"HEAD\";\n };\n if (v instanceof POST) {\n return \"POST\";\n };\n if (v instanceof PUT) {\n return \"PUT\";\n };\n if (v instanceof DELETE) {\n return \"DELETE\";\n };\n if (v instanceof TRACE) {\n return \"TRACE\";\n };\n if (v instanceof CONNECT) {\n return \"CONNECT\";\n };\n if (v instanceof PROPFIND) {\n return \"PROPFIND\";\n };\n if (v instanceof PROPPATCH) {\n return \"PROPPATCH\";\n };\n if (v instanceof MKCOL) {\n return \"MKCOL\";\n };\n if (v instanceof COPY) {\n return \"COPY\";\n };\n if (v instanceof MOVE) {\n return \"MOVE\";\n };\n if (v instanceof LOCK) {\n return \"LOCK\";\n };\n if (v instanceof UNLOCK) {\n return \"UNLOCK\";\n };\n if (v instanceof PATCH) {\n return \"PATCH\";\n };\n throw new Error(\"Failed pattern match at Data.HTTP.Method (line 43, column 1 - line 59, column 23): \" + [ v.constructor.name ]);\n }\n};\nvar showCustomMethod = {\n show: function (v) {\n return \"(CustomMethod \" + (show(v) + \")\");\n }\n};\nvar print = /* #__PURE__ */ Data_Either.either(/* #__PURE__ */ Data_Show.show(showMethod))(unCustomMethod);\nvar parse = function (handleMethod) {\n return function (handleUnknown) {\n return function (s) {\n var v = Data_String_Common.toUpper(s);\n if (v === \"OPTIONS\") {\n return handleMethod(OPTIONS.value);\n };\n if (v === \"GET\") {\n return handleMethod(GET.value);\n };\n if (v === \"HEAD\") {\n return handleMethod(HEAD.value);\n };\n if (v === \"POST\") {\n return handleMethod(POST.value);\n };\n if (v === \"PUT\") {\n return handleMethod(PUT.value);\n };\n if (v === \"DELETE\") {\n return handleMethod(DELETE.value);\n };\n if (v === \"TRACE\") {\n return handleMethod(TRACE.value);\n };\n if (v === \"CONNECT\") {\n return handleMethod(CONNECT.value);\n };\n if (v === \"PROPFIND\") {\n return handleMethod(PROPFIND.value);\n };\n if (v === \"PROPPATCH\") {\n return handleMethod(PROPPATCH.value);\n };\n if (v === \"MKCOL\") {\n return handleMethod(MKCOL.value);\n };\n if (v === \"COPY\") {\n return handleMethod(COPY.value);\n };\n if (v === \"MOVE\") {\n return handleMethod(MOVE.value);\n };\n if (v === \"LOCK\") {\n return handleMethod(LOCK.value);\n };\n if (v === \"UNLOCK\") {\n return handleMethod(UNLOCK.value);\n };\n if (v === \"PATCH\") {\n return handleMethod(PATCH.value);\n };\n return handleUnknown(v);\n };\n };\n};\nvar fromString = /* #__PURE__ */ (function () {\n return parse(Data_Either.Left.create)(function ($34) {\n return Data_Either.Right.create(CustomMethod($34));\n });\n})();\nvar eqMethod = {\n eq: function (x) {\n return function (y) {\n if (x instanceof OPTIONS && y instanceof OPTIONS) {\n return true;\n };\n if (x instanceof GET && y instanceof GET) {\n return true;\n };\n if (x instanceof HEAD && y instanceof HEAD) {\n return true;\n };\n if (x instanceof POST && y instanceof POST) {\n return true;\n };\n if (x instanceof PUT && y instanceof PUT) {\n return true;\n };\n if (x instanceof DELETE && y instanceof DELETE) {\n return true;\n };\n if (x instanceof TRACE && y instanceof TRACE) {\n return true;\n };\n if (x instanceof CONNECT && y instanceof CONNECT) {\n return true;\n };\n if (x instanceof PROPFIND && y instanceof PROPFIND) {\n return true;\n };\n if (x instanceof PROPPATCH && y instanceof PROPPATCH) {\n return true;\n };\n if (x instanceof MKCOL && y instanceof MKCOL) {\n return true;\n };\n if (x instanceof COPY && y instanceof COPY) {\n return true;\n };\n if (x instanceof MOVE && y instanceof MOVE) {\n return true;\n };\n if (x instanceof LOCK && y instanceof LOCK) {\n return true;\n };\n if (x instanceof UNLOCK && y instanceof UNLOCK) {\n return true;\n };\n if (x instanceof PATCH && y instanceof PATCH) {\n return true;\n };\n return false;\n };\n }\n};\nvar ordMethod = {\n compare: function (x) {\n return function (y) {\n if (x instanceof OPTIONS && y instanceof OPTIONS) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof OPTIONS) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof OPTIONS) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof GET && y instanceof GET) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof GET) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof GET) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof HEAD && y instanceof HEAD) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof HEAD) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof HEAD) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof POST && y instanceof POST) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof POST) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof POST) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof PUT && y instanceof PUT) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof PUT) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof PUT) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof DELETE && y instanceof DELETE) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof DELETE) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof DELETE) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof TRACE && y instanceof TRACE) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof TRACE) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof TRACE) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof CONNECT && y instanceof CONNECT) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof CONNECT) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof CONNECT) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof PROPFIND && y instanceof PROPFIND) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof PROPFIND) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof PROPFIND) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof PROPPATCH && y instanceof PROPPATCH) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof PROPPATCH) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof PROPPATCH) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof MKCOL && y instanceof MKCOL) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof MKCOL) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof MKCOL) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof COPY && y instanceof COPY) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof COPY) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof COPY) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof MOVE && y instanceof MOVE) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof MOVE) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof MOVE) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof LOCK && y instanceof LOCK) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof LOCK) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof LOCK) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof UNLOCK && y instanceof UNLOCK) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof UNLOCK) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof UNLOCK) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof PATCH && y instanceof PATCH) {\n return Data_Ordering.EQ.value;\n };\n throw new Error(\"Failed pattern match at Data.HTTP.Method (line 0, column 0 - line 0, column 0): \" + [ x.constructor.name, y.constructor.name ]);\n };\n },\n Eq0: function () {\n return eqMethod;\n }\n};\nvar eqCustomMethod = {\n eq: function (x) {\n return function (y) {\n return x === y;\n };\n }\n};\nvar ordCustomMethod = {\n compare: function (x) {\n return function (y) {\n return compare(x)(y);\n };\n },\n Eq0: function () {\n return eqCustomMethod;\n }\n};\nexport {\n OPTIONS,\n GET,\n HEAD,\n POST,\n PUT,\n DELETE,\n TRACE,\n CONNECT,\n PROPFIND,\n PROPPATCH,\n MKCOL,\n COPY,\n MOVE,\n LOCK,\n UNLOCK,\n PATCH,\n unCustomMethod,\n fromString,\n print,\n eqMethod,\n ordMethod,\n showMethod,\n eqCustomMethod,\n ordCustomMethod,\n showCustomMethod\n};\n","/* eslint-disable no-eq-null, eqeqeq */\n\nconst nullImpl = null;\nexport { nullImpl as null };\n\nexport function nullable(a, r, f) {\n return a == null ? r : f(a);\n}\n\nexport function notNull(x) {\n return x;\n}\n","// Generated by purs version 0.15.7\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Data_Show from \"../Data.Show/index.js\";\nvar toNullable = /* #__PURE__ */ Data_Maybe.maybe($foreign[\"null\"])($foreign.notNull);\nvar toMaybe = function (n) {\n return $foreign.nullable(n, Data_Maybe.Nothing.value, Data_Maybe.Just.create);\n};\nvar showNullable = function (dictShow) {\n return {\n show: (function () {\n var $17 = Data_Maybe.maybe(\"null\")(Data_Show.show(dictShow));\n return function ($18) {\n return $17(toMaybe($18));\n };\n })()\n };\n};\nvar eqNullable = function (dictEq) {\n return {\n eq: Data_Function.on(Data_Eq.eq(Data_Maybe.eqMaybe(dictEq)))(toMaybe)\n };\n};\nvar ordNullable = function (dictOrd) {\n var eqNullable1 = eqNullable(dictOrd.Eq0());\n return {\n compare: Data_Function.on(Data_Ord.compare(Data_Maybe.ordMaybe(dictOrd)))(toMaybe),\n Eq0: function () {\n return eqNullable1;\n }\n };\n};\nvar eq1Nullable = {\n eq1: function (dictEq) {\n return Data_Eq.eq(eqNullable(dictEq));\n }\n};\nvar ord1Nullable = {\n compare1: function (dictOrd) {\n return Data_Ord.compare(ordNullable(dictOrd));\n },\n Eq10: function () {\n return eq1Nullable;\n }\n};\nexport {\n null,\n notNull\n} from \"./foreign.js\";\nexport {\n toMaybe,\n toNullable,\n showNullable,\n eqNullable,\n eq1Nullable,\n ordNullable,\n ord1Nullable\n};\n","/* globals setImmediate, clearImmediate, setTimeout, clearTimeout */\n/* eslint-disable no-unused-vars, no-prototype-builtins, no-use-before-define, no-unused-labels, no-param-reassign */\nvar Aff = function () {\n // A unique value for empty.\n var EMPTY = {};\n\n /*\n\n An awkward approximation. We elide evidence we would otherwise need in PS for\n efficiency sake.\n\n data Aff eff a\n = Pure a\n | Throw Error\n | Catch (Aff eff a) (Error -> Aff eff a)\n | Sync (Eff eff a)\n | Async ((Either Error a -> Eff eff Unit) -> Eff eff (Canceler eff))\n | forall b. Bind (Aff eff b) (b -> Aff eff a)\n | forall b. Bracket (Aff eff b) (BracketConditions eff b) (b -> Aff eff a)\n | forall b. Fork Boolean (Aff eff b) ?(Fiber eff b -> a)\n | Sequential (ParAff aff a)\n\n */\n var PURE = \"Pure\";\n var THROW = \"Throw\";\n var CATCH = \"Catch\";\n var SYNC = \"Sync\";\n var ASYNC = \"Async\";\n var BIND = \"Bind\";\n var BRACKET = \"Bracket\";\n var FORK = \"Fork\";\n var SEQ = \"Sequential\";\n\n /*\n\n data ParAff eff a\n = forall b. Map (b -> a) (ParAff eff b)\n | forall b. Apply (ParAff eff (b -> a)) (ParAff eff b)\n | Alt (ParAff eff a) (ParAff eff a)\n | ?Par (Aff eff a)\n\n */\n var MAP = \"Map\";\n var APPLY = \"Apply\";\n var ALT = \"Alt\";\n\n // Various constructors used in interpretation\n var CONS = \"Cons\"; // Cons-list, for stacks\n var RESUME = \"Resume\"; // Continue indiscriminately\n var RELEASE = \"Release\"; // Continue with bracket finalizers\n var FINALIZER = \"Finalizer\"; // A non-interruptible effect\n var FINALIZED = \"Finalized\"; // Marker for finalization\n var FORKED = \"Forked\"; // Reference to a forked fiber, with resumption stack\n var FIBER = \"Fiber\"; // Actual fiber reference\n var THUNK = \"Thunk\"; // Primed effect, ready to invoke\n\n function Aff(tag, _1, _2, _3) {\n this.tag = tag;\n this._1 = _1;\n this._2 = _2;\n this._3 = _3;\n }\n\n function AffCtr(tag) {\n var fn = function (_1, _2, _3) {\n return new Aff(tag, _1, _2, _3);\n };\n fn.tag = tag;\n return fn;\n }\n\n function nonCanceler(error) {\n return new Aff(PURE, void 0);\n }\n\n function runEff(eff) {\n try {\n eff();\n } catch (error) {\n setTimeout(function () {\n throw error;\n }, 0);\n }\n }\n\n function runSync(left, right, eff) {\n try {\n return right(eff());\n } catch (error) {\n return left(error);\n }\n }\n\n function runAsync(left, eff, k) {\n try {\n return eff(k)();\n } catch (error) {\n k(left(error))();\n return nonCanceler;\n }\n }\n\n var Scheduler = function () {\n var limit = 1024;\n var size = 0;\n var ix = 0;\n var queue = new Array(limit);\n var draining = false;\n\n function drain() {\n var thunk;\n draining = true;\n while (size !== 0) {\n size--;\n thunk = queue[ix];\n queue[ix] = void 0;\n ix = (ix + 1) % limit;\n thunk();\n }\n draining = false;\n }\n\n return {\n isDraining: function () {\n return draining;\n },\n enqueue: function (cb) {\n var i, tmp;\n if (size === limit) {\n tmp = draining;\n drain();\n draining = tmp;\n }\n\n queue[(ix + size) % limit] = cb;\n size++;\n\n if (!draining) {\n drain();\n }\n }\n };\n }();\n\n function Supervisor(util) {\n var fibers = {};\n var fiberId = 0;\n var count = 0;\n\n return {\n register: function (fiber) {\n var fid = fiberId++;\n fiber.onComplete({\n rethrow: true,\n handler: function (result) {\n return function () {\n count--;\n delete fibers[fid];\n };\n }\n })();\n fibers[fid] = fiber;\n count++;\n },\n isEmpty: function () {\n return count === 0;\n },\n killAll: function (killError, cb) {\n return function () {\n if (count === 0) {\n return cb();\n }\n\n var killCount = 0;\n var kills = {};\n\n function kill(fid) {\n kills[fid] = fibers[fid].kill(killError, function (result) {\n return function () {\n delete kills[fid];\n killCount--;\n if (util.isLeft(result) && util.fromLeft(result)) {\n setTimeout(function () {\n throw util.fromLeft(result);\n }, 0);\n }\n if (killCount === 0) {\n cb();\n }\n };\n })();\n }\n\n for (var k in fibers) {\n if (fibers.hasOwnProperty(k)) {\n killCount++;\n kill(k);\n }\n }\n\n fibers = {};\n fiberId = 0;\n count = 0;\n\n return function (error) {\n return new Aff(SYNC, function () {\n for (var k in kills) {\n if (kills.hasOwnProperty(k)) {\n kills[k]();\n }\n }\n });\n };\n };\n }\n };\n }\n\n // Fiber state machine\n var SUSPENDED = 0; // Suspended, pending a join.\n var CONTINUE = 1; // Interpret the next instruction.\n var STEP_BIND = 2; // Apply the next bind.\n var STEP_RESULT = 3; // Handle potential failure from a result.\n var PENDING = 4; // An async effect is running.\n var RETURN = 5; // The current stack has returned.\n var COMPLETED = 6; // The entire fiber has completed.\n\n function Fiber(util, supervisor, aff) {\n // Monotonically increasing tick, increased on each asynchronous turn.\n var runTick = 0;\n\n // The current branch of the state machine.\n var status = SUSPENDED;\n\n // The current point of interest for the state machine branch.\n var step = aff; // Successful step\n var fail = null; // Failure step\n var interrupt = null; // Asynchronous interrupt\n\n // Stack of continuations for the current fiber.\n var bhead = null;\n var btail = null;\n\n // Stack of attempts and finalizers for error recovery. Every `Cons` is also\n // tagged with current `interrupt` state. We use this to track which items\n // should be ignored or evaluated as a result of a kill.\n var attempts = null;\n\n // A special state is needed for Bracket, because it cannot be killed. When\n // we enter a bracket acquisition or finalizer, we increment the counter,\n // and then decrement once complete.\n var bracketCount = 0;\n\n // Each join gets a new id so they can be revoked.\n var joinId = 0;\n var joins = null;\n var rethrow = true;\n\n // Each invocation of `run` requires a tick. When an asynchronous effect is\n // resolved, we must check that the local tick coincides with the fiber\n // tick before resuming. This prevents multiple async continuations from\n // accidentally resuming the same fiber. A common example may be invoking\n // the provided callback in `makeAff` more than once, but it may also be an\n // async effect resuming after the fiber was already cancelled.\n function run(localRunTick) {\n var tmp, result, attempt;\n while (true) {\n tmp = null;\n result = null;\n attempt = null;\n\n switch (status) {\n case STEP_BIND:\n status = CONTINUE;\n try {\n step = bhead(step);\n if (btail === null) {\n bhead = null;\n } else {\n bhead = btail._1;\n btail = btail._2;\n }\n } catch (e) {\n status = RETURN;\n fail = util.left(e);\n step = null;\n }\n break;\n\n case STEP_RESULT:\n if (util.isLeft(step)) {\n status = RETURN;\n fail = step;\n step = null;\n } else if (bhead === null) {\n status = RETURN;\n } else {\n status = STEP_BIND;\n step = util.fromRight(step);\n }\n break;\n\n case CONTINUE:\n switch (step.tag) {\n case BIND:\n if (bhead) {\n btail = new Aff(CONS, bhead, btail);\n }\n bhead = step._2;\n status = CONTINUE;\n step = step._1;\n break;\n\n case PURE:\n if (bhead === null) {\n status = RETURN;\n step = util.right(step._1);\n } else {\n status = STEP_BIND;\n step = step._1;\n }\n break;\n\n case SYNC:\n status = STEP_RESULT;\n step = runSync(util.left, util.right, step._1);\n break;\n\n case ASYNC:\n status = PENDING;\n step = runAsync(util.left, step._1, function (result) {\n return function () {\n if (runTick !== localRunTick) {\n return;\n }\n runTick++;\n Scheduler.enqueue(function () {\n // It's possible to interrupt the fiber between enqueuing and\n // resuming, so we need to check that the runTick is still\n // valid.\n if (runTick !== localRunTick + 1) {\n return;\n }\n status = STEP_RESULT;\n step = result;\n run(runTick);\n });\n };\n });\n return;\n\n case THROW:\n status = RETURN;\n fail = util.left(step._1);\n step = null;\n break;\n\n // Enqueue the Catch so that we can call the error handler later on\n // in case of an exception.\n case CATCH:\n if (bhead === null) {\n attempts = new Aff(CONS, step, attempts, interrupt);\n } else {\n attempts = new Aff(CONS, step, new Aff(CONS, new Aff(RESUME, bhead, btail), attempts, interrupt), interrupt);\n }\n bhead = null;\n btail = null;\n status = CONTINUE;\n step = step._1;\n break;\n\n // Enqueue the Bracket so that we can call the appropriate handlers\n // after resource acquisition.\n case BRACKET:\n bracketCount++;\n if (bhead === null) {\n attempts = new Aff(CONS, step, attempts, interrupt);\n } else {\n attempts = new Aff(CONS, step, new Aff(CONS, new Aff(RESUME, bhead, btail), attempts, interrupt), interrupt);\n }\n bhead = null;\n btail = null;\n status = CONTINUE;\n step = step._1;\n break;\n\n case FORK:\n status = STEP_RESULT;\n tmp = Fiber(util, supervisor, step._2);\n if (supervisor) {\n supervisor.register(tmp);\n }\n if (step._1) {\n tmp.run();\n }\n step = util.right(tmp);\n break;\n\n case SEQ:\n status = CONTINUE;\n step = sequential(util, supervisor, step._1);\n break;\n }\n break;\n\n case RETURN:\n bhead = null;\n btail = null;\n // If the current stack has returned, and we have no other stacks to\n // resume or finalizers to run, the fiber has halted and we can\n // invoke all join callbacks. Otherwise we need to resume.\n if (attempts === null) {\n status = COMPLETED;\n step = interrupt || fail || step;\n } else {\n // The interrupt status for the enqueued item.\n tmp = attempts._3;\n attempt = attempts._1;\n attempts = attempts._2;\n\n switch (attempt.tag) {\n // We cannot recover from an unmasked interrupt. Otherwise we should\n // continue stepping, or run the exception handler if an exception\n // was raised.\n case CATCH:\n // We should compare the interrupt status as well because we\n // only want it to apply if there has been an interrupt since\n // enqueuing the catch.\n if (interrupt && interrupt !== tmp && bracketCount === 0) {\n status = RETURN;\n } else if (fail) {\n status = CONTINUE;\n step = attempt._2(util.fromLeft(fail));\n fail = null;\n }\n break;\n\n // We cannot resume from an unmasked interrupt or exception.\n case RESUME:\n // As with Catch, we only want to ignore in the case of an\n // interrupt since enqueing the item.\n if (interrupt && interrupt !== tmp && bracketCount === 0 || fail) {\n status = RETURN;\n } else {\n bhead = attempt._1;\n btail = attempt._2;\n status = STEP_BIND;\n step = util.fromRight(step);\n }\n break;\n\n // If we have a bracket, we should enqueue the handlers,\n // and continue with the success branch only if the fiber has\n // not been interrupted. If the bracket acquisition failed, we\n // should not run either.\n case BRACKET:\n bracketCount--;\n if (fail === null) {\n result = util.fromRight(step);\n // We need to enqueue the Release with the same interrupt\n // status as the Bracket that is initiating it.\n attempts = new Aff(CONS, new Aff(RELEASE, attempt._2, result), attempts, tmp);\n // We should only coninue as long as the interrupt status has not changed or\n // we are currently within a non-interruptable finalizer.\n if (interrupt === tmp || bracketCount > 0) {\n status = CONTINUE;\n step = attempt._3(result);\n }\n }\n break;\n\n // Enqueue the appropriate handler. We increase the bracket count\n // because it should not be cancelled.\n case RELEASE:\n attempts = new Aff(CONS, new Aff(FINALIZED, step, fail), attempts, interrupt);\n status = CONTINUE;\n // It has only been killed if the interrupt status has changed\n // since we enqueued the item, and the bracket count is 0. If the\n // bracket count is non-zero then we are in a masked state so it's\n // impossible to be killed.\n if (interrupt && interrupt !== tmp && bracketCount === 0) {\n step = attempt._1.killed(util.fromLeft(interrupt))(attempt._2);\n } else if (fail) {\n step = attempt._1.failed(util.fromLeft(fail))(attempt._2);\n } else {\n step = attempt._1.completed(util.fromRight(step))(attempt._2);\n }\n fail = null;\n bracketCount++;\n break;\n\n case FINALIZER:\n bracketCount++;\n attempts = new Aff(CONS, new Aff(FINALIZED, step, fail), attempts, interrupt);\n status = CONTINUE;\n step = attempt._1;\n break;\n\n case FINALIZED:\n bracketCount--;\n status = RETURN;\n step = attempt._1;\n fail = attempt._2;\n break;\n }\n }\n break;\n\n case COMPLETED:\n for (var k in joins) {\n if (joins.hasOwnProperty(k)) {\n rethrow = rethrow && joins[k].rethrow;\n runEff(joins[k].handler(step));\n }\n }\n joins = null;\n // If we have an interrupt and a fail, then the thread threw while\n // running finalizers. This should always rethrow in a fresh stack.\n if (interrupt && fail) {\n setTimeout(function () {\n throw util.fromLeft(fail);\n }, 0);\n // If we have an unhandled exception, and no other fiber has joined\n // then we need to throw the exception in a fresh stack.\n } else if (util.isLeft(step) && rethrow) {\n setTimeout(function () {\n // Guard on reathrow because a completely synchronous fiber can\n // still have an observer which was added after-the-fact.\n if (rethrow) {\n throw util.fromLeft(step);\n }\n }, 0);\n }\n return;\n case SUSPENDED:\n status = CONTINUE;\n break;\n case PENDING: return;\n }\n }\n }\n\n function onComplete(join) {\n return function () {\n if (status === COMPLETED) {\n rethrow = rethrow && join.rethrow;\n join.handler(step)();\n return function () {};\n }\n\n var jid = joinId++;\n joins = joins || {};\n joins[jid] = join;\n\n return function() {\n if (joins !== null) {\n delete joins[jid];\n }\n };\n };\n }\n\n function kill(error, cb) {\n return function () {\n if (status === COMPLETED) {\n cb(util.right(void 0))();\n return function () {};\n }\n\n var canceler = onComplete({\n rethrow: false,\n handler: function (/* unused */) {\n return cb(util.right(void 0));\n }\n })();\n\n switch (status) {\n case SUSPENDED:\n interrupt = util.left(error);\n status = COMPLETED;\n step = interrupt;\n run(runTick);\n break;\n case PENDING:\n if (interrupt === null) {\n interrupt = util.left(error);\n }\n if (bracketCount === 0) {\n if (status === PENDING) {\n attempts = new Aff(CONS, new Aff(FINALIZER, step(error)), attempts, interrupt);\n }\n status = RETURN;\n step = null;\n fail = null;\n run(++runTick);\n }\n break;\n default:\n if (interrupt === null) {\n interrupt = util.left(error);\n }\n if (bracketCount === 0) {\n status = RETURN;\n step = null;\n fail = null;\n }\n }\n\n return canceler;\n };\n }\n\n function join(cb) {\n return function () {\n var canceler = onComplete({\n rethrow: false,\n handler: cb\n })();\n if (status === SUSPENDED) {\n run(runTick);\n }\n return canceler;\n };\n }\n\n return {\n kill: kill,\n join: join,\n onComplete: onComplete,\n isSuspended: function () {\n return status === SUSPENDED;\n },\n run: function () {\n if (status === SUSPENDED) {\n if (!Scheduler.isDraining()) {\n Scheduler.enqueue(function () {\n run(runTick);\n });\n } else {\n run(runTick);\n }\n }\n }\n };\n }\n\n function runPar(util, supervisor, par, cb) {\n // Table of all forked fibers.\n var fiberId = 0;\n var fibers = {};\n\n // Table of currently running cancelers, as a product of `Alt` behavior.\n var killId = 0;\n var kills = {};\n\n // Error used for early cancelation on Alt branches.\n var early = new Error(\"[ParAff] Early exit\");\n\n // Error used to kill the entire tree.\n var interrupt = null;\n\n // The root pointer of the tree.\n var root = EMPTY;\n\n // Walks a tree, invoking all the cancelers. Returns the table of pending\n // cancellation fibers.\n function kill(error, par, cb) {\n var step = par;\n var head = null;\n var tail = null;\n var count = 0;\n var kills = {};\n var tmp, kid;\n\n loop: while (true) {\n tmp = null;\n\n switch (step.tag) {\n case FORKED:\n if (step._3 === EMPTY) {\n tmp = fibers[step._1];\n kills[count++] = tmp.kill(error, function (result) {\n return function () {\n count--;\n if (count === 0) {\n cb(result)();\n }\n };\n });\n }\n // Terminal case.\n if (head === null) {\n break loop;\n }\n // Go down the right side of the tree.\n step = head._2;\n if (tail === null) {\n head = null;\n } else {\n head = tail._1;\n tail = tail._2;\n }\n break;\n case MAP:\n step = step._2;\n break;\n case APPLY:\n case ALT:\n if (head) {\n tail = new Aff(CONS, head, tail);\n }\n head = step;\n step = step._1;\n break;\n }\n }\n\n if (count === 0) {\n cb(util.right(void 0))();\n } else {\n // Run the cancelation effects. We alias `count` because it's mutable.\n kid = 0;\n tmp = count;\n for (; kid < tmp; kid++) {\n kills[kid] = kills[kid]();\n }\n }\n\n return kills;\n }\n\n // When a fiber resolves, we need to bubble back up the tree with the\n // result, computing the applicative nodes.\n function join(result, head, tail) {\n var fail, step, lhs, rhs, tmp, kid;\n\n if (util.isLeft(result)) {\n fail = result;\n step = null;\n } else {\n step = result;\n fail = null;\n }\n\n loop: while (true) {\n lhs = null;\n rhs = null;\n tmp = null;\n kid = null;\n\n // We should never continue if the entire tree has been interrupted.\n if (interrupt !== null) {\n return;\n }\n\n // We've made it all the way to the root of the tree, which means\n // the tree has fully evaluated.\n if (head === null) {\n cb(fail || step)();\n return;\n }\n\n // The tree has already been computed, so we shouldn't try to do it\n // again. This should never happen.\n // TODO: Remove this?\n if (head._3 !== EMPTY) {\n return;\n }\n\n switch (head.tag) {\n case MAP:\n if (fail === null) {\n head._3 = util.right(head._1(util.fromRight(step)));\n step = head._3;\n } else {\n head._3 = fail;\n }\n break;\n case APPLY:\n lhs = head._1._3;\n rhs = head._2._3;\n // If we have a failure we should kill the other side because we\n // can't possible yield a result anymore.\n if (fail) {\n head._3 = fail;\n tmp = true;\n kid = killId++;\n\n kills[kid] = kill(early, fail === lhs ? head._2 : head._1, function (/* unused */) {\n return function () {\n delete kills[kid];\n if (tmp) {\n tmp = false;\n } else if (tail === null) {\n join(fail, null, null);\n } else {\n join(fail, tail._1, tail._2);\n }\n };\n });\n\n if (tmp) {\n tmp = false;\n return;\n }\n } else if (lhs === EMPTY || rhs === EMPTY) {\n // We can only proceed if both sides have resolved.\n return;\n } else {\n step = util.right(util.fromRight(lhs)(util.fromRight(rhs)));\n head._3 = step;\n }\n break;\n case ALT:\n lhs = head._1._3;\n rhs = head._2._3;\n // We can only proceed if both have resolved or we have a success\n if (lhs === EMPTY && util.isLeft(rhs) || rhs === EMPTY && util.isLeft(lhs)) {\n return;\n }\n // If both sides resolve with an error, we should continue with the\n // first error\n if (lhs !== EMPTY && util.isLeft(lhs) && rhs !== EMPTY && util.isLeft(rhs)) {\n fail = step === lhs ? rhs : lhs;\n step = null;\n head._3 = fail;\n } else {\n head._3 = step;\n tmp = true;\n kid = killId++;\n // Once a side has resolved, we need to cancel the side that is still\n // pending before we can continue.\n kills[kid] = kill(early, step === lhs ? head._2 : head._1, function (/* unused */) {\n return function () {\n delete kills[kid];\n if (tmp) {\n tmp = false;\n } else if (tail === null) {\n join(step, null, null);\n } else {\n join(step, tail._1, tail._2);\n }\n };\n });\n\n if (tmp) {\n tmp = false;\n return;\n }\n }\n break;\n }\n\n if (tail === null) {\n head = null;\n } else {\n head = tail._1;\n tail = tail._2;\n }\n }\n }\n\n function resolve(fiber) {\n return function (result) {\n return function () {\n delete fibers[fiber._1];\n fiber._3 = result;\n join(result, fiber._2._1, fiber._2._2);\n };\n };\n }\n\n // Walks the applicative tree, substituting non-applicative nodes with\n // `FORKED` nodes. In this tree, all applicative nodes use the `_3` slot\n // as a mutable slot for memoization. In an unresolved state, the `_3`\n // slot is `EMPTY`. In the cases of `ALT` and `APPLY`, we always walk\n // the left side first, because both operations are left-associative. As\n // we `RETURN` from those branches, we then walk the right side.\n function run() {\n var status = CONTINUE;\n var step = par;\n var head = null;\n var tail = null;\n var tmp, fid;\n\n loop: while (true) {\n tmp = null;\n fid = null;\n\n switch (status) {\n case CONTINUE:\n switch (step.tag) {\n case MAP:\n if (head) {\n tail = new Aff(CONS, head, tail);\n }\n head = new Aff(MAP, step._1, EMPTY, EMPTY);\n step = step._2;\n break;\n case APPLY:\n if (head) {\n tail = new Aff(CONS, head, tail);\n }\n head = new Aff(APPLY, EMPTY, step._2, EMPTY);\n step = step._1;\n break;\n case ALT:\n if (head) {\n tail = new Aff(CONS, head, tail);\n }\n head = new Aff(ALT, EMPTY, step._2, EMPTY);\n step = step._1;\n break;\n default:\n // When we hit a leaf value, we suspend the stack in the `FORKED`.\n // When the fiber resolves, it can bubble back up the tree.\n fid = fiberId++;\n status = RETURN;\n tmp = step;\n step = new Aff(FORKED, fid, new Aff(CONS, head, tail), EMPTY);\n tmp = Fiber(util, supervisor, tmp);\n tmp.onComplete({\n rethrow: false,\n handler: resolve(step)\n })();\n fibers[fid] = tmp;\n if (supervisor) {\n supervisor.register(tmp);\n }\n }\n break;\n case RETURN:\n // Terminal case, we are back at the root.\n if (head === null) {\n break loop;\n }\n // If we are done with the right side, we need to continue down the\n // left. Otherwise we should continue up the stack.\n if (head._1 === EMPTY) {\n head._1 = step;\n status = CONTINUE;\n step = head._2;\n head._2 = EMPTY;\n } else {\n head._2 = step;\n step = head;\n if (tail === null) {\n head = null;\n } else {\n head = tail._1;\n tail = tail._2;\n }\n }\n }\n }\n\n // Keep a reference to the tree root so it can be cancelled.\n root = step;\n\n for (fid = 0; fid < fiberId; fid++) {\n fibers[fid].run();\n }\n }\n\n // Cancels the entire tree. If there are already subtrees being canceled,\n // we need to first cancel those joins. We will then add fresh joins for\n // all pending branches including those that were in the process of being\n // canceled.\n function cancel(error, cb) {\n interrupt = util.left(error);\n var innerKills;\n for (var kid in kills) {\n if (kills.hasOwnProperty(kid)) {\n innerKills = kills[kid];\n for (kid in innerKills) {\n if (innerKills.hasOwnProperty(kid)) {\n innerKills[kid]();\n }\n }\n }\n }\n\n kills = null;\n var newKills = kill(error, root, cb);\n\n return function (killError) {\n return new Aff(ASYNC, function (killCb) {\n return function () {\n for (var kid in newKills) {\n if (newKills.hasOwnProperty(kid)) {\n newKills[kid]();\n }\n }\n return nonCanceler;\n };\n });\n };\n }\n\n run();\n\n return function (killError) {\n return new Aff(ASYNC, function (killCb) {\n return function () {\n return cancel(killError, killCb);\n };\n });\n };\n }\n\n function sequential(util, supervisor, par) {\n return new Aff(ASYNC, function (cb) {\n return function () {\n return runPar(util, supervisor, par, cb);\n };\n });\n }\n\n Aff.EMPTY = EMPTY;\n Aff.Pure = AffCtr(PURE);\n Aff.Throw = AffCtr(THROW);\n Aff.Catch = AffCtr(CATCH);\n Aff.Sync = AffCtr(SYNC);\n Aff.Async = AffCtr(ASYNC);\n Aff.Bind = AffCtr(BIND);\n Aff.Bracket = AffCtr(BRACKET);\n Aff.Fork = AffCtr(FORK);\n Aff.Seq = AffCtr(SEQ);\n Aff.ParMap = AffCtr(MAP);\n Aff.ParApply = AffCtr(APPLY);\n Aff.ParAlt = AffCtr(ALT);\n Aff.Fiber = Fiber;\n Aff.Supervisor = Supervisor;\n Aff.Scheduler = Scheduler;\n Aff.nonCanceler = nonCanceler;\n\n return Aff;\n}();\n\nexport const _pure = Aff.Pure;\nexport const _throwError = Aff.Throw;\n\nexport function _catchError(aff) {\n return function (k) {\n return Aff.Catch(aff, k);\n };\n}\n\nexport function _map(f) {\n return function (aff) {\n if (aff.tag === Aff.Pure.tag) {\n return Aff.Pure(f(aff._1));\n } else {\n return Aff.Bind(aff, function (value) {\n return Aff.Pure(f(value));\n });\n }\n };\n}\n\nexport function _bind(aff) {\n return function (k) {\n return Aff.Bind(aff, k);\n };\n}\n\nexport function _fork(immediate) {\n return function (aff) {\n return Aff.Fork(immediate, aff);\n };\n}\n\nexport const _liftEffect = Aff.Sync;\n\nexport function _parAffMap(f) {\n return function (aff) {\n return Aff.ParMap(f, aff);\n };\n}\n\nexport function _parAffApply(aff1) {\n return function (aff2) {\n return Aff.ParApply(aff1, aff2);\n };\n}\n\nexport function _parAffAlt(aff1) {\n return function (aff2) {\n return Aff.ParAlt(aff1, aff2);\n };\n}\n\nexport const makeAff = Aff.Async;\n\nexport function generalBracket(acquire) {\n return function (options) {\n return function (k) {\n return Aff.Bracket(acquire, options, k);\n };\n };\n}\n\nexport function _makeFiber(util, aff) {\n return function () {\n return Aff.Fiber(util, null, aff);\n };\n}\n\nexport function _makeSupervisedFiber(util, aff) {\n return function () {\n var supervisor = Aff.Supervisor(util);\n return {\n fiber: Aff.Fiber(util, supervisor, aff),\n supervisor: supervisor\n };\n };\n}\n\nexport function _killAll(error, supervisor, cb) {\n return supervisor.killAll(error, cb);\n}\n\nexport const _delay = function () {\n function setDelay(n, k) {\n if (n === 0 && typeof setImmediate !== \"undefined\") {\n return setImmediate(k);\n } else {\n return setTimeout(k, n);\n }\n }\n\n function clearDelay(n, t) {\n if (n === 0 && typeof clearImmediate !== \"undefined\") {\n return clearImmediate(t);\n } else {\n return clearTimeout(t);\n }\n }\n\n return function (right, ms) {\n return Aff.Async(function (cb) {\n return function () {\n var timer = setDelay(ms, cb(right()));\n return function () {\n return Aff.Sync(function () {\n return right(clearDelay(ms, timer));\n });\n };\n };\n });\n };\n}();\n\nexport const _sequential = Aff.Seq;\n","// Generated by purs version 0.15.7\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Apply from \"../Control.Apply/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Control_Monad_Cont_Class from \"../Control.Monad.Cont.Class/index.js\";\nimport * as Control_Monad_Reader_Class from \"../Control.Monad.Reader.Class/index.js\";\nimport * as Control_Monad_State_Class from \"../Control.Monad.State.Class/index.js\";\nimport * as Control_Monad_Trans_Class from \"../Control.Monad.Trans.Class/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Monoid from \"../Data.Monoid/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nimport * as Effect_Class from \"../Effect.Class/index.js\";\nvar ContT = function (x) {\n return x;\n};\nvar withContT = function (f) {\n return function (v) {\n return function (k) {\n return v(f(k));\n };\n };\n};\nvar runContT = function (v) {\n return function (k) {\n return v(k);\n };\n};\nvar newtypeContT = {\n Coercible0: function () {\n return undefined;\n }\n};\nvar monadTransContT = {\n lift: function (dictMonad) {\n var bind = Control_Bind.bind(dictMonad.Bind1());\n return function (m) {\n return function (k) {\n return bind(m)(k);\n };\n };\n }\n};\nvar lift = /* #__PURE__ */ Control_Monad_Trans_Class.lift(monadTransContT);\nvar mapContT = function (f) {\n return function (v) {\n return function (k) {\n return f(v(k));\n };\n };\n};\nvar functorContT = function (dictFunctor) {\n return {\n map: function (f) {\n return function (v) {\n return function (k) {\n return v(function (a) {\n return k(f(a));\n });\n };\n };\n }\n };\n};\nvar applyContT = function (dictApply) {\n var functorContT1 = functorContT(dictApply.Functor0());\n return {\n apply: function (v) {\n return function (v1) {\n return function (k) {\n return v(function (g) {\n return v1(function (a) {\n return k(g(a));\n });\n });\n };\n };\n },\n Functor0: function () {\n return functorContT1;\n }\n };\n};\nvar bindContT = function (dictBind) {\n var applyContT1 = applyContT(dictBind.Apply0());\n return {\n bind: function (v) {\n return function (k) {\n return function (k$prime) {\n return v(function (a) {\n var v1 = k(a);\n return v1(k$prime);\n });\n };\n };\n },\n Apply0: function () {\n return applyContT1;\n }\n };\n};\nvar semigroupContT = function (dictApply) {\n var lift2 = Control_Apply.lift2(applyContT(dictApply));\n return function (dictSemigroup) {\n return {\n append: lift2(Data_Semigroup.append(dictSemigroup))\n };\n };\n};\nvar applicativeContT = function (dictApplicative) {\n var applyContT1 = applyContT(dictApplicative.Apply0());\n return {\n pure: function (a) {\n return function (k) {\n return k(a);\n };\n },\n Apply0: function () {\n return applyContT1;\n }\n };\n};\nvar monadContT = function (dictMonad) {\n var applicativeContT1 = applicativeContT(dictMonad.Applicative0());\n var bindContT1 = bindContT(dictMonad.Bind1());\n return {\n Applicative0: function () {\n return applicativeContT1;\n },\n Bind1: function () {\n return bindContT1;\n }\n };\n};\nvar monadAskContT = function (dictMonadAsk) {\n var Monad0 = dictMonadAsk.Monad0();\n var monadContT1 = monadContT(Monad0);\n return {\n ask: lift(Monad0)(Control_Monad_Reader_Class.ask(dictMonadAsk)),\n Monad0: function () {\n return monadContT1;\n }\n };\n};\nvar monadReaderContT = function (dictMonadReader) {\n var MonadAsk0 = dictMonadReader.MonadAsk0();\n var bind = Control_Bind.bind((MonadAsk0.Monad0()).Bind1());\n var ask = Control_Monad_Reader_Class.ask(MonadAsk0);\n var local = Control_Monad_Reader_Class.local(dictMonadReader);\n var monadAskContT1 = monadAskContT(MonadAsk0);\n return {\n local: function (f) {\n return function (v) {\n return function (k) {\n return bind(ask)(function (r) {\n return local(f)(v((function () {\n var $88 = local(Data_Function[\"const\"](r));\n return function ($89) {\n return $88(k($89));\n };\n })()));\n });\n };\n };\n },\n MonadAsk0: function () {\n return monadAskContT1;\n }\n };\n};\nvar monadContContT = function (dictMonad) {\n var monadContT1 = monadContT(dictMonad);\n return {\n callCC: function (f) {\n return function (k) {\n var v = f(function (a) {\n return function (v1) {\n return k(a);\n };\n });\n return v(k);\n };\n },\n Monad0: function () {\n return monadContT1;\n }\n };\n};\nvar monadEffectContT = function (dictMonadEffect) {\n var Monad0 = dictMonadEffect.Monad0();\n var monadContT1 = monadContT(Monad0);\n return {\n liftEffect: (function () {\n var $90 = lift(Monad0);\n var $91 = Effect_Class.liftEffect(dictMonadEffect);\n return function ($92) {\n return $90($91($92));\n };\n })(),\n Monad0: function () {\n return monadContT1;\n }\n };\n};\nvar monadStateContT = function (dictMonadState) {\n var Monad0 = dictMonadState.Monad0();\n var monadContT1 = monadContT(Monad0);\n return {\n state: (function () {\n var $93 = lift(Monad0);\n var $94 = Control_Monad_State_Class.state(dictMonadState);\n return function ($95) {\n return $93($94($95));\n };\n })(),\n Monad0: function () {\n return monadContT1;\n }\n };\n};\nvar monoidContT = function (dictApplicative) {\n var pure = Control_Applicative.pure(applicativeContT(dictApplicative));\n var semigroupContT1 = semigroupContT(dictApplicative.Apply0());\n return function (dictMonoid) {\n var semigroupContT2 = semigroupContT1(dictMonoid.Semigroup0());\n return {\n mempty: pure(Data_Monoid.mempty(dictMonoid)),\n Semigroup0: function () {\n return semigroupContT2;\n }\n };\n };\n};\nexport {\n ContT,\n runContT,\n mapContT,\n withContT,\n newtypeContT,\n monadContContT,\n functorContT,\n applyContT,\n applicativeContT,\n bindContT,\n monadContT,\n monadTransContT,\n monadEffectContT,\n monadAskContT,\n monadReaderContT,\n monadStateContT,\n semigroupContT,\n monoidContT\n};\nexport {\n callCC\n} from \"../Control.Monad.Cont.Class/index.js\";\nexport {\n lift\n} from \"../Control.Monad.Trans.Class/index.js\";\n","// Generated by purs version 0.15.7\nimport * as Control_Alt from \"../Control.Alt/index.js\";\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Apply from \"../Control.Apply/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Control_Monad_Cont_Class from \"../Control.Monad.Cont.Class/index.js\";\nimport * as Control_Monad_Error_Class from \"../Control.Monad.Error.Class/index.js\";\nimport * as Control_Monad_Reader_Class from \"../Control.Monad.Reader.Class/index.js\";\nimport * as Control_Monad_Rec_Class from \"../Control.Monad.Rec.Class/index.js\";\nimport * as Control_Monad_State_Class from \"../Control.Monad.State.Class/index.js\";\nimport * as Control_Monad_Trans_Class from \"../Control.Monad.Trans.Class/index.js\";\nimport * as Control_Monad_Writer_Class from \"../Control.Monad.Writer.Class/index.js\";\nimport * as Control_Plus from \"../Control.Plus/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Monoid from \"../Data.Monoid/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nimport * as Effect_Class from \"../Effect.Class/index.js\";\nvar WriterT = function (x) {\n return x;\n};\nvar runWriterT = function (v) {\n return v;\n};\nvar newtypeWriterT = {\n Coercible0: function () {\n return undefined;\n }\n};\nvar monadTransWriterT = function (dictMonoid) {\n var mempty = Data_Monoid.mempty(dictMonoid);\n return {\n lift: function (dictMonad) {\n var bind = Control_Bind.bind(dictMonad.Bind1());\n var pure = Control_Applicative.pure(dictMonad.Applicative0());\n return function (m) {\n return bind(m)(function (a) {\n return pure(new Data_Tuple.Tuple(a, mempty));\n });\n };\n }\n };\n};\nvar mapWriterT = function (f) {\n return function (v) {\n return f(v);\n };\n};\nvar functorWriterT = function (dictFunctor) {\n var map = Data_Functor.map(dictFunctor);\n return {\n map: function (f) {\n return mapWriterT(map(function (v) {\n return new Data_Tuple.Tuple(f(v.value0), v.value1);\n }));\n }\n };\n};\nvar execWriterT = function (dictFunctor) {\n var map = Data_Functor.map(dictFunctor);\n return function (v) {\n return map(Data_Tuple.snd)(v);\n };\n};\nvar applyWriterT = function (dictSemigroup) {\n var append = Data_Semigroup.append(dictSemigroup);\n return function (dictApply) {\n var apply = Control_Apply.apply(dictApply);\n var Functor0 = dictApply.Functor0();\n var map = Data_Functor.map(Functor0);\n var functorWriterT1 = functorWriterT(Functor0);\n return {\n apply: function (v) {\n return function (v1) {\n var k = function (v3) {\n return function (v4) {\n return new Data_Tuple.Tuple(v3.value0(v4.value0), append(v3.value1)(v4.value1));\n };\n };\n return apply(map(k)(v))(v1);\n };\n },\n Functor0: function () {\n return functorWriterT1;\n }\n };\n };\n};\nvar bindWriterT = function (dictSemigroup) {\n var append = Data_Semigroup.append(dictSemigroup);\n var applyWriterT1 = applyWriterT(dictSemigroup);\n return function (dictBind) {\n var bind = Control_Bind.bind(dictBind);\n var Apply0 = dictBind.Apply0();\n var map = Data_Functor.map(Apply0.Functor0());\n var applyWriterT2 = applyWriterT1(Apply0);\n return {\n bind: function (v) {\n return function (k) {\n return bind(v)(function (v1) {\n var v2 = k(v1.value0);\n return map(function (v3) {\n return new Data_Tuple.Tuple(v3.value0, append(v1.value1)(v3.value1));\n })(v2);\n });\n };\n },\n Apply0: function () {\n return applyWriterT2;\n }\n };\n };\n};\nvar semigroupWriterT = function (dictApply) {\n return function (dictSemigroup) {\n var lift2 = Control_Apply.lift2(applyWriterT(dictSemigroup)(dictApply));\n return function (dictSemigroup1) {\n return {\n append: lift2(Data_Semigroup.append(dictSemigroup1))\n };\n };\n };\n};\nvar applicativeWriterT = function (dictMonoid) {\n var mempty = Data_Monoid.mempty(dictMonoid);\n var applyWriterT1 = applyWriterT(dictMonoid.Semigroup0());\n return function (dictApplicative) {\n var pure = Control_Applicative.pure(dictApplicative);\n var applyWriterT2 = applyWriterT1(dictApplicative.Apply0());\n return {\n pure: function (a) {\n return pure(new Data_Tuple.Tuple(a, mempty));\n },\n Apply0: function () {\n return applyWriterT2;\n }\n };\n };\n};\nvar monadWriterT = function (dictMonoid) {\n var applicativeWriterT1 = applicativeWriterT(dictMonoid);\n var bindWriterT1 = bindWriterT(dictMonoid.Semigroup0());\n return function (dictMonad) {\n var applicativeWriterT2 = applicativeWriterT1(dictMonad.Applicative0());\n var bindWriterT2 = bindWriterT1(dictMonad.Bind1());\n return {\n Applicative0: function () {\n return applicativeWriterT2;\n },\n Bind1: function () {\n return bindWriterT2;\n }\n };\n };\n};\nvar monadAskWriterT = function (dictMonoid) {\n var lift = Control_Monad_Trans_Class.lift(monadTransWriterT(dictMonoid));\n var monadWriterT1 = monadWriterT(dictMonoid);\n return function (dictMonadAsk) {\n var Monad0 = dictMonadAsk.Monad0();\n var monadWriterT2 = monadWriterT1(Monad0);\n return {\n ask: lift(Monad0)(Control_Monad_Reader_Class.ask(dictMonadAsk)),\n Monad0: function () {\n return monadWriterT2;\n }\n };\n };\n};\nvar monadReaderWriterT = function (dictMonoid) {\n var monadAskWriterT1 = monadAskWriterT(dictMonoid);\n return function (dictMonadReader) {\n var local = Control_Monad_Reader_Class.local(dictMonadReader);\n var monadAskWriterT2 = monadAskWriterT1(dictMonadReader.MonadAsk0());\n return {\n local: function (f) {\n return mapWriterT(local(f));\n },\n MonadAsk0: function () {\n return monadAskWriterT2;\n }\n };\n };\n};\nvar monadContWriterT = function (dictMonoid) {\n var mempty = Data_Monoid.mempty(dictMonoid);\n var monadWriterT1 = monadWriterT(dictMonoid);\n return function (dictMonadCont) {\n var callCC = Control_Monad_Cont_Class.callCC(dictMonadCont);\n var monadWriterT2 = monadWriterT1(dictMonadCont.Monad0());\n return {\n callCC: function (f) {\n return callCC(function (c) {\n var v = f(function (a) {\n return c(new Data_Tuple.Tuple(a, mempty));\n });\n return v;\n });\n },\n Monad0: function () {\n return monadWriterT2;\n }\n };\n };\n};\nvar monadEffectWriter = function (dictMonoid) {\n var lift = Control_Monad_Trans_Class.lift(monadTransWriterT(dictMonoid));\n var monadWriterT1 = monadWriterT(dictMonoid);\n return function (dictMonadEffect) {\n var Monad0 = dictMonadEffect.Monad0();\n var monadWriterT2 = monadWriterT1(Monad0);\n return {\n liftEffect: (function () {\n var $249 = lift(Monad0);\n var $250 = Effect_Class.liftEffect(dictMonadEffect);\n return function ($251) {\n return $249($250($251));\n };\n })(),\n Monad0: function () {\n return monadWriterT2;\n }\n };\n };\n};\nvar monadRecWriterT = function (dictMonoid) {\n var append = Data_Semigroup.append(dictMonoid.Semigroup0());\n var mempty = Data_Monoid.mempty(dictMonoid);\n var monadWriterT1 = monadWriterT(dictMonoid);\n return function (dictMonadRec) {\n var Monad0 = dictMonadRec.Monad0();\n var bind = Control_Bind.bind(Monad0.Bind1());\n var pure = Control_Applicative.pure(Monad0.Applicative0());\n var tailRecM = Control_Monad_Rec_Class.tailRecM(dictMonadRec);\n var monadWriterT2 = monadWriterT1(Monad0);\n return {\n tailRecM: function (f) {\n return function (a) {\n var f$prime = function (v) {\n var v1 = f(v.value0);\n return bind(v1)(function (v2) {\n return pure((function () {\n if (v2.value0 instanceof Control_Monad_Rec_Class.Loop) {\n return new Control_Monad_Rec_Class.Loop(new Data_Tuple.Tuple(v2.value0.value0, append(v.value1)(v2.value1)));\n };\n if (v2.value0 instanceof Control_Monad_Rec_Class.Done) {\n return new Control_Monad_Rec_Class.Done(new Data_Tuple.Tuple(v2.value0.value0, append(v.value1)(v2.value1)));\n };\n throw new Error(\"Failed pattern match at Control.Monad.Writer.Trans (line 83, column 16 - line 85, column 47): \" + [ v2.value0.constructor.name ]);\n })());\n });\n };\n return tailRecM(f$prime)(new Data_Tuple.Tuple(a, mempty));\n };\n },\n Monad0: function () {\n return monadWriterT2;\n }\n };\n };\n};\nvar monadStateWriterT = function (dictMonoid) {\n var lift = Control_Monad_Trans_Class.lift(monadTransWriterT(dictMonoid));\n var monadWriterT1 = monadWriterT(dictMonoid);\n return function (dictMonadState) {\n var Monad0 = dictMonadState.Monad0();\n var lift1 = lift(Monad0);\n var state = Control_Monad_State_Class.state(dictMonadState);\n var monadWriterT2 = monadWriterT1(Monad0);\n return {\n state: function (f) {\n return lift1(state(f));\n },\n Monad0: function () {\n return monadWriterT2;\n }\n };\n };\n};\nvar monadTellWriterT = function (dictMonoid) {\n var Semigroup0 = dictMonoid.Semigroup0();\n var monadWriterT1 = monadWriterT(dictMonoid);\n return function (dictMonad) {\n var monadWriterT2 = monadWriterT1(dictMonad);\n return {\n tell: (function () {\n var $252 = Control_Applicative.pure(dictMonad.Applicative0());\n var $253 = Data_Tuple.Tuple.create(Data_Unit.unit);\n return function ($254) {\n return WriterT($252($253($254)));\n };\n })(),\n Semigroup0: function () {\n return Semigroup0;\n },\n Monad1: function () {\n return monadWriterT2;\n }\n };\n };\n};\nvar monadWriterWriterT = function (dictMonoid) {\n var monadTellWriterT1 = monadTellWriterT(dictMonoid);\n return function (dictMonad) {\n var bind = Control_Bind.bind(dictMonad.Bind1());\n var pure = Control_Applicative.pure(dictMonad.Applicative0());\n var monadTellWriterT2 = monadTellWriterT1(dictMonad);\n return {\n listen: function (v) {\n return bind(v)(function (v1) {\n return pure(new Data_Tuple.Tuple(new Data_Tuple.Tuple(v1.value0, v1.value1), v1.value1));\n });\n },\n pass: function (v) {\n return bind(v)(function (v1) {\n return pure(new Data_Tuple.Tuple(v1.value0.value0, v1.value0.value1(v1.value1)));\n });\n },\n Monoid0: function () {\n return dictMonoid;\n },\n MonadTell1: function () {\n return monadTellWriterT2;\n }\n };\n };\n};\nvar monadThrowWriterT = function (dictMonoid) {\n var lift = Control_Monad_Trans_Class.lift(monadTransWriterT(dictMonoid));\n var monadWriterT1 = monadWriterT(dictMonoid);\n return function (dictMonadThrow) {\n var Monad0 = dictMonadThrow.Monad0();\n var lift1 = lift(Monad0);\n var throwError = Control_Monad_Error_Class.throwError(dictMonadThrow);\n var monadWriterT2 = monadWriterT1(Monad0);\n return {\n throwError: function (e) {\n return lift1(throwError(e));\n },\n Monad0: function () {\n return monadWriterT2;\n }\n };\n };\n};\nvar monadErrorWriterT = function (dictMonoid) {\n var monadThrowWriterT1 = monadThrowWriterT(dictMonoid);\n return function (dictMonadError) {\n var catchError = Control_Monad_Error_Class.catchError(dictMonadError);\n var monadThrowWriterT2 = monadThrowWriterT1(dictMonadError.MonadThrow0());\n return {\n catchError: function (v) {\n return function (h) {\n return catchError(v)(function (e) {\n var v1 = h(e);\n return v1;\n });\n };\n },\n MonadThrow0: function () {\n return monadThrowWriterT2;\n }\n };\n };\n};\nvar monoidWriterT = function (dictApplicative) {\n var semigroupWriterT1 = semigroupWriterT(dictApplicative.Apply0());\n return function (dictMonoid) {\n var pure = Control_Applicative.pure(applicativeWriterT(dictMonoid)(dictApplicative));\n var semigroupWriterT2 = semigroupWriterT1(dictMonoid.Semigroup0());\n return function (dictMonoid1) {\n var semigroupWriterT3 = semigroupWriterT2(dictMonoid1.Semigroup0());\n return {\n mempty: pure(Data_Monoid.mempty(dictMonoid1)),\n Semigroup0: function () {\n return semigroupWriterT3;\n }\n };\n };\n };\n};\nvar altWriterT = function (dictAlt) {\n var alt = Control_Alt.alt(dictAlt);\n var functorWriterT1 = functorWriterT(dictAlt.Functor0());\n return {\n alt: function (v) {\n return function (v1) {\n return alt(v)(v1);\n };\n },\n Functor0: function () {\n return functorWriterT1;\n }\n };\n};\nvar plusWriterT = function (dictPlus) {\n var altWriterT1 = altWriterT(dictPlus.Alt0());\n return {\n empty: Control_Plus.empty(dictPlus),\n Alt0: function () {\n return altWriterT1;\n }\n };\n};\nvar alternativeWriterT = function (dictMonoid) {\n var applicativeWriterT1 = applicativeWriterT(dictMonoid);\n return function (dictAlternative) {\n var applicativeWriterT2 = applicativeWriterT1(dictAlternative.Applicative0());\n var plusWriterT1 = plusWriterT(dictAlternative.Plus1());\n return {\n Applicative0: function () {\n return applicativeWriterT2;\n },\n Plus1: function () {\n return plusWriterT1;\n }\n };\n };\n};\nvar monadPlusWriterT = function (dictMonoid) {\n var monadWriterT1 = monadWriterT(dictMonoid);\n var alternativeWriterT1 = alternativeWriterT(dictMonoid);\n return function (dictMonadPlus) {\n var monadWriterT2 = monadWriterT1(dictMonadPlus.Monad0());\n var alternativeWriterT2 = alternativeWriterT1(dictMonadPlus.Alternative1());\n return {\n Monad0: function () {\n return monadWriterT2;\n },\n Alternative1: function () {\n return alternativeWriterT2;\n }\n };\n };\n};\nexport {\n WriterT,\n runWriterT,\n execWriterT,\n mapWriterT,\n newtypeWriterT,\n functorWriterT,\n applyWriterT,\n applicativeWriterT,\n altWriterT,\n plusWriterT,\n alternativeWriterT,\n bindWriterT,\n monadWriterT,\n monadRecWriterT,\n monadPlusWriterT,\n monadTransWriterT,\n monadEffectWriter,\n monadContWriterT,\n monadThrowWriterT,\n monadErrorWriterT,\n monadAskWriterT,\n monadReaderWriterT,\n monadStateWriterT,\n monadTellWriterT,\n monadWriterWriterT,\n semigroupWriterT,\n monoidWriterT\n};\nexport {\n lift\n} from \"../Control.Monad.Trans.Class/index.js\";\nexport {\n censor,\n listen,\n listens,\n pass,\n tell\n} from \"../Control.Monad.Writer.Class/index.js\";\n","// Generated by purs version 0.15.7\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Control_Monad_Cont_Trans from \"../Control.Monad.Cont.Trans/index.js\";\nimport * as Control_Monad_Except_Trans from \"../Control.Monad.Except.Trans/index.js\";\nimport * as Control_Monad_Maybe_Trans from \"../Control.Monad.Maybe.Trans/index.js\";\nimport * as Control_Monad_Reader_Trans from \"../Control.Monad.Reader.Trans/index.js\";\nimport * as Control_Monad_Writer_Trans from \"../Control.Monad.Writer.Trans/index.js\";\nimport * as Data_Either from \"../Data.Either/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Functor_Compose from \"../Data.Functor.Compose/index.js\";\nimport * as Data_Functor_Costar from \"../Data.Functor.Costar/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Profunctor_Star from \"../Data.Profunctor.Star/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nimport * as Effect_Class from \"../Effect.Class/index.js\";\nimport * as Effect_Ref from \"../Effect.Ref/index.js\";\nvar discard = /* #__PURE__ */ Control_Bind.discard(Control_Bind.discardUnit);\nvar ParCont = function (x) {\n return x;\n};\nvar sequential = function (dict) {\n return dict.sequential;\n};\nvar parallel = function (dict) {\n return dict.parallel;\n};\nvar newtypeParCont = {\n Coercible0: function () {\n return undefined;\n }\n};\nvar monadParWriterT = function (dictMonoid) {\n var monadWriterT = Control_Monad_Writer_Trans.monadWriterT(dictMonoid);\n var applicativeWriterT = Control_Monad_Writer_Trans.applicativeWriterT(dictMonoid);\n return function (dictParallel) {\n var monadWriterT1 = monadWriterT(dictParallel.Monad0());\n var applicativeWriterT1 = applicativeWriterT(dictParallel.Applicative1());\n return {\n parallel: Control_Monad_Writer_Trans.mapWriterT(parallel(dictParallel)),\n sequential: Control_Monad_Writer_Trans.mapWriterT(sequential(dictParallel)),\n Monad0: function () {\n return monadWriterT1;\n },\n Applicative1: function () {\n return applicativeWriterT1;\n }\n };\n };\n};\nvar monadParStar = function (dictParallel) {\n var parallel1 = parallel(dictParallel);\n var sequential1 = sequential(dictParallel);\n var monadStar = Data_Profunctor_Star.monadStar(dictParallel.Monad0());\n var applicativeStar = Data_Profunctor_Star.applicativeStar(dictParallel.Applicative1());\n return {\n parallel: function (v) {\n return function ($119) {\n return parallel1(v($119));\n };\n },\n sequential: function (v) {\n return function ($120) {\n return sequential1(v($120));\n };\n },\n Monad0: function () {\n return monadStar;\n },\n Applicative1: function () {\n return applicativeStar;\n }\n };\n};\nvar monadParReaderT = function (dictParallel) {\n var monadReaderT = Control_Monad_Reader_Trans.monadReaderT(dictParallel.Monad0());\n var applicativeReaderT = Control_Monad_Reader_Trans.applicativeReaderT(dictParallel.Applicative1());\n return {\n parallel: Control_Monad_Reader_Trans.mapReaderT(parallel(dictParallel)),\n sequential: Control_Monad_Reader_Trans.mapReaderT(sequential(dictParallel)),\n Monad0: function () {\n return monadReaderT;\n },\n Applicative1: function () {\n return applicativeReaderT;\n }\n };\n};\nvar monadParMaybeT = function (dictParallel) {\n var parallel1 = parallel(dictParallel);\n var sequential1 = sequential(dictParallel);\n var monadMaybeT = Control_Monad_Maybe_Trans.monadMaybeT(dictParallel.Monad0());\n var applicativeCompose = Data_Functor_Compose.applicativeCompose(dictParallel.Applicative1())(Data_Maybe.applicativeMaybe);\n return {\n parallel: function (v) {\n return parallel1(v);\n },\n sequential: function (v) {\n return sequential1(v);\n },\n Monad0: function () {\n return monadMaybeT;\n },\n Applicative1: function () {\n return applicativeCompose;\n }\n };\n};\nvar monadParExceptT = function (dictParallel) {\n var parallel1 = parallel(dictParallel);\n var sequential1 = sequential(dictParallel);\n var monadExceptT = Control_Monad_Except_Trans.monadExceptT(dictParallel.Monad0());\n var applicativeCompose = Data_Functor_Compose.applicativeCompose(dictParallel.Applicative1())(Data_Either.applicativeEither);\n return {\n parallel: function (v) {\n return parallel1(v);\n },\n sequential: function (v) {\n return sequential1(v);\n },\n Monad0: function () {\n return monadExceptT;\n },\n Applicative1: function () {\n return applicativeCompose;\n }\n };\n};\nvar monadParCostar = function (dictParallel) {\n var sequential1 = sequential(dictParallel);\n var parallel1 = parallel(dictParallel);\n return {\n parallel: function (v) {\n return function ($121) {\n return v(sequential1($121));\n };\n },\n sequential: function (v) {\n return function ($122) {\n return v(parallel1($122));\n };\n },\n Monad0: function () {\n return Data_Functor_Costar.monadCostar;\n },\n Applicative1: function () {\n return Data_Functor_Costar.applicativeCostar;\n }\n };\n};\nvar monadParParCont = function (dictMonadEffect) {\n var monadContT = Control_Monad_Cont_Trans.monadContT(dictMonadEffect.Monad0());\n return {\n parallel: ParCont,\n sequential: function (v) {\n return v;\n },\n Monad0: function () {\n return monadContT;\n },\n Applicative1: function () {\n return applicativeParCont(dictMonadEffect);\n }\n };\n};\nvar functorParCont = function (dictMonadEffect) {\n var map = Data_Functor.map(Control_Monad_Cont_Trans.functorContT((((dictMonadEffect.Monad0()).Bind1()).Apply0()).Functor0()));\n return {\n map: function (f) {\n var $123 = parallel(monadParParCont(dictMonadEffect));\n var $124 = map(f);\n var $125 = sequential(monadParParCont(dictMonadEffect));\n return function ($126) {\n return $123($124($125($126)));\n };\n }\n };\n};\nvar applyParCont = function (dictMonadEffect) {\n var Bind1 = (dictMonadEffect.Monad0()).Bind1();\n var bind = Control_Bind.bind(Bind1);\n var liftEffect = Effect_Class.liftEffect(dictMonadEffect);\n var discard1 = discard(Bind1);\n return {\n apply: function (v) {\n return function (v1) {\n return function (k) {\n return bind(liftEffect(Effect_Ref[\"new\"](Data_Maybe.Nothing.value)))(function (ra) {\n return bind(liftEffect(Effect_Ref[\"new\"](Data_Maybe.Nothing.value)))(function (rb) {\n return discard1(Control_Monad_Cont_Trans.runContT(v)(function (a) {\n return bind(liftEffect(Effect_Ref.read(rb)))(function (mb) {\n if (mb instanceof Data_Maybe.Nothing) {\n return liftEffect(Effect_Ref.write(new Data_Maybe.Just(a))(ra));\n };\n if (mb instanceof Data_Maybe.Just) {\n return k(a(mb.value0));\n };\n throw new Error(\"Failed pattern match at Control.Parallel.Class (line 82, column 7 - line 84, column 26): \" + [ mb.constructor.name ]);\n });\n }))(function () {\n return Control_Monad_Cont_Trans.runContT(v1)(function (b) {\n return bind(liftEffect(Effect_Ref.read(ra)))(function (ma) {\n if (ma instanceof Data_Maybe.Nothing) {\n return liftEffect(Effect_Ref.write(new Data_Maybe.Just(b))(rb));\n };\n if (ma instanceof Data_Maybe.Just) {\n return k(ma.value0(b));\n };\n throw new Error(\"Failed pattern match at Control.Parallel.Class (line 88, column 7 - line 90, column 26): \" + [ ma.constructor.name ]);\n });\n });\n });\n });\n });\n };\n };\n },\n Functor0: function () {\n return functorParCont(dictMonadEffect);\n }\n };\n};\nvar applicativeParCont = function (dictMonadEffect) {\n return {\n pure: (function () {\n var $127 = parallel(monadParParCont(dictMonadEffect));\n var $128 = Control_Applicative.pure(Control_Monad_Cont_Trans.applicativeContT((dictMonadEffect.Monad0()).Applicative0()));\n return function ($129) {\n return $127($128($129));\n };\n })(),\n Apply0: function () {\n return applyParCont(dictMonadEffect);\n }\n };\n};\nvar altParCont = function (dictMonadEffect) {\n var Monad0 = dictMonadEffect.Monad0();\n var Bind1 = Monad0.Bind1();\n var bind = Control_Bind.bind(Bind1);\n var liftEffect = Effect_Class.liftEffect(dictMonadEffect);\n var discard1 = discard(Bind1);\n var pure = Control_Applicative.pure(Monad0.Applicative0());\n var functorParCont1 = functorParCont(dictMonadEffect);\n return {\n alt: function (v) {\n return function (v1) {\n return function (k) {\n return bind(liftEffect(Effect_Ref[\"new\"](false)))(function (done) {\n return discard1(Control_Monad_Cont_Trans.runContT(v)(function (a) {\n return bind(liftEffect(Effect_Ref.read(done)))(function (b) {\n if (b) {\n return pure(Data_Unit.unit);\n };\n return discard1(liftEffect(Effect_Ref.write(true)(done)))(function () {\n return k(a);\n });\n });\n }))(function () {\n return Control_Monad_Cont_Trans.runContT(v1)(function (a) {\n return bind(liftEffect(Effect_Ref.read(done)))(function (b) {\n if (b) {\n return pure(Data_Unit.unit);\n };\n return discard1(liftEffect(Effect_Ref.write(true)(done)))(function () {\n return k(a);\n });\n });\n });\n });\n });\n };\n };\n },\n Functor0: function () {\n return functorParCont1;\n }\n };\n};\nvar plusParCont = function (dictMonadEffect) {\n var pure = Control_Applicative.pure((dictMonadEffect.Monad0()).Applicative0());\n var altParCont1 = altParCont(dictMonadEffect);\n return {\n empty: function (v) {\n return pure(Data_Unit.unit);\n },\n Alt0: function () {\n return altParCont1;\n }\n };\n};\nvar alternativeParCont = function (dictMonadEffect) {\n var applicativeParCont1 = applicativeParCont(dictMonadEffect);\n var plusParCont1 = plusParCont(dictMonadEffect);\n return {\n Applicative0: function () {\n return applicativeParCont1;\n },\n Plus1: function () {\n return plusParCont1;\n }\n };\n};\nexport {\n parallel,\n sequential,\n ParCont,\n monadParExceptT,\n monadParReaderT,\n monadParWriterT,\n monadParMaybeT,\n monadParStar,\n monadParCostar,\n newtypeParCont,\n functorParCont,\n applyParCont,\n applicativeParCont,\n altParCont,\n plusParCont,\n alternativeParCont,\n monadParParCont\n};\n","// Generated by purs version 0.15.7\nimport * as Control_Apply from \"../Control.Apply/index.js\";\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Control_Parallel_Class from \"../Control.Parallel.Class/index.js\";\nimport * as Data_Foldable from \"../Data.Foldable/index.js\";\nimport * as Data_Traversable from \"../Data.Traversable/index.js\";\nvar identity = /* #__PURE__ */ Control_Category.identity(Control_Category.categoryFn);\nvar parTraverse_ = function (dictParallel) {\n var sequential = Control_Parallel_Class.sequential(dictParallel);\n var traverse_ = Data_Foldable.traverse_(dictParallel.Applicative1());\n var parallel = Control_Parallel_Class.parallel(dictParallel);\n return function (dictFoldable) {\n var traverse_1 = traverse_(dictFoldable);\n return function (f) {\n var $48 = traverse_1(function ($50) {\n return parallel(f($50));\n });\n return function ($49) {\n return sequential($48($49));\n };\n };\n };\n};\nvar parTraverse = function (dictParallel) {\n var sequential = Control_Parallel_Class.sequential(dictParallel);\n var Applicative1 = dictParallel.Applicative1();\n var parallel = Control_Parallel_Class.parallel(dictParallel);\n return function (dictTraversable) {\n var traverse = Data_Traversable.traverse(dictTraversable)(Applicative1);\n return function (f) {\n var $51 = traverse(function ($53) {\n return parallel(f($53));\n });\n return function ($52) {\n return sequential($51($52));\n };\n };\n };\n};\nvar parSequence_ = function (dictParallel) {\n var parTraverse_1 = parTraverse_(dictParallel);\n return function (dictFoldable) {\n return parTraverse_1(dictFoldable)(identity);\n };\n};\nvar parSequence = function (dictParallel) {\n var parTraverse1 = parTraverse(dictParallel);\n return function (dictTraversable) {\n return parTraverse1(dictTraversable)(identity);\n };\n};\nvar parOneOfMap = function (dictParallel) {\n var sequential = Control_Parallel_Class.sequential(dictParallel);\n var parallel = Control_Parallel_Class.parallel(dictParallel);\n return function (dictAlternative) {\n var Plus1 = dictAlternative.Plus1();\n return function (dictFoldable) {\n var oneOfMap = Data_Foldable.oneOfMap(dictFoldable)(Plus1);\n return function (dictFunctor) {\n return function (f) {\n var $54 = oneOfMap(function ($56) {\n return parallel(f($56));\n });\n return function ($55) {\n return sequential($54($55));\n };\n };\n };\n };\n };\n};\nvar parOneOf = function (dictParallel) {\n var sequential = Control_Parallel_Class.sequential(dictParallel);\n var parallel = Control_Parallel_Class.parallel(dictParallel);\n return function (dictAlternative) {\n var Plus1 = dictAlternative.Plus1();\n return function (dictFoldable) {\n var oneOfMap = Data_Foldable.oneOfMap(dictFoldable)(Plus1);\n return function (dictFunctor) {\n var $57 = oneOfMap(parallel);\n return function ($58) {\n return sequential($57($58));\n };\n };\n };\n };\n};\nvar parApply = function (dictParallel) {\n var sequential = Control_Parallel_Class.sequential(dictParallel);\n var apply = Control_Apply.apply((dictParallel.Applicative1()).Apply0());\n var parallel = Control_Parallel_Class.parallel(dictParallel);\n return function (mf) {\n return function (ma) {\n return sequential(apply(parallel(mf))(parallel(ma)));\n };\n };\n};\nexport {\n parApply,\n parTraverse,\n parTraverse_,\n parSequence,\n parSequence_,\n parOneOf,\n parOneOfMap\n};\nexport {\n ParCont,\n parallel,\n sequential\n} from \"../Control.Parallel.Class/index.js\";\n","// Generated by purs version 0.15.7\nimport * as $foreign from \"./foreign.js\";\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Apply from \"../Control.Apply/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Control_Monad from \"../Control.Monad/index.js\";\nimport * as Control_Monad_Error_Class from \"../Control.Monad.Error.Class/index.js\";\nimport * as Control_Monad_Rec_Class from \"../Control.Monad.Rec.Class/index.js\";\nimport * as Control_Parallel from \"../Control.Parallel/index.js\";\nimport * as Control_Parallel_Class from \"../Control.Parallel.Class/index.js\";\nimport * as Control_Plus from \"../Control.Plus/index.js\";\nimport * as Data_Either from \"../Data.Either/index.js\";\nimport * as Data_Foldable from \"../Data.Foldable/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Monoid from \"../Data.Monoid/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nimport * as Data_Time_Duration from \"../Data.Time.Duration/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nimport * as Effect from \"../Effect/index.js\";\nimport * as Effect_Class from \"../Effect.Class/index.js\";\nimport * as Effect_Exception from \"../Effect.Exception/index.js\";\nimport * as Effect_Unsafe from \"../Effect.Unsafe/index.js\";\nimport * as Partial_Unsafe from \"../Partial.Unsafe/index.js\";\nimport * as Unsafe_Coerce from \"../Unsafe.Coerce/index.js\";\nvar $runtime_lazy = function (name, moduleName, init) {\n var state = 0;\n var val;\n return function (lineNumber) {\n if (state === 2) return val;\n if (state === 1) throw new ReferenceError(name + \" was needed before it finished initializing (module \" + moduleName + \", line \" + lineNumber + \")\", moduleName, lineNumber);\n state = 1;\n val = init();\n state = 2;\n return val;\n };\n};\nvar pure = /* #__PURE__ */ Control_Applicative.pure(Effect.applicativeEffect);\nvar $$void = /* #__PURE__ */ Data_Functor[\"void\"](Effect.functorEffect);\nvar map = /* #__PURE__ */ Data_Functor.map(Effect.functorEffect);\nvar pure1 = /* #__PURE__ */ Control_Applicative.pure(Data_Either.applicativeEither);\nvar Fiber = function (x) {\n return x;\n};\nvar FFIUtil = function (x) {\n return x;\n};\nvar Canceler = function (x) {\n return x;\n};\nvar suspendAff = /* #__PURE__ */ $foreign[\"_fork\"](false);\nvar newtypeCanceler = {\n Coercible0: function () {\n return undefined;\n }\n};\nvar functorParAff = {\n map: $foreign[\"_parAffMap\"]\n};\nvar functorAff = {\n map: $foreign[\"_map\"]\n};\nvar map1 = /* #__PURE__ */ Data_Functor.map(functorAff);\nvar forkAff = /* #__PURE__ */ $foreign[\"_fork\"](true);\nvar ffiUtil = /* #__PURE__ */ (function () {\n var unsafeFromRight = function (v) {\n if (v instanceof Data_Either.Right) {\n return v.value0;\n };\n if (v instanceof Data_Either.Left) {\n return Partial_Unsafe.unsafeCrashWith(\"unsafeFromRight: Left\");\n };\n throw new Error(\"Failed pattern match at Effect.Aff (line 407, column 21 - line 409, column 54): \" + [ v.constructor.name ]);\n };\n var unsafeFromLeft = function (v) {\n if (v instanceof Data_Either.Left) {\n return v.value0;\n };\n if (v instanceof Data_Either.Right) {\n return Partial_Unsafe.unsafeCrashWith(\"unsafeFromLeft: Right\");\n };\n throw new Error(\"Failed pattern match at Effect.Aff (line 402, column 20 - line 404, column 55): \" + [ v.constructor.name ]);\n };\n var isLeft = function (v) {\n if (v instanceof Data_Either.Left) {\n return true;\n };\n if (v instanceof Data_Either.Right) {\n return false;\n };\n throw new Error(\"Failed pattern match at Effect.Aff (line 397, column 12 - line 399, column 21): \" + [ v.constructor.name ]);\n };\n return {\n isLeft: isLeft,\n fromLeft: unsafeFromLeft,\n fromRight: unsafeFromRight,\n left: Data_Either.Left.create,\n right: Data_Either.Right.create\n };\n})();\nvar makeFiber = function (aff) {\n return $foreign[\"_makeFiber\"](ffiUtil, aff);\n};\nvar launchAff = function (aff) {\n return function __do() {\n var fiber = makeFiber(aff)();\n fiber.run();\n return fiber;\n };\n};\nvar launchAff_ = function ($73) {\n return $$void(launchAff($73));\n};\nvar launchSuspendedAff = makeFiber;\nvar delay = function (v) {\n return $foreign[\"_delay\"](Data_Either.Right.create, v);\n};\nvar bracket = function (acquire) {\n return function (completed) {\n return $foreign.generalBracket(acquire)({\n killed: Data_Function[\"const\"](completed),\n failed: Data_Function[\"const\"](completed),\n completed: Data_Function[\"const\"](completed)\n });\n };\n};\nvar applyParAff = {\n apply: $foreign[\"_parAffApply\"],\n Functor0: function () {\n return functorParAff;\n }\n};\nvar lift2 = /* #__PURE__ */ Control_Apply.lift2(applyParAff);\nvar semigroupParAff = function (dictSemigroup) {\n return {\n append: lift2(Data_Semigroup.append(dictSemigroup))\n };\n};\nvar monadAff = {\n Applicative0: function () {\n return applicativeAff;\n },\n Bind1: function () {\n return bindAff;\n }\n};\nvar bindAff = {\n bind: $foreign[\"_bind\"],\n Apply0: function () {\n return $lazy_applyAff(0);\n }\n};\nvar applicativeAff = {\n pure: $foreign[\"_pure\"],\n Apply0: function () {\n return $lazy_applyAff(0);\n }\n};\nvar $lazy_applyAff = /* #__PURE__ */ $runtime_lazy(\"applyAff\", \"Effect.Aff\", function () {\n return {\n apply: Control_Monad.ap(monadAff),\n Functor0: function () {\n return functorAff;\n }\n };\n});\nvar applyAff = /* #__PURE__ */ $lazy_applyAff(71);\nvar pure2 = /* #__PURE__ */ Control_Applicative.pure(applicativeAff);\nvar bind1 = /* #__PURE__ */ Control_Bind.bind(bindAff);\nvar lift21 = /* #__PURE__ */ Control_Apply.lift2(applyAff);\nvar apply = /* #__PURE__ */ Control_Apply.apply(applyAff);\nvar bindFlipped = /* #__PURE__ */ Control_Bind.bindFlipped(bindAff);\nvar cancelWith = function (aff) {\n return function (v) {\n return $foreign.generalBracket(pure2(Data_Unit.unit))({\n killed: function (e) {\n return function (v1) {\n return v(e);\n };\n },\n failed: Data_Function[\"const\"](pure2),\n completed: Data_Function[\"const\"](pure2)\n })(Data_Function[\"const\"](aff));\n };\n};\nvar $$finally = function (fin) {\n return function (a) {\n return bracket(pure2(Data_Unit.unit))(Data_Function[\"const\"](fin))(Data_Function[\"const\"](a));\n };\n};\nvar invincible = function (a) {\n return bracket(a)(Data_Function[\"const\"](pure2(Data_Unit.unit)))(pure2);\n};\nvar lazyAff = {\n defer: function (f) {\n return bind1(pure2(Data_Unit.unit))(f);\n }\n};\nvar semigroupAff = function (dictSemigroup) {\n return {\n append: lift21(Data_Semigroup.append(dictSemigroup))\n };\n};\nvar monadEffectAff = {\n liftEffect: $foreign[\"_liftEffect\"],\n Monad0: function () {\n return monadAff;\n }\n};\nvar liftEffect = /* #__PURE__ */ Effect_Class.liftEffect(monadEffectAff);\nvar effectCanceler = function ($74) {\n return Canceler(Data_Function[\"const\"](liftEffect($74)));\n};\nvar joinFiber = function (v) {\n return $foreign.makeAff(function (k) {\n return map(effectCanceler)(v.join(k));\n });\n};\nvar functorFiber = {\n map: function (f) {\n return function (t) {\n return Effect_Unsafe.unsafePerformEffect(makeFiber(map1(f)(joinFiber(t))));\n };\n }\n};\nvar applyFiber = {\n apply: function (t1) {\n return function (t2) {\n return Effect_Unsafe.unsafePerformEffect(makeFiber(apply(joinFiber(t1))(joinFiber(t2))));\n };\n },\n Functor0: function () {\n return functorFiber;\n }\n};\nvar applicativeFiber = {\n pure: function (a) {\n return Effect_Unsafe.unsafePerformEffect(makeFiber(pure2(a)));\n },\n Apply0: function () {\n return applyFiber;\n }\n};\nvar killFiber = function (e) {\n return function (v) {\n return bind1(liftEffect(v.isSuspended))(function (suspended) {\n if (suspended) {\n return liftEffect($$void(v.kill(e, Data_Function[\"const\"](pure(Data_Unit.unit)))));\n };\n return $foreign.makeAff(function (k) {\n return map(effectCanceler)(v.kill(e, k));\n });\n });\n };\n};\nvar fiberCanceler = /* #__PURE__ */ (function () {\n var $75 = Data_Function.flip(killFiber);\n return function ($76) {\n return Canceler($75($76));\n };\n})();\nvar monadThrowAff = {\n throwError: $foreign[\"_throwError\"],\n Monad0: function () {\n return monadAff;\n }\n};\nvar monadErrorAff = {\n catchError: $foreign[\"_catchError\"],\n MonadThrow0: function () {\n return monadThrowAff;\n }\n};\nvar $$try = /* #__PURE__ */ Control_Monad_Error_Class[\"try\"](monadErrorAff);\nvar catchError = /* #__PURE__ */ Control_Monad_Error_Class.catchError(monadErrorAff);\nvar attempt = $$try;\nvar runAff = function (k) {\n return function (aff) {\n return launchAff(bindFlipped(function ($77) {\n return liftEffect(k($77));\n })($$try(aff)));\n };\n};\nvar runAff_ = function (k) {\n return function (aff) {\n return $$void(runAff(k)(aff));\n };\n};\nvar runSuspendedAff = function (k) {\n return function (aff) {\n return launchSuspendedAff(bindFlipped(function ($78) {\n return liftEffect(k($78));\n })($$try(aff)));\n };\n};\nvar parallelAff = {\n parallel: Unsafe_Coerce.unsafeCoerce,\n sequential: $foreign[\"_sequential\"],\n Monad0: function () {\n return monadAff;\n },\n Applicative1: function () {\n return $lazy_applicativeParAff(0);\n }\n};\nvar $lazy_applicativeParAff = /* #__PURE__ */ $runtime_lazy(\"applicativeParAff\", \"Effect.Aff\", function () {\n return {\n pure: (function () {\n var $79 = Control_Parallel_Class.parallel(parallelAff);\n return function ($80) {\n return $79(pure2($80));\n };\n })(),\n Apply0: function () {\n return applyParAff;\n }\n };\n});\nvar applicativeParAff = /* #__PURE__ */ $lazy_applicativeParAff(131);\nvar pure3 = /* #__PURE__ */ Control_Applicative.pure(applicativeParAff);\nvar parSequence_ = /* #__PURE__ */ Control_Parallel.parSequence_(parallelAff)(Data_Foldable.foldableArray);\nvar monoidParAff = function (dictMonoid) {\n var semigroupParAff1 = semigroupParAff(dictMonoid.Semigroup0());\n return {\n mempty: pure3(Data_Monoid.mempty(dictMonoid)),\n Semigroup0: function () {\n return semigroupParAff1;\n }\n };\n};\nvar semigroupCanceler = {\n append: function (v) {\n return function (v1) {\n return function (err) {\n return parSequence_([ v(err), v1(err) ]);\n };\n };\n }\n};\nvar supervise = function (aff) {\n var killError = Effect_Exception.error(\"[Aff] Child fiber outlived parent\");\n var killAll = function (err) {\n return function (sup) {\n return $foreign.makeAff(function (k) {\n return $foreign[\"_killAll\"](err, sup.supervisor, k(pure1(Data_Unit.unit)));\n });\n };\n };\n var acquire = function __do() {\n var sup = $foreign[\"_makeSupervisedFiber\"](ffiUtil, aff)();\n sup.fiber.run();\n return sup;\n };\n return $foreign.generalBracket(liftEffect(acquire))({\n killed: function (err) {\n return function (sup) {\n return parSequence_([ killFiber(err)(sup.fiber), killAll(err)(sup) ]);\n };\n },\n failed: Data_Function[\"const\"](killAll(killError)),\n completed: Data_Function[\"const\"](killAll(killError))\n })(function ($81) {\n return joinFiber((function (v) {\n return v.fiber;\n })($81));\n });\n};\nvar monadRecAff = {\n tailRecM: function (k) {\n var go = function (a) {\n return bind1(k(a))(function (res) {\n if (res instanceof Control_Monad_Rec_Class.Done) {\n return pure2(res.value0);\n };\n if (res instanceof Control_Monad_Rec_Class.Loop) {\n return go(res.value0);\n };\n throw new Error(\"Failed pattern match at Effect.Aff (line 102, column 7 - line 104, column 23): \" + [ res.constructor.name ]);\n });\n };\n return go;\n },\n Monad0: function () {\n return monadAff;\n }\n};\nvar monoidAff = function (dictMonoid) {\n var semigroupAff1 = semigroupAff(dictMonoid.Semigroup0());\n return {\n mempty: pure2(Data_Monoid.mempty(dictMonoid)),\n Semigroup0: function () {\n return semigroupAff1;\n }\n };\n};\nvar nonCanceler = /* #__PURE__ */ Data_Function[\"const\"](/* #__PURE__ */ pure2(Data_Unit.unit));\nvar monoidCanceler = {\n mempty: nonCanceler,\n Semigroup0: function () {\n return semigroupCanceler;\n }\n};\nvar mempty = /* #__PURE__ */ Data_Monoid.mempty(monoidCanceler);\nvar never = /* #__PURE__ */ $foreign.makeAff(function (v) {\n return pure(mempty);\n});\nvar apathize = /* #__PURE__ */ (function () {\n var $82 = map1(Data_Function[\"const\"](Data_Unit.unit));\n return function ($83) {\n return $82(attempt($83));\n };\n})();\nvar altParAff = {\n alt: $foreign[\"_parAffAlt\"],\n Functor0: function () {\n return functorParAff;\n }\n};\nvar altAff = {\n alt: function (a1) {\n return function (a2) {\n return catchError(a1)(Data_Function[\"const\"](a2));\n };\n },\n Functor0: function () {\n return functorAff;\n }\n};\nvar plusAff = {\n empty: /* #__PURE__ */ Control_Monad_Error_Class.throwError(monadThrowAff)(/* #__PURE__ */ Effect_Exception.error(\"Always fails\")),\n Alt0: function () {\n return altAff;\n }\n};\nvar plusParAff = {\n empty: /* #__PURE__ */ Control_Parallel_Class.parallel(parallelAff)(/* #__PURE__ */ Control_Plus.empty(plusAff)),\n Alt0: function () {\n return altParAff;\n }\n};\nvar alternativeParAff = {\n Applicative0: function () {\n return applicativeParAff;\n },\n Plus1: function () {\n return plusParAff;\n }\n};\nexport {\n makeAff,\n generalBracket\n} from \"./foreign.js\";\nexport {\n Canceler,\n launchAff,\n launchAff_,\n launchSuspendedAff,\n runAff,\n runAff_,\n runSuspendedAff,\n forkAff,\n suspendAff,\n supervise,\n attempt,\n apathize,\n delay,\n never,\n $$finally as finally,\n invincible,\n killFiber,\n joinFiber,\n cancelWith,\n bracket,\n nonCanceler,\n effectCanceler,\n fiberCanceler,\n functorAff,\n applyAff,\n applicativeAff,\n bindAff,\n monadAff,\n semigroupAff,\n monoidAff,\n altAff,\n plusAff,\n monadRecAff,\n monadThrowAff,\n monadErrorAff,\n monadEffectAff,\n lazyAff,\n functorParAff,\n applyParAff,\n applicativeParAff,\n semigroupParAff,\n monoidParAff,\n altParAff,\n plusParAff,\n alternativeParAff,\n parallelAff,\n functorFiber,\n applyFiber,\n applicativeFiber,\n newtypeCanceler,\n semigroupCanceler,\n monoidCanceler\n};\nexport {\n catchError,\n throwError,\n try\n} from \"../Control.Monad.Error.Class/index.js\";\nexport {\n parallel,\n sequential\n} from \"../Control.Parallel.Class/index.js\";\nexport {\n Milliseconds\n} from \"../Data.Time.Duration/index.js\";\nexport {\n error,\n message\n} from \"../Effect.Exception/index.js\";\n","export const mkEffectFn1 = function mkEffectFn1(fn) {\n return function(x) {\n return fn(x)();\n };\n};\n\nexport const mkEffectFn2 = function mkEffectFn2(fn) {\n return function(a, b) {\n return fn(a)(b)();\n };\n};\n\nexport const mkEffectFn3 = function mkEffectFn3(fn) {\n return function(a, b, c) {\n return fn(a)(b)(c)();\n };\n};\n\nexport const mkEffectFn4 = function mkEffectFn4(fn) {\n return function(a, b, c, d) {\n return fn(a)(b)(c)(d)();\n };\n};\n\nexport const mkEffectFn5 = function mkEffectFn5(fn) {\n return function(a, b, c, d, e) {\n return fn(a)(b)(c)(d)(e)();\n };\n};\n\nexport const mkEffectFn6 = function mkEffectFn6(fn) {\n return function(a, b, c, d, e, f) {\n return fn(a)(b)(c)(d)(e)(f)();\n };\n};\n\nexport const mkEffectFn7 = function mkEffectFn7(fn) {\n return function(a, b, c, d, e, f, g) {\n return fn(a)(b)(c)(d)(e)(f)(g)();\n };\n};\n\nexport const mkEffectFn8 = function mkEffectFn8(fn) {\n return function(a, b, c, d, e, f, g, h) {\n return fn(a)(b)(c)(d)(e)(f)(g)(h)();\n };\n};\n\nexport const mkEffectFn9 = function mkEffectFn9(fn) {\n return function(a, b, c, d, e, f, g, h, i) {\n return fn(a)(b)(c)(d)(e)(f)(g)(h)(i)();\n };\n};\n\nexport const mkEffectFn10 = function mkEffectFn10(fn) {\n return function(a, b, c, d, e, f, g, h, i, j) {\n return fn(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)();\n };\n};\n\nexport const runEffectFn1 = function runEffectFn1(fn) {\n return function(a) {\n return function() {\n return fn(a);\n };\n };\n};\n\nexport const runEffectFn2 = function runEffectFn2(fn) {\n return function(a) {\n return function(b) {\n return function() {\n return fn(a, b);\n };\n };\n };\n};\n\nexport const runEffectFn3 = function runEffectFn3(fn) {\n return function(a) {\n return function(b) {\n return function(c) {\n return function() {\n return fn(a, b, c);\n };\n };\n };\n };\n};\n\nexport const runEffectFn4 = function runEffectFn4(fn) {\n return function(a) {\n return function(b) {\n return function(c) {\n return function(d) {\n return function() {\n return fn(a, b, c, d);\n };\n };\n };\n };\n };\n};\n\nexport const runEffectFn5 = function runEffectFn5(fn) {\n return function(a) {\n return function(b) {\n return function(c) {\n return function(d) {\n return function(e) {\n return function() {\n return fn(a, b, c, d, e);\n };\n };\n };\n };\n };\n };\n};\n\nexport const runEffectFn6 = function runEffectFn6(fn) {\n return function(a) {\n return function(b) {\n return function(c) {\n return function(d) {\n return function(e) {\n return function(f) {\n return function() {\n return fn(a, b, c, d, e, f);\n };\n };\n };\n };\n };\n };\n };\n};\n\nexport const runEffectFn7 = function runEffectFn7(fn) {\n return function(a) {\n return function(b) {\n return function(c) {\n return function(d) {\n return function(e) {\n return function(f) {\n return function(g) {\n return function() {\n return fn(a, b, c, d, e, f, g);\n };\n };\n };\n };\n };\n };\n };\n };\n};\n\nexport const runEffectFn8 = function runEffectFn8(fn) {\n return function(a) {\n return function(b) {\n return function(c) {\n return function(d) {\n return function(e) {\n return function(f) {\n return function(g) {\n return function(h) {\n return function() {\n return fn(a, b, c, d, e, f, g, h);\n };\n };\n };\n };\n };\n };\n };\n };\n };\n};\n\nexport const runEffectFn9 = function runEffectFn9(fn) {\n return function(a) {\n return function(b) {\n return function(c) {\n return function(d) {\n return function(e) {\n return function(f) {\n return function(g) {\n return function(h) {\n return function(i) {\n return function() {\n return fn(a, b, c, d, e, f, g, h, i);\n };\n };\n };\n };\n };\n };\n };\n };\n };\n };\n};\n\nexport const runEffectFn10 = function runEffectFn10(fn) {\n return function(a) {\n return function(b) {\n return function(c) {\n return function(d) {\n return function(e) {\n return function(f) {\n return function(g) {\n return function(h) {\n return function(i) {\n return function(j) {\n return function() {\n return fn(a, b, c, d, e, f, g, h, i, j);\n };\n };\n };\n };\n };\n };\n };\n };\n };\n };\n };\n};\n","// Generated by purs version 0.15.7\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Monoid from \"../Data.Monoid/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nimport * as Effect from \"../Effect/index.js\";\nvar semigroupEffectFn9 = function (dictSemigroup) {\n var append = Data_Semigroup.append(Effect.semigroupEffect(dictSemigroup));\n return {\n append: function (f1) {\n return function (f2) {\n return $foreign.mkEffectFn9(function (a) {\n return function (b) {\n return function (c) {\n return function (d) {\n return function (e) {\n return function (f) {\n return function (g) {\n return function (h) {\n return function (i) {\n return append($foreign.runEffectFn9(f1)(a)(b)(c)(d)(e)(f)(g)(h)(i))($foreign.runEffectFn9(f2)(a)(b)(c)(d)(e)(f)(g)(h)(i));\n };\n };\n };\n };\n };\n };\n };\n };\n });\n };\n }\n };\n};\nvar semigroupEffectFn8 = function (dictSemigroup) {\n var append = Data_Semigroup.append(Effect.semigroupEffect(dictSemigroup));\n return {\n append: function (f1) {\n return function (f2) {\n return $foreign.mkEffectFn8(function (a) {\n return function (b) {\n return function (c) {\n return function (d) {\n return function (e) {\n return function (f) {\n return function (g) {\n return function (h) {\n return append($foreign.runEffectFn8(f1)(a)(b)(c)(d)(e)(f)(g)(h))($foreign.runEffectFn8(f2)(a)(b)(c)(d)(e)(f)(g)(h));\n };\n };\n };\n };\n };\n };\n };\n });\n };\n }\n };\n};\nvar semigroupEffectFn7 = function (dictSemigroup) {\n var append = Data_Semigroup.append(Effect.semigroupEffect(dictSemigroup));\n return {\n append: function (f1) {\n return function (f2) {\n return $foreign.mkEffectFn7(function (a) {\n return function (b) {\n return function (c) {\n return function (d) {\n return function (e) {\n return function (f) {\n return function (g) {\n return append($foreign.runEffectFn7(f1)(a)(b)(c)(d)(e)(f)(g))($foreign.runEffectFn7(f2)(a)(b)(c)(d)(e)(f)(g));\n };\n };\n };\n };\n };\n };\n });\n };\n }\n };\n};\nvar semigroupEffectFn6 = function (dictSemigroup) {\n var append = Data_Semigroup.append(Effect.semigroupEffect(dictSemigroup));\n return {\n append: function (f1) {\n return function (f2) {\n return $foreign.mkEffectFn6(function (a) {\n return function (b) {\n return function (c) {\n return function (d) {\n return function (e) {\n return function (f) {\n return append($foreign.runEffectFn6(f1)(a)(b)(c)(d)(e)(f))($foreign.runEffectFn6(f2)(a)(b)(c)(d)(e)(f));\n };\n };\n };\n };\n };\n });\n };\n }\n };\n};\nvar semigroupEffectFn5 = function (dictSemigroup) {\n var append = Data_Semigroup.append(Effect.semigroupEffect(dictSemigroup));\n return {\n append: function (f1) {\n return function (f2) {\n return $foreign.mkEffectFn5(function (a) {\n return function (b) {\n return function (c) {\n return function (d) {\n return function (e) {\n return append($foreign.runEffectFn5(f1)(a)(b)(c)(d)(e))($foreign.runEffectFn5(f2)(a)(b)(c)(d)(e));\n };\n };\n };\n };\n });\n };\n }\n };\n};\nvar semigroupEffectFn4 = function (dictSemigroup) {\n var append = Data_Semigroup.append(Effect.semigroupEffect(dictSemigroup));\n return {\n append: function (f1) {\n return function (f2) {\n return $foreign.mkEffectFn4(function (a) {\n return function (b) {\n return function (c) {\n return function (d) {\n return append($foreign.runEffectFn4(f1)(a)(b)(c)(d))($foreign.runEffectFn4(f2)(a)(b)(c)(d));\n };\n };\n };\n });\n };\n }\n };\n};\nvar semigroupEffectFn3 = function (dictSemigroup) {\n var append = Data_Semigroup.append(Effect.semigroupEffect(dictSemigroup));\n return {\n append: function (f1) {\n return function (f2) {\n return $foreign.mkEffectFn3(function (a) {\n return function (b) {\n return function (c) {\n return append($foreign.runEffectFn3(f1)(a)(b)(c))($foreign.runEffectFn3(f2)(a)(b)(c));\n };\n };\n });\n };\n }\n };\n};\nvar semigroupEffectFn2 = function (dictSemigroup) {\n var append = Data_Semigroup.append(Effect.semigroupEffect(dictSemigroup));\n return {\n append: function (f1) {\n return function (f2) {\n return $foreign.mkEffectFn2(function (a) {\n return function (b) {\n return append($foreign.runEffectFn2(f1)(a)(b))($foreign.runEffectFn2(f2)(a)(b));\n };\n });\n };\n }\n };\n};\nvar semigroupEffectFn10 = function (dictSemigroup) {\n var append = Data_Semigroup.append(Effect.semigroupEffect(dictSemigroup));\n return {\n append: function (f1) {\n return function (f2) {\n return $foreign.mkEffectFn10(function (a) {\n return function (b) {\n return function (c) {\n return function (d) {\n return function (e) {\n return function (f) {\n return function (g) {\n return function (h) {\n return function (i) {\n return function (j) {\n return append($foreign.runEffectFn10(f1)(a)(b)(c)(d)(e)(f)(g)(h)(i)(j))($foreign.runEffectFn10(f2)(a)(b)(c)(d)(e)(f)(g)(h)(i)(j));\n };\n };\n };\n };\n };\n };\n };\n };\n };\n });\n };\n }\n };\n};\nvar semigroupEffectFn1 = function (dictSemigroup) {\n var append = Data_Semigroup.append(Effect.semigroupEffect(dictSemigroup));\n return {\n append: function (f1) {\n return function (f2) {\n return $foreign.mkEffectFn1(function (a) {\n return append($foreign.runEffectFn1(f1)(a))($foreign.runEffectFn1(f2)(a));\n });\n };\n }\n };\n};\nvar monoidEffectFn9 = function (dictMonoid) {\n var mempty = Data_Monoid.mempty(Effect.monoidEffect(dictMonoid));\n var semigroupEffectFn91 = semigroupEffectFn9(dictMonoid.Semigroup0());\n return {\n mempty: $foreign.mkEffectFn9(function (v) {\n return function (v1) {\n return function (v2) {\n return function (v3) {\n return function (v4) {\n return function (v5) {\n return function (v6) {\n return function (v7) {\n return function (v8) {\n return mempty;\n };\n };\n };\n };\n };\n };\n };\n };\n }),\n Semigroup0: function () {\n return semigroupEffectFn91;\n }\n };\n};\nvar monoidEffectFn8 = function (dictMonoid) {\n var mempty = Data_Monoid.mempty(Effect.monoidEffect(dictMonoid));\n var semigroupEffectFn81 = semigroupEffectFn8(dictMonoid.Semigroup0());\n return {\n mempty: $foreign.mkEffectFn8(function (v) {\n return function (v1) {\n return function (v2) {\n return function (v3) {\n return function (v4) {\n return function (v5) {\n return function (v6) {\n return function (v7) {\n return mempty;\n };\n };\n };\n };\n };\n };\n };\n }),\n Semigroup0: function () {\n return semigroupEffectFn81;\n }\n };\n};\nvar monoidEffectFn7 = function (dictMonoid) {\n var mempty = Data_Monoid.mempty(Effect.monoidEffect(dictMonoid));\n var semigroupEffectFn71 = semigroupEffectFn7(dictMonoid.Semigroup0());\n return {\n mempty: $foreign.mkEffectFn7(function (v) {\n return function (v1) {\n return function (v2) {\n return function (v3) {\n return function (v4) {\n return function (v5) {\n return function (v6) {\n return mempty;\n };\n };\n };\n };\n };\n };\n }),\n Semigroup0: function () {\n return semigroupEffectFn71;\n }\n };\n};\nvar monoidEffectFn6 = function (dictMonoid) {\n var mempty = Data_Monoid.mempty(Effect.monoidEffect(dictMonoid));\n var semigroupEffectFn61 = semigroupEffectFn6(dictMonoid.Semigroup0());\n return {\n mempty: $foreign.mkEffectFn6(function (v) {\n return function (v1) {\n return function (v2) {\n return function (v3) {\n return function (v4) {\n return function (v5) {\n return mempty;\n };\n };\n };\n };\n };\n }),\n Semigroup0: function () {\n return semigroupEffectFn61;\n }\n };\n};\nvar monoidEffectFn5 = function (dictMonoid) {\n var mempty = Data_Monoid.mempty(Effect.monoidEffect(dictMonoid));\n var semigroupEffectFn51 = semigroupEffectFn5(dictMonoid.Semigroup0());\n return {\n mempty: $foreign.mkEffectFn5(function (v) {\n return function (v1) {\n return function (v2) {\n return function (v3) {\n return function (v4) {\n return mempty;\n };\n };\n };\n };\n }),\n Semigroup0: function () {\n return semigroupEffectFn51;\n }\n };\n};\nvar monoidEffectFn4 = function (dictMonoid) {\n var mempty = Data_Monoid.mempty(Effect.monoidEffect(dictMonoid));\n var semigroupEffectFn41 = semigroupEffectFn4(dictMonoid.Semigroup0());\n return {\n mempty: $foreign.mkEffectFn4(function (v) {\n return function (v1) {\n return function (v2) {\n return function (v3) {\n return mempty;\n };\n };\n };\n }),\n Semigroup0: function () {\n return semigroupEffectFn41;\n }\n };\n};\nvar monoidEffectFn3 = function (dictMonoid) {\n var mempty = Data_Monoid.mempty(Effect.monoidEffect(dictMonoid));\n var semigroupEffectFn31 = semigroupEffectFn3(dictMonoid.Semigroup0());\n return {\n mempty: $foreign.mkEffectFn3(function (v) {\n return function (v1) {\n return function (v2) {\n return mempty;\n };\n };\n }),\n Semigroup0: function () {\n return semigroupEffectFn31;\n }\n };\n};\nvar monoidEffectFn2 = function (dictMonoid) {\n var mempty = Data_Monoid.mempty(Effect.monoidEffect(dictMonoid));\n var semigroupEffectFn21 = semigroupEffectFn2(dictMonoid.Semigroup0());\n return {\n mempty: $foreign.mkEffectFn2(function (v) {\n return function (v1) {\n return mempty;\n };\n }),\n Semigroup0: function () {\n return semigroupEffectFn21;\n }\n };\n};\nvar monoidEffectFn10 = function (dictMonoid) {\n var mempty = Data_Monoid.mempty(Effect.monoidEffect(dictMonoid));\n var semigroupEffectFn101 = semigroupEffectFn10(dictMonoid.Semigroup0());\n return {\n mempty: $foreign.mkEffectFn10(function (v) {\n return function (v1) {\n return function (v2) {\n return function (v3) {\n return function (v4) {\n return function (v5) {\n return function (v6) {\n return function (v7) {\n return function (v8) {\n return function (v9) {\n return mempty;\n };\n };\n };\n };\n };\n };\n };\n };\n };\n }),\n Semigroup0: function () {\n return semigroupEffectFn101;\n }\n };\n};\nvar monoidEffectFn1 = function (dictMonoid) {\n var mempty = Data_Monoid.mempty(Effect.monoidEffect(dictMonoid));\n var semigroupEffectFn11 = semigroupEffectFn1(dictMonoid.Semigroup0());\n return {\n mempty: $foreign.mkEffectFn1(function (v) {\n return mempty;\n }),\n Semigroup0: function () {\n return semigroupEffectFn11;\n }\n };\n};\nexport {\n mkEffectFn1,\n mkEffectFn2,\n mkEffectFn3,\n mkEffectFn4,\n mkEffectFn5,\n mkEffectFn6,\n mkEffectFn7,\n mkEffectFn8,\n mkEffectFn9,\n mkEffectFn10,\n runEffectFn1,\n runEffectFn2,\n runEffectFn3,\n runEffectFn4,\n runEffectFn5,\n runEffectFn6,\n runEffectFn7,\n runEffectFn8,\n runEffectFn9,\n runEffectFn10\n} from \"./foreign.js\";\nexport {\n semigroupEffectFn1,\n semigroupEffectFn2,\n semigroupEffectFn3,\n semigroupEffectFn4,\n semigroupEffectFn5,\n semigroupEffectFn6,\n semigroupEffectFn7,\n semigroupEffectFn8,\n semigroupEffectFn9,\n semigroupEffectFn10,\n monoidEffectFn1,\n monoidEffectFn2,\n monoidEffectFn3,\n monoidEffectFn4,\n monoidEffectFn5,\n monoidEffectFn6,\n monoidEffectFn7,\n monoidEffectFn8,\n monoidEffectFn9,\n monoidEffectFn10\n};\n","// Generated by purs version 0.15.7\nimport * as $foreign from \"./foreign.js\";\nimport * as Affjax_RequestBody from \"../Affjax.RequestBody/index.js\";\nimport * as Affjax_RequestHeader from \"../Affjax.RequestHeader/index.js\";\nimport * as Affjax_ResponseFormat from \"../Affjax.ResponseFormat/index.js\";\nimport * as Affjax_ResponseHeader from \"../Affjax.ResponseHeader/index.js\";\nimport * as Control_Alt from \"../Control.Alt/index.js\";\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Control_Monad_Error_Class from \"../Control.Monad.Error.Class/index.js\";\nimport * as Control_Monad_Except from \"../Control.Monad.Except/index.js\";\nimport * as Control_Monad_Except_Trans from \"../Control.Monad.Except.Trans/index.js\";\nimport * as Data_Argonaut_Core from \"../Data.Argonaut.Core/index.js\";\nimport * as Data_Argonaut_Parser from \"../Data.Argonaut.Parser/index.js\";\nimport * as Data_Array from \"../Data.Array/index.js\";\nimport * as Data_Either from \"../Data.Either/index.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Foldable from \"../Data.Foldable/index.js\";\nimport * as Data_FormURLEncoded from \"../Data.FormURLEncoded/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_HTTP_Method from \"../Data.HTTP.Method/index.js\";\nimport * as Data_HeytingAlgebra from \"../Data.HeytingAlgebra/index.js\";\nimport * as Data_Identity from \"../Data.Identity/index.js\";\nimport * as Data_List_NonEmpty from \"../Data.List.NonEmpty/index.js\";\nimport * as Data_List_Types from \"../Data.List.Types/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Nullable from \"../Data.Nullable/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nimport * as Effect_Aff from \"../Effect.Aff/index.js\";\nimport * as Effect_Aff_Compat from \"../Effect.Aff.Compat/index.js\";\nimport * as Effect_Exception from \"../Effect.Exception/index.js\";\nimport * as Foreign from \"../Foreign/index.js\";\nvar pure = /* #__PURE__ */ Control_Applicative.pure(/* #__PURE__ */ Control_Monad_Except_Trans.applicativeExceptT(Data_Identity.monadIdentity));\nvar fail = /* #__PURE__ */ Foreign.fail(Data_Identity.monadIdentity);\nvar unsafeReadTagged = /* #__PURE__ */ Foreign.unsafeReadTagged(Data_Identity.monadIdentity);\nvar alt = /* #__PURE__ */ Control_Alt.alt(/* #__PURE__ */ Control_Monad_Except_Trans.altExceptT(Data_List_Types.semigroupNonEmptyList)(Data_Identity.monadIdentity));\nvar composeKleisliFlipped = /* #__PURE__ */ Control_Bind.composeKleisliFlipped(/* #__PURE__ */ Control_Monad_Except_Trans.bindExceptT(Data_Identity.monadIdentity));\nvar map = /* #__PURE__ */ Data_Functor.map(Data_Maybe.functorMaybe);\nvar any = /* #__PURE__ */ Data_Foldable.any(Data_Foldable.foldableArray)(Data_HeytingAlgebra.heytingAlgebraBoolean);\nvar eq = /* #__PURE__ */ Data_Eq.eq(Data_Eq.eqString);\nvar bindFlipped = /* #__PURE__ */ Control_Bind.bindFlipped(Data_Maybe.bindMaybe);\nvar map1 = /* #__PURE__ */ Data_Functor.map(Data_Functor.functorArray);\nvar mapFlipped = /* #__PURE__ */ Data_Functor.mapFlipped(Effect_Aff.functorAff);\nvar $$try = /* #__PURE__ */ Control_Monad_Error_Class[\"try\"](Effect_Aff.monadErrorAff);\nvar pure1 = /* #__PURE__ */ Control_Applicative.pure(Effect_Aff.applicativeAff);\nvar map2 = /* #__PURE__ */ Data_Functor.map(Effect_Aff.functorAff);\nvar $$void = /* #__PURE__ */ Data_Functor[\"void\"](Data_Either.functorEither);\nvar RequestContentError = /* #__PURE__ */ (function () {\n function RequestContentError(value0) {\n this.value0 = value0;\n };\n RequestContentError.create = function (value0) {\n return new RequestContentError(value0);\n };\n return RequestContentError;\n})();\nvar ResponseBodyError = /* #__PURE__ */ (function () {\n function ResponseBodyError(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n ResponseBodyError.create = function (value0) {\n return function (value1) {\n return new ResponseBodyError(value0, value1);\n };\n };\n return ResponseBodyError;\n})();\nvar TimeoutError = /* #__PURE__ */ (function () {\n function TimeoutError() {\n\n };\n TimeoutError.value = new TimeoutError();\n return TimeoutError;\n})();\nvar RequestFailedError = /* #__PURE__ */ (function () {\n function RequestFailedError() {\n\n };\n RequestFailedError.value = new RequestFailedError();\n return RequestFailedError;\n})();\nvar XHROtherError = /* #__PURE__ */ (function () {\n function XHROtherError(value0) {\n this.value0 = value0;\n };\n XHROtherError.create = function (value0) {\n return new XHROtherError(value0);\n };\n return XHROtherError;\n})();\nvar request = function (driver) {\n return function (req) {\n var parseJSON = function (v) {\n if (v === \"\") {\n return pure(Data_Argonaut_Core.jsonEmptyObject);\n };\n return Data_Either.either(function ($74) {\n return fail(Foreign.ForeignError.create($74));\n })(pure)(Data_Argonaut_Parser.jsonParser(v));\n };\n var fromResponse = (function () {\n if (req.responseFormat instanceof Affjax_ResponseFormat[\"ArrayBuffer\"]) {\n return unsafeReadTagged(\"ArrayBuffer\");\n };\n if (req.responseFormat instanceof Affjax_ResponseFormat.Blob) {\n return unsafeReadTagged(\"Blob\");\n };\n if (req.responseFormat instanceof Affjax_ResponseFormat.Document) {\n return function (x) {\n return alt(unsafeReadTagged(\"Document\")(x))(alt(unsafeReadTagged(\"XMLDocument\")(x))(unsafeReadTagged(\"HTMLDocument\")(x)));\n };\n };\n if (req.responseFormat instanceof Affjax_ResponseFormat.Json) {\n return composeKleisliFlipped(function ($75) {\n return req.responseFormat.value0(parseJSON($75));\n })(unsafeReadTagged(\"String\"));\n };\n if (req.responseFormat instanceof Affjax_ResponseFormat[\"String\"]) {\n return unsafeReadTagged(\"String\");\n };\n if (req.responseFormat instanceof Affjax_ResponseFormat.Ignore) {\n return Data_Function[\"const\"](req.responseFormat.value0(pure(Data_Unit.unit)));\n };\n throw new Error(\"Failed pattern match at Affjax (line 274, column 18 - line 283, column 57): \" + [ req.responseFormat.constructor.name ]);\n })();\n var extractContent = function (v) {\n if (v instanceof Affjax_RequestBody.ArrayView) {\n return new Data_Either.Right(v.value0(Foreign.unsafeToForeign));\n };\n if (v instanceof Affjax_RequestBody.Blob) {\n return new Data_Either.Right(Foreign.unsafeToForeign(v.value0));\n };\n if (v instanceof Affjax_RequestBody.Document) {\n return new Data_Either.Right(Foreign.unsafeToForeign(v.value0));\n };\n if (v instanceof Affjax_RequestBody[\"String\"]) {\n return new Data_Either.Right(Foreign.unsafeToForeign(v.value0));\n };\n if (v instanceof Affjax_RequestBody.FormData) {\n return new Data_Either.Right(Foreign.unsafeToForeign(v.value0));\n };\n if (v instanceof Affjax_RequestBody.FormURLEncoded) {\n return Data_Either.note(\"Body contains values that cannot be encoded as application/x-www-form-urlencoded\")(map(Foreign.unsafeToForeign)(Data_FormURLEncoded.encode(v.value0)));\n };\n if (v instanceof Affjax_RequestBody.Json) {\n return new Data_Either.Right(Foreign.unsafeToForeign(Data_Argonaut_Core.stringify(v.value0)));\n };\n throw new Error(\"Failed pattern match at Affjax (line 235, column 20 - line 250, column 69): \" + [ v.constructor.name ]);\n };\n var addHeader = function (mh) {\n return function (hs) {\n if (mh instanceof Data_Maybe.Just && !any(Data_Function.on(eq)(Affjax_RequestHeader.name)(mh.value0))(hs)) {\n return Data_Array.snoc(hs)(mh.value0);\n };\n return hs;\n };\n };\n var headers = function (reqContent) {\n return addHeader(map(Affjax_RequestHeader.ContentType.create)(bindFlipped(Affjax_RequestBody.toMediaType)(reqContent)))(addHeader(map(Affjax_RequestHeader.Accept.create)(Affjax_ResponseFormat.toMediaType(req.responseFormat)))(req.headers));\n };\n var ajaxRequest = function (v) {\n return {\n method: Data_HTTP_Method.print(req.method),\n url: req.url,\n headers: map1(function (h) {\n return {\n field: Affjax_RequestHeader.name(h),\n value: Affjax_RequestHeader.value(h)\n };\n })(headers(req.content)),\n content: v,\n responseType: Affjax_ResponseFormat.toResponseType(req.responseFormat),\n username: Data_Nullable.toNullable(req.username),\n password: Data_Nullable.toNullable(req.password),\n withCredentials: req.withCredentials,\n timeout: Data_Maybe.fromMaybe(0.0)(map(function (v1) {\n return v1;\n })(req.timeout))\n };\n };\n var send = function (content) {\n return mapFlipped($$try(Effect_Aff_Compat.fromEffectFnAff($foreign[\"_ajax\"](driver, \"AffjaxTimeoutErrorMessageIdent\", \"AffjaxRequestFailedMessageIdent\", Affjax_ResponseHeader.ResponseHeader.create, ajaxRequest(content)))))(function (v) {\n if (v instanceof Data_Either.Right) {\n var v1 = Control_Monad_Except.runExcept(fromResponse(v.value0.body));\n if (v1 instanceof Data_Either.Left) {\n return new Data_Either.Left(new ResponseBodyError(Data_List_NonEmpty.head(v1.value0), v.value0));\n };\n if (v1 instanceof Data_Either.Right) {\n return new Data_Either.Right({\n body: v1.value0,\n headers: v.value0.headers,\n status: v.value0.status,\n statusText: v.value0.statusText\n });\n };\n throw new Error(\"Failed pattern match at Affjax (line 209, column 9 - line 211, column 52): \" + [ v1.constructor.name ]);\n };\n if (v instanceof Data_Either.Left) {\n return new Data_Either.Left((function () {\n var message = Effect_Exception.message(v.value0);\n var $61 = message === \"AffjaxTimeoutErrorMessageIdent\";\n if ($61) {\n return TimeoutError.value;\n };\n var $62 = message === \"AffjaxRequestFailedMessageIdent\";\n if ($62) {\n return RequestFailedError.value;\n };\n return new XHROtherError(v.value0);\n })());\n };\n throw new Error(\"Failed pattern match at Affjax (line 207, column 144 - line 219, column 28): \" + [ v.constructor.name ]);\n });\n };\n if (req.content instanceof Data_Maybe.Nothing) {\n return send(Data_Nullable.toNullable(Data_Maybe.Nothing.value));\n };\n if (req.content instanceof Data_Maybe.Just) {\n var v = extractContent(req.content.value0);\n if (v instanceof Data_Either.Right) {\n return send(Data_Nullable.toNullable(new Data_Maybe.Just(v.value0)));\n };\n if (v instanceof Data_Either.Left) {\n return pure1(new Data_Either.Left(new RequestContentError(v.value0)));\n };\n throw new Error(\"Failed pattern match at Affjax (line 199, column 7 - line 203, column 48): \" + [ v.constructor.name ]);\n };\n throw new Error(\"Failed pattern match at Affjax (line 195, column 3 - line 203, column 48): \" + [ req.content.constructor.name ]);\n };\n};\nvar printError = function (v) {\n if (v instanceof RequestContentError) {\n return \"There was a problem with the request content: \" + v.value0;\n };\n if (v instanceof ResponseBodyError) {\n return \"There was a problem with the response body: \" + Foreign.renderForeignError(v.value0);\n };\n if (v instanceof TimeoutError) {\n return \"There was a problem making the request: timeout\";\n };\n if (v instanceof RequestFailedError) {\n return \"There was a problem making the request: request failed\";\n };\n if (v instanceof XHROtherError) {\n return \"There was a problem making the request: \" + Effect_Exception.message(v.value0);\n };\n throw new Error(\"Failed pattern match at Affjax (line 113, column 14 - line 123, column 66): \" + [ v.constructor.name ]);\n};\nvar defaultRequest = /* #__PURE__ */ (function () {\n return {\n method: new Data_Either.Left(Data_HTTP_Method.GET.value),\n url: \"/\",\n headers: [ ],\n content: Data_Maybe.Nothing.value,\n username: Data_Maybe.Nothing.value,\n password: Data_Maybe.Nothing.value,\n withCredentials: false,\n responseFormat: Affjax_ResponseFormat.ignore,\n timeout: Data_Maybe.Nothing.value\n };\n})();\nvar $$delete = function (driver) {\n return function (rf) {\n return function (u) {\n return request(driver)({\n method: new Data_Either.Left(Data_HTTP_Method.DELETE.value),\n url: u,\n headers: defaultRequest.headers,\n content: defaultRequest.content,\n username: defaultRequest.username,\n password: defaultRequest.password,\n withCredentials: defaultRequest.withCredentials,\n responseFormat: rf,\n timeout: defaultRequest.timeout\n });\n };\n };\n};\nvar delete_ = function (driver) {\n var $76 = map2($$void);\n var $77 = $$delete(driver)(Affjax_ResponseFormat.ignore);\n return function ($78) {\n return $76($77($78));\n };\n};\nvar get = function (driver) {\n return function (rf) {\n return function (u) {\n return request(driver)({\n method: defaultRequest.method,\n url: u,\n headers: defaultRequest.headers,\n content: defaultRequest.content,\n username: defaultRequest.username,\n password: defaultRequest.password,\n withCredentials: defaultRequest.withCredentials,\n responseFormat: rf,\n timeout: defaultRequest.timeout\n });\n };\n };\n};\nvar patch = function (driver) {\n return function (rf) {\n return function (u) {\n return function (c) {\n return request(driver)({\n method: new Data_Either.Left(Data_HTTP_Method.PATCH.value),\n url: u,\n headers: defaultRequest.headers,\n content: new Data_Maybe.Just(c),\n username: defaultRequest.username,\n password: defaultRequest.password,\n withCredentials: defaultRequest.withCredentials,\n responseFormat: rf,\n timeout: defaultRequest.timeout\n });\n };\n };\n };\n};\nvar patch_ = function (driver) {\n return function (url) {\n var $79 = map2($$void);\n var $80 = patch(driver)(Affjax_ResponseFormat.ignore)(url);\n return function ($81) {\n return $79($80($81));\n };\n };\n};\nvar post = function (driver) {\n return function (rf) {\n return function (u) {\n return function (c) {\n return request(driver)({\n method: new Data_Either.Left(Data_HTTP_Method.POST.value),\n url: u,\n headers: defaultRequest.headers,\n content: c,\n username: defaultRequest.username,\n password: defaultRequest.password,\n withCredentials: defaultRequest.withCredentials,\n responseFormat: rf,\n timeout: defaultRequest.timeout\n });\n };\n };\n };\n};\nvar post_ = function (driver) {\n return function (url) {\n var $82 = map2($$void);\n var $83 = post(driver)(Affjax_ResponseFormat.ignore)(url);\n return function ($84) {\n return $82($83($84));\n };\n };\n};\nvar put = function (driver) {\n return function (rf) {\n return function (u) {\n return function (c) {\n return request(driver)({\n method: new Data_Either.Left(Data_HTTP_Method.PUT.value),\n url: u,\n headers: defaultRequest.headers,\n content: c,\n username: defaultRequest.username,\n password: defaultRequest.password,\n withCredentials: defaultRequest.withCredentials,\n responseFormat: rf,\n timeout: defaultRequest.timeout\n });\n };\n };\n };\n};\nvar put_ = function (driver) {\n return function (url) {\n var $85 = map2($$void);\n var $86 = put(driver)(Affjax_ResponseFormat.ignore)(url);\n return function ($87) {\n return $85($86($87));\n };\n };\n};\nexport {\n defaultRequest,\n RequestContentError,\n ResponseBodyError,\n TimeoutError,\n RequestFailedError,\n XHROtherError,\n printError,\n request,\n get,\n post,\n post_,\n put,\n put_,\n $$delete as delete,\n delete_,\n patch,\n patch_\n};\n","// Generated by purs version 0.15.7\nimport * as Data_Either from \"../Data.Either/index.js\";\nimport * as Effect_Aff from \"../Effect.Aff/index.js\";\nimport * as Effect_Uncurried from \"../Effect.Uncurried/index.js\";\nvar EffectFnCanceler = function (x) {\n return x;\n};\nvar EffectFnAff = function (x) {\n return x;\n};\nvar fromEffectFnAff = function (v) {\n return Effect_Aff.makeAff(function (k) {\n return function __do() {\n var v1 = v(function ($9) {\n return k(Data_Either.Left.create($9))();\n }, function ($10) {\n return k(Data_Either.Right.create($10))();\n });\n return function (e) {\n return Effect_Aff.makeAff(function (k2) {\n return function __do() {\n v1(e, function ($11) {\n return k2(Data_Either.Left.create($11))();\n }, function ($12) {\n return k2(Data_Either.Right.create($12))();\n });\n return Effect_Aff.nonCanceler;\n };\n });\n };\n };\n });\n};\nexport {\n EffectFnAff,\n EffectFnCanceler,\n fromEffectFnAff\n};\nexport {\n mkEffectFn1,\n mkEffectFn2,\n mkEffectFn3,\n runEffectFn1,\n runEffectFn2,\n runEffectFn3\n} from \"../Effect.Uncurried/index.js\";\n","export function _ajax(platformSpecificDriver, timeoutErrorMessageIdent, requestFailedMessageIdent, mkHeader, options) {\n return function (errback, callback) {\n var xhr = platformSpecificDriver.newXHR();\n var fixedUrl = platformSpecificDriver.fixupUrl(options.url, xhr);\n xhr.open(options.method || \"GET\", fixedUrl, true, options.username, options.password);\n if (options.headers) {\n try {\n // eslint-disable-next-line no-eq-null,eqeqeq\n for (var i = 0, header; (header = options.headers[i]) != null; i++) {\n xhr.setRequestHeader(header.field, header.value);\n }\n } catch (e) {\n errback(e);\n }\n }\n var onerror = function (msgIdent) {\n return function () {\n errback(new Error(msgIdent));\n };\n };\n xhr.onerror = onerror(requestFailedMessageIdent);\n xhr.ontimeout = onerror(timeoutErrorMessageIdent);\n xhr.onload = function () {\n callback({\n status: xhr.status,\n statusText: xhr.statusText,\n headers: xhr.getAllResponseHeaders().split(\"\\r\\n\")\n .filter(function (header) {\n return header.length > 0;\n })\n .map(function (header) {\n var i = header.indexOf(\":\");\n return mkHeader(header.substring(0, i))(header.substring(i + 2));\n }),\n body: xhr.response\n });\n };\n xhr.responseType = options.responseType;\n xhr.withCredentials = options.withCredentials;\n xhr.timeout = options.timeout;\n xhr.send(options.content);\n\n return function (error, cancelErrback, cancelCallback) {\n try {\n xhr.abort();\n } catch (e) {\n return cancelErrback(e);\n }\n return cancelCallback();\n };\n };\n}\n","export const driver = {\n newXHR: function () {\n return new XMLHttpRequest();\n },\n fixupUrl: function (url) {\n return url || \"/\";\n }\n};\n","// Generated by purs version 0.15.7\nimport * as $foreign from \"./foreign.js\";\nimport * as Affjax from \"../Affjax/index.js\";\nvar request = /* #__PURE__ */ Affjax.request($foreign.driver);\nvar put_ = /* #__PURE__ */ Affjax.put_($foreign.driver);\nvar put = /* #__PURE__ */ Affjax.put($foreign.driver);\nvar post_ = /* #__PURE__ */ Affjax.post_($foreign.driver);\nvar post = /* #__PURE__ */ Affjax.post($foreign.driver);\nvar patch_ = /* #__PURE__ */ Affjax.patch_($foreign.driver);\nvar patch = /* #__PURE__ */ Affjax.patch($foreign.driver);\nvar get = /* #__PURE__ */ Affjax.get($foreign.driver);\nvar delete_ = /* #__PURE__ */ Affjax.delete_($foreign.driver);\nvar $$delete = /* #__PURE__ */ Affjax[\"delete\"]($foreign.driver);\nexport {\n driver\n} from \"./foreign.js\";\nexport {\n request,\n get,\n post,\n post_,\n put,\n put_,\n $$delete as delete,\n delete_,\n patch,\n patch_\n};\nexport {\n RequestContentError,\n RequestFailedError,\n ResponseBodyError,\n TimeoutError,\n XHROtherError,\n defaultRequest,\n printError\n} from \"../Affjax/index.js\";\n","// Generated by purs version 0.15.7\nimport * as $foreign from \"./foreign.js\";\nimport * as Control_Apply from \"../Control.Apply/index.js\";\nimport * as Data_Bounded from \"../Data.Bounded/index.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_EuclideanRing from \"../Data.EuclideanRing/index.js\";\nimport * as Data_Foldable from \"../Data.Foldable/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Functor_Invariant from \"../Data.Functor.Invariant/index.js\";\nimport * as Data_HeytingAlgebra from \"../Data.HeytingAlgebra/index.js\";\nimport * as Data_Monoid from \"../Data.Monoid/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Data_Ring from \"../Data.Ring/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nimport * as Data_Semiring from \"../Data.Semiring/index.js\";\nimport * as Data_Show from \"../Data.Show/index.js\";\nimport * as Data_Traversable from \"../Data.Traversable/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nvar showLazy = function (dictShow) {\n var show = Data_Show.show(dictShow);\n return {\n show: function (x) {\n return \"(defer \\\\_ -> \" + (show($foreign.force(x)) + \")\");\n }\n };\n};\nvar semiringLazy = function (dictSemiring) {\n var add = Data_Semiring.add(dictSemiring);\n var zero = Data_Semiring.zero(dictSemiring);\n var mul = Data_Semiring.mul(dictSemiring);\n var one = Data_Semiring.one(dictSemiring);\n return {\n add: function (a) {\n return function (b) {\n return $foreign.defer(function (v) {\n return add($foreign.force(a))($foreign.force(b));\n });\n };\n },\n zero: $foreign.defer(function (v) {\n return zero;\n }),\n mul: function (a) {\n return function (b) {\n return $foreign.defer(function (v) {\n return mul($foreign.force(a))($foreign.force(b));\n });\n };\n },\n one: $foreign.defer(function (v) {\n return one;\n })\n };\n};\nvar semigroupLazy = function (dictSemigroup) {\n var append1 = Data_Semigroup.append(dictSemigroup);\n return {\n append: function (a) {\n return function (b) {\n return $foreign.defer(function (v) {\n return append1($foreign.force(a))($foreign.force(b));\n });\n };\n }\n };\n};\nvar ringLazy = function (dictRing) {\n var sub = Data_Ring.sub(dictRing);\n var semiringLazy1 = semiringLazy(dictRing.Semiring0());\n return {\n sub: function (a) {\n return function (b) {\n return $foreign.defer(function (v) {\n return sub($foreign.force(a))($foreign.force(b));\n });\n };\n },\n Semiring0: function () {\n return semiringLazy1;\n }\n };\n};\nvar monoidLazy = function (dictMonoid) {\n var mempty = Data_Monoid.mempty(dictMonoid);\n var semigroupLazy1 = semigroupLazy(dictMonoid.Semigroup0());\n return {\n mempty: $foreign.defer(function (v) {\n return mempty;\n }),\n Semigroup0: function () {\n return semigroupLazy1;\n }\n };\n};\nvar lazyLazy = {\n defer: function (f) {\n return $foreign.defer(function (v) {\n return $foreign.force(f(Data_Unit.unit));\n });\n }\n};\nvar functorLazy = {\n map: function (f) {\n return function (l) {\n return $foreign.defer(function (v) {\n return f($foreign.force(l));\n });\n };\n }\n};\nvar map = /* #__PURE__ */ Data_Functor.map(functorLazy);\nvar functorWithIndexLazy = {\n mapWithIndex: function (f) {\n return map(f(Data_Unit.unit));\n },\n Functor0: function () {\n return functorLazy;\n }\n};\nvar invariantLazy = {\n imap: /* #__PURE__ */ Data_Functor_Invariant.imapF(functorLazy)\n};\nvar foldableLazy = {\n foldr: function (f) {\n return function (z) {\n return function (l) {\n return f($foreign.force(l))(z);\n };\n };\n },\n foldl: function (f) {\n return function (z) {\n return function (l) {\n return f(z)($foreign.force(l));\n };\n };\n },\n foldMap: function (dictMonoid) {\n return function (f) {\n return function (l) {\n return f($foreign.force(l));\n };\n };\n }\n};\nvar foldr = /* #__PURE__ */ Data_Foldable.foldr(foldableLazy);\nvar foldl = /* #__PURE__ */ Data_Foldable.foldl(foldableLazy);\nvar foldMap = /* #__PURE__ */ Data_Foldable.foldMap(foldableLazy);\nvar foldableWithIndexLazy = {\n foldrWithIndex: function (f) {\n return foldr(f(Data_Unit.unit));\n },\n foldlWithIndex: function (f) {\n return foldl(f(Data_Unit.unit));\n },\n foldMapWithIndex: function (dictMonoid) {\n var foldMap1 = foldMap(dictMonoid);\n return function (f) {\n return foldMap1(f(Data_Unit.unit));\n };\n },\n Foldable0: function () {\n return foldableLazy;\n }\n};\nvar traversableLazy = {\n traverse: function (dictApplicative) {\n var map1 = Data_Functor.map((dictApplicative.Apply0()).Functor0());\n return function (f) {\n return function (l) {\n return map1(function ($103) {\n return $foreign.defer(Data_Function[\"const\"]($103));\n })(f($foreign.force(l)));\n };\n };\n },\n sequence: function (dictApplicative) {\n var map1 = Data_Functor.map((dictApplicative.Apply0()).Functor0());\n return function (l) {\n return map1(function ($104) {\n return $foreign.defer(Data_Function[\"const\"]($104));\n })($foreign.force(l));\n };\n },\n Functor0: function () {\n return functorLazy;\n },\n Foldable1: function () {\n return foldableLazy;\n }\n};\nvar traverse = /* #__PURE__ */ Data_Traversable.traverse(traversableLazy);\nvar traversableWithIndexLazy = {\n traverseWithIndex: function (dictApplicative) {\n var traverse1 = traverse(dictApplicative);\n return function (f) {\n return traverse1(f(Data_Unit.unit));\n };\n },\n FunctorWithIndex0: function () {\n return functorWithIndexLazy;\n },\n FoldableWithIndex1: function () {\n return foldableWithIndexLazy;\n },\n Traversable2: function () {\n return traversableLazy;\n }\n};\nvar foldable1Lazy = {\n foldMap1: function (dictSemigroup) {\n return function (f) {\n return function (l) {\n return f($foreign.force(l));\n };\n };\n },\n foldr1: function (v) {\n return function (l) {\n return $foreign.force(l);\n };\n },\n foldl1: function (v) {\n return function (l) {\n return $foreign.force(l);\n };\n },\n Foldable0: function () {\n return foldableLazy;\n }\n};\nvar traversable1Lazy = {\n traverse1: function (dictApply) {\n var map1 = Data_Functor.map(dictApply.Functor0());\n return function (f) {\n return function (l) {\n return map1(function ($105) {\n return $foreign.defer(Data_Function[\"const\"]($105));\n })(f($foreign.force(l)));\n };\n };\n },\n sequence1: function (dictApply) {\n var map1 = Data_Functor.map(dictApply.Functor0());\n return function (l) {\n return map1(function ($106) {\n return $foreign.defer(Data_Function[\"const\"]($106));\n })($foreign.force(l));\n };\n },\n Foldable10: function () {\n return foldable1Lazy;\n },\n Traversable1: function () {\n return traversableLazy;\n }\n};\nvar extendLazy = {\n extend: function (f) {\n return function (x) {\n return $foreign.defer(function (v) {\n return f(x);\n });\n };\n },\n Functor0: function () {\n return functorLazy;\n }\n};\nvar eqLazy = function (dictEq) {\n var eq = Data_Eq.eq(dictEq);\n return {\n eq: function (x) {\n return function (y) {\n return eq($foreign.force(x))($foreign.force(y));\n };\n }\n };\n};\nvar ordLazy = function (dictOrd) {\n var compare = Data_Ord.compare(dictOrd);\n var eqLazy1 = eqLazy(dictOrd.Eq0());\n return {\n compare: function (x) {\n return function (y) {\n return compare($foreign.force(x))($foreign.force(y));\n };\n },\n Eq0: function () {\n return eqLazy1;\n }\n };\n};\nvar eq1Lazy = {\n eq1: function (dictEq) {\n return Data_Eq.eq(eqLazy(dictEq));\n }\n};\nvar ord1Lazy = {\n compare1: function (dictOrd) {\n return Data_Ord.compare(ordLazy(dictOrd));\n },\n Eq10: function () {\n return eq1Lazy;\n }\n};\nvar comonadLazy = {\n extract: $foreign.force,\n Extend0: function () {\n return extendLazy;\n }\n};\nvar commutativeRingLazy = function (dictCommutativeRing) {\n var ringLazy1 = ringLazy(dictCommutativeRing.Ring0());\n return {\n Ring0: function () {\n return ringLazy1;\n }\n };\n};\nvar euclideanRingLazy = function (dictEuclideanRing) {\n var div = Data_EuclideanRing.div(dictEuclideanRing);\n var mod = Data_EuclideanRing.mod(dictEuclideanRing);\n var commutativeRingLazy1 = commutativeRingLazy(dictEuclideanRing.CommutativeRing0());\n return {\n degree: (function () {\n var $107 = Data_EuclideanRing.degree(dictEuclideanRing);\n return function ($108) {\n return $107($foreign.force($108));\n };\n })(),\n div: function (a) {\n return function (b) {\n return $foreign.defer(function (v) {\n return div($foreign.force(a))($foreign.force(b));\n });\n };\n },\n mod: function (a) {\n return function (b) {\n return $foreign.defer(function (v) {\n return mod($foreign.force(a))($foreign.force(b));\n });\n };\n },\n CommutativeRing0: function () {\n return commutativeRingLazy1;\n }\n };\n};\nvar boundedLazy = function (dictBounded) {\n var top = Data_Bounded.top(dictBounded);\n var bottom = Data_Bounded.bottom(dictBounded);\n var ordLazy1 = ordLazy(dictBounded.Ord0());\n return {\n top: $foreign.defer(function (v) {\n return top;\n }),\n bottom: $foreign.defer(function (v) {\n return bottom;\n }),\n Ord0: function () {\n return ordLazy1;\n }\n };\n};\nvar applyLazy = {\n apply: function (f) {\n return function (x) {\n return $foreign.defer(function (v) {\n return $foreign.force(f)($foreign.force(x));\n });\n };\n },\n Functor0: function () {\n return functorLazy;\n }\n};\nvar apply = /* #__PURE__ */ Control_Apply.apply(applyLazy);\nvar bindLazy = {\n bind: function (l) {\n return function (f) {\n return $foreign.defer(function (v) {\n return $foreign.force(f($foreign.force(l)));\n });\n };\n },\n Apply0: function () {\n return applyLazy;\n }\n};\nvar heytingAlgebraLazy = function (dictHeytingAlgebra) {\n var ff = Data_HeytingAlgebra.ff(dictHeytingAlgebra);\n var tt = Data_HeytingAlgebra.tt(dictHeytingAlgebra);\n var implies = Data_HeytingAlgebra.implies(dictHeytingAlgebra);\n var conj = Data_HeytingAlgebra.conj(dictHeytingAlgebra);\n var disj = Data_HeytingAlgebra.disj(dictHeytingAlgebra);\n var not = Data_HeytingAlgebra.not(dictHeytingAlgebra);\n return {\n ff: $foreign.defer(function (v) {\n return ff;\n }),\n tt: $foreign.defer(function (v) {\n return tt;\n }),\n implies: function (a) {\n return function (b) {\n return apply(map(implies)(a))(b);\n };\n },\n conj: function (a) {\n return function (b) {\n return apply(map(conj)(a))(b);\n };\n },\n disj: function (a) {\n return function (b) {\n return apply(map(disj)(a))(b);\n };\n },\n not: function (a) {\n return map(not)(a);\n }\n };\n};\nvar booleanAlgebraLazy = function (dictBooleanAlgebra) {\n var heytingAlgebraLazy1 = heytingAlgebraLazy(dictBooleanAlgebra.HeytingAlgebra0());\n return {\n HeytingAlgebra0: function () {\n return heytingAlgebraLazy1;\n }\n };\n};\nvar applicativeLazy = {\n pure: function (a) {\n return $foreign.defer(function (v) {\n return a;\n });\n },\n Apply0: function () {\n return applyLazy;\n }\n};\nvar monadLazy = {\n Applicative0: function () {\n return applicativeLazy;\n },\n Bind1: function () {\n return bindLazy;\n }\n};\nexport {\n defer,\n force\n} from \"./foreign.js\";\nexport {\n semiringLazy,\n ringLazy,\n commutativeRingLazy,\n euclideanRingLazy,\n eqLazy,\n eq1Lazy,\n ordLazy,\n ord1Lazy,\n boundedLazy,\n semigroupLazy,\n monoidLazy,\n heytingAlgebraLazy,\n booleanAlgebraLazy,\n functorLazy,\n functorWithIndexLazy,\n foldableLazy,\n foldableWithIndexLazy,\n foldable1Lazy,\n traversableLazy,\n traversableWithIndexLazy,\n traversable1Lazy,\n invariantLazy,\n applyLazy,\n applicativeLazy,\n bindLazy,\n monadLazy,\n extendLazy,\n comonadLazy,\n showLazy,\n lazyLazy\n};\n","// Generated by purs version 0.15.7\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Control_Monad_Cont_Trans from \"../Control.Monad.Cont.Trans/index.js\";\nimport * as Control_Monad_Except_Trans from \"../Control.Monad.Except.Trans/index.js\";\nimport * as Control_Monad_List_Trans from \"../Control.Monad.List.Trans/index.js\";\nimport * as Control_Monad_Maybe_Trans from \"../Control.Monad.Maybe.Trans/index.js\";\nimport * as Control_Monad_RWS_Trans from \"../Control.Monad.RWS.Trans/index.js\";\nimport * as Control_Monad_Reader_Trans from \"../Control.Monad.Reader.Trans/index.js\";\nimport * as Control_Monad_State_Trans from \"../Control.Monad.State.Trans/index.js\";\nimport * as Control_Monad_Trans_Class from \"../Control.Monad.Trans.Class/index.js\";\nimport * as Control_Monad_Writer_Trans from \"../Control.Monad.Writer.Trans/index.js\";\nimport * as Effect_Aff from \"../Effect.Aff/index.js\";\nvar lift = /* #__PURE__ */ Control_Monad_Trans_Class.lift(Control_Monad_Cont_Trans.monadTransContT);\nvar lift1 = /* #__PURE__ */ Control_Monad_Trans_Class.lift(Control_Monad_Except_Trans.monadTransExceptT);\nvar lift2 = /* #__PURE__ */ Control_Monad_Trans_Class.lift(Control_Monad_List_Trans.monadTransListT);\nvar lift3 = /* #__PURE__ */ Control_Monad_Trans_Class.lift(Control_Monad_Maybe_Trans.monadTransMaybeT);\nvar lift4 = /* #__PURE__ */ Control_Monad_Trans_Class.lift(Control_Monad_Reader_Trans.monadTransReaderT);\nvar lift5 = /* #__PURE__ */ Control_Monad_Trans_Class.lift(Control_Monad_State_Trans.monadTransStateT);\nvar monadAffAff = {\n liftAff: /* #__PURE__ */ Control_Category.identity(Control_Category.categoryFn),\n MonadEffect0: function () {\n return Effect_Aff.monadEffectAff;\n }\n};\nvar liftAff = function (dict) {\n return dict.liftAff;\n};\nvar monadAffContT = function (dictMonadAff) {\n var MonadEffect0 = dictMonadAff.MonadEffect0();\n var monadEffectContT = Control_Monad_Cont_Trans.monadEffectContT(MonadEffect0);\n return {\n liftAff: (function () {\n var $65 = lift(MonadEffect0.Monad0());\n var $66 = liftAff(dictMonadAff);\n return function ($67) {\n return $65($66($67));\n };\n })(),\n MonadEffect0: function () {\n return monadEffectContT;\n }\n };\n};\nvar monadAffExceptT = function (dictMonadAff) {\n var MonadEffect0 = dictMonadAff.MonadEffect0();\n var monadEffectExceptT = Control_Monad_Except_Trans.monadEffectExceptT(MonadEffect0);\n return {\n liftAff: (function () {\n var $68 = lift1(MonadEffect0.Monad0());\n var $69 = liftAff(dictMonadAff);\n return function ($70) {\n return $68($69($70));\n };\n })(),\n MonadEffect0: function () {\n return monadEffectExceptT;\n }\n };\n};\nvar monadAffListT = function (dictMonadAff) {\n var MonadEffect0 = dictMonadAff.MonadEffect0();\n var monadEffectListT = Control_Monad_List_Trans.monadEffectListT(MonadEffect0);\n return {\n liftAff: (function () {\n var $71 = lift2(MonadEffect0.Monad0());\n var $72 = liftAff(dictMonadAff);\n return function ($73) {\n return $71($72($73));\n };\n })(),\n MonadEffect0: function () {\n return monadEffectListT;\n }\n };\n};\nvar monadAffMaybe = function (dictMonadAff) {\n var MonadEffect0 = dictMonadAff.MonadEffect0();\n var monadEffectMaybe = Control_Monad_Maybe_Trans.monadEffectMaybe(MonadEffect0);\n return {\n liftAff: (function () {\n var $74 = lift3(MonadEffect0.Monad0());\n var $75 = liftAff(dictMonadAff);\n return function ($76) {\n return $74($75($76));\n };\n })(),\n MonadEffect0: function () {\n return monadEffectMaybe;\n }\n };\n};\nvar monadAffRWS = function (dictMonadAff) {\n var MonadEffect0 = dictMonadAff.MonadEffect0();\n var Monad0 = MonadEffect0.Monad0();\n var liftAff1 = liftAff(dictMonadAff);\n return function (dictMonoid) {\n var monadEffectRWS = Control_Monad_RWS_Trans.monadEffectRWS(dictMonoid)(MonadEffect0);\n return {\n liftAff: (function () {\n var $77 = Control_Monad_Trans_Class.lift(Control_Monad_RWS_Trans.monadTransRWST(dictMonoid))(Monad0);\n return function ($78) {\n return $77(liftAff1($78));\n };\n })(),\n MonadEffect0: function () {\n return monadEffectRWS;\n }\n };\n };\n};\nvar monadAffReader = function (dictMonadAff) {\n var MonadEffect0 = dictMonadAff.MonadEffect0();\n var monadEffectReader = Control_Monad_Reader_Trans.monadEffectReader(MonadEffect0);\n return {\n liftAff: (function () {\n var $79 = lift4(MonadEffect0.Monad0());\n var $80 = liftAff(dictMonadAff);\n return function ($81) {\n return $79($80($81));\n };\n })(),\n MonadEffect0: function () {\n return monadEffectReader;\n }\n };\n};\nvar monadAffState = function (dictMonadAff) {\n var MonadEffect0 = dictMonadAff.MonadEffect0();\n var monadEffectState = Control_Monad_State_Trans.monadEffectState(MonadEffect0);\n return {\n liftAff: (function () {\n var $82 = lift5(MonadEffect0.Monad0());\n var $83 = liftAff(dictMonadAff);\n return function ($84) {\n return $82($83($84));\n };\n })(),\n MonadEffect0: function () {\n return monadEffectState;\n }\n };\n};\nvar monadAffWriter = function (dictMonadAff) {\n var MonadEffect0 = dictMonadAff.MonadEffect0();\n var Monad0 = MonadEffect0.Monad0();\n var liftAff1 = liftAff(dictMonadAff);\n return function (dictMonoid) {\n var monadEffectWriter = Control_Monad_Writer_Trans.monadEffectWriter(dictMonoid)(MonadEffect0);\n return {\n liftAff: (function () {\n var $85 = Control_Monad_Trans_Class.lift(Control_Monad_Writer_Trans.monadTransWriterT(dictMonoid))(Monad0);\n return function ($86) {\n return $85(liftAff1($86));\n };\n })(),\n MonadEffect0: function () {\n return monadEffectWriter;\n }\n };\n };\n};\nexport {\n liftAff,\n monadAffAff,\n monadAffContT,\n monadAffExceptT,\n monadAffListT,\n monadAffMaybe,\n monadAffReader,\n monadAffRWS,\n monadAffState,\n monadAffWriter\n};\n","import * as Affjax from \"../Affjax/index.js\";\nimport * as Affjax_ResponseFormat from \"../Affjax.ResponseFormat/index.js\";\nimport * as Affjax_Web from \"../Affjax.Web/index.js\";\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Data_Either from \"../Data.Either/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Effect from \"../Effect/index.js\";\nimport * as Effect_Aff_Class from \"../Effect.Aff.Class/index.js\";\nimport * as Effect_Class from \"../Effect.Class/index.js\";\nimport * as Effect_Console from \"../Effect.Console/index.js\";\nimport * as JSURI from \"../JSURI/index.js\";\nvar discard = /* #__PURE__ */ Control_Bind.discard(Control_Bind.discardUnit);\nvar pure = /* #__PURE__ */ Control_Applicative.pure(Effect.applicativeEffect);\nvar fetchThroughProxy = function (dictMonadAff) {\n var MonadEffect0 = dictMonadAff.MonadEffect0();\n var Monad0 = MonadEffect0.Monad0();\n var Bind1 = Monad0.Bind1();\n var discard2 = discard(Bind1);\n var liftEffect = Effect_Class.liftEffect(MonadEffect0);\n var pure1 = Control_Applicative.pure(Monad0.Applicative0());\n var bind = Control_Bind.bind(Bind1);\n var liftAff = Effect_Aff_Class.liftAff(dictMonadAff);\n return function (url) {\n var v = JSURI[\"encodeURIComponent\"](url);\n if (v instanceof Data_Maybe.Nothing) {\n return discard2(liftEffect(Effect_Console.error(\"Could not encode \" + url)))(function () {\n return pure1(Data_Maybe.Nothing.value);\n });\n };\n if (v instanceof Data_Maybe.Just) {\n var corsUrl = \"https://api.codetabs.com/v1/proxy?quest=\" + v.value0;\n return bind(liftAff(Affjax_Web.get(Affjax_ResponseFormat.string)(corsUrl)))(function (response) {\n return liftEffect((function () {\n if (response instanceof Data_Either.Left) {\n return function __do() {\n Effect_Console.error(\"CORS Proxy response failed to decode: \" + Affjax.printError(response.value0))();\n return Data_Maybe.Nothing.value;\n };\n };\n if (response instanceof Data_Either.Right) {\n return pure(new Data_Maybe.Just(response.value0.body));\n };\n throw new Error(\"Failed pattern match at CorsProxy (line 25, column 18 - line 29, column 48): \" + [ response.constructor.name ]);\n })());\n });\n };\n throw new Error(\"Failed pattern match at CorsProxy (line 18, column 3 - line 29, column 48): \" + [ v.constructor.name ]);\n };\n};\nexport {\n fetchThroughProxy\n};\n","export const _parseJSON = JSON.parse;\n\nexport const _undefined = undefined;\n\nexport const _unsafeStringify = JSON.stringify;\n","// Generated by purs version 0.15.7\nimport * as $foreign from \"./foreign.js\";\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Control_Monad_Except_Trans from \"../Control.Monad.Except.Trans/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Foreign from \"../Foreign/index.js\";\nvar unsafeReadProp = function (dictMonad) {\n var fail = Foreign.fail(dictMonad);\n var pure = Control_Applicative.pure(Control_Monad_Except_Trans.applicativeExceptT(dictMonad));\n return function (k) {\n return function (value) {\n return $foreign.unsafeReadPropImpl(fail(new Foreign.TypeMismatch(\"object\", Foreign.typeOf(value))), pure, k, value);\n };\n };\n};\nvar readProp = function (dictMonad) {\n return unsafeReadProp(dictMonad);\n};\nvar readIndex = function (dictMonad) {\n return unsafeReadProp(dictMonad);\n};\nvar ix = function (dict) {\n return dict.ix;\n};\nvar index = function (dict) {\n return dict.index;\n};\nvar indexableExceptT = function (dictMonad) {\n var bindFlipped = Control_Bind.bindFlipped(Control_Monad_Except_Trans.bindExceptT(dictMonad));\n return {\n ix: function (dictIndex) {\n var index1 = index(dictIndex);\n return function (f) {\n return function (i) {\n return bindFlipped(Data_Function.flip(index1)(i))(f);\n };\n };\n }\n };\n};\nvar indexableForeign = function (dictMonad) {\n return {\n ix: function (dictIndex) {\n return index(dictIndex);\n }\n };\n};\nvar hasPropertyImpl = function (v) {\n return function (v1) {\n if (Foreign.isNull(v1)) {\n return false;\n };\n if (Foreign.isUndefined(v1)) {\n return false;\n };\n if (Foreign.typeOf(v1) === \"object\" || Foreign.typeOf(v1) === \"function\") {\n return $foreign.unsafeHasProperty(v, v1);\n };\n return false;\n };\n};\nvar hasProperty = function (dict) {\n return dict.hasProperty;\n};\nvar hasOwnPropertyImpl = function (v) {\n return function (v1) {\n if (Foreign.isNull(v1)) {\n return false;\n };\n if (Foreign.isUndefined(v1)) {\n return false;\n };\n if (Foreign.typeOf(v1) === \"object\" || Foreign.typeOf(v1) === \"function\") {\n return $foreign.unsafeHasOwnProperty(v, v1);\n };\n return false;\n };\n};\nvar indexInt = function (dictMonad) {\n return {\n index: Data_Function.flip(readIndex(dictMonad)),\n hasProperty: hasPropertyImpl,\n hasOwnProperty: hasOwnPropertyImpl,\n errorAt: Foreign.ErrorAtIndex.create\n };\n};\nvar indexString = function (dictMonad) {\n return {\n index: Data_Function.flip(readProp(dictMonad)),\n hasProperty: hasPropertyImpl,\n hasOwnProperty: hasOwnPropertyImpl,\n errorAt: Foreign.ErrorAtProperty.create\n };\n};\nvar hasOwnProperty = function (dict) {\n return dict.hasOwnProperty;\n};\nvar errorAt = function (dict) {\n return dict.errorAt;\n};\nexport {\n readProp,\n readIndex,\n ix,\n index,\n hasProperty,\n hasOwnProperty,\n errorAt,\n indexString,\n indexInt,\n indexableForeign,\n indexableExceptT\n};\n","export function unsafeReadPropImpl(f, s, key, value) {\n return value == null ? f : s(value[key]);\n}\n\nexport function unsafeHasOwnProperty(prop, value) {\n return Object.prototype.hasOwnProperty.call(value, prop);\n}\n\nexport function unsafeHasProperty(prop, value) {\n return prop in value;\n}\n","// Generated by purs version 0.15.7\nimport * as $foreign from \"./foreign.js\";\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Control_Semigroupoid from \"../Control.Semigroupoid/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Symbol from \"../Data.Symbol/index.js\";\nimport * as Record_Unsafe_Union from \"../Record.Unsafe.Union/index.js\";\nimport * as Unsafe_Coerce from \"../Unsafe.Coerce/index.js\";\nvar Builder = function (x) {\n return x;\n};\nvar union = function () {\n return function (r1) {\n return function (r2) {\n return Record_Unsafe_Union.unsafeUnionFn(r1, r2);\n };\n };\n};\nvar semigroupoidBuilder = Control_Semigroupoid.semigroupoidFn;\nvar rename = function (dictIsSymbol) {\n var reflectSymbol = Data_Symbol.reflectSymbol(dictIsSymbol);\n return function (dictIsSymbol1) {\n var reflectSymbol1 = Data_Symbol.reflectSymbol(dictIsSymbol1);\n return function () {\n return function () {\n return function () {\n return function () {\n return function (l1) {\n return function (l2) {\n return function (r1) {\n return $foreign.unsafeRename(reflectSymbol(l1))(reflectSymbol1(l2))(r1);\n };\n };\n };\n };\n };\n };\n };\n };\n};\nvar nub = function () {\n return Unsafe_Coerce.unsafeCoerce;\n};\nvar modify = function () {\n return function () {\n return function (dictIsSymbol) {\n var reflectSymbol = Data_Symbol.reflectSymbol(dictIsSymbol);\n return function (l) {\n return function (f) {\n return function (r1) {\n return $foreign.unsafeModify(reflectSymbol(l))(f)(r1);\n };\n };\n };\n };\n };\n};\nvar merge = function () {\n return function () {\n return function (r1) {\n return function (r2) {\n return Record_Unsafe_Union.unsafeUnionFn(r1, r2);\n };\n };\n };\n};\nvar insert = function () {\n return function () {\n return function (dictIsSymbol) {\n var reflectSymbol = Data_Symbol.reflectSymbol(dictIsSymbol);\n return function (l) {\n return function (a) {\n return function (r1) {\n return $foreign.unsafeInsert(reflectSymbol(l))(a)(r1);\n };\n };\n };\n };\n };\n};\nvar disjointUnion = function () {\n return function () {\n return function (r1) {\n return function (r2) {\n return Record_Unsafe_Union.unsafeUnionFn(r1, r2);\n };\n };\n };\n};\nvar $$delete = function (dictIsSymbol) {\n var reflectSymbol = Data_Symbol.reflectSymbol(dictIsSymbol);\n return function () {\n return function () {\n return function (l) {\n return function (r2) {\n return $foreign.unsafeDelete(reflectSymbol(l))(r2);\n };\n };\n };\n };\n};\nvar categoryBuilder = Control_Category.categoryFn;\nvar build = function (v) {\n return function (r1) {\n return v($foreign.copyRecord(r1));\n };\n};\nvar buildFromScratch = /* #__PURE__ */ Data_Function.flip(build)({});\nvar flip = function (f) {\n return function (b) {\n return function (a) {\n return build(f(a))(b);\n };\n };\n};\nexport {\n build,\n buildFromScratch,\n flip,\n insert,\n modify,\n $$delete as delete,\n rename,\n merge,\n union,\n disjointUnion,\n nub,\n semigroupoidBuilder,\n categoryBuilder\n};\n","export function copyRecord(rec) {\n var copy = {};\n for (var key in rec) {\n if ({}.hasOwnProperty.call(rec, key)) {\n copy[key] = rec[key];\n }\n }\n return copy;\n}\n\nexport function unsafeInsert(l) {\n return function(a) {\n return function(rec) {\n rec[l] = a;\n return rec;\n };\n };\n}\n\nexport function unsafeModify(l) {\n return function (f) {\n return function(rec) {\n rec[l] = f(rec[l]);\n return rec;\n };\n };\n}\n\nexport function unsafeDelete(l) {\n return function(rec) {\n delete rec[l];\n return rec;\n };\n}\n\nexport function unsafeRename(l1) {\n return function (l2) {\n return function (rec) {\n rec[l2] = rec[l1];\n delete rec[l1];\n return rec;\n };\n };\n}\n","// Generated by purs version 0.15.7\nimport * as $foreign from \"./foreign.js\";\nimport * as Control_Alt from \"../Control.Alt/index.js\";\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Apply from \"../Control.Apply/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Control_Monad_Except from \"../Control.Monad.Except/index.js\";\nimport * as Control_Monad_Except_Trans from \"../Control.Monad.Except.Trans/index.js\";\nimport * as Control_Semigroupoid from \"../Control.Semigroupoid/index.js\";\nimport * as Data_Array_NonEmpty from \"../Data.Array.NonEmpty/index.js\";\nimport * as Data_Bifunctor from \"../Data.Bifunctor/index.js\";\nimport * as Data_Boolean from \"../Data.Boolean/index.js\";\nimport * as Data_Either from \"../Data.Either/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Identity from \"../Data.Identity/index.js\";\nimport * as Data_List_NonEmpty from \"../Data.List.NonEmpty/index.js\";\nimport * as Data_List_Types from \"../Data.List.Types/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Nullable from \"../Data.Nullable/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nimport * as Data_Symbol from \"../Data.Symbol/index.js\";\nimport * as Data_Traversable from \"../Data.Traversable/index.js\";\nimport * as Data_TraversableWithIndex from \"../Data.TraversableWithIndex/index.js\";\nimport * as Data_Variant from \"../Data.Variant/index.js\";\nimport * as Effect_Exception from \"../Effect.Exception/index.js\";\nimport * as Effect_Uncurried from \"../Effect.Uncurried/index.js\";\nimport * as Effect_Unsafe from \"../Effect.Unsafe/index.js\";\nimport * as Foreign from \"../Foreign/index.js\";\nimport * as Foreign_Index from \"../Foreign.Index/index.js\";\nimport * as Foreign_Object from \"../Foreign.Object/index.js\";\nimport * as Partial_Unsafe from \"../Partial.Unsafe/index.js\";\nimport * as Record from \"../Record/index.js\";\nimport * as Record_Builder from \"../Record.Builder/index.js\";\nimport * as Type_Proxy from \"../Type.Proxy/index.js\";\nvar map = /* #__PURE__ */ Data_Functor.map(Data_Functor.functorArray);\nvar fail = /* #__PURE__ */ Foreign.fail(Data_Identity.monadIdentity);\nvar applicativeExceptT = /* #__PURE__ */ Control_Monad_Except_Trans.applicativeExceptT(Data_Identity.monadIdentity);\nvar pure = /* #__PURE__ */ Control_Applicative.pure(applicativeExceptT);\nvar map1 = /* #__PURE__ */ Data_Functor.map(/* #__PURE__ */ Control_Monad_Except_Trans.functorExceptT(Data_Identity.functorIdentity));\nvar map2 = /* #__PURE__ */ Data_Functor.map(Data_List_Types.functorNonEmptyList);\nvar bindExceptT = /* #__PURE__ */ Control_Monad_Except_Trans.bindExceptT(Data_Identity.monadIdentity);\nvar bindFlipped = /* #__PURE__ */ Control_Bind.bindFlipped(bindExceptT);\nvar map3 = /* #__PURE__ */ Data_Functor.map(Data_Functor.functorFn);\nvar traverse = /* #__PURE__ */ Data_Traversable.traverse(Data_Traversable.traversableMaybe)(applicativeExceptT);\nvar readNull = /* #__PURE__ */ Foreign.readNull(Data_Identity.monadIdentity);\nvar composeKleisliFlipped = /* #__PURE__ */ Control_Bind.composeKleisliFlipped(bindExceptT);\nvar sequence = /* #__PURE__ */ Data_Traversable.sequence(Foreign_Object.traversableObject)(applicativeExceptT);\nvar identity = /* #__PURE__ */ Control_Category.identity(Record_Builder.categoryBuilder);\nvar traverseWithIndex = /* #__PURE__ */ Data_TraversableWithIndex.traverseWithIndex(Data_TraversableWithIndex.traversableWithIndexArray)(applicativeExceptT);\nvar readArray1 = /* #__PURE__ */ Foreign.readArray(Data_Identity.monadIdentity);\nvar bind = /* #__PURE__ */ Control_Bind.bind(bindExceptT);\nvar except = /* #__PURE__ */ Control_Monad_Except_Trans.except(Data_Identity.applicativeIdentity);\nvar on = /* #__PURE__ */ Data_Variant.on();\nvar compose1 = /* #__PURE__ */ Control_Semigroupoid.compose(Record_Builder.semigroupoidBuilder);\nvar insert = /* #__PURE__ */ Record_Builder.insert()();\nvar readProp = /* #__PURE__ */ Foreign_Index.readProp(Data_Identity.monadIdentity);\nvar alt = /* #__PURE__ */ Control_Alt.alt(/* #__PURE__ */ Control_Monad_Except_Trans.altExceptT(Data_List_Types.semigroupNonEmptyList)(Data_Identity.monadIdentity));\nvar inj = /* #__PURE__ */ Data_Variant.inj();\nvar writeVariantImpl = function (dict) {\n return dict.writeVariantImpl;\n};\nvar writeImplFields = function (dict) {\n return dict.writeImplFields;\n};\nvar writeImpl = function (dict) {\n return dict.writeImpl;\n};\nvar writeJSON = function (dictWriteForeign) {\n var $191 = writeImpl(dictWriteForeign);\n return function ($192) {\n return $foreign[\"_unsafeStringify\"]($191($192));\n };\n};\nvar writeForeignVariant = function () {\n return function (dictWriteForeignVariant) {\n var writeVariantImpl1 = writeVariantImpl(dictWriteForeignVariant);\n return {\n writeImpl: function (variant) {\n return writeVariantImpl1(Type_Proxy[\"Proxy\"].value)(variant);\n }\n };\n };\n};\nvar writeForeignString = {\n writeImpl: Foreign.unsafeToForeign\n};\nvar writeForeignObject = function (dictWriteForeign) {\n return {\n writeImpl: (function () {\n var $193 = Foreign_Object.mapWithKey(Data_Function[\"const\"](writeImpl(dictWriteForeign)));\n return function ($194) {\n return Foreign.unsafeToForeign($193($194));\n };\n })()\n };\n};\nvar writeForeignNumber = {\n writeImpl: Foreign.unsafeToForeign\n};\nvar writeForeignNullable = function (dictWriteForeign) {\n return {\n writeImpl: (function () {\n var $195 = Data_Maybe.maybe(Foreign.unsafeToForeign(Data_Nullable.toNullable(Data_Maybe.Nothing.value)))(writeImpl(dictWriteForeign));\n return function ($196) {\n return $195(Data_Nullable.toMaybe($196));\n };\n })()\n };\n};\nvar writeForeignInt = {\n writeImpl: Foreign.unsafeToForeign\n};\nvar writeForeignForeign = {\n writeImpl: /* #__PURE__ */ Control_Category.identity(Control_Category.categoryFn)\n};\nvar writeForeignChar = {\n writeImpl: Foreign.unsafeToForeign\n};\nvar writeForeignBoolean = {\n writeImpl: Foreign.unsafeToForeign\n};\nvar writeForeignArray = function (dictWriteForeign) {\n var writeImpl1 = writeImpl(dictWriteForeign);\n return {\n writeImpl: function (xs) {\n return Foreign.unsafeToForeign(map(writeImpl1)(xs));\n }\n };\n};\nvar writeForeignNEArray = function (dictWriteForeign) {\n var writeImpl1 = writeImpl(writeForeignArray(dictWriteForeign));\n return {\n writeImpl: function (a) {\n return writeImpl1(Data_Array_NonEmpty.toArray(a));\n }\n };\n};\nvar write = function (dictWriteForeign) {\n return writeImpl(dictWriteForeign);\n};\nvar unsafeStringify = $foreign[\"_unsafeStringify\"];\nvar $$undefined = $foreign[\"_undefined\"];\nvar writeForeignMaybe = function (dictWriteForeign) {\n return {\n writeImpl: Data_Maybe.maybe($$undefined)(writeImpl(dictWriteForeign))\n };\n};\nvar recordWriteForeign = function () {\n return function (dictWriteForeignFields) {\n var writeImplFields1 = writeImplFields(dictWriteForeignFields);\n return {\n writeImpl: function (rec) {\n var steps = writeImplFields1(Type_Proxy[\"Proxy\"].value)(rec);\n return Foreign.unsafeToForeign(Record_Builder.build(steps)({}));\n }\n };\n };\n};\nvar readVariantNil = {\n readVariantImpl: function (v) {\n return function (v1) {\n return fail(new Foreign.ForeignError(\"Unable to match any variant member.\"));\n };\n }\n};\nvar readVariantImpl = function (dict) {\n return dict.readVariantImpl;\n};\nvar readString = {\n readImpl: /* #__PURE__ */ Foreign.readString(Data_Identity.monadIdentity)\n};\nvar readNumber = {\n readImpl: /* #__PURE__ */ Foreign.readNumber(Data_Identity.monadIdentity)\n};\nvar readInt = {\n readImpl: /* #__PURE__ */ Foreign.readInt(Data_Identity.monadIdentity)\n};\nvar readImpl = function (dict) {\n return dict.readImpl;\n};\nvar readMaybe = function (dictReadForeign) {\n return {\n readImpl: (function () {\n var readNullOrUndefined = function (v) {\n return function (v1) {\n if (Foreign.isNull(v1) || Foreign.isUndefined(v1)) {\n return pure(Data_Maybe.Nothing.value);\n };\n return map1(Data_Maybe.Just.create)(v(v1));\n };\n };\n return readNullOrUndefined(readImpl(dictReadForeign));\n })()\n };\n};\nvar readNullable = function (dictReadForeign) {\n var readImpl2 = readImpl(dictReadForeign);\n return {\n readImpl: function (o) {\n var reformat = function (error) {\n if (error instanceof Foreign.TypeMismatch) {\n return new Foreign.TypeMismatch(\"Nullable \" + error.value0, error.value1);\n };\n return error;\n };\n return Control_Monad_Except.withExcept(map2(reformat))(bindFlipped(map3(map1(Data_Nullable.toNullable))(traverse(readImpl2)))(readNull(o)));\n }\n };\n};\nvar readObject = function (dictReadForeign) {\n return {\n readImpl: (function () {\n var readObject$prime = function (value) {\n if (Foreign.tagOf(value) === \"Object\") {\n return pure(Foreign.unsafeFromForeign(value));\n };\n if (Data_Boolean.otherwise) {\n return fail(new Foreign.TypeMismatch(\"Object\", Foreign.tagOf(value)));\n };\n throw new Error(\"Failed pattern match at SimpleJSON (line 204, column 5 - line 204, column 49): \" + [ value.constructor.name ]);\n };\n return composeKleisliFlipped((function () {\n var $197 = Foreign_Object.mapWithKey(Data_Function[\"const\"](readImpl(dictReadForeign)));\n return function ($198) {\n return sequence($197($198));\n };\n })())(readObject$prime);\n })()\n };\n};\nvar readForeignVariant = function () {\n return function (dictReadForeignVariant) {\n var readVariantImpl1 = readVariantImpl(dictReadForeignVariant);\n return {\n readImpl: function (o) {\n return readVariantImpl1(Type_Proxy[\"Proxy\"].value)(o);\n }\n };\n };\n};\nvar readForeign = {\n readImpl: pure\n};\nvar readFieldsNil = {\n getFields: function (v) {\n return function (v1) {\n return pure(identity);\n };\n }\n};\nvar readChar = {\n readImpl: /* #__PURE__ */ Foreign.readChar(Data_Identity.monadIdentity)\n};\nvar readBoolean = {\n readImpl: /* #__PURE__ */ Foreign.readBoolean(Data_Identity.monadIdentity)\n};\nvar readArray = function (dictReadForeign) {\n var readImpl2 = readImpl(dictReadForeign);\n return {\n readImpl: (function () {\n var readAtIdx = function (i) {\n return function (f) {\n return Control_Monad_Except.withExcept(map2(Foreign.ErrorAtIndex.create(i)))(readImpl2(f));\n };\n };\n return composeKleisliFlipped(traverseWithIndex(readAtIdx))(readArray1);\n })()\n };\n};\nvar readForeignNEArray = function (dictReadForeign) {\n var readImpl2 = readImpl(readArray(dictReadForeign));\n return {\n readImpl: function (f) {\n return bind(readImpl2(f))(function (v) {\n return except(Data_Either.note(Data_List_NonEmpty.singleton(new Foreign.ForeignError(\"Nonempty array expected, got empty array\")))(Data_Array_NonEmpty.fromArray(v)));\n });\n }\n };\n};\nvar read$prime = function (dictReadForeign) {\n return readImpl(dictReadForeign);\n};\nvar read = function (dictReadForeign) {\n var $199 = readImpl(dictReadForeign);\n return function ($200) {\n return Control_Monad_Except.runExcept($199($200));\n };\n};\nvar readAsForeign = function (dictReadForeign) {\n var $201 = read(dictReadForeign);\n return function ($202) {\n return $201(Foreign.unsafeToForeign($202));\n };\n};\nvar read_ = function (dictReadForeign) {\n var $203 = read(dictReadForeign);\n return function ($204) {\n return Data_Either.hush($203($204));\n };\n};\nvar parseJSON = /* #__PURE__ */ (function () {\n var $205 = Data_Bifunctor.lmap(Data_Bifunctor.bifunctorEither)((function () {\n var $208 = Control_Applicative.pure(Data_List_Types.applicativeNonEmptyList);\n return function ($209) {\n return $208(Foreign.ForeignError.create(Effect_Exception.message($209)));\n };\n })());\n var $206 = Effect_Uncurried.runEffectFn1($foreign[\"_parseJSON\"]);\n return function ($207) {\n return Control_Monad_Except_Trans.ExceptT(Data_Identity.Identity($205(Effect_Unsafe.unsafePerformEffect(Effect_Exception[\"try\"]($206($207))))));\n };\n})();\nvar readJSON = function (dictReadForeign) {\n var $210 = composeKleisliFlipped(readImpl(dictReadForeign))(parseJSON);\n return function ($211) {\n return Control_Monad_Except.runExcept($210($211));\n };\n};\nvar readJSON_ = function (dictReadForeign) {\n var $212 = readJSON(dictReadForeign);\n return function ($213) {\n return Data_Either.hush($212($213));\n };\n};\nvar readJSON$prime = function (dictReadForeign) {\n return composeKleisliFlipped(readImpl(dictReadForeign))(parseJSON);\n};\nvar nilWriteForeignVariant = {\n writeVariantImpl: function (v) {\n return function (v1) {\n return Partial_Unsafe.unsafeCrashWith(\"Variant was not able to be writen row WriteForeign.\");\n };\n }\n};\nvar nilWriteForeignFields = {\n writeImplFields: function (v) {\n return function (v1) {\n return identity;\n };\n }\n};\nvar getFields = function (dict) {\n return dict.getFields;\n};\nvar readRecord = function () {\n return function (dictReadForeignFields) {\n var getFields1 = getFields(dictReadForeignFields);\n return {\n readImpl: function (o) {\n return map1(Data_Function.flip(Record_Builder.build)({}))(getFields1(Type_Proxy[\"Proxy\"].value)(o));\n }\n };\n };\n};\nvar consWriteForeignVariant = function (dictIsSymbol) {\n var reflectSymbol = Data_Symbol.reflectSymbol(dictIsSymbol);\n var on1 = on(dictIsSymbol);\n return function (dictWriteForeign) {\n var writeImpl1 = writeImpl(dictWriteForeign);\n return function () {\n return function (dictWriteForeignVariant) {\n var writeVariantImpl1 = writeVariantImpl(dictWriteForeignVariant);\n return {\n writeVariantImpl: function (v) {\n return function (variant) {\n var writeVariant = function (value) {\n return Foreign.unsafeToForeign({\n type: reflectSymbol(Type_Proxy[\"Proxy\"].value),\n value: writeImpl1(value)\n });\n };\n return on1(Type_Proxy[\"Proxy\"].value)(writeVariant)(writeVariantImpl1(Type_Proxy[\"Proxy\"].value))(variant);\n };\n }\n };\n };\n };\n };\n};\nvar consWriteForeignFields = function (dictIsSymbol) {\n var get = Record.get(dictIsSymbol)();\n var insert1 = insert(dictIsSymbol);\n return function (dictWriteForeign) {\n var writeImpl1 = writeImpl(dictWriteForeign);\n return function (dictWriteForeignFields) {\n var writeImplFields1 = writeImplFields(dictWriteForeignFields);\n return function () {\n return function () {\n return function () {\n return {\n writeImplFields: function (v) {\n return function (rec) {\n var rest = writeImplFields1(Type_Proxy[\"Proxy\"].value)(rec);\n var value = writeImpl1(get(Type_Proxy[\"Proxy\"].value)(rec));\n var result = compose1(insert1(Type_Proxy[\"Proxy\"].value)(value))(rest);\n return result;\n };\n }\n };\n };\n };\n };\n };\n };\n};\nvar applyEither = function (dictSemigroup) {\n var append1 = Data_Semigroup.append(dictSemigroup);\n return function (v) {\n return function (v1) {\n if (v instanceof Data_Either.Left && v1 instanceof Data_Either.Right) {\n return new Data_Either.Left(v.value0);\n };\n if (v instanceof Data_Either.Left && v1 instanceof Data_Either.Left) {\n return new Data_Either.Left(append1(v.value0)(v1.value0));\n };\n if (v instanceof Data_Either.Right && v1 instanceof Data_Either.Left) {\n return new Data_Either.Left(v1.value0);\n };\n if (v instanceof Data_Either.Right && v1 instanceof Data_Either.Right) {\n return new Data_Either.Right(v.value0(v1.value0));\n };\n throw new Error(\"Failed pattern match at SimpleJSON (line 251, column 1 - line 251, column 90): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n };\n};\nvar exceptTApply = function (dictSemigroup) {\n var applyEither1 = applyEither(dictSemigroup);\n return function (dictApplicative) {\n var Apply0 = dictApplicative.Apply0();\n var apply = Control_Apply.apply(Apply0);\n var map4 = Data_Functor.map(Apply0.Functor0());\n return function (fun) {\n return function (a) {\n return apply(map4(applyEither1)(Control_Monad_Except_Trans.runExceptT(fun)))(Control_Monad_Except_Trans.runExceptT(a));\n };\n };\n };\n};\nvar exceptTApply1 = /* #__PURE__ */ exceptTApply(Data_List_Types.semigroupNonEmptyList)(Data_Identity.applicativeIdentity);\nvar readFieldsCons = function (dictIsSymbol) {\n var reflectSymbol = Data_Symbol.reflectSymbol(dictIsSymbol);\n var insert1 = insert(dictIsSymbol);\n return function (dictReadForeign) {\n var readImpl2 = readImpl(dictReadForeign);\n return function (dictReadForeignFields) {\n var getFields1 = getFields(dictReadForeignFields);\n return function () {\n return function () {\n return {\n getFields: function (v) {\n return function (obj) {\n var rest = getFields1(Type_Proxy[\"Proxy\"].value)(obj);\n var name = reflectSymbol(Type_Proxy[\"Proxy\"].value);\n var withExcept$prime = Control_Monad_Except.withExcept(map2(Foreign.ErrorAtProperty.create(name)));\n var first = bind(withExcept$prime(bindFlipped(readImpl2)(readProp(name)(obj))))(function (value) {\n return pure(insert1(Type_Proxy[\"Proxy\"].value)(value));\n });\n return exceptTApply1(map1(compose1)(first))(rest);\n };\n }\n };\n };\n };\n };\n };\n};\nvar readImpl1 = /* #__PURE__ */ readImpl(/* #__PURE__ */ readRecord()(/* #__PURE__ */ readFieldsCons({\n reflectSymbol: function () {\n return \"type\";\n }\n})(readString)(/* #__PURE__ */ readFieldsCons({\n reflectSymbol: function () {\n return \"value\";\n }\n})(readForeign)(readFieldsNil)()())()()));\nvar readVariantCons = function (dictIsSymbol) {\n var reflectSymbol = Data_Symbol.reflectSymbol(dictIsSymbol);\n var inj1 = inj(dictIsSymbol);\n return function (dictReadForeign) {\n var readImpl2 = readImpl(dictReadForeign);\n return function () {\n return function (dictReadForeignVariant) {\n var readVariantImpl1 = readVariantImpl(dictReadForeignVariant);\n return {\n readVariantImpl: function (v) {\n return function (o) {\n var name = reflectSymbol(Type_Proxy[\"Proxy\"].value);\n return alt(bind(readImpl1(o))(function (v1) {\n var $189 = v1.type === name;\n if ($189) {\n return bind(readImpl2(v1.value))(function (v2) {\n return pure(inj1(Type_Proxy[\"Proxy\"].value)(v2));\n });\n };\n return fail(Foreign.ForeignError.create(\"Did not match variant tag \" + name));\n }))(readVariantImpl1(Type_Proxy[\"Proxy\"].value)(o));\n };\n }\n };\n };\n };\n };\n};\nexport {\n readJSON,\n readJSON$prime,\n readJSON_,\n writeJSON,\n write,\n read,\n read$prime,\n read_,\n readAsForeign,\n parseJSON,\n $$undefined as undefined,\n unsafeStringify,\n readImpl,\n getFields,\n readVariantImpl,\n writeImpl,\n writeImplFields,\n writeVariantImpl,\n readForeign,\n readChar,\n readNumber,\n readInt,\n readString,\n readBoolean,\n readArray,\n readMaybe,\n readNullable,\n readObject,\n readRecord,\n readFieldsCons,\n readFieldsNil,\n readForeignVariant,\n readVariantNil,\n readVariantCons,\n writeForeignForeign,\n writeForeignString,\n writeForeignInt,\n writeForeignChar,\n writeForeignNumber,\n writeForeignBoolean,\n writeForeignArray,\n writeForeignMaybe,\n writeForeignNullable,\n writeForeignObject,\n recordWriteForeign,\n consWriteForeignFields,\n nilWriteForeignFields,\n writeForeignVariant,\n nilWriteForeignVariant,\n consWriteForeignVariant,\n readForeignNEArray,\n writeForeignNEArray\n};\n","// Generated by purs version 0.15.7\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Apply from \"../Control.Apply/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Control_Monad_Maybe_Trans from \"../Control.Monad.Maybe.Trans/index.js\";\nimport * as CorsProxy from \"../CorsProxy/index.js\";\nimport * as Data_Either from \"../Data.Either/index.js\";\nimport * as Data_List_Types from \"../Data.List.Types/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Show from \"../Data.Show/index.js\";\nimport * as Effect_Class from \"../Effect.Class/index.js\";\nimport * as Effect_Console from \"../Effect.Console/index.js\";\nimport * as Foreign from \"../Foreign/index.js\";\nimport * as JSURI from \"../JSURI/index.js\";\nimport * as LZString from \"../LZString/index.js\";\nimport * as LocationString from \"../LocationString/index.js\";\nimport * as SimpleJSON from \"../SimpleJSON/index.js\";\nvar readRecord = /* #__PURE__ */ SimpleJSON.readRecord();\nvar readFieldsCons = /* #__PURE__ */ SimpleJSON.readFieldsCons({\n reflectSymbol: function () {\n return \"url\";\n }\n});\nvar readJSON = /* #__PURE__ */ SimpleJSON.readJSON(/* #__PURE__ */ readRecord(/* #__PURE__ */ readFieldsCons(/* #__PURE__ */ readRecord(/* #__PURE__ */ SimpleJSON.readFieldsCons({\n reflectSymbol: function () {\n return \"shortLink\";\n }\n})(SimpleJSON.readString)(SimpleJSON.readFieldsNil)()()))(SimpleJSON.readFieldsNil)()()));\nvar readJSON1 = /* #__PURE__ */ SimpleJSON.readJSON(/* #__PURE__ */ readRecord(/* #__PURE__ */ readFieldsCons(/* #__PURE__ */ readRecord(/* #__PURE__ */ SimpleJSON.readFieldsCons({\n reflectSymbol: function () {\n return \"status\";\n }\n})(SimpleJSON.readInt)(SimpleJSON.readFieldsNil)()()))(SimpleJSON.readFieldsNil)()()));\nvar discard = /* #__PURE__ */ Control_Bind.discard(Control_Bind.discardUnit);\nvar show = /* #__PURE__ */ Data_Show.show(Data_Show.showInt);\nvar show1 = /* #__PURE__ */ Data_Show.show(/* #__PURE__ */ Data_List_Types.showNonEmptyList(Foreign.showForeignError));\nvar createCustomShortUrl = function (dictMonadAff) {\n var MonadEffect0 = dictMonadAff.MonadEffect0();\n var Monad0 = MonadEffect0.Monad0();\n var bind = Control_Bind.bind(Control_Monad_Maybe_Trans.bindMaybeT(Monad0));\n var liftEffect = Effect_Class.liftEffect(Control_Monad_Maybe_Trans.monadEffectMaybe(MonadEffect0));\n var pure = Control_Applicative.pure(Control_Monad_Maybe_Trans.applicativeMaybeT(Monad0));\n var applySecond = Control_Apply.applySecond(Control_Monad_Maybe_Trans.applyMaybeT(Monad0));\n var pure1 = Control_Applicative.pure(Monad0.Applicative0());\n return function (shortUrl) {\n return bind(liftEffect(LocationString.getLocationBaseString))(function (base) {\n var v = LZString.compressToEncodedURIComponent(shortUrl);\n if (v instanceof Data_Maybe.Just) {\n return pure(base + (\"?u#\" + v.value0));\n };\n return applySecond(liftEffect(Effect_Console.error(\"Could not compress shortlink URI\")))(pure1(Data_Maybe.Nothing.value));\n });\n };\n};\nvar createShortUrl = function (dictMonadAff) {\n var MonadEffect0 = dictMonadAff.MonadEffect0();\n var Monad0 = MonadEffect0.Monad0();\n var bindMaybeT = Control_Monad_Maybe_Trans.bindMaybeT(Monad0);\n var bind = Control_Bind.bind(bindMaybeT);\n var pure = Control_Applicative.pure(Monad0.Applicative0());\n var fetchThroughProxy = CorsProxy.fetchThroughProxy(dictMonadAff);\n var createCustomShortUrl1 = createCustomShortUrl(dictMonadAff);\n var discard1 = discard(bindMaybeT);\n var liftEffect = Effect_Class.liftEffect(Control_Monad_Maybe_Trans.monadEffectMaybe(MonadEffect0));\n return function (url) {\n return bind(pure(JSURI[\"encodeURIComponent\"](url)))(function (encodedUrl) {\n return bind(fetchThroughProxy(\"https://cutt.ly/api/api.php?key=d27fec420c4daade4093757967023d6b70bc7&short=\" + encodedUrl))(function (result) {\n var v = readJSON(result);\n if (v instanceof Data_Either.Right) {\n return createCustomShortUrl1(v.value0.url.shortLink);\n };\n if (v instanceof Data_Either.Left) {\n var v1 = readJSON1(result);\n if (v1 instanceof Data_Either.Right) {\n return discard1(liftEffect(Effect_Console.error(\"Received error status from cuttly API: \" + show(v1.value0.url.status))))(function () {\n return pure(Data_Maybe.Nothing.value);\n });\n };\n if (v1 instanceof Data_Either.Left) {\n return discard1(liftEffect(Effect_Console.error(\"Can't parse response JSON: \" + (show1(v1.value0) + (\". Response: \" + result)))))(function () {\n return pure(Data_Maybe.Nothing.value);\n });\n };\n throw new Error(\"Failed pattern match at CuttlyUrlShortener (line 29, column 7 - line 35, column 32): \" + [ v1.constructor.name ]);\n };\n throw new Error(\"Failed pattern match at CuttlyUrlShortener (line 26, column 3 - line 35, column 32): \" + [ v.constructor.name ]);\n });\n });\n };\n};\nexport {\n createShortUrl,\n createCustomShortUrl\n};\n","// Generated by purs version 0.15.7\nimport * as Data_Argonaut_Core from \"../Data.Argonaut.Core/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Foreign_Object from \"../Foreign.Object/index.js\";\nvar string = function (json) {\n return Data_Argonaut_Core.caseJsonString(Data_Maybe.Nothing.value)(Data_Maybe.Just.create)(json);\n};\nvar number = function (json) {\n return Data_Argonaut_Core.caseJsonNumber(Data_Maybe.Nothing.value)(Data_Maybe.Just.create)(json);\n};\nvar child = function (name) {\n return function (json) {\n return Data_Argonaut_Core.caseJsonObject(Data_Maybe.Nothing.value)(Foreign_Object.lookup(name))(json);\n };\n};\nvar array = function (json) {\n return Data_Argonaut_Core.caseJsonArray(Data_Maybe.Nothing.value)(Data_Maybe.Just.create)(json);\n};\nexport {\n child,\n array,\n string,\n number\n};\n","/* Web.DOM.DOMParser */\nexport function makeDOMParser() {\n return new DOMParser();\n}\n\nexport function parseFromString(documentType) {\n return function (sourceString) {\n return function (domParser) {\n return function () { // Effect thunk\n return domParser.parseFromString(sourceString, documentType);\n };\n };\n };\n}\n","var getEffProp = function (name) {\n return function (doc) {\n return function () {\n return doc[name];\n };\n };\n};\n\nexport const url = getEffProp(\"URL\");\nexport const documentURI = getEffProp(\"documentURI\");\nexport const origin = getEffProp(\"origin\");\nexport const compatMode = getEffProp(\"compatMode\");\nexport const characterSet = getEffProp(\"characterSet\");\nexport const contentType = getEffProp(\"contentType\");\nexport function _doctype(doc) {\n return doc[\"doctype\"];\n}\nexport const _documentElement = getEffProp(\"documentElement\");\n\nexport function getElementsByTagName(localName) {\n return function (doc) {\n return function () {\n return doc.getElementsByTagName(localName);\n };\n };\n}\n\nexport function _getElementsByTagNameNS(ns) {\n return function (localName) {\n return function (doc) {\n return function () {\n return doc.getElementsByTagNameNS(ns, localName);\n };\n };\n };\n}\n\nexport function getElementsByClassName(classNames) {\n return function (doc) {\n return function () {\n return doc.getElementsByClassName(classNames);\n };\n };\n}\n\nexport function createElement(localName) {\n return function (doc) {\n return function () {\n return doc.createElement(localName);\n };\n };\n}\n\nexport function _createElementNS(ns) {\n return function (qualifiedName) {\n return function (doc) {\n return function () {\n return doc.createElementNS(ns, qualifiedName);\n };\n };\n };\n}\n\nexport function createDocumentFragment(doc) {\n return function () {\n return doc.createDocumentFragment();\n };\n}\n\nexport function createTextNode(data) {\n return function (doc) {\n return function () {\n return doc.createTextNode(data);\n };\n };\n}\n\nexport function createComment(data) {\n return function (doc) {\n return function () {\n return doc.createComment(data);\n };\n };\n}\n\nexport function createProcessingInstruction(target) {\n return function (data) {\n return function (doc) {\n return function () {\n return doc.createProcessingInstruction(target, data);\n };\n };\n };\n}\n\nexport function importNode(node) {\n return function (deep) {\n return function (doc) {\n return function () {\n return doc.importNode(node, deep);\n };\n };\n };\n}\n\nexport function adoptNode(node) {\n return function (doc) {\n return function () {\n return doc.adoptNode(node);\n };\n };\n}\n","// Generated by purs version 0.15.7\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nvar unsafeReadProtoTagged = function (name) {\n return function (value) {\n return $foreign[\"_unsafeReadProtoTagged\"](Data_Maybe.Nothing.value, Data_Maybe.Just.create, name, value);\n };\n};\nexport {\n unsafeReadProtoTagged\n};\n","export function _unsafeReadProtoTagged(nothing, just, name, value) {\n if (typeof window !== \"undefined\") {\n var ty = window[name];\n if (ty != null && value instanceof ty) {\n return just(value);\n }\n }\n var obj = value;\n while (obj != null) {\n var proto = Object.getPrototypeOf(obj);\n var constructorName = proto.constructor.name;\n if (constructorName === name) {\n return just(value);\n } else if (constructorName === \"Object\") {\n return nothing;\n }\n obj = proto;\n }\n return nothing;\n}\n","// Generated by purs version 0.15.7\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Nullable from \"../Data.Nullable/index.js\";\nimport * as Effect from \"../Effect/index.js\";\nimport * as Unsafe_Coerce from \"../Unsafe.Coerce/index.js\";\nimport * as Web_Internal_FFI from \"../Web.Internal.FFI/index.js\";\nvar toParentNode = Unsafe_Coerce.unsafeCoerce;\nvar toNonElementParentNode = Unsafe_Coerce.unsafeCoerce;\nvar toNode = Unsafe_Coerce.unsafeCoerce;\nvar toEventTarget = Unsafe_Coerce.unsafeCoerce;\nvar getElementsByTagNameNS = function ($2) {\n return $foreign[\"_getElementsByTagNameNS\"](Data_Nullable.toNullable($2));\n};\nvar fromParentNode = /* #__PURE__ */ Web_Internal_FFI.unsafeReadProtoTagged(\"Document\");\nvar fromNonElementParentNode = /* #__PURE__ */ Web_Internal_FFI.unsafeReadProtoTagged(\"Document\");\nvar fromNode = /* #__PURE__ */ Web_Internal_FFI.unsafeReadProtoTagged(\"Document\");\nvar fromEventTarget = /* #__PURE__ */ Web_Internal_FFI.unsafeReadProtoTagged(\"Document\");\nvar documentElement = /* #__PURE__ */ (function () {\n var $3 = Data_Functor.map(Effect.functorEffect)(Data_Nullable.toMaybe);\n return function ($4) {\n return $3($foreign[\"_documentElement\"]($4));\n };\n})();\nvar doctype = function ($5) {\n return Data_Nullable.toMaybe($foreign[\"_doctype\"]($5));\n};\nvar createElementNS = function ($6) {\n return $foreign[\"_createElementNS\"](Data_Nullable.toNullable($6));\n};\nexport {\n url,\n documentURI,\n origin,\n compatMode,\n characterSet,\n contentType,\n getElementsByTagName,\n getElementsByClassName,\n createElement,\n createDocumentFragment,\n createTextNode,\n createComment,\n createProcessingInstruction,\n importNode,\n adoptNode\n} from \"./foreign.js\";\nexport {\n fromNode,\n fromParentNode,\n fromNonElementParentNode,\n fromEventTarget,\n toNode,\n toParentNode,\n toNonElementParentNode,\n toEventTarget,\n doctype,\n documentElement,\n getElementsByTagNameNS,\n createElementNS\n};\n","var getProp = function (name) {\n return function (doctype) {\n return doctype[name];\n };\n};\n\nexport const _namespaceURI = getProp(\"namespaceURI\");\nexport const _prefix = getProp(\"prefix\");\nexport const localName = getProp(\"localName\");\nexport const tagName = getProp(\"tagName\");\n\nexport function id(node) {\n return function () {\n return node.id;\n };\n}\n\nexport function setId(id) {\n return function (node) {\n return function () {\n node.id = id;\n };\n };\n}\n\nexport function className(node) {\n return function () {\n return node.className;\n };\n}\n\nexport function classList(element) {\n return function () {\n return element.classList;\n };\n}\n\nexport function setClassName(className) {\n return function (node) {\n return function () {\n node.className = className;\n };\n };\n}\n\nexport function getElementsByTagName(localName) {\n return function (doc) {\n return function () {\n return doc.getElementsByTagName(localName);\n };\n };\n}\n\nexport function _getElementsByTagNameNS(ns) {\n return function (localName) {\n return function (doc) {\n return function () {\n return doc.getElementsByTagNameNS(ns, localName);\n };\n };\n };\n}\n\nexport function getElementsByClassName(classNames) {\n return function (doc) {\n return function () {\n return doc.getElementsByClassName(classNames);\n };\n };\n}\n\nexport function setAttribute(name) {\n return function (value) {\n return function (element) {\n return function () {\n element.setAttribute(name, value);\n };\n };\n };\n}\n\nexport function _getAttribute(name) {\n return function (element) {\n return function () {\n return element.getAttribute(name);\n };\n };\n}\n\nexport function hasAttribute(name) {\n return function (element) {\n return function () {\n return element.hasAttribute(name);\n };\n };\n}\n\nexport function removeAttribute(name) {\n return function (element) {\n return function () {\n element.removeAttribute(name);\n };\n };\n}\n\nexport function matches(selector) {\n return function(element) {\n return function () {\n return element.matches(selector);\n };\n };\n}\n\nexport function _closest(selector) {\n return function(element) {\n return function () {\n return element.closest(selector);\n };\n };\n}\n\n// - CSSOM ---------------------------------------------------------------------\n\nexport function scrollTop(node) {\n return function () {\n return node.scrollTop;\n };\n}\n\nexport function setScrollTop(scrollTop) {\n return function (node) {\n return function () {\n node.scrollTop = scrollTop;\n };\n };\n}\n\nexport function scrollLeft(node) {\n return function () {\n return node.scrollLeft;\n };\n}\n\nexport function setScrollLeft(scrollLeft) {\n return function (node) {\n return function () {\n node.scrollLeft = scrollLeft;\n };\n };\n}\n\nexport function scrollWidth(el) {\n return function () {\n return el.scrollWidth;\n };\n}\n\nexport function scrollHeight(el) {\n return function () {\n return el.scrollHeight;\n };\n}\n\nexport function clientTop(el) {\n return function () {\n return el.clientTop;\n };\n}\n\nexport function clientLeft(el) {\n return function () {\n return el.clientLeft;\n };\n}\n\nexport function clientWidth(el) {\n return function () {\n return el.clientWidth;\n };\n}\n\nexport function clientHeight(el) {\n return function () {\n return el.clientHeight;\n };\n}\n\nexport function getBoundingClientRect(el) {\n return function () {\n var rect = el.getBoundingClientRect();\n return {\n top: rect.top,\n right: rect.right,\n bottom: rect.bottom,\n left: rect.left,\n width: rect.width,\n height: rect.height,\n x: rect.x,\n y: rect.y\n };\n };\n}\n\nexport function _attachShadow(props) {\n return function (el) {\n return function() {\n return el.attachShadow(props);\n };\n };\n}\n","var getEffProp = function (name) {\n return function (node) {\n return function () {\n return node[name];\n };\n };\n};\n\nexport const children = getEffProp(\"children\");\nexport const _firstElementChild = getEffProp(\"firstElementChild\");\nexport const _lastElementChild = getEffProp(\"lastElementChild\");\nexport const childElementCount = getEffProp(\"childElementCount\");\n\nexport function _querySelector(selector) {\n return function (node) {\n return function () {\n return node.querySelector(selector);\n };\n };\n}\n\nexport function querySelectorAll(selector) {\n return function (node) {\n return function () {\n return node.querySelectorAll(selector);\n };\n };\n}\n","// Generated by purs version 0.15.7\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Nullable from \"../Data.Nullable/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Effect from \"../Effect/index.js\";\nvar map = /* #__PURE__ */ Data_Functor.map(Effect.functorEffect);\nvar QuerySelector = function (x) {\n return x;\n};\nvar querySelector = function (qs) {\n var $2 = map(Data_Nullable.toMaybe);\n var $3 = $foreign[\"_querySelector\"](qs);\n return function ($4) {\n return $2($3($4));\n };\n};\nvar ordQuerySelector = Data_Ord.ordString;\nvar newtypeQuerySelector = {\n Coercible0: function () {\n return undefined;\n }\n};\nvar lastElementChild = /* #__PURE__ */ (function () {\n var $5 = map(Data_Nullable.toMaybe);\n return function ($6) {\n return $5($foreign[\"_lastElementChild\"]($6));\n };\n})();\nvar firstElementChild = /* #__PURE__ */ (function () {\n var $7 = map(Data_Nullable.toMaybe);\n return function ($8) {\n return $7($foreign[\"_firstElementChild\"]($8));\n };\n})();\nvar eqQuerySelector = Data_Eq.eqString;\nexport {\n children,\n childElementCount,\n querySelectorAll\n} from \"./foreign.js\";\nexport {\n firstElementChild,\n lastElementChild,\n QuerySelector,\n querySelector,\n eqQuerySelector,\n ordQuerySelector,\n newtypeQuerySelector\n};\n","// Generated by purs version 0.15.7\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Unsafe_Coerce from \"../Unsafe.Coerce/index.js\";\nvar Open = /* #__PURE__ */ (function () {\n function Open() {\n\n };\n Open.value = new Open();\n return Open;\n})();\nvar Closed = /* #__PURE__ */ (function () {\n function Closed() {\n\n };\n Closed.value = new Closed();\n return Closed;\n})();\nvar toNode = Unsafe_Coerce.unsafeCoerce;\nvar showShadowRootMode = {\n show: function (v) {\n if (v instanceof Open) {\n return \"open\";\n };\n if (v instanceof Closed) {\n return \"closed\";\n };\n throw new Error(\"Failed pattern match at Web.DOM.ShadowRoot (line 22, column 1 - line 24, column 25): \" + [ v.constructor.name ]);\n }\n};\nvar mode = /* #__PURE__ */ (function () {\n var modeFromString = function (v) {\n if (v === \"open\") {\n return new Data_Maybe.Just(Open.value);\n };\n if (v === \"closed\") {\n return new Data_Maybe.Just(Closed.value);\n };\n return Data_Maybe.Nothing.value;\n };\n return function ($5) {\n return modeFromString($foreign[\"_mode\"]($5));\n };\n})();\nexport {\n host\n} from \"./foreign.js\";\nexport {\n Open,\n Closed,\n toNode,\n mode,\n showShadowRootMode\n};\n","// Generated by purs version 0.15.7\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Nullable from \"../Data.Nullable/index.js\";\nimport * as Data_Show from \"../Data.Show/index.js\";\nimport * as Effect from \"../Effect/index.js\";\nimport * as Unsafe_Coerce from \"../Unsafe.Coerce/index.js\";\nimport * as Web_DOM_Internal_Types from \"../Web.DOM.Internal.Types/index.js\";\nimport * as Web_DOM_ParentNode from \"../Web.DOM.ParentNode/index.js\";\nimport * as Web_DOM_ShadowRoot from \"../Web.DOM.ShadowRoot/index.js\";\nimport * as Web_Internal_FFI from \"../Web.Internal.FFI/index.js\";\nvar show = /* #__PURE__ */ Data_Show.show(Web_DOM_ShadowRoot.showShadowRootMode);\nvar map = /* #__PURE__ */ Data_Functor.map(Effect.functorEffect);\nvar toParentNode = Unsafe_Coerce.unsafeCoerce;\nvar toNonDocumentTypeChildNode = Unsafe_Coerce.unsafeCoerce;\nvar toNode = Unsafe_Coerce.unsafeCoerce;\nvar toEventTarget = Unsafe_Coerce.unsafeCoerce;\nvar toChildNode = Unsafe_Coerce.unsafeCoerce;\nvar prefix = function ($3) {\n return Data_Nullable.toMaybe($foreign[\"_prefix\"]($3));\n};\nvar namespaceURI = function ($4) {\n return Data_Nullable.toMaybe($foreign[\"_namespaceURI\"]($4));\n};\nvar initToProps = function (init) {\n return {\n mode: show(init.mode),\n delegatesFocus: init.delegatesFocus\n };\n};\nvar getElementsByTagNameNS = function ($5) {\n return $foreign[\"_getElementsByTagNameNS\"](Data_Nullable.toNullable($5));\n};\nvar getAttribute = function (attr) {\n var $6 = map(Data_Nullable.toMaybe);\n var $7 = $foreign[\"_getAttribute\"](attr);\n return function ($8) {\n return $6($7($8));\n };\n};\nvar fromParentNode = /* #__PURE__ */ Web_Internal_FFI.unsafeReadProtoTagged(\"Element\");\nvar fromNonDocumentTypeChildNode = /* #__PURE__ */ Web_Internal_FFI.unsafeReadProtoTagged(\"Element\");\nvar fromNode = /* #__PURE__ */ Web_Internal_FFI.unsafeReadProtoTagged(\"Element\");\nvar fromEventTarget = /* #__PURE__ */ Web_Internal_FFI.unsafeReadProtoTagged(\"Element\");\nvar fromChildNode = /* #__PURE__ */ Web_Internal_FFI.unsafeReadProtoTagged(\"Element\");\nvar closest = function (qs) {\n var $9 = map(Data_Nullable.toMaybe);\n var $10 = $foreign[\"_closest\"](qs);\n return function ($11) {\n return $9($10($11));\n };\n};\nvar attachShadow = function ($12) {\n return $foreign[\"_attachShadow\"](initToProps($12));\n};\nexport {\n localName,\n tagName,\n id,\n setId,\n className,\n classList,\n setClassName,\n getElementsByTagName,\n getElementsByClassName,\n setAttribute,\n hasAttribute,\n removeAttribute,\n matches,\n scrollTop,\n setScrollTop,\n scrollLeft,\n setScrollLeft,\n scrollWidth,\n scrollHeight,\n clientTop,\n clientLeft,\n clientWidth,\n clientHeight,\n getBoundingClientRect\n} from \"./foreign.js\";\nexport {\n fromNode,\n fromChildNode,\n fromNonDocumentTypeChildNode,\n fromParentNode,\n fromEventTarget,\n toNode,\n toChildNode,\n toNonDocumentTypeChildNode,\n toParentNode,\n toEventTarget,\n namespaceURI,\n prefix,\n getElementsByTagNameNS,\n getAttribute,\n closest,\n attachShadow\n};\n","export function length(list) {\n return function () {\n return list.length;\n };\n}\n\nexport function toArray(list) {\n return function () {\n return [].slice.call(list);\n };\n}\n\nexport function _item(index) {\n return function (list) {\n return function () {\n return list.item(index);\n };\n };\n}\n\nexport function _namedItem(name) {\n return function (list) {\n return function () {\n return list.namedItem(name);\n };\n };\n}\n","// Generated by purs version 0.15.7\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Nullable from \"../Data.Nullable/index.js\";\nimport * as Effect from \"../Effect/index.js\";\nimport * as Web_DOM_Internal_Types from \"../Web.DOM.Internal.Types/index.js\";\nvar map = /* #__PURE__ */ Data_Functor.map(Effect.functorEffect);\nvar namedItem = function (id) {\n var $2 = map(Data_Nullable.toMaybe);\n var $3 = $foreign[\"_namedItem\"](id);\n return function ($4) {\n return $2($3($4));\n };\n};\nvar item = function (i) {\n var $5 = map(Data_Nullable.toMaybe);\n var $6 = $foreign[\"_item\"](i);\n return function ($7) {\n return $5($6($7));\n };\n};\nexport {\n length,\n toArray\n} from \"./foreign.js\";\nexport {\n item,\n namedItem\n};\n","var getEffProp = function (name) {\n return function (node) {\n return function () {\n return node[name];\n };\n };\n};\n\nexport function nodeTypeIndex(node) {\n return node.nodeType;\n}\n\nexport function nodeName(node) {\n return node.nodeName;\n}\n\nexport const baseURI = getEffProp(\"baseURI\");\nexport const _ownerDocument = getEffProp(\"ownerDocument\");\nexport const _parentNode = getEffProp(\"parentNode\");\nexport const _parentElement = getEffProp(\"parentElement\");\n\nexport function hasChildNodes(node) {\n return function () {\n return node.hasChildNodes();\n };\n}\n\nexport const childNodes = getEffProp(\"childNodes\");\nexport const _firstChild = getEffProp(\"firstChild\");\nexport const _lastChild = getEffProp(\"lastChild\");\nexport const _previousSibling = getEffProp(\"previousSibling\");\nexport const _nextSibling = getEffProp(\"nextSibling\");\nexport const _nodeValue = getEffProp(\"nodeValue\");\n\nexport function setNodeValue(value) {\n return function (node) {\n return function () {\n node.nodeValue = value;\n };\n };\n}\n\nexport const textContent = getEffProp(\"textContent\");\n\nexport function setTextContent(value) {\n return function (node) {\n return function () {\n node.textContent = value;\n };\n };\n}\n\nexport function normalize(node) {\n return function () {\n node.normalize();\n };\n}\n\nexport function clone(node) {\n return function () {\n return node.cloneNode(false);\n };\n}\n\nexport function deepClone(node) {\n return function () {\n return node.cloneNode(true);\n };\n}\n\nexport function isEqualNode(node1) {\n return function (node2) {\n return function () {\n return node1.isEqualNode(node2);\n };\n };\n}\n\nexport function compareDocumentPositionBits(node1) {\n return function (node2) {\n return function () {\n return node1.compareDocumentPosition(node2);\n };\n };\n}\n\nexport function contains(node1) {\n return function (node2) {\n return function () {\n return node1.contains(node2);\n };\n };\n}\n\nexport function _lookupPrefix(prefix) {\n return function (node) {\n return function () {\n return node.lookupPrefix(prefix);\n };\n };\n}\n\nexport function _lookupNamespaceURI(ns) {\n return function (node) {\n return function () {\n return node.lookupNamespaceURI(ns);\n };\n };\n}\n\nexport function isDefaultNamespace(ns) {\n return function (node) {\n return function () {\n return node.isDefaultNamespace(ns);\n };\n };\n}\n\nexport function insertBefore(node1) {\n return function (node2) {\n return function (parent) {\n return function () {\n parent.insertBefore(node1, node2);\n };\n };\n };\n}\n\nexport function appendChild(node) {\n return function (parent) {\n return function () {\n parent.appendChild(node);\n };\n };\n}\n\nexport function replaceChild(newChild) {\n return function (oldChild) {\n return function (parent) {\n return function () {\n parent.replaceChild(newChild, oldChild);\n };\n };\n };\n}\n\nexport function removeChild(node) {\n return function (parent) {\n return function () {\n parent.removeChild(node);\n };\n };\n}\n","// Generated by purs version 0.15.7\nimport * as Data_Enum from \"../Data.Enum/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nvar compare = /* #__PURE__ */ Data_Ord.compare(Data_Ord.ordInt);\nvar ElementNode = /* #__PURE__ */ (function () {\n function ElementNode() {\n\n };\n ElementNode.value = new ElementNode();\n return ElementNode;\n})();\nvar AttributeNode = /* #__PURE__ */ (function () {\n function AttributeNode() {\n\n };\n AttributeNode.value = new AttributeNode();\n return AttributeNode;\n})();\nvar TextNode = /* #__PURE__ */ (function () {\n function TextNode() {\n\n };\n TextNode.value = new TextNode();\n return TextNode;\n})();\nvar CDATASectionNode = /* #__PURE__ */ (function () {\n function CDATASectionNode() {\n\n };\n CDATASectionNode.value = new CDATASectionNode();\n return CDATASectionNode;\n})();\nvar EntityReferenceNode = /* #__PURE__ */ (function () {\n function EntityReferenceNode() {\n\n };\n EntityReferenceNode.value = new EntityReferenceNode();\n return EntityReferenceNode;\n})();\nvar EntityNode = /* #__PURE__ */ (function () {\n function EntityNode() {\n\n };\n EntityNode.value = new EntityNode();\n return EntityNode;\n})();\nvar ProcessingInstructionNode = /* #__PURE__ */ (function () {\n function ProcessingInstructionNode() {\n\n };\n ProcessingInstructionNode.value = new ProcessingInstructionNode();\n return ProcessingInstructionNode;\n})();\nvar CommentNode = /* #__PURE__ */ (function () {\n function CommentNode() {\n\n };\n CommentNode.value = new CommentNode();\n return CommentNode;\n})();\nvar DocumentNode = /* #__PURE__ */ (function () {\n function DocumentNode() {\n\n };\n DocumentNode.value = new DocumentNode();\n return DocumentNode;\n})();\nvar DocumentTypeNode = /* #__PURE__ */ (function () {\n function DocumentTypeNode() {\n\n };\n DocumentTypeNode.value = new DocumentTypeNode();\n return DocumentTypeNode;\n})();\nvar DocumentFragmentNode = /* #__PURE__ */ (function () {\n function DocumentFragmentNode() {\n\n };\n DocumentFragmentNode.value = new DocumentFragmentNode();\n return DocumentFragmentNode;\n})();\nvar NotationNode = /* #__PURE__ */ (function () {\n function NotationNode() {\n\n };\n NotationNode.value = new NotationNode();\n return NotationNode;\n})();\nvar toEnumNodeType = function (v) {\n if (v === 1) {\n return new Data_Maybe.Just(ElementNode.value);\n };\n if (v === 2) {\n return new Data_Maybe.Just(AttributeNode.value);\n };\n if (v === 3) {\n return new Data_Maybe.Just(TextNode.value);\n };\n if (v === 4) {\n return new Data_Maybe.Just(CDATASectionNode.value);\n };\n if (v === 5) {\n return new Data_Maybe.Just(EntityReferenceNode.value);\n };\n if (v === 6) {\n return new Data_Maybe.Just(EntityNode.value);\n };\n if (v === 7) {\n return new Data_Maybe.Just(ProcessingInstructionNode.value);\n };\n if (v === 8) {\n return new Data_Maybe.Just(CommentNode.value);\n };\n if (v === 9) {\n return new Data_Maybe.Just(DocumentNode.value);\n };\n if (v === 10) {\n return new Data_Maybe.Just(DocumentTypeNode.value);\n };\n if (v === 11) {\n return new Data_Maybe.Just(DocumentFragmentNode.value);\n };\n if (v === 12) {\n return new Data_Maybe.Just(NotationNode.value);\n };\n return Data_Maybe.Nothing.value;\n};\nvar showNodeType = {\n show: function (v) {\n if (v instanceof ElementNode) {\n return \"ElementNode\";\n };\n if (v instanceof AttributeNode) {\n return \"AttributeNode\";\n };\n if (v instanceof TextNode) {\n return \"TextNode\";\n };\n if (v instanceof CDATASectionNode) {\n return \"CDATASectionNode\";\n };\n if (v instanceof EntityReferenceNode) {\n return \"EntityReferenceNode\";\n };\n if (v instanceof EntityNode) {\n return \"EntityNode\";\n };\n if (v instanceof ProcessingInstructionNode) {\n return \"ProcessingInstructionNode\";\n };\n if (v instanceof CommentNode) {\n return \"CommentNode\";\n };\n if (v instanceof DocumentNode) {\n return \"DocumentNode\";\n };\n if (v instanceof DocumentTypeNode) {\n return \"DocumentTypeNode\";\n };\n if (v instanceof DocumentFragmentNode) {\n return \"DocumentFragmentNode\";\n };\n if (v instanceof NotationNode) {\n return \"NotationNode\";\n };\n throw new Error(\"Failed pattern match at Web.DOM.NodeType (line 39, column 1 - line 51, column 37): \" + [ v.constructor.name ]);\n }\n};\nvar fromEnumNodeType = function (v) {\n if (v instanceof ElementNode) {\n return 1;\n };\n if (v instanceof AttributeNode) {\n return 2;\n };\n if (v instanceof TextNode) {\n return 3;\n };\n if (v instanceof CDATASectionNode) {\n return 4;\n };\n if (v instanceof EntityReferenceNode) {\n return 5;\n };\n if (v instanceof EntityNode) {\n return 6;\n };\n if (v instanceof ProcessingInstructionNode) {\n return 7;\n };\n if (v instanceof CommentNode) {\n return 8;\n };\n if (v instanceof DocumentNode) {\n return 9;\n };\n if (v instanceof DocumentTypeNode) {\n return 10;\n };\n if (v instanceof DocumentFragmentNode) {\n return 11;\n };\n if (v instanceof NotationNode) {\n return 12;\n };\n throw new Error(\"Failed pattern match at Web.DOM.NodeType (line 68, column 1 - line 68, column 36): \" + [ v.constructor.name ]);\n};\nvar eqNodeType = {\n eq: function (x) {\n return function (y) {\n if (x instanceof ElementNode && y instanceof ElementNode) {\n return true;\n };\n if (x instanceof AttributeNode && y instanceof AttributeNode) {\n return true;\n };\n if (x instanceof TextNode && y instanceof TextNode) {\n return true;\n };\n if (x instanceof CDATASectionNode && y instanceof CDATASectionNode) {\n return true;\n };\n if (x instanceof EntityReferenceNode && y instanceof EntityReferenceNode) {\n return true;\n };\n if (x instanceof EntityNode && y instanceof EntityNode) {\n return true;\n };\n if (x instanceof ProcessingInstructionNode && y instanceof ProcessingInstructionNode) {\n return true;\n };\n if (x instanceof CommentNode && y instanceof CommentNode) {\n return true;\n };\n if (x instanceof DocumentNode && y instanceof DocumentNode) {\n return true;\n };\n if (x instanceof DocumentTypeNode && y instanceof DocumentTypeNode) {\n return true;\n };\n if (x instanceof DocumentFragmentNode && y instanceof DocumentFragmentNode) {\n return true;\n };\n if (x instanceof NotationNode && y instanceof NotationNode) {\n return true;\n };\n return false;\n };\n }\n};\nvar ordNodeType = {\n compare: function (x) {\n return function (y) {\n return compare(fromEnumNodeType(x))(fromEnumNodeType(y));\n };\n },\n Eq0: function () {\n return eqNodeType;\n }\n};\nvar enumNodeType = {\n succ: /* #__PURE__ */ Data_Enum.defaultSucc(toEnumNodeType)(fromEnumNodeType),\n pred: /* #__PURE__ */ Data_Enum.defaultPred(toEnumNodeType)(fromEnumNodeType),\n Ord0: function () {\n return ordNodeType;\n }\n};\nvar boundedNodeType = /* #__PURE__ */ (function () {\n return {\n bottom: ElementNode.value,\n top: NotationNode.value,\n Ord0: function () {\n return ordNodeType;\n }\n };\n})();\nvar boundedEnumNodeType = {\n cardinality: 12,\n toEnum: toEnumNodeType,\n fromEnum: fromEnumNodeType,\n Bounded0: function () {\n return boundedNodeType;\n },\n Enum1: function () {\n return enumNodeType;\n }\n};\nexport {\n ElementNode,\n AttributeNode,\n TextNode,\n CDATASectionNode,\n EntityReferenceNode,\n EntityNode,\n ProcessingInstructionNode,\n CommentNode,\n DocumentNode,\n DocumentTypeNode,\n DocumentFragmentNode,\n NotationNode,\n eqNodeType,\n ordNodeType,\n boundedNodeType,\n enumNodeType,\n boundedEnumNodeType,\n showNodeType\n};\n","// Generated by purs version 0.15.7\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Enum from \"../Data.Enum/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Nullable from \"../Data.Nullable/index.js\";\nimport * as Effect from \"../Effect/index.js\";\nimport * as Unsafe_Coerce from \"../Unsafe.Coerce/index.js\";\nimport * as Web_DOM_Internal_Types from \"../Web.DOM.Internal.Types/index.js\";\nimport * as Web_DOM_NodeType from \"../Web.DOM.NodeType/index.js\";\nimport * as Web_Internal_FFI from \"../Web.Internal.FFI/index.js\";\nvar map = /* #__PURE__ */ Data_Functor.map(Effect.functorEffect);\nvar fromJust = /* #__PURE__ */ Data_Maybe.fromJust();\nvar toEnum = /* #__PURE__ */ Data_Enum.toEnum(Web_DOM_NodeType.boundedEnumNodeType);\nvar toEventTarget = Unsafe_Coerce.unsafeCoerce;\nvar previousSibling = /* #__PURE__ */ (function () {\n var $4 = map(Data_Nullable.toMaybe);\n return function ($5) {\n return $4($foreign[\"_previousSibling\"]($5));\n };\n})();\nvar parentNode = /* #__PURE__ */ (function () {\n var $6 = map(Data_Nullable.toMaybe);\n return function ($7) {\n return $6($foreign[\"_parentNode\"]($7));\n };\n})();\nvar parentElement = /* #__PURE__ */ (function () {\n var $8 = map(Data_Nullable.toMaybe);\n return function ($9) {\n return $8($foreign[\"_parentElement\"]($9));\n };\n})();\nvar ownerDocument = /* #__PURE__ */ (function () {\n var $10 = map(Data_Nullable.toMaybe);\n return function ($11) {\n return $10($foreign[\"_ownerDocument\"]($11));\n };\n})();\nvar nodeValue = /* #__PURE__ */ (function () {\n var $12 = map(Data_Nullable.toMaybe);\n return function ($13) {\n return $12($foreign[\"_nodeValue\"]($13));\n };\n})();\nvar nodeType = function () {\n return function ($14) {\n return fromJust(toEnum($foreign.nodeTypeIndex($14)));\n };\n};\nvar nextSibling = /* #__PURE__ */ (function () {\n var $15 = map(Data_Nullable.toMaybe);\n return function ($16) {\n return $15($foreign[\"_nextSibling\"]($16));\n };\n})();\nvar lookupPrefix = function (p) {\n var $17 = map(Data_Nullable.toMaybe);\n var $18 = $foreign[\"_lookupPrefix\"](p);\n return function ($19) {\n return $17($18($19));\n };\n};\nvar lookupNamespaceURI = function (ns) {\n var $20 = map(Data_Nullable.toMaybe);\n var $21 = $foreign[\"_lookupNamespaceURI\"](ns);\n return function ($22) {\n return $20($21($22));\n };\n};\nvar lastChild = /* #__PURE__ */ (function () {\n var $23 = map(Data_Nullable.toMaybe);\n return function ($24) {\n return $23($foreign[\"_lastChild\"]($24));\n };\n})();\nvar fromEventTarget = /* #__PURE__ */ Web_Internal_FFI.unsafeReadProtoTagged(\"Node\");\nvar firstChild = /* #__PURE__ */ (function () {\n var $25 = map(Data_Nullable.toMaybe);\n return function ($26) {\n return $25($foreign[\"_firstChild\"]($26));\n };\n})();\nexport {\n nodeTypeIndex,\n nodeName,\n baseURI,\n hasChildNodes,\n childNodes,\n setNodeValue,\n textContent,\n setTextContent,\n normalize,\n clone,\n deepClone,\n isEqualNode,\n compareDocumentPositionBits,\n contains,\n isDefaultNamespace,\n insertBefore,\n appendChild,\n replaceChild,\n removeChild\n} from \"./foreign.js\";\nexport {\n fromEventTarget,\n toEventTarget,\n nodeType,\n ownerDocument,\n parentNode,\n parentElement,\n firstChild,\n lastChild,\n previousSibling,\n nextSibling,\n nodeValue,\n lookupPrefix,\n lookupNamespaceURI\n};\n","// Generated by purs version 0.15.7\nimport * as $foreign from \"./foreign.js\";\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Data_Array from \"../Data.Array/index.js\";\nimport * as Data_Either from \"../Data.Either/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Effect from \"../Effect/index.js\";\nimport * as Web_DOM_Document from \"../Web.DOM.Document/index.js\";\nimport * as Web_DOM_Element from \"../Web.DOM.Element/index.js\";\nimport * as Web_DOM_HTMLCollection from \"../Web.DOM.HTMLCollection/index.js\";\nimport * as Web_DOM_Node from \"../Web.DOM.Node/index.js\";\nvar map = /* #__PURE__ */ Data_Functor.map(Data_Maybe.functorMaybe);\nvar pure = /* #__PURE__ */ Control_Applicative.pure(Effect.applicativeEffect);\nvar map1 = /* #__PURE__ */ Data_Functor.map(Effect.functorEffect);\nvar join = /* #__PURE__ */ Control_Bind.join(Effect.bindEffect);\nvar returnIfNothing = function (errMay) {\n return function (val) {\n if (errMay instanceof Data_Maybe.Nothing) {\n return new Data_Either.Right(val);\n };\n if (errMay instanceof Data_Maybe.Just) {\n return new Data_Either.Left(errMay.value0);\n };\n throw new Error(\"Failed pattern match at Web.DOM.DOMParser (line 73, column 30 - line 75, column 21): \" + [ errMay.constructor.name ]);\n };\n};\nvar _getParserError = function (doc) {\n var getText = function (elMay) {\n var v = map(Web_DOM_Element.toNode)(elMay);\n if (v instanceof Data_Maybe.Nothing) {\n return pure(Data_Maybe.Nothing.value);\n };\n if (v instanceof Data_Maybe.Just) {\n return map1(Data_Maybe.Just.create)(Web_DOM_Node.textContent(v.value0));\n };\n throw new Error(\"Failed pattern match at Web.DOM.DOMParser (line 65, column 23 - line 67, column 45): \" + [ v.constructor.name ]);\n };\n return function __do() {\n var v = join(map1(Web_DOM_HTMLCollection.toArray)(Web_DOM_Document.getElementsByTagName(\"parsererror\")(doc)))();\n var v1 = Data_Array.head(v);\n return getText(v1)();\n };\n};\nvar parseHTMLFromString = function (s) {\n return function (d) {\n return function __do() {\n var doc = $foreign.parseFromString(\"text/html\")(s)(d)();\n var errMay = _getParserError(doc)();\n return returnIfNothing(errMay)(doc);\n };\n };\n};\nvar parseSVGFromString = function (s) {\n return function (d) {\n return function __do() {\n var doc = $foreign.parseFromString(\"image/svg+xml\")(s)(d)();\n var errMay = _getParserError(doc)();\n return returnIfNothing(errMay)(doc);\n };\n };\n};\nvar parseXMLFromString = function (s) {\n return function (d) {\n return function __do() {\n var doc = $foreign.parseFromString(\"application/xml\")(s)(d)();\n var errMay = _getParserError(doc)();\n return returnIfNothing(errMay)(doc);\n };\n };\n};\nexport {\n makeDOMParser,\n parseFromString\n} from \"./foreign.js\";\nexport {\n parseHTMLFromString,\n parseSVGFromString,\n parseXMLFromString,\n _getParserError\n};\n","// Generated by purs version 0.15.7\nimport * as $foreign from \"./foreign.js\";\nimport * as AppState from \"../AppState/index.js\";\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Control_Monad_Maybe_Trans from \"../Control.Monad.Maybe.Trans/index.js\";\nimport * as Control_Monad_Writer_Class from \"../Control.Monad.Writer.Class/index.js\";\nimport * as Control_Monad_Writer_Trans from \"../Control.Monad.Writer.Trans/index.js\";\nimport * as CorsProxy from \"../CorsProxy/index.js\";\nimport * as Data_Argonaut_Core from \"../Data.Argonaut.Core/index.js\";\nimport * as Data_Argonaut_Parser from \"../Data.Argonaut.Parser/index.js\";\nimport * as Data_Array from \"../Data.Array/index.js\";\nimport * as Data_Either from \"../Data.Either/index.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_HeytingAlgebra from \"../Data.HeytingAlgebra/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Monoid from \"../Data.Monoid/index.js\";\nimport * as Data_String_Regex from \"../Data.String.Regex/index.js\";\nimport * as Data_String_Regex_Flags from \"../Data.String.Regex.Flags/index.js\";\nimport * as Data_String_Regex_Unsafe from \"../Data.String.Regex.Unsafe/index.js\";\nimport * as Data_Traversable from \"../Data.Traversable/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nimport * as Effect from \"../Effect/index.js\";\nimport * as Effect_Class from \"../Effect.Class/index.js\";\nimport * as Effect_Console from \"../Effect.Console/index.js\";\nimport * as JsonUtils from \"../JsonUtils/index.js\";\nimport * as Utils from \"../Utils/index.js\";\nimport * as Web_DOM_DOMParser from \"../Web.DOM.DOMParser/index.js\";\nimport * as Web_DOM_Document from \"../Web.DOM.Document/index.js\";\nimport * as Web_DOM_Element from \"../Web.DOM.Element/index.js\";\nimport * as Web_DOM_ParentNode from \"../Web.DOM.ParentNode/index.js\";\nvar bind = /* #__PURE__ */ Control_Bind.bind(Data_Maybe.bindMaybe);\nvar discard = /* #__PURE__ */ Control_Bind.discard(Control_Bind.discardUnit);\nvar monadWriterT = /* #__PURE__ */ Control_Monad_Writer_Trans.monadWriterT(Data_Monoid.monoidArray);\nvar monadTellWriterT = /* #__PURE__ */ Control_Monad_Writer_Trans.monadTellWriterT(Data_Monoid.monoidArray);\nvar not = /* #__PURE__ */ Data_HeytingAlgebra.not(/* #__PURE__ */ Data_HeytingAlgebra.heytingAlgebraFunction(/* #__PURE__ */ Data_HeytingAlgebra.heytingAlgebraFunction(Data_HeytingAlgebra.heytingAlgebraBoolean)));\nvar elem = /* #__PURE__ */ Data_Array.elem(/* #__PURE__ */ Data_Maybe.eqMaybe(Data_Eq.eqString));\nvar applicativeWriterT = /* #__PURE__ */ Control_Monad_Writer_Trans.applicativeWriterT(Data_Monoid.monoidArray);\nvar map = /* #__PURE__ */ Data_Functor.map(Effect.functorEffect);\nvar traverse = /* #__PURE__ */ Data_Traversable.traverse(Data_Traversable.traversableArray)(Effect.applicativeEffect);\nvar toSearchResult = function (dictMonad) {\n var monadWriterT1 = monadWriterT(dictMonad);\n var discard1 = discard(Control_Monad_Maybe_Trans.bindMaybeT(monadWriterT1));\n var when = Control_Applicative.when(Control_Monad_Maybe_Trans.applicativeMaybeT(monadWriterT1));\n var tell = Control_Monad_Writer_Class.tell(Control_Monad_Maybe_Trans.monadTellMaybeT(monadTellWriterT(dictMonad)));\n var hoistMaybe$prime = Utils[\"hoistMaybe$prime\"](dictMonad);\n return function (json) {\n var maybeResult = bind(bind(JsonUtils.child(\"tab_url\")(json))(JsonUtils.string))(function (url) {\n return bind(bind(JsonUtils.child(\"song_name\")(json))(JsonUtils.string))(function (name) {\n return bind(bind(JsonUtils.child(\"artist_name\")(json))(JsonUtils.string))(function (artist) {\n var rating = bind(JsonUtils.child(\"rating\")(json))(JsonUtils.number);\n var contentType = bind(JsonUtils.child(\"type\")(json))(JsonUtils.string);\n var marketingType = bind(JsonUtils.child(\"marketing_type\")(json))(JsonUtils.string);\n return new Data_Maybe.Just({\n url: url,\n rating: rating,\n name: name,\n artist: artist,\n contentType: contentType,\n marketingType: marketingType\n });\n });\n });\n });\n return discard1(when(Data_Maybe.isNothing(maybeResult))(tell([ \"Could not find search results in json \" + Data_Argonaut_Core.stringify(json) ])))(function () {\n return hoistMaybe$prime(maybeResult);\n });\n };\n};\nvar hoistMaybe = function (dictMonad) {\n var $123 = Control_Applicative.pure(dictMonad.Applicative0());\n return function ($124) {\n return Control_Monad_Maybe_Trans.MaybeT($123($124));\n };\n};\nvar filterSearchResults = /* #__PURE__ */ (function () {\n var pred = function (v) {\n return Data_Maybe.isJust(v.rating) && (Data_Maybe.isNothing(v.marketingType) && not(elem)(v.contentType)([ new Data_Maybe.Just(\"Pro\"), new Data_Maybe.Just(\"Video\"), new Data_Maybe.Just(\"Power\") ]));\n };\n return Data_Array.filter(pred);\n})();\nvar extractTab = function (dictMonad) {\n var monadWriterT1 = monadWriterT(dictMonad);\n var bindMaybeT = Control_Monad_Maybe_Trans.bindMaybeT(monadWriterT1);\n var discard1 = discard(bindMaybeT);\n var applicativeMaybeT = Control_Monad_Maybe_Trans.applicativeMaybeT(monadWriterT1);\n var when = Control_Applicative.when(applicativeMaybeT);\n var tell = Control_Monad_Writer_Class.tell(Control_Monad_Maybe_Trans.monadTellMaybeT(monadTellWriterT(dictMonad)));\n var bind1 = Control_Bind.bind(bindMaybeT);\n var pure = Control_Applicative.pure(applicativeWriterT(dictMonad.Applicative0()));\n var pure1 = Control_Applicative.pure(applicativeMaybeT);\n return function (json) {\n var maybeRawTab = bind(bind(bind(bind(bind(bind(JsonUtils.child(\"store\")(json))(JsonUtils.child(\"page\")))(JsonUtils.child(\"data\")))(JsonUtils.child(\"tab_view\")))(JsonUtils.child(\"wiki_tab\")))(JsonUtils.child(\"content\")))(JsonUtils.string);\n return discard1(when(Data_Maybe.isNothing(maybeRawTab))(tell([ \"Could not retrieve tablature data from json \" + Data_Argonaut_Core.stringify(json) ])))(function () {\n return bind1(pure(maybeRawTab))(function (rawTab) {\n return pure1($foreign[\"_htmlDecode\"](Data_String_Regex.replace(Data_String_Regex_Unsafe.unsafeRegex(\"\\\\[\\\\/?(ch|tab)\\\\]\")(Data_String_Regex_Flags.global))(\"\")(rawTab)));\n });\n });\n };\n};\nvar extractSearchResults = function (dictMonad) {\n var monadWriterT1 = monadWriterT(dictMonad);\n var bindMaybeT = Control_Monad_Maybe_Trans.bindMaybeT(monadWriterT1);\n var discard1 = discard(bindMaybeT);\n var when = Control_Applicative.when(Control_Monad_Maybe_Trans.applicativeMaybeT(monadWriterT1));\n var tell = Control_Monad_Writer_Class.tell(Control_Monad_Maybe_Trans.monadTellMaybeT(monadTellWriterT(dictMonad)));\n var bind1 = Control_Bind.bind(bindMaybeT);\n var hoistMaybe$prime = Utils[\"hoistMaybe$prime\"](dictMonad);\n var mapFlipped = Data_Functor.mapFlipped(Control_Monad_Writer_Trans.functorWriterT(((dictMonad.Bind1()).Apply0()).Functor0()));\n var mapMaybeT = Utils.mapMaybeT(monadWriterT1);\n var toSearchResult1 = toSearchResult(dictMonad);\n return function (json) {\n var maybeJsonSearchResults = bind(bind(bind(bind(JsonUtils.child(\"store\")(json))(JsonUtils.child(\"page\")))(JsonUtils.child(\"data\")))(JsonUtils.child(\"results\")))(JsonUtils.array);\n return discard1(when(Data_Maybe.isNothing(maybeJsonSearchResults))(tell([ \"Could not find search results in json \" + Data_Argonaut_Core.stringify(json) ])))(function () {\n return bind1(hoistMaybe$prime(maybeJsonSearchResults))(function (jsonSearchResults) {\n return mapFlipped(mapMaybeT(toSearchResult1)(jsonSearchResults))(Data_Maybe.Just.create);\n });\n });\n };\n};\nvar extractDataContent = function (dictMonadAff) {\n var MonadEffect0 = dictMonadAff.MonadEffect0();\n var Monad0 = MonadEffect0.Monad0();\n var bind1 = Control_Bind.bind(Control_Monad_Maybe_Trans.bindMaybeT(Monad0));\n var liftEffect = Effect_Class.liftEffect(Control_Monad_Maybe_Trans.monadEffectMaybe(MonadEffect0));\n var liftEffect1 = Effect_Class.liftEffect(MonadEffect0);\n var pure = Control_Applicative.pure(Monad0.Applicative0());\n return function (input) {\n return bind1(liftEffect(Web_DOM_DOMParser.makeDOMParser))(function (parser) {\n return bind1(liftEffect1(map(Data_Either.hush)(Web_DOM_DOMParser.parseHTMLFromString(input)(parser))))(function (doc) {\n return bind1(liftEffect1(Web_DOM_ParentNode.querySelector(\".js-store\")(Web_DOM_Document.toParentNode(doc))))(function (elem1) {\n return bind1(liftEffect1(Web_DOM_Element.getAttribute(\"data-content\")(elem1)))(function (jsonString) {\n return pure(Data_Either.hush(Data_Argonaut_Parser.jsonParser(jsonString)));\n });\n });\n });\n });\n };\n};\nvar fetchUrlDataContent = function (dictMonadAff) {\n var bind1 = Control_Bind.bind(Control_Monad_Maybe_Trans.bindMaybeT((dictMonadAff.MonadEffect0()).Monad0()));\n var fetchThroughProxy = CorsProxy.fetchThroughProxy(dictMonadAff);\n var extractDataContent1 = extractDataContent(dictMonadAff);\n return function (url) {\n return bind1(fetchThroughProxy(url))(function (result) {\n return extractDataContent1(result);\n });\n };\n};\nvar fetchTabFromUrl = function (dictMonadAff) {\n var MonadEffect0 = dictMonadAff.MonadEffect0();\n var Monad0 = MonadEffect0.Monad0();\n var bind1 = Control_Bind.bind(Control_Monad_Maybe_Trans.bindMaybeT(Monad0));\n var fetchUrlDataContent1 = fetchUrlDataContent(dictMonadAff);\n var extractTab1 = extractTab(Control_Monad_Maybe_Trans.monadMaybeT(Monad0));\n var liftEffect = Effect_Class.liftEffect(Control_Monad_Maybe_Trans.monadEffectMaybe(MonadEffect0));\n var hoistMaybe1 = hoistMaybe(Monad0);\n return function (dictMonadState) {\n return function (url) {\n return bind1(fetchUrlDataContent1(url))(function (dataContent) {\n return bind1(Control_Monad_Writer_Trans.runWriterT(Control_Monad_Maybe_Trans.runMaybeT(extractTab1(dataContent))))(function (v) {\n return bind1(liftEffect(traverse(Effect_Console.error)(v.value1)))(function () {\n return hoistMaybe1(v.value0);\n });\n });\n });\n };\n };\n};\nvar execSearch = function (dictMonadAff) {\n var MonadEffect0 = dictMonadAff.MonadEffect0();\n var Monad0 = MonadEffect0.Monad0();\n var map1 = Data_Functor.map(((Monad0.Bind1()).Apply0()).Functor0());\n var bind1 = Control_Bind.bind(Control_Monad_Maybe_Trans.bindMaybeT(Monad0));\n var fetchUrlDataContent1 = fetchUrlDataContent(dictMonadAff);\n var extractSearchResults1 = extractSearchResults(Control_Monad_Maybe_Trans.monadMaybeT(Monad0));\n var liftEffect = Effect_Class.liftEffect(Control_Monad_Maybe_Trans.monadEffectMaybe(MonadEffect0));\n var hoistMaybe1 = hoistMaybe(Monad0);\n return function (dictMonadState) {\n var setState = AppState.setState(Control_Monad_Maybe_Trans.monadStateMaybeT(dictMonadState));\n return function (phrase) {\n return map1(Data_Function[\"const\"](Data_Unit.unit))(Control_Monad_Maybe_Trans.runMaybeT((function () {\n var url = \"https://www.ultimate-guitar.com/search.php?search_type=title&value=\" + phrase;\n return bind1(fetchUrlDataContent1(url))(function (dataContent) {\n return bind1(Control_Monad_Writer_Trans.runWriterT(Control_Monad_Maybe_Trans.runMaybeT(extractSearchResults1(dataContent))))(function (v) {\n return bind1(liftEffect(traverse(Effect_Console.error)(v.value1)))(function () {\n return bind1(hoistMaybe1(v.value0))(function (searchResults) {\n return setState(function (dictStrong) {\n return AppState[\"_searchResults\"](dictStrong);\n })(new Data_Maybe.Just(filterSearchResults(searchResults)));\n });\n });\n });\n });\n })()));\n };\n };\n};\nexport {\n _htmlDecode\n} from \"./foreign.js\";\nexport {\n hoistMaybe,\n execSearch,\n filterSearchResults,\n extractSearchResults,\n toSearchResult,\n fetchTabFromUrl,\n extractTab,\n fetchUrlDataContent,\n extractDataContent\n};\n","'use strict';\n\nfunction _htmlDecode(string) {\n return string\n .replace(/"/g, '\"')\n .replace(/'/g, \"'\")\n .replace(/</g, '<')\n .replace(/>/g, '>')\n .replace(/&/g, '&');\n}\n\nexport { _htmlDecode }\n","// Generated by purs version 0.15.7\nimport * as AppState from \"../AppState/index.js\";\nimport * as AppUrl from \"../AppUrl/index.js\";\nimport * as AutoscrollSpeed from \"../AutoscrollSpeed/index.js\";\nimport * as Cache from \"../Cache/index.js\";\nimport * as Clipboard from \"../Clipboard/index.js\";\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Control_Monad_Maybe_Trans from \"../Control.Monad.Maybe.Trans/index.js\";\nimport * as CuttlyUrlShortener from \"../CuttlyUrlShortener/index.js\";\nimport * as Data_Enum from \"../Data.Enum/index.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nimport * as Effect from \"../Effect/index.js\";\nimport * as Effect_Aff_Class from \"../Effect.Aff.Class/index.js\";\nimport * as Effect_Class from \"../Effect.Class/index.js\";\nimport * as LocationString from \"../LocationString/index.js\";\nimport * as TablatureDocument from \"../TablatureDocument/index.js\";\nimport * as UGScraper from \"../UGScraper/index.js\";\nvar discard = /* #__PURE__ */ Control_Bind.discard(Control_Bind.discardUnit);\nvar eq = /* #__PURE__ */ Data_Eq.eq(AppState.eqMode);\nvar succ = /* #__PURE__ */ Data_Enum.succ(AutoscrollSpeed.enumAutoscrollSpeed);\nvar pred = /* #__PURE__ */ Data_Enum.pred(AutoscrollSpeed.enumAutoscrollSpeed);\nvar createShortUrl = /* #__PURE__ */ CuttlyUrlShortener.createShortUrl(Effect_Aff_Class.monadAffAff);\nvar pure = /* #__PURE__ */ Control_Applicative.pure(Effect.applicativeEffect);\nvar eq2 = /* #__PURE__ */ Data_Eq.eq(AppState.eqActiveMenu);\nvar Initialize = /* #__PURE__ */ (function () {\n function Initialize() {\n\n };\n Initialize.value = new Initialize();\n return Initialize;\n})();\nvar ClickFileMenu = /* #__PURE__ */ (function () {\n function ClickFileMenu() {\n\n };\n ClickFileMenu.value = new ClickFileMenu();\n return ClickFileMenu;\n})();\nvar ClickSettingsMenu = /* #__PURE__ */ (function () {\n function ClickSettingsMenu() {\n\n };\n ClickSettingsMenu.value = new ClickSettingsMenu();\n return ClickSettingsMenu;\n})();\nvar ClickNoMenu = /* #__PURE__ */ (function () {\n function ClickNoMenu() {\n\n };\n ClickNoMenu.value = new ClickNoMenu();\n return ClickNoMenu;\n})();\nvar ToggleEditMode = /* #__PURE__ */ (function () {\n function ToggleEditMode() {\n\n };\n ToggleEditMode.value = new ToggleEditMode();\n return ToggleEditMode;\n})();\nvar ToggleTabNormalization = /* #__PURE__ */ (function () {\n function ToggleTabNormalization() {\n\n };\n ToggleTabNormalization.value = new ToggleTabNormalization();\n return ToggleTabNormalization;\n})();\nvar ToggleTabDozenalization = /* #__PURE__ */ (function () {\n function ToggleTabDozenalization() {\n\n };\n ToggleTabDozenalization.value = new ToggleTabDozenalization();\n return ToggleTabDozenalization;\n})();\nvar ToggleChordNormalization = /* #__PURE__ */ (function () {\n function ToggleChordNormalization() {\n\n };\n ToggleChordNormalization.value = new ToggleChordNormalization();\n return ToggleChordNormalization;\n})();\nvar ToggleChordDozenalization = /* #__PURE__ */ (function () {\n function ToggleChordDozenalization() {\n\n };\n ToggleChordDozenalization.value = new ToggleChordDozenalization();\n return ToggleChordDozenalization;\n})();\nvar CreateShortUrl = /* #__PURE__ */ (function () {\n function CreateShortUrl() {\n\n };\n CreateShortUrl.value = new CreateShortUrl();\n return CreateShortUrl;\n})();\nvar ToggleAutoscroll = /* #__PURE__ */ (function () {\n function ToggleAutoscroll() {\n\n };\n ToggleAutoscroll.value = new ToggleAutoscroll();\n return ToggleAutoscroll;\n})();\nvar IncreaseAutoscrollSpeed = /* #__PURE__ */ (function () {\n function IncreaseAutoscrollSpeed() {\n\n };\n IncreaseAutoscrollSpeed.value = new IncreaseAutoscrollSpeed();\n return IncreaseAutoscrollSpeed;\n})();\nvar DecreaseAutoscrollSpeed = /* #__PURE__ */ (function () {\n function DecreaseAutoscrollSpeed() {\n\n };\n DecreaseAutoscrollSpeed.value = new DecreaseAutoscrollSpeed();\n return DecreaseAutoscrollSpeed;\n})();\nvar IncreaseTransposition = /* #__PURE__ */ (function () {\n function IncreaseTransposition() {\n\n };\n IncreaseTransposition.value = new IncreaseTransposition();\n return IncreaseTransposition;\n})();\nvar DecreaseTransposition = /* #__PURE__ */ (function () {\n function DecreaseTransposition() {\n\n };\n DecreaseTransposition.value = new DecreaseTransposition();\n return DecreaseTransposition;\n})();\nvar FlatNoteOrientation = /* #__PURE__ */ (function () {\n function FlatNoteOrientation() {\n\n };\n FlatNoteOrientation.value = new FlatNoteOrientation();\n return FlatNoteOrientation;\n})();\nvar SharpNoteOrientation = /* #__PURE__ */ (function () {\n function SharpNoteOrientation() {\n\n };\n SharpNoteOrientation.value = new SharpNoteOrientation();\n return SharpNoteOrientation;\n})();\nvar DefaultNoteOrientation = /* #__PURE__ */ (function () {\n function DefaultNoteOrientation() {\n\n };\n DefaultNoteOrientation.value = new DefaultNoteOrientation();\n return DefaultNoteOrientation;\n})();\nvar ToggleSearch = /* #__PURE__ */ (function () {\n function ToggleSearch() {\n\n };\n ToggleSearch.value = new ToggleSearch();\n return ToggleSearch;\n})();\nvar SearchInput = /* #__PURE__ */ (function () {\n function SearchInput(value0) {\n this.value0 = value0;\n };\n SearchInput.create = function (value0) {\n return new SearchInput(value0);\n };\n return SearchInput;\n})();\nvar ImportFromUrl = /* #__PURE__ */ (function () {\n function ImportFromUrl(value0) {\n this.value0 = value0;\n };\n ImportFromUrl.create = function (value0) {\n return new ImportFromUrl(value0);\n };\n return ImportFromUrl;\n})();\nvar NoAction = /* #__PURE__ */ (function () {\n function NoAction() {\n\n };\n NoAction.value = new NoAction();\n return NoAction;\n})();\nvar toggleTabNormalization = function (dictMonadAff) {\n var bind = Control_Bind.bind(((dictMonadAff.MonadEffect0()).Monad0()).Bind1());\n var tabNormalizationEnabledCache = AppState.tabNormalizationEnabledCache(dictMonadAff);\n return function (dictMonadState) {\n var tabNormalizationEnabledCache1 = tabNormalizationEnabledCache(dictMonadState);\n var write = Cache.write(dictMonadState);\n return bind(Cache.read(dictMonadState)(tabNormalizationEnabledCache1))(function (tabNormalizationEnabled) {\n return write(tabNormalizationEnabledCache1)(!tabNormalizationEnabled);\n });\n };\n};\nvar toggleTabDozenalization = function (dictMonadAff) {\n var Monad0 = (dictMonadAff.MonadEffect0()).Monad0();\n var bind = Control_Bind.bind(Monad0.Bind1());\n var ignoreDozenalizationCache = AppState.ignoreDozenalizationCache(dictMonadAff);\n var pure1 = Control_Applicative.pure(Monad0.Applicative0());\n var tabDozenalizationEnabledCache = AppState.tabDozenalizationEnabledCache(dictMonadAff);\n return function (dictMonadState) {\n var read = Cache.read(dictMonadState);\n var tabDozenalizationEnabledCache1 = tabDozenalizationEnabledCache(dictMonadState);\n var write = Cache.write(dictMonadState);\n return bind(read(ignoreDozenalizationCache(dictMonadState)))(function (ignoreDozenalization) {\n if (ignoreDozenalization) {\n return pure1(Data_Unit.unit);\n };\n return bind(read(tabDozenalizationEnabledCache1))(function (tabDozenalizationEnabled) {\n return write(tabDozenalizationEnabledCache1)(!tabDozenalizationEnabled);\n });\n });\n };\n};\nvar toggleSearch = function (dictMonadAff) {\n var Bind1 = ((dictMonadAff.MonadEffect0()).Monad0()).Bind1();\n var bind = Control_Bind.bind(Bind1);\n var tablatureTextCache = AppState.tablatureTextCache(dictMonadAff);\n var discard1 = discard(Bind1);\n return function (dictMonadState) {\n var read = Cache.read(dictMonadState);\n var tablatureTextCache1 = tablatureTextCache(dictMonadState);\n var setState = AppState.setState(dictMonadState);\n return bind(AppState.viewState(dictMonadState)(function (dictStrong) {\n return AppState[\"_mode\"](dictStrong);\n }))(function (currentMode) {\n return bind(read(tablatureTextCache1))(function (tablatureText) {\n return discard1(setState(function (dictStrong) {\n return AppState[\"_activeMenu\"](dictStrong);\n })(AppState.NoMenu.value))(function () {\n return setState(function (dictStrong) {\n return AppState[\"_mode\"](dictStrong);\n })((function () {\n var $229 = eq(currentMode)(AppState.SearchMode.value);\n if ($229) {\n var $230 = tablatureText === \"\";\n if ($230) {\n return AppState.EditMode.value;\n };\n return AppState.ViewMode.value;\n };\n return AppState.SearchMode.value;\n })());\n });\n });\n });\n };\n};\nvar toggleChordNormalization = function (dictMonadAff) {\n var bind = Control_Bind.bind(((dictMonadAff.MonadEffect0()).Monad0()).Bind1());\n var chordNormalizationEnabledCache = AppState.chordNormalizationEnabledCache(dictMonadAff);\n return function (dictMonadState) {\n var chordNormalizationEnabledCache1 = chordNormalizationEnabledCache(dictMonadState);\n var write = Cache.write(dictMonadState);\n return bind(Cache.read(dictMonadState)(chordNormalizationEnabledCache1))(function (chordNormalizationEnabled) {\n return write(chordNormalizationEnabledCache1)(!chordNormalizationEnabled);\n });\n };\n};\nvar toggleChordDozenalization = function (dictMonadAff) {\n var Monad0 = (dictMonadAff.MonadEffect0()).Monad0();\n var bind = Control_Bind.bind(Monad0.Bind1());\n var ignoreDozenalizationCache = AppState.ignoreDozenalizationCache(dictMonadAff);\n var pure1 = Control_Applicative.pure(Monad0.Applicative0());\n var chordDozenalizationEnabledCache = AppState.chordDozenalizationEnabledCache(dictMonadAff);\n return function (dictMonadState) {\n var read = Cache.read(dictMonadState);\n var chordDozenalizationEnabledCache1 = chordDozenalizationEnabledCache(dictMonadState);\n var write = Cache.write(dictMonadState);\n return bind(read(ignoreDozenalizationCache(dictMonadState)))(function (ignoreDozenalization) {\n if (ignoreDozenalization) {\n return pure1(Data_Unit.unit);\n };\n return bind(read(chordDozenalizationEnabledCache1))(function (chordDozenalizationEnabled) {\n return write(chordDozenalizationEnabledCache1)(!chordDozenalizationEnabled);\n });\n });\n };\n};\nvar setNoteOrientation = function (dictMonadAff) {\n var bind = Control_Bind.bind(((dictMonadAff.MonadEffect0()).Monad0()).Bind1());\n var urlParamsCache = AppState.urlParamsCache(dictMonadAff);\n return function (noteOrientation) {\n return function (dictMonadState) {\n var urlParamsCache1 = urlParamsCache(dictMonadState);\n var write = Cache.write(dictMonadState);\n return bind(Cache.read(dictMonadState)(urlParamsCache1))(function (urlParams) {\n return write(urlParamsCache1)({\n transposition: urlParams.transposition,\n noteOrientation: noteOrientation\n });\n });\n };\n };\n};\nvar searchInput = function (dictMonadAff) {\n var discard1 = discard(((dictMonadAff.MonadEffect0()).Monad0()).Bind1());\n var execSearch = UGScraper.execSearch(dictMonadAff);\n return function (dictMonadState) {\n var setState = AppState.setState(dictMonadState);\n var execSearch1 = execSearch(dictMonadState);\n return function (phrase) {\n return discard1(setState(function (dictStrong) {\n return AppState[\"_searchPhrase\"](dictStrong);\n })(new Data_Maybe.Just(phrase)))(function () {\n return execSearch1(phrase);\n });\n };\n };\n};\nvar initialize = function (dictMonadAff) {\n var bind = Control_Bind.bind(((dictMonadAff.MonadEffect0()).Monad0()).Bind1());\n var tablatureTextCache = AppState.tablatureTextCache(dictMonadAff);\n return function (dictMonadState) {\n var setState = AppState.setState(dictMonadState);\n return bind(Cache.read(dictMonadState)(tablatureTextCache(dictMonadState)))(function (tablatureText) {\n var $232 = tablatureText === \"\";\n if ($232) {\n return setState(function (dictStrong) {\n return AppState[\"_mode\"](dictStrong);\n })(AppState.EditMode.value);\n };\n return setState(function (dictStrong) {\n return AppState[\"_mode\"](dictStrong);\n })(AppState.ViewMode.value);\n });\n };\n};\nvar increaseTransposition = function (dictMonadAff) {\n var bind = Control_Bind.bind(((dictMonadAff.MonadEffect0()).Monad0()).Bind1());\n var urlParamsCache = AppState.urlParamsCache(dictMonadAff);\n return function (dictMonadState) {\n var urlParamsCache1 = urlParamsCache(dictMonadState);\n var write = Cache.write(dictMonadState);\n return bind(Cache.read(dictMonadState)(urlParamsCache1))(function (urlParams) {\n return write(urlParamsCache1)({\n transposition: TablatureDocument.succTransposition(urlParams.transposition),\n noteOrientation: urlParams.noteOrientation\n });\n });\n };\n};\nvar increaseAutoscrollSpeed = function (dictMonadAff) {\n var Monad0 = (dictMonadAff.MonadEffect0()).Monad0();\n var bind = Control_Bind.bind(Monad0.Bind1());\n var pure1 = Control_Applicative.pure(Monad0.Applicative0());\n return function (dictMonadState) {\n var setState = AppState.setState(dictMonadState);\n return bind(AppState.viewState(dictMonadState)(function (dictStrong) {\n return AppState[\"_autoscrollSpeed\"](dictStrong);\n }))(function (currentSpeed) {\n var v = succ(currentSpeed);\n if (v instanceof Data_Maybe.Nothing) {\n return pure1(Data_Unit.unit);\n };\n if (v instanceof Data_Maybe.Just) {\n return setState(function (dictStrong) {\n return AppState[\"_autoscrollSpeed\"](dictStrong);\n })(v.value0);\n };\n throw new Error(\"Failed pattern match at AppActions (line 70, column 3 - line 72, column 50): \" + [ v.constructor.name ]);\n });\n };\n};\nvar importFromUrl = function (dictMonadAff) {\n var MonadEffect0 = dictMonadAff.MonadEffect0();\n var Monad0 = MonadEffect0.Monad0();\n var map = Data_Functor.map(((Monad0.Bind1()).Apply0()).Functor0());\n var bindMaybeT = Control_Monad_Maybe_Trans.bindMaybeT(Monad0);\n var bind = Control_Bind.bind(bindMaybeT);\n var fetchTabFromUrl = UGScraper.fetchTabFromUrl(dictMonadAff);\n var discard1 = discard(bindMaybeT);\n var tablatureTextCache = AppState.tablatureTextCache(Effect_Aff_Class.monadAffMaybe(dictMonadAff));\n var liftEffect = Effect_Class.liftEffect(Control_Monad_Maybe_Trans.monadEffectMaybe(MonadEffect0));\n return function (dictMonadState) {\n var fetchTabFromUrl1 = fetchTabFromUrl(dictMonadState);\n var monadStateMaybeT = Control_Monad_Maybe_Trans.monadStateMaybeT(dictMonadState);\n var write = Cache.write(monadStateMaybeT);\n var tablatureTextCache1 = tablatureTextCache(monadStateMaybeT);\n var invalidate = Cache.invalidate(monadStateMaybeT);\n var setState = AppState.setState(monadStateMaybeT);\n return function (url) {\n return map(Data_Function[\"const\"](Data_Unit.unit))(Control_Monad_Maybe_Trans.runMaybeT(bind(fetchTabFromUrl1(url))(function (tablatureText) {\n return discard1(write(tablatureTextCache1)(tablatureText))(function () {\n return discard1(liftEffect(AppUrl.resetUrlParams))(function () {\n return discard1(invalidate(AppState[\"_urlParams\"]))(function () {\n return setState(function (dictStrong) {\n return AppState[\"_mode\"](dictStrong);\n })(AppState.ViewMode.value);\n });\n });\n });\n })));\n };\n };\n};\nvar decreaseTransposition = function (dictMonadAff) {\n var bind = Control_Bind.bind(((dictMonadAff.MonadEffect0()).Monad0()).Bind1());\n var urlParamsCache = AppState.urlParamsCache(dictMonadAff);\n return function (dictMonadState) {\n var urlParamsCache1 = urlParamsCache(dictMonadState);\n var write = Cache.write(dictMonadState);\n return bind(Cache.read(dictMonadState)(urlParamsCache1))(function (urlParams) {\n return write(urlParamsCache1)({\n transposition: TablatureDocument.predTransposition(urlParams.transposition),\n noteOrientation: urlParams.noteOrientation\n });\n });\n };\n};\nvar decreaseAutoscrollSpeed = function (dictMonadAff) {\n var Monad0 = (dictMonadAff.MonadEffect0()).Monad0();\n var bind = Control_Bind.bind(Monad0.Bind1());\n var pure1 = Control_Applicative.pure(Monad0.Applicative0());\n return function (dictMonadState) {\n var setState = AppState.setState(dictMonadState);\n return bind(AppState.viewState(dictMonadState)(function (dictStrong) {\n return AppState[\"_autoscrollSpeed\"](dictStrong);\n }))(function (currentSpeed) {\n var v = pred(currentSpeed);\n if (v instanceof Data_Maybe.Nothing) {\n return pure1(Data_Unit.unit);\n };\n if (v instanceof Data_Maybe.Just) {\n return setState(function (dictStrong) {\n return AppState[\"_autoscrollSpeed\"](dictStrong);\n })(v.value0);\n };\n throw new Error(\"Failed pattern match at AppActions (line 77, column 3 - line 79, column 50): \" + [ v.constructor.name ]);\n });\n };\n};\nvar createAndCopyShortUrl = function (dictMonadAff) {\n var MonadEffect0 = dictMonadAff.MonadEffect0();\n var bind = Control_Bind.bind((MonadEffect0.Monad0()).Bind1());\n var liftEffect = Effect_Class.liftEffect(MonadEffect0);\n var liftAff = Effect_Aff_Class.liftAff(dictMonadAff);\n return function (dictMonadState) {\n return bind(liftEffect(LocationString.getLocationString))(function (longUrl) {\n return bind(liftAff(Control_Monad_Maybe_Trans.runMaybeT(createShortUrl(longUrl))))(function (maybeShortUrl) {\n return liftEffect((function () {\n if (maybeShortUrl instanceof Data_Maybe.Just) {\n return Clipboard.copyToClipboard(maybeShortUrl.value0);\n };\n if (maybeShortUrl instanceof Data_Maybe.Nothing) {\n return pure(Data_Unit.unit);\n };\n throw new Error(\"Failed pattern match at AppActions (line 111, column 16 - line 113, column 25): \" + [ maybeShortUrl.constructor.name ]);\n })());\n });\n });\n };\n};\nvar clickSettingsMenu = function (dictMonadAff) {\n var bind = Control_Bind.bind(((dictMonadAff.MonadEffect0()).Monad0()).Bind1());\n return function (dictMonadState) {\n var setState = AppState.setState(dictMonadState);\n return bind(AppState.viewState(dictMonadState)(function (dictStrong) {\n return AppState[\"_activeMenu\"](dictStrong);\n }))(function (activeMenu) {\n var $239 = eq2(activeMenu)(AppState.SettingsMenu.value);\n if ($239) {\n return setState(function (dictStrong) {\n return AppState[\"_activeMenu\"](dictStrong);\n })(AppState.NoMenu.value);\n };\n return setState(function (dictStrong) {\n return AppState[\"_activeMenu\"](dictStrong);\n })(AppState.SettingsMenu.value);\n });\n };\n};\nvar clickNoMenu = function (dictMonadAff) {\n return function (dictMonadState) {\n return AppState.setState(dictMonadState)(function (dictStrong) {\n return AppState[\"_activeMenu\"](dictStrong);\n })(AppState.NoMenu.value);\n };\n};\nvar clickFileMenu = function (dictMonadAff) {\n var bind = Control_Bind.bind(((dictMonadAff.MonadEffect0()).Monad0()).Bind1());\n return function (dictMonadState) {\n var setState = AppState.setState(dictMonadState);\n return bind(AppState.viewState(dictMonadState)(function (dictStrong) {\n return AppState[\"_activeMenu\"](dictStrong);\n }))(function (activeMenu) {\n var $240 = eq2(activeMenu)(AppState.FileMenu.value);\n if ($240) {\n return setState(function (dictStrong) {\n return AppState[\"_activeMenu\"](dictStrong);\n })(AppState.NoMenu.value);\n };\n return setState(function (dictStrong) {\n return AppState[\"_activeMenu\"](dictStrong);\n })(AppState.FileMenu.value);\n });\n };\n};\nexport {\n Initialize,\n ClickFileMenu,\n ClickSettingsMenu,\n ClickNoMenu,\n ToggleEditMode,\n ToggleTabNormalization,\n ToggleTabDozenalization,\n ToggleChordNormalization,\n ToggleChordDozenalization,\n CreateShortUrl,\n ToggleAutoscroll,\n IncreaseAutoscrollSpeed,\n DecreaseAutoscrollSpeed,\n IncreaseTransposition,\n DecreaseTransposition,\n FlatNoteOrientation,\n SharpNoteOrientation,\n DefaultNoteOrientation,\n ToggleSearch,\n SearchInput,\n ImportFromUrl,\n NoAction,\n initialize,\n clickNoMenu,\n clickSettingsMenu,\n clickFileMenu,\n increaseAutoscrollSpeed,\n decreaseAutoscrollSpeed,\n toggleTabNormalization,\n toggleTabDozenalization,\n toggleChordNormalization,\n toggleChordDozenalization,\n createAndCopyShortUrl,\n increaseTransposition,\n decreaseTransposition,\n setNoteOrientation,\n toggleSearch,\n searchInput,\n importFromUrl\n};\n","'use strict';\n\nfunction copyToClipboard(text) {\n return function () {\n window.prompt(\"Copy the following link:\", text);\n }\n}\n\nexport { copyToClipboard }\n","function wrap(method) {\n return function(d) {\n return function(num) {\n return method.apply(num, [d]);\n };\n };\n}\n\nexport const toPrecisionNative = wrap(Number.prototype.toPrecision);\nexport const toFixedNative = wrap(Number.prototype.toFixed);\nexport const toExponentialNative = wrap(Number.prototype.toExponential);\nexport function toString(num) { return num.toString(); }\n","// Generated by purs version 0.15.7\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nvar clamp = /* #__PURE__ */ Data_Ord.clamp(Data_Ord.ordInt);\nvar Precision = /* #__PURE__ */ (function () {\n function Precision(value0) {\n this.value0 = value0;\n };\n Precision.create = function (value0) {\n return new Precision(value0);\n };\n return Precision;\n})();\nvar Fixed = /* #__PURE__ */ (function () {\n function Fixed(value0) {\n this.value0 = value0;\n };\n Fixed.create = function (value0) {\n return new Fixed(value0);\n };\n return Fixed;\n})();\nvar Exponential = /* #__PURE__ */ (function () {\n function Exponential(value0) {\n this.value0 = value0;\n };\n Exponential.create = function (value0) {\n return new Exponential(value0);\n };\n return Exponential;\n})();\nvar toStringWith = function (v) {\n if (v instanceof Precision) {\n return $foreign.toPrecisionNative(v.value0);\n };\n if (v instanceof Fixed) {\n return $foreign.toFixedNative(v.value0);\n };\n if (v instanceof Exponential) {\n return $foreign.toExponentialNative(v.value0);\n };\n throw new Error(\"Failed pattern match at Data.Number.Format (line 59, column 1 - line 59, column 43): \" + [ v.constructor.name ]);\n};\nvar precision = /* #__PURE__ */ (function () {\n var $7 = clamp(1)(21);\n return function ($8) {\n return Precision.create($7($8));\n };\n})();\nvar fixed = /* #__PURE__ */ (function () {\n var $9 = clamp(0)(20);\n return function ($10) {\n return Fixed.create($9($10));\n };\n})();\nvar exponential = /* #__PURE__ */ (function () {\n var $11 = clamp(0)(20);\n return function ($12) {\n return Exponential.create($11($12));\n };\n})();\nexport {\n toString\n} from \"./foreign.js\";\nexport {\n precision,\n fixed,\n exponential,\n toStringWith\n};\n","// Generated by purs version 0.15.7\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nvar compare = /* #__PURE__ */ Data_Ord.compare(Data_Ord.ordInt);\nvar TimeoutId = function (x) {\n return x;\n};\nvar IntervalId = function (x) {\n return x;\n};\nvar setTimeout = $foreign.setTimeoutImpl;\nvar setInterval = $foreign.setIntervalImpl;\nvar eqTimeoutId = {\n eq: function (x) {\n return function (y) {\n return x === y;\n };\n }\n};\nvar ordTimeoutId = {\n compare: function (x) {\n return function (y) {\n return compare(x)(y);\n };\n },\n Eq0: function () {\n return eqTimeoutId;\n }\n};\nvar eqIntervalId = {\n eq: function (x) {\n return function (y) {\n return x === y;\n };\n }\n};\nvar ordIntervalId = {\n compare: function (x) {\n return function (y) {\n return compare(x)(y);\n };\n },\n Eq0: function () {\n return eqIntervalId;\n }\n};\nvar clearTimeout = $foreign.clearTimeoutImpl;\nvar clearInterval = $foreign.clearIntervalImpl;\nexport {\n setTimeout,\n clearTimeout,\n setInterval,\n clearInterval,\n eqTimeoutId,\n ordTimeoutId,\n eqIntervalId,\n ordIntervalId\n};\n","/* no-redeclare global exports */\nexport function setTimeoutImpl(ms) {\n return function (fn) {\n return function () {\n return setTimeout(fn, ms);\n };\n };\n}\n\nexport function clearTimeoutImpl(id) {\n return function () {\n clearTimeout(id);\n };\n}\n\nexport function setIntervalImpl(ms) {\n return function (fn) {\n return function () {\n return setInterval(fn, ms);\n };\n };\n}\n\nexport function clearIntervalImpl(id) {\n return function () {\n clearInterval(id);\n };\n}\n","// Generated by purs version 0.15.7\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nvar RefLabel = function (x) {\n return x;\n};\nvar RefUpdate = /* #__PURE__ */ (function () {\n function RefUpdate(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n RefUpdate.create = function (value0) {\n return function (value1) {\n return new RefUpdate(value0, value1);\n };\n };\n return RefUpdate;\n})();\nvar Action = /* #__PURE__ */ (function () {\n function Action(value0) {\n this.value0 = value0;\n };\n Action.create = function (value0) {\n return new Action(value0);\n };\n return Action;\n})();\nvar ordRefLabel = Data_Ord.ordString;\nvar newtypeRefLabel = {\n Coercible0: function () {\n return undefined;\n }\n};\nvar functorInput = {\n map: function (f) {\n return function (m) {\n if (m instanceof RefUpdate) {\n return new RefUpdate(m.value0, m.value1);\n };\n if (m instanceof Action) {\n return new Action(f(m.value0));\n };\n throw new Error(\"Failed pattern match at Halogen.Query.Input (line 0, column 0 - line 0, column 0): \" + [ m.constructor.name ]);\n };\n }\n};\nvar eqRefLabel = Data_Eq.eqString;\nexport {\n RefLabel,\n RefUpdate,\n Action,\n newtypeRefLabel,\n eqRefLabel,\n ordRefLabel,\n functorInput\n};\n","// Generated by purs version 0.15.7\nimport * as Unsafe_Coerce from \"../Unsafe.Coerce/index.js\";\nvar Step = /* #__PURE__ */ (function () {\n function Step(value0, value1, value2, value3) {\n this.value0 = value0;\n this.value1 = value1;\n this.value2 = value2;\n this.value3 = value3;\n };\n Step.create = function (value0) {\n return function (value1) {\n return function (value2) {\n return function (value3) {\n return new Step(value0, value1, value2, value3);\n };\n };\n };\n };\n return Step;\n})();\nvar unStep = Unsafe_Coerce.unsafeCoerce;\nvar step = function (v, a) {\n return v.value2(v.value1, a);\n};\nvar mkStep = Unsafe_Coerce.unsafeCoerce;\nvar halt = function (v) {\n return v.value3(v.value1);\n};\nvar extract = /* #__PURE__ */ unStep(function (v) {\n return v.value0;\n});\nexport {\n Step,\n mkStep,\n unStep,\n extract,\n step,\n halt\n};\n","// Generated by purs version 0.15.7\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Data_Bifunctor from \"../Data.Bifunctor/index.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nimport * as Unsafe_Coerce from \"../Unsafe.Coerce/index.js\";\nvar identity = /* #__PURE__ */ Control_Category.identity(Control_Category.categoryFn);\nvar map = /* #__PURE__ */ Data_Functor.map(Data_Functor.functorArray);\nvar map1 = /* #__PURE__ */ Data_Functor.map(Data_Tuple.functorTuple);\nvar Namespace = function (x) {\n return x;\n};\nvar ElemName = function (x) {\n return x;\n};\nvar Text = /* #__PURE__ */ (function () {\n function Text(value0) {\n this.value0 = value0;\n };\n Text.create = function (value0) {\n return new Text(value0);\n };\n return Text;\n})();\nvar Elem = /* #__PURE__ */ (function () {\n function Elem(value0, value1, value2, value3) {\n this.value0 = value0;\n this.value1 = value1;\n this.value2 = value2;\n this.value3 = value3;\n };\n Elem.create = function (value0) {\n return function (value1) {\n return function (value2) {\n return function (value3) {\n return new Elem(value0, value1, value2, value3);\n };\n };\n };\n };\n return Elem;\n})();\nvar Keyed = /* #__PURE__ */ (function () {\n function Keyed(value0, value1, value2, value3) {\n this.value0 = value0;\n this.value1 = value1;\n this.value2 = value2;\n this.value3 = value3;\n };\n Keyed.create = function (value0) {\n return function (value1) {\n return function (value2) {\n return function (value3) {\n return new Keyed(value0, value1, value2, value3);\n };\n };\n };\n };\n return Keyed;\n})();\nvar Widget = /* #__PURE__ */ (function () {\n function Widget(value0) {\n this.value0 = value0;\n };\n Widget.create = function (value0) {\n return new Widget(value0);\n };\n return Widget;\n})();\nvar Grafted = /* #__PURE__ */ (function () {\n function Grafted(value0) {\n this.value0 = value0;\n };\n Grafted.create = function (value0) {\n return new Grafted(value0);\n };\n return Grafted;\n})();\nvar Graft = /* #__PURE__ */ (function () {\n function Graft(value0, value1, value2) {\n this.value0 = value0;\n this.value1 = value1;\n this.value2 = value2;\n };\n Graft.create = function (value0) {\n return function (value1) {\n return function (value2) {\n return new Graft(value0, value1, value2);\n };\n };\n };\n return Graft;\n})();\nvar unGraft = function (f) {\n return function ($61) {\n return f($61);\n };\n};\nvar ordNamespace = Data_Ord.ordString;\nvar ordElemName = Data_Ord.ordString;\nvar newtypeNamespace = {\n Coercible0: function () {\n return undefined;\n }\n};\nvar newtypeElemName = {\n Coercible0: function () {\n return undefined;\n }\n};\nvar graft = Unsafe_Coerce.unsafeCoerce;\nvar functorGraft = {\n map: function (g) {\n return unGraft(function (v) {\n return graft(new Graft(v.value0, function ($62) {\n return g(v.value1($62));\n }, v.value2));\n });\n }\n};\nvar map2 = /* #__PURE__ */ Data_Functor.map(functorGraft);\nvar functorVDom = {\n map: function (v) {\n return function (v1) {\n if (v1 instanceof Text) {\n return new Text(v1.value0);\n };\n if (v1 instanceof Grafted) {\n return new Grafted(map2(v)(v1.value0));\n };\n return new Grafted(graft(new Graft(identity, v, v1)));\n };\n }\n};\nvar eqNamespace = Data_Eq.eqString;\nvar eqElemName = Data_Eq.eqString;\nvar bifunctorGraft = {\n bimap: function (f) {\n return function (g) {\n return unGraft(function (v) {\n return graft(new Graft(function ($63) {\n return f(v.value0($63));\n }, function ($64) {\n return g(v.value1($64));\n }, v.value2));\n });\n };\n }\n};\nvar bimap = /* #__PURE__ */ Data_Bifunctor.bimap(bifunctorGraft);\nvar bifunctorVDom = {\n bimap: function (v) {\n return function (v1) {\n return function (v2) {\n if (v2 instanceof Text) {\n return new Text(v2.value0);\n };\n if (v2 instanceof Grafted) {\n return new Grafted(bimap(v)(v1)(v2.value0));\n };\n return new Grafted(graft(new Graft(v, v1, v2)));\n };\n };\n }\n};\nvar runGraft = /* #__PURE__ */ unGraft(function (v) {\n var go = function (v2) {\n if (v2 instanceof Text) {\n return new Text(v2.value0);\n };\n if (v2 instanceof Elem) {\n return new Elem(v2.value0, v2.value1, v.value0(v2.value2), map(go)(v2.value3));\n };\n if (v2 instanceof Keyed) {\n return new Keyed(v2.value0, v2.value1, v.value0(v2.value2), map(map1(go))(v2.value3));\n };\n if (v2 instanceof Widget) {\n return new Widget(v.value1(v2.value0));\n };\n if (v2 instanceof Grafted) {\n return new Grafted(bimap(v.value0)(v.value1)(v2.value0));\n };\n throw new Error(\"Failed pattern match at Halogen.VDom.Types (line 86, column 7 - line 86, column 27): \" + [ v2.constructor.name ]);\n };\n return go(v.value2);\n});\nvar renderWidget = function (f) {\n return function (g) {\n return function (v) {\n if (v instanceof Text) {\n return new Text(v.value0);\n };\n if (v instanceof Elem) {\n return new Elem(v.value0, v.value1, f(v.value2), map(renderWidget(f)(g))(v.value3));\n };\n if (v instanceof Keyed) {\n return new Keyed(v.value0, v.value1, f(v.value2), map(map1(renderWidget(f)(g)))(v.value3));\n };\n if (v instanceof Widget) {\n return g(v.value0);\n };\n if (v instanceof Grafted) {\n return renderWidget(f)(g)(runGraft(v.value0));\n };\n throw new Error(\"Failed pattern match at Halogen.VDom.Types (line 48, column 20 - line 53, column 48): \" + [ v.constructor.name ]);\n };\n };\n};\nexport {\n Text,\n Elem,\n Keyed,\n Widget,\n Grafted,\n renderWidget,\n Graft,\n graft,\n unGraft,\n runGraft,\n ElemName,\n Namespace,\n functorVDom,\n bifunctorVDom,\n functorGraft,\n bifunctorGraft,\n newtypeElemName,\n eqElemName,\n ordElemName,\n newtypeNamespace,\n eqNamespace,\n ordNamespace\n};\n","\"use strict\";\n\nexport function unsafeGetAny(key, obj) {\n return obj[key];\n}\n\nexport function unsafeHasAny(key, obj) {\n return obj.hasOwnProperty(key);\n}\n\nexport function unsafeSetAny(key, val, obj) {\n obj[key] = val;\n}\n\nexport function unsafeDeleteAny(key, obj) {\n delete obj[key];\n}\n\nexport function forE(a, f) {\n var b = [];\n for (var i = 0; i < a.length; i++) {\n b.push(f(i, a[i]));\n }\n return b;\n}\n\nexport function forEachE(a, f) {\n for (var i = 0; i < a.length; i++) {\n f(a[i]);\n }\n}\n\nexport function forInE(o, f) {\n var ks = Object.keys(o);\n for (var i = 0; i < ks.length; i++) {\n var k = ks[i];\n f(k, o[k]);\n }\n}\n\nexport function replicateE(n, f) {\n for (var i = 0; i < n; i++) {\n f();\n }\n}\n\nexport function diffWithIxE(a1, a2, f1, f2, f3) {\n var a3 = [];\n var l1 = a1.length;\n var l2 = a2.length;\n var i = 0;\n while (1) {\n if (i < l1) {\n if (i < l2) {\n a3.push(f1(i, a1[i], a2[i]));\n } else {\n f2(i, a1[i]);\n }\n } else if (i < l2) {\n a3.push(f3(i, a2[i]));\n } else {\n break;\n }\n i++;\n }\n return a3;\n}\n\nexport function strMapWithIxE(as, fk, f) {\n var o = {};\n for (var i = 0; i < as.length; i++) {\n var a = as[i];\n var k = fk(a);\n o[k] = f(k, i, a);\n }\n return o;\n}\n\nexport function diffWithKeyAndIxE(o1, as, fk, f1, f2, f3) {\n var o2 = {};\n for (var i = 0; i < as.length; i++) {\n var a = as[i];\n var k = fk(a);\n if (o1.hasOwnProperty(k)) {\n o2[k] = f1(k, i, o1[k], a);\n } else {\n o2[k] = f3(k, i, a);\n }\n }\n for (var k in o1) {\n if (k in o2) {\n continue;\n }\n f2(k, o1[k]);\n }\n return o2;\n}\n\nexport function refEq(a, b) {\n return a === b;\n}\n\nexport function createTextNode(s, doc) {\n return doc.createTextNode(s);\n}\n\nexport function setTextContent(s, n) {\n n.textContent = s;\n}\n\nexport function createElement(ns, name, doc) {\n if (ns != null) {\n return doc.createElementNS(ns, name);\n } else {\n return doc.createElement(name)\n }\n}\n\nexport function insertChildIx(i, a, b) {\n var n = b.childNodes.item(i) || null;\n if (n !== a) {\n b.insertBefore(a, n);\n }\n}\n\nexport function removeChild(a, b) {\n if (b && a.parentNode === b) {\n b.removeChild(a);\n }\n}\n\nexport function parentNode(a) {\n return a.parentNode;\n}\n\nexport function setAttribute(ns, attr, val, el) {\n if (ns != null) {\n el.setAttributeNS(ns, attr, val);\n } else {\n el.setAttribute(attr, val);\n }\n}\n\nexport function removeAttribute(ns, attr, el) {\n if (ns != null) {\n el.removeAttributeNS(ns, attr);\n } else {\n el.removeAttribute(attr);\n }\n}\n\nexport function hasAttribute(ns, attr, el) {\n if (ns != null) {\n return el.hasAttributeNS(ns, attr);\n } else {\n return el.hasAttribute(attr);\n }\n}\n\nexport function addEventListener(ev, listener, el) {\n el.addEventListener(ev, listener, false);\n}\n\nexport function removeEventListener(ev, listener, el) {\n el.removeEventListener(ev, listener, false);\n}\n\nexport var jsUndefined = void 0;\n","// Generated by purs version 0.15.7\nimport * as $foreign from \"./foreign.js\";\nimport * as Foreign_Object_ST from \"../Foreign.Object.ST/index.js\";\nimport * as Unsafe_Coerce from \"../Unsafe.Coerce/index.js\";\nvar unsafeLookup = $foreign.unsafeGetAny;\nvar unsafeFreeze = Unsafe_Coerce.unsafeCoerce;\nvar pokeMutMap = $foreign.unsafeSetAny;\nvar newMutMap = Foreign_Object_ST[\"new\"];\nvar deleteMutMap = $foreign.unsafeDeleteAny;\nexport {\n unsafeGetAny,\n unsafeHasAny,\n unsafeSetAny,\n unsafeDeleteAny,\n forE,\n forEachE,\n forInE,\n replicateE,\n diffWithIxE,\n diffWithKeyAndIxE,\n strMapWithIxE,\n refEq,\n createTextNode,\n setTextContent,\n createElement,\n insertChildIx,\n removeChild,\n parentNode,\n setAttribute,\n removeAttribute,\n hasAttribute,\n addEventListener,\n removeEventListener,\n jsUndefined\n} from \"./foreign.js\";\nexport {\n newMutMap,\n pokeMutMap,\n deleteMutMap,\n unsafeFreeze,\n unsafeLookup\n};\n","// Generated by purs version 0.15.7\nimport * as Data_Array from \"../Data.Array/index.js\";\nimport * as Data_Boolean from \"../Data.Boolean/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Nullable from \"../Data.Nullable/index.js\";\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nimport * as Halogen_VDom_Machine from \"../Halogen.VDom.Machine/index.js\";\nimport * as Halogen_VDom_Types from \"../Halogen.VDom.Types/index.js\";\nimport * as Halogen_VDom_Util from \"../Halogen.VDom.Util/index.js\";\nimport * as Web_DOM_Element from \"../Web.DOM.Element/index.js\";\nvar $runtime_lazy = function (name, moduleName, init) {\n var state = 0;\n var val;\n return function (lineNumber) {\n if (state === 2) return val;\n if (state === 1) throw new ReferenceError(name + \" was needed before it finished initializing (module \" + moduleName + \", line \" + lineNumber + \")\", moduleName, lineNumber);\n state = 1;\n val = init();\n state = 2;\n return val;\n };\n};\nvar VDomSpec = function (x) {\n return x;\n};\nvar haltWidget = function (v) {\n return Halogen_VDom_Machine.halt(v.widget);\n};\nvar $lazy_patchWidget = /* #__PURE__ */ $runtime_lazy(\"patchWidget\", \"Halogen.VDom.DOM\", function () {\n return function (state, vdom) {\n if (vdom instanceof Halogen_VDom_Types.Grafted) {\n return $lazy_patchWidget(291)(state, Halogen_VDom_Types.runGraft(vdom.value0));\n };\n if (vdom instanceof Halogen_VDom_Types.Widget) {\n var res = Halogen_VDom_Machine.step(state.widget, vdom.value0);\n var res$prime = Halogen_VDom_Machine.unStep(function (v) {\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(v.value0, {\n build: state.build,\n widget: res\n }, $lazy_patchWidget(296), haltWidget));\n })(res);\n return res$prime;\n };\n haltWidget(state);\n return state.build(vdom);\n };\n});\nvar patchWidget = /* #__PURE__ */ $lazy_patchWidget(286);\nvar haltText = function (v) {\n var parent = Halogen_VDom_Util.parentNode(v.node);\n return Halogen_VDom_Util.removeChild(v.node, parent);\n};\nvar $lazy_patchText = /* #__PURE__ */ $runtime_lazy(\"patchText\", \"Halogen.VDom.DOM\", function () {\n return function (state, vdom) {\n if (vdom instanceof Halogen_VDom_Types.Grafted) {\n return $lazy_patchText(82)(state, Halogen_VDom_Types.runGraft(vdom.value0));\n };\n if (vdom instanceof Halogen_VDom_Types.Text) {\n if (state.value === vdom.value0) {\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(state.node, state, $lazy_patchText(85), haltText));\n };\n if (Data_Boolean.otherwise) {\n var nextState = {\n build: state.build,\n node: state.node,\n value: vdom.value0\n };\n Halogen_VDom_Util.setTextContent(vdom.value0, state.node);\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(state.node, nextState, $lazy_patchText(89), haltText));\n };\n };\n haltText(state);\n return state.build(vdom);\n };\n});\nvar patchText = /* #__PURE__ */ $lazy_patchText(77);\nvar haltKeyed = function (v) {\n var parent = Halogen_VDom_Util.parentNode(v.node);\n Halogen_VDom_Util.removeChild(v.node, parent);\n Halogen_VDom_Util.forInE(v.children, function (v1, s) {\n return Halogen_VDom_Machine.halt(s);\n });\n return Halogen_VDom_Machine.halt(v.attrs);\n};\nvar haltElem = function (v) {\n var parent = Halogen_VDom_Util.parentNode(v.node);\n Halogen_VDom_Util.removeChild(v.node, parent);\n Halogen_VDom_Util.forEachE(v.children, Halogen_VDom_Machine.halt);\n return Halogen_VDom_Machine.halt(v.attrs);\n};\nvar eqElemSpec = function (ns1, v, ns2, v1) {\n var $63 = v === v1;\n if ($63) {\n if (ns1 instanceof Data_Maybe.Just && (ns2 instanceof Data_Maybe.Just && ns1.value0 === ns2.value0)) {\n return true;\n };\n if (ns1 instanceof Data_Maybe.Nothing && ns2 instanceof Data_Maybe.Nothing) {\n return true;\n };\n return false;\n };\n return false;\n};\nvar $lazy_patchElem = /* #__PURE__ */ $runtime_lazy(\"patchElem\", \"Halogen.VDom.DOM\", function () {\n return function (state, vdom) {\n if (vdom instanceof Halogen_VDom_Types.Grafted) {\n return $lazy_patchElem(135)(state, Halogen_VDom_Types.runGraft(vdom.value0));\n };\n if (vdom instanceof Halogen_VDom_Types.Elem && eqElemSpec(state.ns, state.name, vdom.value0, vdom.value1)) {\n var v = Data_Array.length(vdom.value3);\n var v1 = Data_Array.length(state.children);\n if (v1 === 0 && v === 0) {\n var attrs2 = Halogen_VDom_Machine.step(state.attrs, vdom.value2);\n var nextState = {\n build: state.build,\n node: state.node,\n attrs: attrs2,\n ns: vdom.value0,\n name: vdom.value1,\n children: state.children\n };\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(state.node, nextState, $lazy_patchElem(149), haltElem));\n };\n var onThis = function (v2, s) {\n return Halogen_VDom_Machine.halt(s);\n };\n var onThese = function (ix, s, v2) {\n var res = Halogen_VDom_Machine.step(s, v2);\n Halogen_VDom_Util.insertChildIx(ix, Halogen_VDom_Machine.extract(res), state.node);\n return res;\n };\n var onThat = function (ix, v2) {\n var res = state.build(v2);\n Halogen_VDom_Util.insertChildIx(ix, Halogen_VDom_Machine.extract(res), state.node);\n return res;\n };\n var children2 = Halogen_VDom_Util.diffWithIxE(state.children, vdom.value3, onThese, onThis, onThat);\n var attrs2 = Halogen_VDom_Machine.step(state.attrs, vdom.value2);\n var nextState = {\n build: state.build,\n node: state.node,\n attrs: attrs2,\n ns: vdom.value0,\n name: vdom.value1,\n children: children2\n };\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(state.node, nextState, $lazy_patchElem(172), haltElem));\n };\n haltElem(state);\n return state.build(vdom);\n };\n});\nvar patchElem = /* #__PURE__ */ $lazy_patchElem(130);\nvar $lazy_patchKeyed = /* #__PURE__ */ $runtime_lazy(\"patchKeyed\", \"Halogen.VDom.DOM\", function () {\n return function (state, vdom) {\n if (vdom instanceof Halogen_VDom_Types.Grafted) {\n return $lazy_patchKeyed(222)(state, Halogen_VDom_Types.runGraft(vdom.value0));\n };\n if (vdom instanceof Halogen_VDom_Types.Keyed && eqElemSpec(state.ns, state.name, vdom.value0, vdom.value1)) {\n var v = Data_Array.length(vdom.value3);\n if (state.length === 0 && v === 0) {\n var attrs2 = Halogen_VDom_Machine.step(state.attrs, vdom.value2);\n var nextState = {\n build: state.build,\n node: state.node,\n attrs: attrs2,\n ns: vdom.value0,\n name: vdom.value1,\n children: state.children,\n length: 0\n };\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(state.node, nextState, $lazy_patchKeyed(237), haltKeyed));\n };\n var onThis = function (v2, s) {\n return Halogen_VDom_Machine.halt(s);\n };\n var onThese = function (v2, ix$prime, s, v3) {\n var res = Halogen_VDom_Machine.step(s, v3.value1);\n Halogen_VDom_Util.insertChildIx(ix$prime, Halogen_VDom_Machine.extract(res), state.node);\n return res;\n };\n var onThat = function (v2, ix, v3) {\n var res = state.build(v3.value1);\n Halogen_VDom_Util.insertChildIx(ix, Halogen_VDom_Machine.extract(res), state.node);\n return res;\n };\n var children2 = Halogen_VDom_Util.diffWithKeyAndIxE(state.children, vdom.value3, Data_Tuple.fst, onThese, onThis, onThat);\n var attrs2 = Halogen_VDom_Machine.step(state.attrs, vdom.value2);\n var nextState = {\n build: state.build,\n node: state.node,\n attrs: attrs2,\n ns: vdom.value0,\n name: vdom.value1,\n children: children2,\n length: v\n };\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(state.node, nextState, $lazy_patchKeyed(261), haltKeyed));\n };\n haltKeyed(state);\n return state.build(vdom);\n };\n});\nvar patchKeyed = /* #__PURE__ */ $lazy_patchKeyed(217);\nvar buildWidget = function (v, build, w) {\n var res = v.buildWidget(v)(w);\n var res$prime = Halogen_VDom_Machine.unStep(function (v1) {\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(v1.value0, {\n build: build,\n widget: res\n }, patchWidget, haltWidget));\n })(res);\n return res$prime;\n};\nvar buildText = function (v, build, s) {\n var node = Halogen_VDom_Util.createTextNode(s, v.document);\n var state = {\n build: build,\n node: node,\n value: s\n };\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(node, state, patchText, haltText));\n};\nvar buildKeyed = function (v, build, ns1, name1, as1, ch1) {\n var el = Halogen_VDom_Util.createElement(Data_Nullable.toNullable(ns1), name1, v.document);\n var node = Web_DOM_Element.toNode(el);\n var onChild = function (v1, ix, v2) {\n var res = build(v2.value1);\n Halogen_VDom_Util.insertChildIx(ix, Halogen_VDom_Machine.extract(res), node);\n return res;\n };\n var children = Halogen_VDom_Util.strMapWithIxE(ch1, Data_Tuple.fst, onChild);\n var attrs = v.buildAttributes(el)(as1);\n var state = {\n build: build,\n node: node,\n attrs: attrs,\n ns: ns1,\n name: name1,\n children: children,\n length: Data_Array.length(ch1)\n };\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(node, state, patchKeyed, haltKeyed));\n};\nvar buildElem = function (v, build, ns1, name1, as1, ch1) {\n var el = Halogen_VDom_Util.createElement(Data_Nullable.toNullable(ns1), name1, v.document);\n var node = Web_DOM_Element.toNode(el);\n var onChild = function (ix, child) {\n var res = build(child);\n Halogen_VDom_Util.insertChildIx(ix, Halogen_VDom_Machine.extract(res), node);\n return res;\n };\n var children = Halogen_VDom_Util.forE(ch1, onChild);\n var attrs = v.buildAttributes(el)(as1);\n var state = {\n build: build,\n node: node,\n attrs: attrs,\n ns: ns1,\n name: name1,\n children: children\n };\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(node, state, patchElem, haltElem));\n};\nvar buildVDom = function (spec) {\n var $lazy_build = $runtime_lazy(\"build\", \"Halogen.VDom.DOM\", function () {\n return function (v) {\n if (v instanceof Halogen_VDom_Types.Text) {\n return buildText(spec, $lazy_build(59), v.value0);\n };\n if (v instanceof Halogen_VDom_Types.Elem) {\n return buildElem(spec, $lazy_build(60), v.value0, v.value1, v.value2, v.value3);\n };\n if (v instanceof Halogen_VDom_Types.Keyed) {\n return buildKeyed(spec, $lazy_build(61), v.value0, v.value1, v.value2, v.value3);\n };\n if (v instanceof Halogen_VDom_Types.Widget) {\n return buildWidget(spec, $lazy_build(62), v.value0);\n };\n if (v instanceof Halogen_VDom_Types.Grafted) {\n return $lazy_build(63)(Halogen_VDom_Types.runGraft(v.value0));\n };\n throw new Error(\"Failed pattern match at Halogen.VDom.DOM (line 58, column 27 - line 63, column 52): \" + [ v.constructor.name ]);\n };\n });\n var build = $lazy_build(58);\n return build;\n};\nexport {\n VDomSpec,\n buildVDom,\n buildText,\n buildElem,\n buildKeyed,\n buildWidget\n};\n","export function eventListener(fn) {\n return function () {\n return function (event) {\n return fn(event)();\n };\n };\n}\n\nexport function addEventListenerWithOptions(type) {\n return function (listener) {\n return function (options) {\n return function (target) {\n return function () {\n return target.addEventListener(type, listener, options);\n };\n };\n };\n };\n}\n\nexport function addEventListener(type) {\n return function (listener) {\n return function (useCapture) {\n return function (target) {\n return function () {\n return target.addEventListener(type, listener, useCapture);\n };\n };\n };\n };\n}\n\nexport function removeEventListener(type) {\n return function (listener) {\n return function (useCapture) {\n return function (target) {\n return function () {\n return target.removeEventListener(type, listener, useCapture);\n };\n };\n };\n };\n}\n\nexport function dispatchEvent(event) {\n return function (target) {\n return function () {\n return target.dispatchEvent(event);\n };\n };\n}\n","// Generated by purs version 0.15.7\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Nullable from \"../Data.Nullable/index.js\";\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nimport * as Effect_Ref from \"../Effect.Ref/index.js\";\nimport * as Foreign from \"../Foreign/index.js\";\nimport * as Foreign_Object from \"../Foreign.Object/index.js\";\nimport * as Halogen_VDom_Machine from \"../Halogen.VDom.Machine/index.js\";\nimport * as Halogen_VDom_Util from \"../Halogen.VDom.Util/index.js\";\nimport * as Unsafe_Coerce from \"../Unsafe.Coerce/index.js\";\nimport * as Web_Event_EventTarget from \"../Web.Event.EventTarget/index.js\";\nvar $runtime_lazy = function (name, moduleName, init) {\n var state = 0;\n var val;\n return function (lineNumber) {\n if (state === 2) return val;\n if (state === 1) throw new ReferenceError(name + \" was needed before it finished initializing (module \" + moduleName + \", line \" + lineNumber + \")\", moduleName, lineNumber);\n state = 1;\n val = init();\n state = 2;\n return val;\n };\n};\nvar map = /* #__PURE__ */ Data_Functor.map(Data_Functor.functorFn);\nvar map1 = /* #__PURE__ */ Data_Functor.map(Data_Maybe.functorMaybe);\nvar Created = /* #__PURE__ */ (function () {\n function Created(value0) {\n this.value0 = value0;\n };\n Created.create = function (value0) {\n return new Created(value0);\n };\n return Created;\n})();\nvar Removed = /* #__PURE__ */ (function () {\n function Removed(value0) {\n this.value0 = value0;\n };\n Removed.create = function (value0) {\n return new Removed(value0);\n };\n return Removed;\n})();\nvar Attribute = /* #__PURE__ */ (function () {\n function Attribute(value0, value1, value2) {\n this.value0 = value0;\n this.value1 = value1;\n this.value2 = value2;\n };\n Attribute.create = function (value0) {\n return function (value1) {\n return function (value2) {\n return new Attribute(value0, value1, value2);\n };\n };\n };\n return Attribute;\n})();\nvar Property = /* #__PURE__ */ (function () {\n function Property(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n Property.create = function (value0) {\n return function (value1) {\n return new Property(value0, value1);\n };\n };\n return Property;\n})();\nvar Handler = /* #__PURE__ */ (function () {\n function Handler(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n Handler.create = function (value0) {\n return function (value1) {\n return new Handler(value0, value1);\n };\n };\n return Handler;\n})();\nvar Ref = /* #__PURE__ */ (function () {\n function Ref(value0) {\n this.value0 = value0;\n };\n Ref.create = function (value0) {\n return new Ref(value0);\n };\n return Ref;\n})();\nvar unsafeGetProperty = Halogen_VDom_Util.unsafeGetAny;\nvar setProperty = Halogen_VDom_Util.unsafeSetAny;\nvar removeProperty = function (key, el) {\n var v = Halogen_VDom_Util.hasAttribute(Data_Nullable[\"null\"], key, el);\n if (v) {\n return Halogen_VDom_Util.removeAttribute(Data_Nullable[\"null\"], key, el);\n };\n var v1 = Foreign.typeOf(Halogen_VDom_Util.unsafeGetAny(key, el));\n if (v1 === \"string\") {\n return Halogen_VDom_Util.unsafeSetAny(key, \"\", el);\n };\n if (key === \"rowSpan\") {\n return Halogen_VDom_Util.unsafeSetAny(key, 1, el);\n };\n if (key === \"colSpan\") {\n return Halogen_VDom_Util.unsafeSetAny(key, 1, el);\n };\n return Halogen_VDom_Util.unsafeSetAny(key, Halogen_VDom_Util.jsUndefined, el);\n};\nvar propToStrKey = function (v) {\n if (v instanceof Attribute && v.value0 instanceof Data_Maybe.Just) {\n return \"attr/\" + (v.value0.value0 + (\":\" + v.value1));\n };\n if (v instanceof Attribute) {\n return \"attr/:\" + v.value1;\n };\n if (v instanceof Property) {\n return \"prop/\" + v.value0;\n };\n if (v instanceof Handler) {\n return \"handler/\" + v.value0;\n };\n if (v instanceof Ref) {\n return \"ref\";\n };\n throw new Error(\"Failed pattern match at Halogen.VDom.DOM.Prop (line 182, column 16 - line 187, column 16): \" + [ v.constructor.name ]);\n};\nvar propFromString = Unsafe_Coerce.unsafeCoerce;\nvar propFromNumber = Unsafe_Coerce.unsafeCoerce;\nvar propFromInt = Unsafe_Coerce.unsafeCoerce;\nvar propFromBoolean = Unsafe_Coerce.unsafeCoerce;\nvar functorProp = {\n map: function (v) {\n return function (v1) {\n if (v1 instanceof Handler) {\n return new Handler(v1.value0, map(map1(v))(v1.value1));\n };\n if (v1 instanceof Ref) {\n return new Ref(map(map1(v))(v1.value0));\n };\n return v1;\n };\n }\n};\nvar functorElemRef = {\n map: function (v) {\n return function (v1) {\n if (v1 instanceof Created) {\n return new Created(v(v1.value0));\n };\n if (v1 instanceof Removed) {\n return new Removed(v(v1.value0));\n };\n throw new Error(\"Failed pattern match at Halogen.VDom.DOM.Prop (line 49, column 1 - line 51, column 36): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n }\n};\nvar buildProp = function (emit) {\n return function (el) {\n var removeProp = function (prevEvents) {\n return function (v, v1) {\n if (v1 instanceof Attribute) {\n return Halogen_VDom_Util.removeAttribute(Data_Nullable.toNullable(v1.value0), v1.value1, el);\n };\n if (v1 instanceof Property) {\n return removeProperty(v1.value0, el);\n };\n if (v1 instanceof Handler) {\n var handler = Halogen_VDom_Util.unsafeLookup(v1.value0, prevEvents);\n return Halogen_VDom_Util.removeEventListener(v1.value0, Data_Tuple.fst(handler), el);\n };\n if (v1 instanceof Ref) {\n return Data_Unit.unit;\n };\n throw new Error(\"Failed pattern match at Halogen.VDom.DOM.Prop (line 169, column 5 - line 179, column 18): \" + [ v1.constructor.name ]);\n };\n };\n var mbEmit = function (v) {\n if (v instanceof Data_Maybe.Just) {\n return emit(v.value0)();\n };\n return Data_Unit.unit;\n };\n var haltProp = function (state) {\n var v = Foreign_Object.lookup(\"ref\")(state.props);\n if (v instanceof Data_Maybe.Just && v.value0 instanceof Ref) {\n return mbEmit(v.value0.value0(new Removed(el)));\n };\n return Data_Unit.unit;\n };\n var diffProp = function (prevEvents, events) {\n return function (v, v1, v11, v2) {\n if (v11 instanceof Attribute && v2 instanceof Attribute) {\n var $66 = v11.value2 === v2.value2;\n if ($66) {\n return v2;\n };\n Halogen_VDom_Util.setAttribute(Data_Nullable.toNullable(v2.value0), v2.value1, v2.value2, el);\n return v2;\n };\n if (v11 instanceof Property && v2 instanceof Property) {\n var v4 = Halogen_VDom_Util.refEq(v11.value1, v2.value1);\n if (v4) {\n return v2;\n };\n if (v2.value0 === \"value\") {\n var elVal = unsafeGetProperty(\"value\", el);\n var $75 = Halogen_VDom_Util.refEq(elVal, v2.value1);\n if ($75) {\n return v2;\n };\n setProperty(v2.value0, v2.value1, el);\n return v2;\n };\n setProperty(v2.value0, v2.value1, el);\n return v2;\n };\n if (v11 instanceof Handler && v2 instanceof Handler) {\n var handler = Halogen_VDom_Util.unsafeLookup(v2.value0, prevEvents);\n Effect_Ref.write(v2.value1)(Data_Tuple.snd(handler))();\n Halogen_VDom_Util.pokeMutMap(v2.value0, handler, events);\n return v2;\n };\n return v2;\n };\n };\n var applyProp = function (events) {\n return function (v, v1, v2) {\n if (v2 instanceof Attribute) {\n Halogen_VDom_Util.setAttribute(Data_Nullable.toNullable(v2.value0), v2.value1, v2.value2, el);\n return v2;\n };\n if (v2 instanceof Property) {\n setProperty(v2.value0, v2.value1, el);\n return v2;\n };\n if (v2 instanceof Handler) {\n var v3 = Halogen_VDom_Util.unsafeGetAny(v2.value0, events);\n if (Halogen_VDom_Util.unsafeHasAny(v2.value0, events)) {\n Effect_Ref.write(v2.value1)(Data_Tuple.snd(v3))();\n return v2;\n };\n var ref = Effect_Ref[\"new\"](v2.value1)();\n var listener = Web_Event_EventTarget.eventListener(function (ev) {\n return function __do() {\n var f$prime = Effect_Ref.read(ref)();\n return mbEmit(f$prime(ev));\n };\n })();\n Halogen_VDom_Util.pokeMutMap(v2.value0, new Data_Tuple.Tuple(listener, ref), events);\n Halogen_VDom_Util.addEventListener(v2.value0, listener, el);\n return v2;\n };\n if (v2 instanceof Ref) {\n mbEmit(v2.value0(new Created(el)));\n return v2;\n };\n throw new Error(\"Failed pattern match at Halogen.VDom.DOM.Prop (line 113, column 5 - line 135, column 15): \" + [ v2.constructor.name ]);\n };\n };\n var $lazy_patchProp = $runtime_lazy(\"patchProp\", \"Halogen.VDom.DOM.Prop\", function () {\n return function (state, ps2) {\n var events = Halogen_VDom_Util.newMutMap();\n var onThis = removeProp(state.events);\n var onThese = diffProp(state.events, events);\n var onThat = applyProp(events);\n var props = Halogen_VDom_Util.diffWithKeyAndIxE(state.props, ps2, propToStrKey, onThese, onThis, onThat);\n var nextState = {\n events: Halogen_VDom_Util.unsafeFreeze(events),\n props: props\n };\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(Data_Unit.unit, nextState, $lazy_patchProp(100), haltProp));\n };\n });\n var patchProp = $lazy_patchProp(87);\n var renderProp = function (ps1) {\n var events = Halogen_VDom_Util.newMutMap();\n var ps1$prime = Halogen_VDom_Util.strMapWithIxE(ps1, propToStrKey, applyProp(events));\n var state = {\n events: Halogen_VDom_Util.unsafeFreeze(events),\n props: ps1$prime\n };\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(Data_Unit.unit, state, patchProp, haltProp));\n };\n return renderProp;\n };\n};\nexport {\n Attribute,\n Property,\n Handler,\n Ref,\n Created,\n Removed,\n propFromString,\n propFromBoolean,\n propFromInt,\n propFromNumber,\n buildProp,\n functorProp,\n functorElemRef\n};\n","// Generated by purs version 0.15.7\nimport * as DOM_HTML_Indexed_AutocompleteType from \"../DOM.HTML.Indexed.AutocompleteType/index.js\";\nimport * as DOM_HTML_Indexed_ButtonType from \"../DOM.HTML.Indexed.ButtonType/index.js\";\nimport * as DOM_HTML_Indexed_CrossOriginValue from \"../DOM.HTML.Indexed.CrossOriginValue/index.js\";\nimport * as DOM_HTML_Indexed_DirValue from \"../DOM.HTML.Indexed.DirValue/index.js\";\nimport * as DOM_HTML_Indexed_FormMethod from \"../DOM.HTML.Indexed.FormMethod/index.js\";\nimport * as DOM_HTML_Indexed_InputAcceptType from \"../DOM.HTML.Indexed.InputAcceptType/index.js\";\nimport * as DOM_HTML_Indexed_InputType from \"../DOM.HTML.Indexed.InputType/index.js\";\nimport * as DOM_HTML_Indexed_KindValue from \"../DOM.HTML.Indexed.KindValue/index.js\";\nimport * as DOM_HTML_Indexed_MenuType from \"../DOM.HTML.Indexed.MenuType/index.js\";\nimport * as DOM_HTML_Indexed_MenuitemType from \"../DOM.HTML.Indexed.MenuitemType/index.js\";\nimport * as DOM_HTML_Indexed_OrderedListType from \"../DOM.HTML.Indexed.OrderedListType/index.js\";\nimport * as DOM_HTML_Indexed_PreloadValue from \"../DOM.HTML.Indexed.PreloadValue/index.js\";\nimport * as DOM_HTML_Indexed_ScopeValue from \"../DOM.HTML.Indexed.ScopeValue/index.js\";\nimport * as DOM_HTML_Indexed_StepValue from \"../DOM.HTML.Indexed.StepValue/index.js\";\nimport * as DOM_HTML_Indexed_WrapValue from \"../DOM.HTML.Indexed.WrapValue/index.js\";\nimport * as Data_Bifunctor from \"../Data.Bifunctor/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Newtype from \"../Data.Newtype/index.js\";\nimport * as Halogen_Query_Input from \"../Halogen.Query.Input/index.js\";\nimport * as Halogen_VDom from \"../Halogen.VDom/index.js\";\nimport * as Halogen_VDom_DOM_Prop from \"../Halogen.VDom.DOM.Prop/index.js\";\nimport * as Halogen_VDom_Types from \"../Halogen.VDom.Types/index.js\";\nimport * as Web_HTML_Common from \"../Web.HTML.Common/index.js\";\nvar map = /* #__PURE__ */ Data_Functor.map(Data_Functor.functorArray);\nvar map1 = /* #__PURE__ */ Data_Functor.map(Halogen_VDom_DOM_Prop.functorProp);\nvar map2 = /* #__PURE__ */ Data_Functor.map(Halogen_Query_Input.functorInput);\nvar un = /* #__PURE__ */ Data_Newtype.un();\nvar bimap = /* #__PURE__ */ Data_Bifunctor.bimap(Halogen_VDom_Types.bifunctorVDom);\nvar HTML = function (x) {\n return x;\n};\nvar widget = function ($28) {\n return HTML(Halogen_VDom_Types.Widget.create($28));\n};\nvar toPropValue = function (dict) {\n return dict.toPropValue;\n};\nvar text = function ($29) {\n return HTML(Halogen_VDom_Types.Text.create($29));\n};\nvar ref = function (f) {\n return new Halogen_VDom_DOM_Prop.Ref(function ($30) {\n return f((function (v) {\n if (v instanceof Halogen_VDom_DOM_Prop.Created) {\n return new Data_Maybe.Just(v.value0);\n };\n if (v instanceof Halogen_VDom_DOM_Prop.Removed) {\n return Data_Maybe.Nothing.value;\n };\n throw new Error(\"Failed pattern match at Halogen.HTML.Core (line 109, column 21 - line 111, column 23): \" + [ v.constructor.name ]);\n })($30));\n });\n};\nvar prop = function (dictIsProp) {\n var toPropValue1 = toPropValue(dictIsProp);\n return function (v) {\n var $31 = Halogen_VDom_DOM_Prop.Property.create(v);\n return function ($32) {\n return $31(toPropValue1($32));\n };\n };\n};\nvar newtypeHTML = {\n Coercible0: function () {\n return undefined;\n }\n};\nvar renderWidget = function (f) {\n return function (g) {\n return function (v) {\n return Halogen_VDom_Types.renderWidget(map(map1(map2(f))))((function () {\n var $33 = un(HTML);\n return function ($34) {\n return $33(g($34));\n };\n })())(v);\n };\n };\n};\nvar keyed = function (ns) {\n return function (name) {\n return function (props) {\n return function (children) {\n return new Halogen_VDom_Types.Keyed(ns, name, props, children);\n };\n };\n };\n};\nvar isPropWrapValue = {\n toPropValue: function ($35) {\n return Halogen_VDom_DOM_Prop.propFromString(DOM_HTML_Indexed_WrapValue.renderWrapValue($35));\n }\n};\nvar isPropString = {\n toPropValue: Halogen_VDom_DOM_Prop.propFromString\n};\nvar isPropStepValue = {\n toPropValue: function ($36) {\n return Halogen_VDom_DOM_Prop.propFromString(DOM_HTML_Indexed_StepValue.renderStepValue($36));\n }\n};\nvar isPropScopeValue = {\n toPropValue: function ($37) {\n return Halogen_VDom_DOM_Prop.propFromString(DOM_HTML_Indexed_ScopeValue.renderScopeValue($37));\n }\n};\nvar isPropPreloadValue = {\n toPropValue: function ($38) {\n return Halogen_VDom_DOM_Prop.propFromString(DOM_HTML_Indexed_PreloadValue.renderPreloadValue($38));\n }\n};\nvar isPropOrderedListType = {\n toPropValue: function ($39) {\n return Halogen_VDom_DOM_Prop.propFromString(DOM_HTML_Indexed_OrderedListType.renderOrderedListType($39));\n }\n};\nvar isPropNumber = {\n toPropValue: Halogen_VDom_DOM_Prop.propFromNumber\n};\nvar isPropMenuitemType = {\n toPropValue: function ($40) {\n return Halogen_VDom_DOM_Prop.propFromString(DOM_HTML_Indexed_MenuitemType.renderMenuitemType($40));\n }\n};\nvar isPropMenuType = {\n toPropValue: function ($41) {\n return Halogen_VDom_DOM_Prop.propFromString(DOM_HTML_Indexed_MenuType.renderMenuType($41));\n }\n};\nvar isPropMediaType = {\n toPropValue: /* #__PURE__ */ (function () {\n var $42 = Data_Newtype.unwrap();\n return function ($43) {\n return Halogen_VDom_DOM_Prop.propFromString($42($43));\n };\n })()\n};\nvar isPropKindValue = {\n toPropValue: function ($44) {\n return Halogen_VDom_DOM_Prop.propFromString(DOM_HTML_Indexed_KindValue.renderKindValue($44));\n }\n};\nvar isPropInt = {\n toPropValue: Halogen_VDom_DOM_Prop.propFromInt\n};\nvar isPropInputType = {\n toPropValue: function ($45) {\n return Halogen_VDom_DOM_Prop.propFromString(DOM_HTML_Indexed_InputType.renderInputType($45));\n }\n};\nvar isPropInputAcceptType = {\n toPropValue: function ($46) {\n return Halogen_VDom_DOM_Prop.propFromString(DOM_HTML_Indexed_InputAcceptType.renderInputAcceptType($46));\n }\n};\nvar isPropFormMethod = {\n toPropValue: function ($47) {\n return Halogen_VDom_DOM_Prop.propFromString(DOM_HTML_Indexed_FormMethod.renderFormMethod($47));\n }\n};\nvar isPropDirValue = {\n toPropValue: function ($48) {\n return Halogen_VDom_DOM_Prop.propFromString(DOM_HTML_Indexed_DirValue.renderDirValue($48));\n }\n};\nvar isPropCrossOriginValue = {\n toPropValue: function ($49) {\n return Halogen_VDom_DOM_Prop.propFromString(DOM_HTML_Indexed_CrossOriginValue.renderCrossOriginValue($49));\n }\n};\nvar isPropButtonType = {\n toPropValue: function ($50) {\n return Halogen_VDom_DOM_Prop.propFromString(DOM_HTML_Indexed_ButtonType.renderButtonType($50));\n }\n};\nvar isPropBoolean = {\n toPropValue: Halogen_VDom_DOM_Prop.propFromBoolean\n};\nvar isPropAutocompleteType = {\n toPropValue: function ($51) {\n return Halogen_VDom_DOM_Prop.propFromString(DOM_HTML_Indexed_AutocompleteType.renderAutocompleteType($51));\n }\n};\nvar handler = /* #__PURE__ */ (function () {\n return Halogen_VDom_DOM_Prop.Handler.create;\n})();\nvar element = function (ns) {\n return function (name) {\n return function (props) {\n return function (children) {\n return new Halogen_VDom_Types.Elem(ns, name, props, children);\n };\n };\n };\n};\nvar bifunctorHTML = {\n bimap: function (f) {\n return function (g) {\n return function (v) {\n return bimap(map(map1(map2(g))))(f)(v);\n };\n };\n }\n};\nvar functorHTML = {\n map: /* #__PURE__ */ Data_Bifunctor.rmap(bifunctorHTML)\n};\nvar attr = function (ns) {\n return function (v) {\n return Halogen_VDom_DOM_Prop.Attribute.create(ns)(v);\n };\n};\nexport {\n HTML,\n renderWidget,\n widget,\n text,\n element,\n keyed,\n prop,\n attr,\n handler,\n ref,\n toPropValue,\n newtypeHTML,\n bifunctorHTML,\n functorHTML,\n isPropString,\n isPropInt,\n isPropNumber,\n isPropBoolean,\n isPropMediaType,\n isPropButtonType,\n isPropCrossOriginValue,\n isPropDirValue,\n isPropFormMethod,\n isPropInputType,\n isPropKindValue,\n isPropMenuitemType,\n isPropMenuType,\n isPropAutocompleteType,\n isPropOrderedListType,\n isPropPreloadValue,\n isPropScopeValue,\n isPropStepValue,\n isPropWrapValue,\n isPropInputAcceptType\n};\nexport {\n ElemName,\n Namespace\n} from \"../Halogen.VDom/index.js\";\nexport {\n Attribute,\n Handler,\n Property,\n Ref\n} from \"../Halogen.VDom.DOM.Prop/index.js\";\nexport {\n AttrName,\n ClassName,\n PropName\n} from \"../Web.HTML.Common/index.js\";\n","// Generated by purs version 0.15.7\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Halogen_HTML_Core from \"../Halogen.HTML.Core/index.js\";\nimport * as Halogen_VDom_Types from \"../Halogen.VDom.Types/index.js\";\nvar pure = /* #__PURE__ */ Control_Applicative.pure(Data_Maybe.applicativeMaybe);\nvar withKeys_ = function (ctor) {\n return function (children) {\n var v = ctor([ ]);\n if (v instanceof Halogen_VDom_Types.Elem) {\n return new Halogen_VDom_Types.Keyed(v.value0, v.value1, v.value2, children);\n };\n return v;\n };\n};\nvar withKeys = function (ctor) {\n return function (props) {\n return function (children) {\n var v = ctor(props)([ ]);\n if (v instanceof Halogen_VDom_Types.Elem) {\n return new Halogen_VDom_Types.Keyed(v.value0, v.value1, v.value2, children);\n };\n return v;\n };\n };\n};\nvar keyedNS = function ($14) {\n return Halogen_HTML_Core.keyed(pure($14));\n};\nvar keyed = /* #__PURE__ */ (function () {\n return Halogen_HTML_Core.keyed(Data_Maybe.Nothing.value);\n})();\nvar elementNS = function ($15) {\n return Halogen_HTML_Core.element(pure($15));\n};\nvar element = /* #__PURE__ */ (function () {\n return Halogen_HTML_Core.element(Data_Maybe.Nothing.value);\n})();\nvar em = /* #__PURE__ */ element(\"em\");\nvar em_ = /* #__PURE__ */ em([ ]);\nvar embed = /* #__PURE__ */ element(\"embed\");\nvar embed_ = /* #__PURE__ */ embed([ ]);\nvar fieldset = /* #__PURE__ */ element(\"fieldset\");\nvar fieldset_ = /* #__PURE__ */ fieldset([ ]);\nvar figcaption = /* #__PURE__ */ element(\"figcaption\");\nvar figcaption_ = /* #__PURE__ */ figcaption([ ]);\nvar figure = /* #__PURE__ */ element(\"figure\");\nvar figure_ = /* #__PURE__ */ figure([ ]);\nvar footer = /* #__PURE__ */ element(\"footer\");\nvar footer_ = /* #__PURE__ */ footer([ ]);\nvar form = /* #__PURE__ */ element(\"form\");\nvar form_ = /* #__PURE__ */ form([ ]);\nvar h1 = /* #__PURE__ */ element(\"h1\");\nvar h1_ = /* #__PURE__ */ h1([ ]);\nvar h2 = /* #__PURE__ */ element(\"h2\");\nvar h2_ = /* #__PURE__ */ h2([ ]);\nvar h3 = /* #__PURE__ */ element(\"h3\");\nvar h3_ = /* #__PURE__ */ h3([ ]);\nvar h4 = /* #__PURE__ */ element(\"h4\");\nvar h4_ = /* #__PURE__ */ h4([ ]);\nvar h5 = /* #__PURE__ */ element(\"h5\");\nvar h5_ = /* #__PURE__ */ h5([ ]);\nvar h6 = /* #__PURE__ */ element(\"h6\");\nvar h6_ = /* #__PURE__ */ h6([ ]);\nvar head = /* #__PURE__ */ element(\"head\");\nvar head_ = /* #__PURE__ */ head([ ]);\nvar header = /* #__PURE__ */ element(\"header\");\nvar header_ = /* #__PURE__ */ header([ ]);\nvar hr = function (props) {\n return element(\"hr\")(props)([ ]);\n};\nvar hr_ = /* #__PURE__ */ hr([ ]);\nvar html = /* #__PURE__ */ element(\"html\");\nvar html_ = /* #__PURE__ */ html([ ]);\nvar i = /* #__PURE__ */ element(\"i\");\nvar i_ = /* #__PURE__ */ i([ ]);\nvar iframe = function (props) {\n return element(\"iframe\")(props)([ ]);\n};\nvar img = function (props) {\n return element(\"img\")(props)([ ]);\n};\nvar input = function (props) {\n return element(\"input\")(props)([ ]);\n};\nvar ins = /* #__PURE__ */ element(\"ins\");\nvar ins_ = /* #__PURE__ */ ins([ ]);\nvar kbd = /* #__PURE__ */ element(\"kbd\");\nvar kbd_ = /* #__PURE__ */ kbd([ ]);\nvar label = /* #__PURE__ */ element(\"label\");\nvar label_ = /* #__PURE__ */ label([ ]);\nvar legend = /* #__PURE__ */ element(\"legend\");\nvar legend_ = /* #__PURE__ */ legend([ ]);\nvar li = /* #__PURE__ */ element(\"li\");\nvar li_ = /* #__PURE__ */ li([ ]);\nvar link = function (props) {\n return element(\"link\")(props)([ ]);\n};\nvar main = /* #__PURE__ */ element(\"main\");\nvar main_ = /* #__PURE__ */ main([ ]);\nvar map = /* #__PURE__ */ element(\"map\");\nvar map_ = /* #__PURE__ */ map([ ]);\nvar mark = /* #__PURE__ */ element(\"mark\");\nvar mark_ = /* #__PURE__ */ mark([ ]);\nvar menu = /* #__PURE__ */ element(\"menu\");\nvar menu_ = /* #__PURE__ */ menu([ ]);\nvar menuitem = /* #__PURE__ */ element(\"menuitem\");\nvar menuitem_ = /* #__PURE__ */ menuitem([ ]);\nvar meta = function (props) {\n return element(\"meta\")(props)([ ]);\n};\nvar meter = /* #__PURE__ */ element(\"meter\");\nvar meter_ = /* #__PURE__ */ meter([ ]);\nvar nav = /* #__PURE__ */ element(\"nav\");\nvar nav_ = /* #__PURE__ */ nav([ ]);\nvar noscript = /* #__PURE__ */ element(\"noscript\");\nvar noscript_ = /* #__PURE__ */ noscript([ ]);\nvar object = /* #__PURE__ */ element(\"object\");\nvar object_ = /* #__PURE__ */ object([ ]);\nvar ol = /* #__PURE__ */ element(\"ol\");\nvar ol_ = /* #__PURE__ */ ol([ ]);\nvar optgroup = /* #__PURE__ */ element(\"optgroup\");\nvar optgroup_ = /* #__PURE__ */ optgroup([ ]);\nvar option = /* #__PURE__ */ element(\"option\");\nvar option_ = /* #__PURE__ */ option([ ]);\nvar output = /* #__PURE__ */ element(\"output\");\nvar output_ = /* #__PURE__ */ output([ ]);\nvar p = /* #__PURE__ */ element(\"p\");\nvar p_ = /* #__PURE__ */ p([ ]);\nvar param = function (props) {\n return element(\"param\")(props)([ ]);\n};\nvar pre = /* #__PURE__ */ element(\"pre\");\nvar pre_ = /* #__PURE__ */ pre([ ]);\nvar progress = /* #__PURE__ */ element(\"progress\");\nvar progress_ = /* #__PURE__ */ progress([ ]);\nvar q = /* #__PURE__ */ element(\"q\");\nvar q_ = /* #__PURE__ */ q([ ]);\nvar rp = /* #__PURE__ */ element(\"rp\");\nvar rp_ = /* #__PURE__ */ rp([ ]);\nvar rt = /* #__PURE__ */ element(\"rt\");\nvar rt_ = /* #__PURE__ */ rt([ ]);\nvar ruby = /* #__PURE__ */ element(\"ruby\");\nvar ruby_ = /* #__PURE__ */ ruby([ ]);\nvar samp = /* #__PURE__ */ element(\"samp\");\nvar samp_ = /* #__PURE__ */ samp([ ]);\nvar script = /* #__PURE__ */ element(\"script\");\nvar script_ = /* #__PURE__ */ script([ ]);\nvar section = /* #__PURE__ */ element(\"section\");\nvar section_ = /* #__PURE__ */ section([ ]);\nvar select = /* #__PURE__ */ element(\"select\");\nvar select_ = /* #__PURE__ */ select([ ]);\nvar small = /* #__PURE__ */ element(\"small\");\nvar small_ = /* #__PURE__ */ small([ ]);\nvar source = function (props) {\n return element(\"source\")(props)([ ]);\n};\nvar span = /* #__PURE__ */ element(\"span\");\nvar span_ = /* #__PURE__ */ span([ ]);\nvar strong = /* #__PURE__ */ element(\"strong\");\nvar strong_ = /* #__PURE__ */ strong([ ]);\nvar style = /* #__PURE__ */ element(\"style\");\nvar style_ = /* #__PURE__ */ style([ ]);\nvar sub = /* #__PURE__ */ element(\"sub\");\nvar sub_ = /* #__PURE__ */ sub([ ]);\nvar summary = /* #__PURE__ */ element(\"summary\");\nvar summary_ = /* #__PURE__ */ summary([ ]);\nvar sup = /* #__PURE__ */ element(\"sup\");\nvar sup_ = /* #__PURE__ */ sup([ ]);\nvar table = /* #__PURE__ */ element(\"table\");\nvar table_ = /* #__PURE__ */ table([ ]);\nvar tbody = /* #__PURE__ */ element(\"tbody\");\nvar tbody_ = /* #__PURE__ */ tbody([ ]);\nvar td = /* #__PURE__ */ element(\"td\");\nvar td_ = /* #__PURE__ */ td([ ]);\nvar textarea = function (es) {\n return element(\"textarea\")(es)([ ]);\n};\nvar tfoot = /* #__PURE__ */ element(\"tfoot\");\nvar tfoot_ = /* #__PURE__ */ tfoot([ ]);\nvar th = /* #__PURE__ */ element(\"th\");\nvar th_ = /* #__PURE__ */ th([ ]);\nvar thead = /* #__PURE__ */ element(\"thead\");\nvar thead_ = /* #__PURE__ */ thead([ ]);\nvar time = /* #__PURE__ */ element(\"time\");\nvar time_ = /* #__PURE__ */ time([ ]);\nvar title = /* #__PURE__ */ element(\"title\");\nvar title_ = /* #__PURE__ */ title([ ]);\nvar tr = /* #__PURE__ */ element(\"tr\");\nvar tr_ = /* #__PURE__ */ tr([ ]);\nvar track = function (props) {\n return element(\"track\")(props)([ ]);\n};\nvar u = /* #__PURE__ */ element(\"u\");\nvar u_ = /* #__PURE__ */ u([ ]);\nvar ul = /* #__PURE__ */ element(\"ul\");\nvar ul_ = /* #__PURE__ */ ul([ ]);\nvar $$var = /* #__PURE__ */ element(\"var\");\nvar var_ = /* #__PURE__ */ $$var([ ]);\nvar video = /* #__PURE__ */ element(\"video\");\nvar video_ = /* #__PURE__ */ video([ ]);\nvar wbr = function (props) {\n return element(\"wbr\")(props)([ ]);\n};\nvar dt = /* #__PURE__ */ element(\"dt\");\nvar dt_ = /* #__PURE__ */ dt([ ]);\nvar dl = /* #__PURE__ */ element(\"dl\");\nvar dl_ = /* #__PURE__ */ dl([ ]);\nvar div = /* #__PURE__ */ element(\"div\");\nvar div_ = /* #__PURE__ */ div([ ]);\nvar dialog = /* #__PURE__ */ element(\"dialog\");\nvar dialog_ = /* #__PURE__ */ dialog([ ]);\nvar dfn = /* #__PURE__ */ element(\"dfn\");\nvar dfn_ = /* #__PURE__ */ dfn([ ]);\nvar details = /* #__PURE__ */ element(\"details\");\nvar details_ = /* #__PURE__ */ details([ ]);\nvar del = /* #__PURE__ */ element(\"del\");\nvar del_ = /* #__PURE__ */ del([ ]);\nvar dd = /* #__PURE__ */ element(\"dd\");\nvar dd_ = /* #__PURE__ */ dd([ ]);\nvar datalist = /* #__PURE__ */ element(\"datalist\");\nvar datalist_ = /* #__PURE__ */ datalist([ ]);\nvar command = function (props) {\n return element(\"command\")(props)([ ]);\n};\nvar colgroup = /* #__PURE__ */ element(\"colgroup\");\nvar colgroup_ = /* #__PURE__ */ colgroup([ ]);\nvar col = function (props) {\n return element(\"col\")(props)([ ]);\n};\nvar code = /* #__PURE__ */ element(\"code\");\nvar code_ = /* #__PURE__ */ code([ ]);\nvar cite = /* #__PURE__ */ element(\"cite\");\nvar cite_ = /* #__PURE__ */ cite([ ]);\nvar caption = /* #__PURE__ */ element(\"caption\");\nvar caption_ = /* #__PURE__ */ caption([ ]);\nvar canvas = function (props) {\n return element(\"canvas\")(props)([ ]);\n};\nvar button = /* #__PURE__ */ element(\"button\");\nvar button_ = /* #__PURE__ */ button([ ]);\nvar br = function (props) {\n return element(\"br\")(props)([ ]);\n};\nvar br_ = /* #__PURE__ */ br([ ]);\nvar body = /* #__PURE__ */ element(\"body\");\nvar body_ = /* #__PURE__ */ body([ ]);\nvar blockquote = /* #__PURE__ */ element(\"blockquote\");\nvar blockquote_ = /* #__PURE__ */ blockquote([ ]);\nvar bdo = /* #__PURE__ */ element(\"bdo\");\nvar bdo_ = /* #__PURE__ */ bdo([ ]);\nvar bdi = /* #__PURE__ */ element(\"bdi\");\nvar bdi_ = /* #__PURE__ */ bdi([ ]);\nvar base = function (props) {\n return element(\"base\")(props)([ ]);\n};\nvar b = /* #__PURE__ */ element(\"b\");\nvar b_ = /* #__PURE__ */ b([ ]);\nvar audio = /* #__PURE__ */ element(\"audio\");\nvar audio_ = /* #__PURE__ */ audio([ ]);\nvar aside = /* #__PURE__ */ element(\"aside\");\nvar aside_ = /* #__PURE__ */ aside([ ]);\nvar article = /* #__PURE__ */ element(\"article\");\nvar article_ = /* #__PURE__ */ article([ ]);\nvar area = function (props) {\n return element(\"area\")(props)([ ]);\n};\nvar address = /* #__PURE__ */ element(\"address\");\nvar address_ = /* #__PURE__ */ address([ ]);\nvar abbr = /* #__PURE__ */ element(\"abbr\");\nvar abbr_ = /* #__PURE__ */ abbr([ ]);\nvar a = /* #__PURE__ */ element(\"a\");\nvar a_ = /* #__PURE__ */ a([ ]);\nexport {\n element,\n elementNS,\n keyed,\n keyedNS,\n withKeys,\n withKeys_,\n a,\n a_,\n abbr,\n abbr_,\n address,\n address_,\n area,\n article,\n article_,\n aside,\n aside_,\n audio,\n audio_,\n b,\n b_,\n base,\n bdi,\n bdi_,\n bdo,\n bdo_,\n blockquote,\n blockquote_,\n body,\n body_,\n br,\n br_,\n button,\n button_,\n canvas,\n caption,\n caption_,\n cite,\n cite_,\n code,\n code_,\n col,\n colgroup,\n colgroup_,\n command,\n datalist,\n datalist_,\n dd,\n dd_,\n del,\n del_,\n details,\n details_,\n dfn,\n dfn_,\n dialog,\n dialog_,\n div,\n div_,\n dl,\n dl_,\n dt,\n dt_,\n em,\n em_,\n embed,\n embed_,\n fieldset,\n fieldset_,\n figcaption,\n figcaption_,\n figure,\n figure_,\n footer,\n footer_,\n form,\n form_,\n h1,\n h1_,\n h2,\n h2_,\n h3,\n h3_,\n h4,\n h4_,\n h5,\n h5_,\n h6,\n h6_,\n head,\n head_,\n header,\n header_,\n hr,\n hr_,\n html,\n html_,\n i,\n i_,\n iframe,\n img,\n input,\n ins,\n ins_,\n kbd,\n kbd_,\n label,\n label_,\n legend,\n legend_,\n li,\n li_,\n link,\n main,\n main_,\n map,\n map_,\n mark,\n mark_,\n menu,\n menu_,\n menuitem,\n menuitem_,\n meta,\n meter,\n meter_,\n nav,\n nav_,\n noscript,\n noscript_,\n object,\n object_,\n ol,\n ol_,\n optgroup,\n optgroup_,\n option,\n option_,\n output,\n output_,\n p,\n p_,\n param,\n pre,\n pre_,\n progress,\n progress_,\n q,\n q_,\n rp,\n rp_,\n rt,\n rt_,\n ruby,\n ruby_,\n samp,\n samp_,\n script,\n script_,\n section,\n section_,\n select,\n select_,\n small,\n small_,\n source,\n span,\n span_,\n strong,\n strong_,\n style,\n style_,\n sub,\n sub_,\n summary,\n summary_,\n sup,\n sup_,\n table,\n table_,\n tbody,\n tbody_,\n td,\n td_,\n textarea,\n tfoot,\n tfoot_,\n th,\n th_,\n thead,\n thead_,\n time,\n time_,\n title,\n title_,\n tr,\n tr_,\n track,\n u,\n u_,\n ul,\n ul_,\n $$var as var,\n var_,\n video,\n video_,\n wbr\n};\n","// Generated by purs version 0.15.7\nimport * as Data_Enum from \"../Data.Enum/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Ordering from \"../Data.Ordering/index.js\";\nvar None = /* #__PURE__ */ (function () {\n function None() {\n\n };\n None.value = new None();\n return None;\n})();\nvar Capturing = /* #__PURE__ */ (function () {\n function Capturing() {\n\n };\n Capturing.value = new Capturing();\n return Capturing;\n})();\nvar AtTarget = /* #__PURE__ */ (function () {\n function AtTarget() {\n\n };\n AtTarget.value = new AtTarget();\n return AtTarget;\n})();\nvar Bubbling = /* #__PURE__ */ (function () {\n function Bubbling() {\n\n };\n Bubbling.value = new Bubbling();\n return Bubbling;\n})();\nvar toEnumEventPhase = function (v) {\n if (v === 0) {\n return new Data_Maybe.Just(None.value);\n };\n if (v === 1) {\n return new Data_Maybe.Just(Capturing.value);\n };\n if (v === 2) {\n return new Data_Maybe.Just(AtTarget.value);\n };\n if (v === 3) {\n return new Data_Maybe.Just(Bubbling.value);\n };\n return Data_Maybe.Nothing.value;\n};\nvar fromEnumEventPhase = function (v) {\n if (v instanceof None) {\n return 0;\n };\n if (v instanceof Capturing) {\n return 1;\n };\n if (v instanceof AtTarget) {\n return 2;\n };\n if (v instanceof Bubbling) {\n return 3;\n };\n throw new Error(\"Failed pattern match at Web.Event.EventPhase (line 40, column 3 - line 44, column 18): \" + [ v.constructor.name ]);\n};\nvar eqEventPhase = {\n eq: function (x) {\n return function (y) {\n if (x instanceof None && y instanceof None) {\n return true;\n };\n if (x instanceof Capturing && y instanceof Capturing) {\n return true;\n };\n if (x instanceof AtTarget && y instanceof AtTarget) {\n return true;\n };\n if (x instanceof Bubbling && y instanceof Bubbling) {\n return true;\n };\n return false;\n };\n }\n};\nvar ordEventPhase = {\n compare: function (x) {\n return function (y) {\n if (x instanceof None && y instanceof None) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof None) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof None) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof Capturing && y instanceof Capturing) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof Capturing) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof Capturing) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof AtTarget && y instanceof AtTarget) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof AtTarget) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof AtTarget) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof Bubbling && y instanceof Bubbling) {\n return Data_Ordering.EQ.value;\n };\n throw new Error(\"Failed pattern match at Web.Event.EventPhase (line 0, column 0 - line 0, column 0): \" + [ x.constructor.name, y.constructor.name ]);\n };\n },\n Eq0: function () {\n return eqEventPhase;\n }\n};\nvar enumEventPhase = {\n succ: /* #__PURE__ */ Data_Enum.defaultSucc(toEnumEventPhase)(fromEnumEventPhase),\n pred: /* #__PURE__ */ Data_Enum.defaultPred(toEnumEventPhase)(fromEnumEventPhase),\n Ord0: function () {\n return ordEventPhase;\n }\n};\nvar boundedEventPhase = /* #__PURE__ */ (function () {\n return {\n bottom: None.value,\n top: Bubbling.value,\n Ord0: function () {\n return ordEventPhase;\n }\n };\n})();\nvar boundedEnumEventPhase = {\n cardinality: 4,\n toEnum: toEnumEventPhase,\n fromEnum: fromEnumEventPhase,\n Bounded0: function () {\n return boundedEventPhase;\n },\n Enum1: function () {\n return enumEventPhase;\n }\n};\nexport {\n None,\n Capturing,\n AtTarget,\n Bubbling,\n toEnumEventPhase,\n fromEnumEventPhase,\n eqEventPhase,\n ordEventPhase,\n boundedEventPhase,\n enumEventPhase,\n boundedEnumEventPhase\n};\n","// Generated by purs version 0.15.7\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Enum from \"../Data.Enum/index.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Nullable from \"../Data.Nullable/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Web_Event_EventPhase from \"../Web.Event.EventPhase/index.js\";\nimport * as Web_Event_Internal_Types from \"../Web.Event.Internal.Types/index.js\";\nvar fromJust = /* #__PURE__ */ Data_Maybe.fromJust();\nvar toEnum = /* #__PURE__ */ Data_Enum.toEnum(Web_Event_EventPhase.boundedEnumEventPhase);\nvar EventType = function (x) {\n return x;\n};\nvar target = function ($3) {\n return Data_Nullable.toMaybe($foreign[\"_target\"]($3));\n};\nvar ordEventType = Data_Ord.ordString;\nvar newtypeEventType = {\n Coercible0: function () {\n return undefined;\n }\n};\nvar eventPhase = function () {\n return function ($4) {\n return fromJust(toEnum($foreign.eventPhaseIndex($4)));\n };\n};\nvar eqEventType = Data_Eq.eqString;\nvar currentTarget = function ($5) {\n return Data_Nullable.toMaybe($foreign[\"_currentTarget\"]($5));\n};\nexport {\n type_,\n stopPropagation,\n stopImmediatePropagation,\n bubbles,\n cancelable,\n preventDefault,\n defaultPrevented,\n timeStamp\n} from \"./foreign.js\";\nexport {\n EventType,\n target,\n currentTarget,\n eventPhase,\n newtypeEventType,\n eqEventType,\n ordEventType\n};\n","export function bubbles(e) {\n return e.bubbles;\n}\n\nexport function cancelable(e) {\n return e.cancelable;\n}\n\nexport function _currentTarget(e) {\n return e.currentTarget;\n}\n\nexport function defaultPrevented(e) {\n return function() {\n return e.defaultPrevented;\n };\n}\n\nexport function eventPhaseIndex(e) {\n return e.eventPhase;\n}\n\nexport function _target(e) {\n return e.target;\n}\n\nexport function timeStamp(e) {\n return e.timeStamp;\n}\n\nexport function type_(e) {\n return e.type;\n}\n\nexport function preventDefault(e) {\n return function () {\n return e.preventDefault();\n };\n}\n\nexport function stopImmediatePropagation(e) {\n return function () {\n return e.stopImmediatePropagation();\n };\n}\n\nexport function stopPropagation(e) {\n return function () {\n return e.stopPropagation();\n };\n}\n","// Generated by purs version 0.15.7\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Nullable from \"../Data.Nullable/index.js\";\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nimport * as Data_Unfoldable from \"../Data.Unfoldable/index.js\";\nvar map = /* #__PURE__ */ Data_Functor.map(Data_Maybe.functorMaybe);\nvar item = function (i) {\n var $5 = $foreign[\"_item\"](i);\n return function ($6) {\n return Data_Nullable.toMaybe($5($6));\n };\n};\nvar items = function (dictUnfoldable) {\n var unfoldr = Data_Unfoldable.unfoldr(dictUnfoldable);\n return function (fl) {\n return unfoldr(function (i) {\n return map(Data_Function.flip(Data_Tuple.Tuple.create)(i + 1 | 0))(item(i)(fl));\n })(0);\n };\n};\nexport {\n length\n} from \"./foreign.js\";\nexport {\n item,\n items\n};\n","// Generated by purs version 0.15.7\nvar unload = \"unload\";\nvar toggle = \"toggle\";\nvar submit = \"submit\";\nvar storage = \"storage\";\nvar select = \"select\";\nvar reset = \"reset\";\nvar readystatechange = \"readystatechange\";\nvar progress = \"progress\";\nvar paste = \"paste\";\nvar online = \"online\";\nvar offline = \"offline\";\nvar message = \"message\";\nvar loadstart = \"loadstart\";\nvar loadend = \"loadend\";\nvar load = \"load\";\nvar languagechange = \"languagechange\";\nvar invalid = \"invalid\";\nvar input = \"input\";\nvar focus = \"focus\";\nvar error = \"error\";\nvar domcontentloaded = \"DOMContentLoaded\";\nvar cut = \"cut\";\nvar copy = \"copy\";\nvar close = \"close\";\nvar click = \"click\";\nvar change = \"change\";\nvar cancel = \"cancel\";\nvar blur = \"blur\";\nvar beforescriptexecute = \"beforescriptexecute\";\nvar beforeprint = \"beforeprint\";\nvar afterscriptexecute = \"afterscriptexecute\";\nvar afterprint = \"afterprint\";\nvar abort = \"abort\";\nexport {\n abort,\n afterprint,\n afterscriptexecute,\n beforeprint,\n beforescriptexecute,\n blur,\n cancel,\n change,\n click,\n close,\n copy,\n cut,\n domcontentloaded,\n error,\n focus,\n input,\n invalid,\n languagechange,\n load,\n loadend,\n loadstart,\n message,\n offline,\n online,\n paste,\n progress,\n readystatechange,\n reset,\n select,\n storage,\n submit,\n toggle,\n unload\n};\n","// Generated by purs version 0.15.7\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Ordering from \"../Data.Ordering/index.js\";\nvar Preserve = /* #__PURE__ */ (function () {\n function Preserve() {\n\n };\n Preserve.value = new Preserve();\n return Preserve;\n})();\nvar Select = /* #__PURE__ */ (function () {\n function Select() {\n\n };\n Select.value = new Select();\n return Select;\n})();\nvar Start = /* #__PURE__ */ (function () {\n function Start() {\n\n };\n Start.value = new Start();\n return Start;\n})();\nvar End = /* #__PURE__ */ (function () {\n function End() {\n\n };\n End.value = new End();\n return End;\n})();\nvar showSelectionMode = {\n show: function (v) {\n if (v instanceof Preserve) {\n return \"Preserve\";\n };\n if (v instanceof Select) {\n return \"Select\";\n };\n if (v instanceof Start) {\n return \"Start\";\n };\n if (v instanceof End) {\n return \"End\";\n };\n throw new Error(\"Failed pattern match at Web.HTML.SelectionMode (line 17, column 10 - line 21, column 17): \" + [ v.constructor.name ]);\n }\n};\nvar print = function (v) {\n if (v instanceof Preserve) {\n return \"preserve\";\n };\n if (v instanceof Select) {\n return \"select\";\n };\n if (v instanceof Start) {\n return \"start\";\n };\n if (v instanceof End) {\n return \"end\";\n };\n throw new Error(\"Failed pattern match at Web.HTML.SelectionMode (line 32, column 9 - line 36, column 15): \" + [ v.constructor.name ]);\n};\nvar parse = function (v) {\n if (v === \"preserve\") {\n return new Data_Maybe.Just(Preserve.value);\n };\n if (v === \"select\") {\n return new Data_Maybe.Just(Select.value);\n };\n if (v === \"start\") {\n return new Data_Maybe.Just(Start.value);\n };\n if (v === \"end\") {\n return new Data_Maybe.Just(End.value);\n };\n return Data_Maybe.Nothing.value;\n};\nvar eqSelectionMode = {\n eq: function (x) {\n return function (y) {\n if (x instanceof Preserve && y instanceof Preserve) {\n return true;\n };\n if (x instanceof Select && y instanceof Select) {\n return true;\n };\n if (x instanceof Start && y instanceof Start) {\n return true;\n };\n if (x instanceof End && y instanceof End) {\n return true;\n };\n return false;\n };\n }\n};\nvar ordSelectionMode = {\n compare: function (x) {\n return function (y) {\n if (x instanceof Preserve && y instanceof Preserve) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof Preserve) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof Preserve) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof Select && y instanceof Select) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof Select) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof Select) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof Start && y instanceof Start) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof Start) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof Start) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof End && y instanceof End) {\n return Data_Ordering.EQ.value;\n };\n throw new Error(\"Failed pattern match at Web.HTML.SelectionMode (line 0, column 0 - line 0, column 0): \" + [ x.constructor.name, y.constructor.name ]);\n };\n },\n Eq0: function () {\n return eqSelectionMode;\n }\n};\nexport {\n Preserve,\n Select,\n Start,\n End,\n parse,\n print,\n eqSelectionMode,\n ordSelectionMode,\n showSelectionMode\n};\n","// Generated by purs version 0.15.7\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Control_Monad_Except from \"../Control.Monad.Except/index.js\";\nimport * as Control_Monad_Except_Trans from \"../Control.Monad.Except.Trans/index.js\";\nimport * as Data_Either from \"../Data.Either/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Identity from \"../Data.Identity/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Unfoldable from \"../Data.Unfoldable/index.js\";\nimport * as Effect_Unsafe from \"../Effect.Unsafe/index.js\";\nimport * as Foreign from \"../Foreign/index.js\";\nimport * as Foreign_Index from \"../Foreign.Index/index.js\";\nimport * as Halogen_HTML_Core from \"../Halogen.HTML.Core/index.js\";\nimport * as Halogen_Query_Input from \"../Halogen.Query.Input/index.js\";\nimport * as Unsafe_Coerce from \"../Unsafe.Coerce/index.js\";\nimport * as Web_Clipboard_ClipboardEvent_EventTypes from \"../Web.Clipboard.ClipboardEvent.EventTypes/index.js\";\nimport * as Web_Event_Event from \"../Web.Event.Event/index.js\";\nimport * as Web_File_FileList from \"../Web.File.FileList/index.js\";\nimport * as Web_HTML_Event_DragEvent_EventTypes from \"../Web.HTML.Event.DragEvent.EventTypes/index.js\";\nimport * as Web_HTML_Event_EventTypes from \"../Web.HTML.Event.EventTypes/index.js\";\nimport * as Web_HTML_HTMLInputElement from \"../Web.HTML.HTMLInputElement/index.js\";\nimport * as Web_UIEvent_FocusEvent_EventTypes from \"../Web.UIEvent.FocusEvent.EventTypes/index.js\";\nimport * as Web_UIEvent_KeyboardEvent_EventTypes from \"../Web.UIEvent.KeyboardEvent.EventTypes/index.js\";\nimport * as Web_UIEvent_MouseEvent_EventTypes from \"../Web.UIEvent.MouseEvent.EventTypes/index.js\";\nimport * as Web_UIEvent_WheelEvent_EventTypes from \"../Web.UIEvent.WheelEvent.EventTypes/index.js\";\nvar map = /* #__PURE__ */ Data_Functor.map(Data_Maybe.functorMaybe);\nvar composeKleisli = /* #__PURE__ */ Control_Bind.composeKleisli(Data_Maybe.bindMaybe);\nvar composeKleisliFlipped = /* #__PURE__ */ Control_Bind.composeKleisliFlipped(/* #__PURE__ */ Control_Monad_Except_Trans.bindExceptT(Data_Identity.monadIdentity));\nvar readProp = /* #__PURE__ */ Foreign_Index.readProp(Data_Identity.monadIdentity);\nvar readString = /* #__PURE__ */ Foreign.readString(Data_Identity.monadIdentity);\nvar wheelHandler = Unsafe_Coerce.unsafeCoerce;\nvar touchHandler = Unsafe_Coerce.unsafeCoerce;\nvar mouseHandler = Unsafe_Coerce.unsafeCoerce;\nvar keyHandler = Unsafe_Coerce.unsafeCoerce;\nvar handler$prime = function (et) {\n return function (f) {\n return Halogen_HTML_Core.handler(et)(function (ev) {\n return map(Halogen_Query_Input.Action.create)(f(ev));\n });\n };\n};\nvar handler = function (et) {\n return function (f) {\n return Halogen_HTML_Core.handler(et)(function (ev) {\n return new Data_Maybe.Just(new Halogen_Query_Input.Action(f(ev)));\n });\n };\n};\nvar onAbort = /* #__PURE__ */ handler(\"abort\");\nvar onAuxClick = /* #__PURE__ */ (function () {\n var $13 = handler(Web_UIEvent_MouseEvent_EventTypes.auxclick);\n return function ($14) {\n return $13(mouseHandler($14));\n };\n})();\nvar onChange = /* #__PURE__ */ handler(Web_HTML_Event_EventTypes.change);\nvar onClick = /* #__PURE__ */ (function () {\n var $15 = handler(Web_UIEvent_MouseEvent_EventTypes.click);\n return function ($16) {\n return $15(mouseHandler($16));\n };\n})();\nvar onDoubleClick = /* #__PURE__ */ (function () {\n var $17 = handler(Web_UIEvent_MouseEvent_EventTypes.dblclick);\n return function ($18) {\n return $17(mouseHandler($18));\n };\n})();\nvar onError = /* #__PURE__ */ handler(Web_HTML_Event_EventTypes.error);\nvar onFileUpload = function (dictUnfoldable) {\n var none = Data_Unfoldable.none(dictUnfoldable);\n var items = Web_File_FileList.items(dictUnfoldable);\n return function (f) {\n return handler(Web_HTML_Event_EventTypes.change)((function () {\n var $19 = Data_Maybe.maybe(none)(items);\n var $20 = composeKleisli(Web_Event_Event.target)(composeKleisli(Web_HTML_HTMLInputElement.fromEventTarget)(function ($22) {\n return Effect_Unsafe.unsafePerformEffect(Web_HTML_HTMLInputElement.files($22));\n }));\n return function ($21) {\n return f($19($20($21)));\n };\n })());\n };\n};\nvar onInput = /* #__PURE__ */ handler(Web_HTML_Event_EventTypes.input);\nvar onInvalid = /* #__PURE__ */ handler(Web_HTML_Event_EventTypes.invalid);\nvar onKeyDown = /* #__PURE__ */ (function () {\n var $23 = handler(Web_UIEvent_KeyboardEvent_EventTypes.keydown);\n return function ($24) {\n return $23(keyHandler($24));\n };\n})();\nvar onKeyUp = /* #__PURE__ */ (function () {\n var $25 = handler(Web_UIEvent_KeyboardEvent_EventTypes.keyup);\n return function ($26) {\n return $25(keyHandler($26));\n };\n})();\nvar onLoad = /* #__PURE__ */ handler(Web_HTML_Event_EventTypes.load);\nvar onMouseDown = /* #__PURE__ */ (function () {\n var $27 = handler(Web_UIEvent_MouseEvent_EventTypes.mousedown);\n return function ($28) {\n return $27(mouseHandler($28));\n };\n})();\nvar onMouseEnter = /* #__PURE__ */ (function () {\n var $29 = handler(Web_UIEvent_MouseEvent_EventTypes.mouseenter);\n return function ($30) {\n return $29(mouseHandler($30));\n };\n})();\nvar onMouseLeave = /* #__PURE__ */ (function () {\n var $31 = handler(Web_UIEvent_MouseEvent_EventTypes.mouseleave);\n return function ($32) {\n return $31(mouseHandler($32));\n };\n})();\nvar onMouseMove = /* #__PURE__ */ (function () {\n var $33 = handler(Web_UIEvent_MouseEvent_EventTypes.mousemove);\n return function ($34) {\n return $33(mouseHandler($34));\n };\n})();\nvar onMouseOut = /* #__PURE__ */ (function () {\n var $35 = handler(Web_UIEvent_MouseEvent_EventTypes.mouseout);\n return function ($36) {\n return $35(mouseHandler($36));\n };\n})();\nvar onMouseOver = /* #__PURE__ */ (function () {\n var $37 = handler(Web_UIEvent_MouseEvent_EventTypes.mouseover);\n return function ($38) {\n return $37(mouseHandler($38));\n };\n})();\nvar onMouseUp = /* #__PURE__ */ (function () {\n var $39 = handler(Web_UIEvent_MouseEvent_EventTypes.mouseup);\n return function ($40) {\n return $39(mouseHandler($40));\n };\n})();\nvar onReset = /* #__PURE__ */ handler(\"reset\");\nvar onResize = /* #__PURE__ */ handler(\"resize\");\nvar onScroll = /* #__PURE__ */ handler(\"scroll\");\nvar onSelect = /* #__PURE__ */ handler(Web_HTML_Event_EventTypes.select);\nvar onSubmit = /* #__PURE__ */ handler(\"submit\");\nvar onTouchCancel = /* #__PURE__ */ (function () {\n var $41 = handler(\"touchcancel\");\n return function ($42) {\n return $41(touchHandler($42));\n };\n})();\nvar onTouchEnd = /* #__PURE__ */ (function () {\n var $43 = handler(\"touchend\");\n return function ($44) {\n return $43(touchHandler($44));\n };\n})();\nvar onTouchEnter = /* #__PURE__ */ (function () {\n var $45 = handler(\"touchenter\");\n return function ($46) {\n return $45(touchHandler($46));\n };\n})();\nvar onTouchLeave = /* #__PURE__ */ (function () {\n var $47 = handler(\"touchleave\");\n return function ($48) {\n return $47(touchHandler($48));\n };\n})();\nvar onTouchMove = /* #__PURE__ */ (function () {\n var $49 = handler(\"touchmove\");\n return function ($50) {\n return $49(touchHandler($50));\n };\n})();\nvar onTouchStart = /* #__PURE__ */ (function () {\n var $51 = handler(\"touchstart\");\n return function ($52) {\n return $51(touchHandler($52));\n };\n})();\nvar onTransitionEnd = /* #__PURE__ */ handler(\"transitionend\");\nvar onWheel = /* #__PURE__ */ (function () {\n var $53 = handler(Web_UIEvent_WheelEvent_EventTypes.wheel);\n return function ($54) {\n return $53(wheelHandler($54));\n };\n})();\nvar focusHandler = Unsafe_Coerce.unsafeCoerce;\nvar onBlur = /* #__PURE__ */ (function () {\n var $55 = handler(Web_HTML_Event_EventTypes.blur);\n return function ($56) {\n return $55(focusHandler($56));\n };\n})();\nvar onFocus = /* #__PURE__ */ (function () {\n var $57 = handler(Web_UIEvent_FocusEvent_EventTypes.focus);\n return function ($58) {\n return $57(focusHandler($58));\n };\n})();\nvar onFocusIn = /* #__PURE__ */ (function () {\n var $59 = handler(Web_UIEvent_FocusEvent_EventTypes.focusin);\n return function ($60) {\n return $59(focusHandler($60));\n };\n})();\nvar onFocusOut = /* #__PURE__ */ (function () {\n var $61 = handler(Web_UIEvent_FocusEvent_EventTypes.focusout);\n return function ($62) {\n return $61(focusHandler($62));\n };\n})();\nvar dragHandler = Unsafe_Coerce.unsafeCoerce;\nvar onDrag = /* #__PURE__ */ (function () {\n var $63 = handler(Web_HTML_Event_DragEvent_EventTypes.drag);\n return function ($64) {\n return $63(dragHandler($64));\n };\n})();\nvar onDragEnd = /* #__PURE__ */ (function () {\n var $65 = handler(Web_HTML_Event_DragEvent_EventTypes.dragend);\n return function ($66) {\n return $65(dragHandler($66));\n };\n})();\nvar onDragEnter = /* #__PURE__ */ (function () {\n var $67 = handler(Web_HTML_Event_DragEvent_EventTypes.dragenter);\n return function ($68) {\n return $67(dragHandler($68));\n };\n})();\nvar onDragExit = /* #__PURE__ */ (function () {\n var $69 = handler(Web_HTML_Event_DragEvent_EventTypes.dragexit);\n return function ($70) {\n return $69(dragHandler($70));\n };\n})();\nvar onDragLeave = /* #__PURE__ */ (function () {\n var $71 = handler(Web_HTML_Event_DragEvent_EventTypes.dragleave);\n return function ($72) {\n return $71(dragHandler($72));\n };\n})();\nvar onDragOver = /* #__PURE__ */ (function () {\n var $73 = handler(Web_HTML_Event_DragEvent_EventTypes.dragover);\n return function ($74) {\n return $73(dragHandler($74));\n };\n})();\nvar onDragStart = /* #__PURE__ */ (function () {\n var $75 = handler(Web_HTML_Event_DragEvent_EventTypes.dragstart);\n return function ($76) {\n return $75(dragHandler($76));\n };\n})();\nvar onDrop = /* #__PURE__ */ (function () {\n var $77 = handler(Web_HTML_Event_DragEvent_EventTypes.drop);\n return function ($78) {\n return $77(dragHandler($78));\n };\n})();\nvar clipboardHandler = Unsafe_Coerce.unsafeCoerce;\nvar onCopy = /* #__PURE__ */ (function () {\n var $79 = handler(Web_Clipboard_ClipboardEvent_EventTypes.copy);\n return function ($80) {\n return $79(clipboardHandler($80));\n };\n})();\nvar onCut = /* #__PURE__ */ (function () {\n var $81 = handler(Web_Clipboard_ClipboardEvent_EventTypes.cut);\n return function ($82) {\n return $81(clipboardHandler($82));\n };\n})();\nvar onPaste = /* #__PURE__ */ (function () {\n var $83 = handler(Web_Clipboard_ClipboardEvent_EventTypes.paste);\n return function ($84) {\n return $83(clipboardHandler($84));\n };\n})();\nvar addForeignPropHandler = function (key) {\n return function (prop) {\n return function (reader) {\n return function (f) {\n var go = function (a) {\n return composeKleisliFlipped(reader)(readProp(prop))(Foreign.unsafeToForeign(a));\n };\n return handler$prime(key)(composeKleisli(Web_Event_Event.currentTarget)(function (e) {\n return Data_Either.either(Data_Function[\"const\"](Data_Maybe.Nothing.value))(function ($85) {\n return Data_Maybe.Just.create(f($85));\n })(Control_Monad_Except.runExcept(go(e)));\n }));\n };\n };\n };\n};\nvar onChecked = /* #__PURE__ */ addForeignPropHandler(Web_HTML_Event_EventTypes.change)(\"checked\")(/* #__PURE__ */ Foreign.readBoolean(Data_Identity.monadIdentity));\nvar onSelectedIndexChange = /* #__PURE__ */ addForeignPropHandler(Web_HTML_Event_EventTypes.change)(\"selectedIndex\")(/* #__PURE__ */ Foreign.readInt(Data_Identity.monadIdentity));\nvar onValueChange = /* #__PURE__ */ addForeignPropHandler(Web_HTML_Event_EventTypes.change)(\"value\")(readString);\nvar onValueInput = /* #__PURE__ */ addForeignPropHandler(Web_HTML_Event_EventTypes.input)(\"value\")(readString);\nexport {\n handler,\n handler$prime,\n onAbort,\n onError,\n onLoad,\n onScroll,\n onChange,\n onFileUpload,\n onInput,\n onInvalid,\n onReset,\n onSelect,\n onSubmit,\n onTransitionEnd,\n onCopy,\n onPaste,\n onCut,\n onAuxClick,\n onClick,\n onDoubleClick,\n onMouseDown,\n onMouseEnter,\n onMouseLeave,\n onMouseMove,\n onMouseOver,\n onMouseOut,\n onMouseUp,\n onWheel,\n onKeyDown,\n onKeyUp,\n onBlur,\n onFocus,\n onFocusIn,\n onFocusOut,\n onDrag,\n onDragEnd,\n onDragExit,\n onDragEnter,\n onDragLeave,\n onDragOver,\n onDragStart,\n onDrop,\n onTouchCancel,\n onTouchEnd,\n onTouchEnter,\n onTouchLeave,\n onTouchMove,\n onTouchStart,\n onResize,\n onValueChange,\n onValueInput,\n onSelectedIndexChange,\n onChecked\n};\n","// Generated by purs version 0.15.7\nvar mouseup = \"mouseup\";\nvar mouseover = \"mouseover\";\nvar mouseout = \"mouseout\";\nvar mousemove = \"mousemove\";\nvar mouseleave = \"mouseleave\";\nvar mouseenter = \"mouseenter\";\nvar mousedown = \"mousedown\";\nvar dblclick = \"dblclick\";\nvar click = \"click\";\nvar auxclick = \"auxclick\";\nexport {\n auxclick,\n click,\n dblclick,\n mousedown,\n mouseenter,\n mouseleave,\n mousemove,\n mouseout,\n mouseover,\n mouseup\n};\n","// Generated by purs version 0.15.7\nvar keyup = \"keyup\";\nvar keydown = \"keydown\";\nexport {\n keydown,\n keyup\n};\n","// Generated by purs version 0.15.7\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as DOM_HTML_Indexed from \"../DOM.HTML.Indexed/index.js\";\nimport * as DOM_HTML_Indexed_AutocompleteType from \"../DOM.HTML.Indexed.AutocompleteType/index.js\";\nimport * as DOM_HTML_Indexed_ButtonType from \"../DOM.HTML.Indexed.ButtonType/index.js\";\nimport * as DOM_HTML_Indexed_FormMethod from \"../DOM.HTML.Indexed.FormMethod/index.js\";\nimport * as DOM_HTML_Indexed_InputAcceptType from \"../DOM.HTML.Indexed.InputAcceptType/index.js\";\nimport * as DOM_HTML_Indexed_InputType from \"../DOM.HTML.Indexed.InputType/index.js\";\nimport * as DOM_HTML_Indexed_MenuType from \"../DOM.HTML.Indexed.MenuType/index.js\";\nimport * as DOM_HTML_Indexed_MenuitemType from \"../DOM.HTML.Indexed.MenuitemType/index.js\";\nimport * as DOM_HTML_Indexed_OrderedListType from \"../DOM.HTML.Indexed.OrderedListType/index.js\";\nimport * as DOM_HTML_Indexed_PreloadValue from \"../DOM.HTML.Indexed.PreloadValue/index.js\";\nimport * as DOM_HTML_Indexed_ScopeValue from \"../DOM.HTML.Indexed.ScopeValue/index.js\";\nimport * as DOM_HTML_Indexed_StepValue from \"../DOM.HTML.Indexed.StepValue/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_HeytingAlgebra from \"../Data.HeytingAlgebra/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Newtype from \"../Data.Newtype/index.js\";\nimport * as Data_String_Common from \"../Data.String.Common/index.js\";\nimport * as Halogen_HTML_Core from \"../Halogen.HTML.Core/index.js\";\nimport * as Halogen_Query_Input from \"../Halogen.Query.Input/index.js\";\nimport * as Halogen_VDom_DOM_Prop from \"../Halogen.VDom.DOM.Prop/index.js\";\nimport * as Unsafe_Coerce from \"../Unsafe.Coerce/index.js\";\nvar map = /* #__PURE__ */ Data_Functor.map(Halogen_VDom_DOM_Prop.functorProp);\nvar map1 = /* #__PURE__ */ Data_Functor.map(Halogen_Query_Input.functorInput);\nvar unwrap = /* #__PURE__ */ Data_Newtype.unwrap();\nvar IProp = function (x) {\n return x;\n};\nvar ref = /* #__PURE__ */ (function () {\n var go = function (p) {\n return function (mel) {\n return new Data_Maybe.Just(new Halogen_Query_Input.RefUpdate(p, mel));\n };\n };\n return function ($29) {\n return Halogen_HTML_Core.ref(go($29));\n };\n})();\nvar prop = function (dictIsProp) {\n return Halogen_HTML_Core.prop(dictIsProp);\n};\nvar prop1 = /* #__PURE__ */ prop(Halogen_HTML_Core.isPropBoolean);\nvar prop2 = /* #__PURE__ */ prop(Halogen_HTML_Core.isPropString);\nvar prop3 = /* #__PURE__ */ prop(Halogen_HTML_Core.isPropInt);\nvar prop4 = /* #__PURE__ */ prop(Halogen_HTML_Core.isPropNumber);\nvar readOnly = /* #__PURE__ */ prop1(\"readOnly\");\nvar rel = /* #__PURE__ */ prop2(\"rel\");\nvar required = /* #__PURE__ */ prop1(\"required\");\nvar rowSpan = /* #__PURE__ */ prop3(\"rowSpan\");\nvar rows = /* #__PURE__ */ prop3(\"rows\");\nvar scope = /* #__PURE__ */ prop(Halogen_HTML_Core.isPropScopeValue)(\"scope\");\nvar selected = /* #__PURE__ */ prop1(\"selected\");\nvar selectedIndex = /* #__PURE__ */ prop3(\"selectedIndex\");\nvar spellcheck = /* #__PURE__ */ prop1(\"spellcheck\");\nvar src = /* #__PURE__ */ prop2(\"src\");\nvar srcDoc = /* #__PURE__ */ prop2(\"srcdoc\");\nvar step = /* #__PURE__ */ prop(Halogen_HTML_Core.isPropStepValue)(\"step\");\nvar tabIndex = /* #__PURE__ */ prop3(\"tabIndex\");\nvar target = /* #__PURE__ */ prop2(\"target\");\nvar title = /* #__PURE__ */ prop2(\"title\");\nvar type_ = function (dictIsProp) {\n return prop(dictIsProp)(\"type\");\n};\nvar value = function (dictIsProp) {\n return prop(dictIsProp)(\"value\");\n};\nvar width = /* #__PURE__ */ prop3(\"width\");\nvar preload = /* #__PURE__ */ prop(Halogen_HTML_Core.isPropPreloadValue)(\"preload\");\nvar poster = /* #__PURE__ */ prop2(\"poster\");\nvar placeholder = /* #__PURE__ */ prop2(\"placeholder\");\nvar pattern = /* #__PURE__ */ prop2(\"pattern\");\nvar noValidate = /* #__PURE__ */ prop1(\"noValidate\");\nvar newtypeIProp = {\n Coercible0: function () {\n return undefined;\n }\n};\nvar name = /* #__PURE__ */ prop2(\"name\");\nvar muted = /* #__PURE__ */ prop1(\"muted\");\nvar multiple = /* #__PURE__ */ prop1(\"multiple\");\nvar min = /* #__PURE__ */ prop4(\"min\");\nvar method = /* #__PURE__ */ prop(Halogen_HTML_Core.isPropFormMethod)(\"method\");\nvar max = /* #__PURE__ */ prop4(\"max\");\nvar loop = /* #__PURE__ */ prop1(\"loop\");\nvar id = /* #__PURE__ */ prop2(\"id\");\nvar href = /* #__PURE__ */ prop2(\"href\");\nvar height = /* #__PURE__ */ prop3(\"height\");\nvar functorIProp = {\n map: function (f) {\n return function (m) {\n return map(map1(f))(m);\n };\n }\n};\nvar $$for = /* #__PURE__ */ prop2(\"htmlFor\");\nvar expand = function () {\n return Unsafe_Coerce.unsafeCoerce;\n};\nvar enctype = /* #__PURE__ */ prop(Halogen_HTML_Core.isPropMediaType)(\"enctype\");\nvar draggable = /* #__PURE__ */ prop1(\"draggable\");\nvar download = /* #__PURE__ */ prop2(\"download\");\nvar disabled = /* #__PURE__ */ prop1(\"disabled\");\nvar enabled = /* #__PURE__ */ (function () {\n var $30 = Data_HeytingAlgebra.not(Data_HeytingAlgebra.heytingAlgebraBoolean);\n return function ($31) {\n return disabled($30($31));\n };\n})();\nvar controls = /* #__PURE__ */ prop1(\"controls\");\nvar cols = /* #__PURE__ */ prop3(\"cols\");\nvar colSpan = /* #__PURE__ */ prop3(\"colSpan\");\nvar classes = /* #__PURE__ */ (function () {\n var $32 = prop2(\"className\");\n var $33 = Data_String_Common.joinWith(\" \");\n var $34 = Data_Functor.map(Data_Functor.functorArray)(unwrap);\n return function ($35) {\n return $32($33($34($35)));\n };\n})();\nvar class_ = /* #__PURE__ */ (function () {\n var $36 = prop2(\"className\");\n return function ($37) {\n return $36(unwrap($37));\n };\n})();\nvar checked = /* #__PURE__ */ prop1(\"checked\");\nvar charset = /* #__PURE__ */ prop2(\"charset\");\nvar autoplay = /* #__PURE__ */ prop1(\"autoplay\");\nvar autofocus = /* #__PURE__ */ prop1(\"autofocus\");\nvar autocomplete = /* #__PURE__ */ prop(Halogen_HTML_Core.isPropAutocompleteType)(\"autocomplete\");\nvar attrNS = /* #__PURE__ */ (function () {\n var $38 = Control_Applicative.pure(Data_Maybe.applicativeMaybe);\n return function ($39) {\n return Halogen_HTML_Core.attr($38($39));\n };\n})();\nvar attr = /* #__PURE__ */ (function () {\n return Halogen_HTML_Core.attr(Data_Maybe.Nothing.value);\n})();\nvar list = /* #__PURE__ */ attr(\"list\");\nvar style = /* #__PURE__ */ attr(\"style\");\nvar alt = /* #__PURE__ */ prop2(\"alt\");\nvar action = /* #__PURE__ */ prop2(\"action\");\nvar accept = /* #__PURE__ */ prop(Halogen_HTML_Core.isPropInputAcceptType)(\"accept\");\nexport {\n IProp,\n prop,\n attr,\n attrNS,\n ref,\n expand,\n alt,\n charset,\n class_,\n classes,\n cols,\n rows,\n colSpan,\n rowSpan,\n $$for as for,\n height,\n width,\n href,\n id,\n name,\n rel,\n src,\n srcDoc,\n style,\n scope,\n target,\n title,\n download,\n method,\n action,\n enctype,\n noValidate,\n type_,\n value,\n min,\n max,\n step,\n disabled,\n enabled,\n required,\n readOnly,\n spellcheck,\n checked,\n selected,\n selectedIndex,\n placeholder,\n autocomplete,\n list,\n autofocus,\n multiple,\n pattern,\n accept,\n autoplay,\n controls,\n loop,\n muted,\n poster,\n preload,\n draggable,\n tabIndex,\n newtypeIProp,\n functorIProp\n};\nexport {\n AutocompleteAdditionalName,\n AutocompleteAddressLevel1,\n AutocompleteAddressLevel2,\n AutocompleteAddressLevel3,\n AutocompleteAddressLevel4,\n AutocompleteAddressLine1,\n AutocompleteAddressLine2,\n AutocompleteAddressLine3,\n AutocompleteBirthday,\n AutocompleteBirthdayDay,\n AutocompleteBirthdayMonth,\n AutocompleteBirthdayYear,\n AutocompleteCountry,\n AutocompleteCountryName,\n AutocompleteCreditCardAdditionalName,\n AutocompleteCreditCardExpiration,\n AutocompleteCreditCardExpirationMonth,\n AutocompleteCreditCardExpirationYear,\n AutocompleteCreditCardFamilyName,\n AutocompleteCreditCardGivenName,\n AutocompleteCreditCardName,\n AutocompleteCreditCardNumber,\n AutocompleteCreditCardSecurityCode,\n AutocompleteCreditCardType,\n AutocompleteCurrentPassword,\n AutocompleteEmail,\n AutocompleteFamilyName,\n AutocompleteGivenName,\n AutocompleteHonorificPrefix,\n AutocompleteHonorificSuffix,\n AutocompleteIMPP,\n AutocompleteLanguage,\n AutocompleteName,\n AutocompleteNewPassword,\n AutocompleteNickname,\n AutocompleteOff,\n AutocompleteOn,\n AutocompleteOneTimeCode,\n AutocompleteOrganization,\n AutocompleteOrganizationTitle,\n AutocompletePhoto,\n AutocompletePostalCode,\n AutocompleteSex,\n AutocompleteStreetAddress,\n AutocompleteTelephone,\n AutocompleteTelephoneAreaCode,\n AutocompleteTelephoneCountryCode,\n AutocompleteTelephoneExtension,\n AutocompleteTelephoneLocal,\n AutocompleteTelephoneLocalPrefix,\n AutocompleteTelephoneLocalSuffix,\n AutocompleteTelephoneNational,\n AutocompleteTransactionAmount,\n AutocompleteTransactionCurrency,\n AutocompleteURL,\n AutocompleteUsername\n} from \"../DOM.HTML.Indexed.AutocompleteType/index.js\";\nexport {\n ButtonButton,\n ButtonReset,\n ButtonSubmit\n} from \"../DOM.HTML.Indexed.ButtonType/index.js\";\nexport {\n GET,\n POST\n} from \"../DOM.HTML.Indexed.FormMethod/index.js\";\nexport {\n InputAcceptType\n} from \"../DOM.HTML.Indexed.InputAcceptType/index.js\";\nexport {\n InputButton,\n InputCheckbox,\n InputColor,\n InputDate,\n InputDatetimeLocal,\n InputEmail,\n InputFile,\n InputHidden,\n InputImage,\n InputMonth,\n InputNumber,\n InputPassword,\n InputRadio,\n InputRange,\n InputReset,\n InputSearch,\n InputSubmit,\n InputTel,\n InputText,\n InputTime,\n InputUrl,\n InputWeek\n} from \"../DOM.HTML.Indexed.InputType/index.js\";\nexport {\n MenuContext,\n MenuList,\n MenuToolbar\n} from \"../DOM.HTML.Indexed.MenuType/index.js\";\nexport {\n MenuitemCheckbox,\n MenuitemCommand,\n MenuitemRadio\n} from \"../DOM.HTML.Indexed.MenuitemType/index.js\";\nexport {\n OrderedListAlphabetic,\n OrderedListNumeric\n} from \"../DOM.HTML.Indexed.OrderedListType/index.js\";\nexport {\n PreloadAuto,\n PreloadMetadata,\n PreloadNone\n} from \"../DOM.HTML.Indexed.PreloadValue/index.js\";\nexport {\n ScopeAuto,\n ScopeCol,\n ScopeColGroup,\n ScopeRow,\n ScopeRowGroup\n} from \"../DOM.HTML.Indexed.ScopeValue/index.js\";\nexport {\n Any,\n Step\n} from \"../DOM.HTML.Indexed.StepValue/index.js\";\n","// Generated by purs version 0.15.7\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Apply from \"../Control.Apply/index.js\";\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Data_Const from \"../Data.Const/index.js\";\nimport * as Data_Either from \"../Data.Either/index.js\";\nimport * as Data_List_NonEmpty from \"../Data.List.NonEmpty/index.js\";\nimport * as Data_List_Types from \"../Data.List.Types/index.js\";\nimport * as Data_Newtype from \"../Data.Newtype/index.js\";\nimport * as Data_NonEmpty from \"../Data.NonEmpty/index.js\";\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nvar identity = /* #__PURE__ */ Control_Category.identity(Control_Category.categoryFn);\nvar unwrap = /* #__PURE__ */ Data_Newtype.unwrap();\nvar Pure = /* #__PURE__ */ (function () {\n function Pure(value0) {\n this.value0 = value0;\n };\n Pure.create = function (value0) {\n return new Pure(value0);\n };\n return Pure;\n})();\nvar Lift = /* #__PURE__ */ (function () {\n function Lift(value0) {\n this.value0 = value0;\n };\n Lift.create = function (value0) {\n return new Lift(value0);\n };\n return Lift;\n})();\nvar Ap = /* #__PURE__ */ (function () {\n function Ap(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n Ap.create = function (value0) {\n return function (value1) {\n return new Ap(value0, value1);\n };\n };\n return Ap;\n})();\nvar mkAp = function (fba) {\n return function (fb) {\n return new Ap(fba, fb);\n };\n};\nvar liftFreeAp = /* #__PURE__ */ (function () {\n return Lift.create;\n})();\nvar goLeft = function (dictApplicative) {\n var pure = Control_Applicative.pure(dictApplicative);\n return function (fStack) {\n return function (valStack) {\n return function (nat) {\n return function (func) {\n return function (count) {\n if (func instanceof Pure) {\n return new Data_Tuple.Tuple(new Data_List_Types.Cons({\n func: pure(func.value0),\n count: count\n }, fStack), valStack);\n };\n if (func instanceof Lift) {\n return new Data_Tuple.Tuple(new Data_List_Types.Cons({\n func: nat(func.value0),\n count: count\n }, fStack), valStack);\n };\n if (func instanceof Ap) {\n return goLeft(dictApplicative)(fStack)(Data_List_NonEmpty.cons(func.value1)(valStack))(nat)(func.value0)(count + 1 | 0);\n };\n throw new Error(\"Failed pattern match at Control.Applicative.Free (line 102, column 41 - line 105, column 81): \" + [ func.constructor.name ]);\n };\n };\n };\n };\n };\n};\nvar goApply = function (dictApplicative) {\n var apply = Control_Apply.apply(dictApplicative.Apply0());\n return function (fStack) {\n return function (vals) {\n return function (gVal) {\n if (fStack instanceof Data_List_Types.Nil) {\n return new Data_Either.Left(gVal);\n };\n if (fStack instanceof Data_List_Types.Cons) {\n var gRes = apply(fStack.value0.func)(gVal);\n var $31 = fStack.value0.count === 1;\n if ($31) {\n if (fStack.value1 instanceof Data_List_Types.Nil) {\n return new Data_Either.Left(gRes);\n };\n return goApply(dictApplicative)(fStack.value1)(vals)(gRes);\n };\n if (vals instanceof Data_List_Types.Nil) {\n return new Data_Either.Left(gRes);\n };\n if (vals instanceof Data_List_Types.Cons) {\n return new Data_Either.Right(new Data_Tuple.Tuple(new Data_List_Types.Cons({\n func: gRes,\n count: fStack.value0.count - 1 | 0\n }, fStack.value1), new Data_NonEmpty.NonEmpty(vals.value0, vals.value1)));\n };\n throw new Error(\"Failed pattern match at Control.Applicative.Free (line 83, column 11 - line 88, column 50): \" + [ vals.constructor.name ]);\n };\n throw new Error(\"Failed pattern match at Control.Applicative.Free (line 72, column 3 - line 88, column 50): \" + [ fStack.constructor.name ]);\n };\n };\n };\n};\nvar functorFreeAp = {\n map: function (f) {\n return function (x) {\n return mkAp(new Pure(f))(x);\n };\n }\n};\nvar foldFreeAp = function (dictApplicative) {\n var goApply1 = goApply(dictApplicative);\n var pure = Control_Applicative.pure(dictApplicative);\n var goLeft1 = goLeft(dictApplicative);\n return function (nat) {\n return function (z) {\n var go = function ($copy_v) {\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(v) {\n if (v.value1.value0 instanceof Pure) {\n var v1 = goApply1(v.value0)(v.value1.value1)(pure(v.value1.value0.value0));\n if (v1 instanceof Data_Either.Left) {\n $tco_done = true;\n return v1.value0;\n };\n if (v1 instanceof Data_Either.Right) {\n $copy_v = v1.value0;\n return;\n };\n throw new Error(\"Failed pattern match at Control.Applicative.Free (line 54, column 17 - line 56, column 24): \" + [ v1.constructor.name ]);\n };\n if (v.value1.value0 instanceof Lift) {\n var v1 = goApply1(v.value0)(v.value1.value1)(nat(v.value1.value0.value0));\n if (v1 instanceof Data_Either.Left) {\n $tco_done = true;\n return v1.value0;\n };\n if (v1 instanceof Data_Either.Right) {\n $copy_v = v1.value0;\n return;\n };\n throw new Error(\"Failed pattern match at Control.Applicative.Free (line 57, column 17 - line 59, column 24): \" + [ v1.constructor.name ]);\n };\n if (v.value1.value0 instanceof Ap) {\n var nextVals = new Data_NonEmpty.NonEmpty(v.value1.value0.value1, v.value1.value1);\n $copy_v = goLeft1(v.value0)(nextVals)(nat)(v.value1.value0.value0)(1);\n return;\n };\n throw new Error(\"Failed pattern match at Control.Applicative.Free (line 53, column 5 - line 62, column 47): \" + [ v.value1.value0.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($copy_v);\n };\n return $tco_result;\n };\n return go(new Data_Tuple.Tuple(Data_List_Types.Nil.value, Data_List_NonEmpty.singleton(z)));\n };\n };\n};\nvar retractFreeAp = function (dictApplicative) {\n return foldFreeAp(dictApplicative)(identity);\n};\nvar applyFreeAp = {\n apply: function (fba) {\n return function (fb) {\n return mkAp(fba)(fb);\n };\n },\n Functor0: function () {\n return functorFreeAp;\n }\n};\nvar applicativeFreeAp = /* #__PURE__ */ (function () {\n return {\n pure: Pure.create,\n Apply0: function () {\n return applyFreeAp;\n }\n };\n})();\nvar foldFreeAp1 = /* #__PURE__ */ foldFreeAp(applicativeFreeAp);\nvar hoistFreeAp = function (f) {\n return foldFreeAp1(function ($54) {\n return liftFreeAp(f($54));\n });\n};\nvar analyzeFreeAp = function (dictMonoid) {\n var foldFreeAp2 = foldFreeAp(Data_Const.applicativeConst(dictMonoid));\n return function (k) {\n var $55 = foldFreeAp2(function ($57) {\n return Data_Const.Const(k($57));\n });\n return function ($56) {\n return unwrap($55($56));\n };\n };\n};\nexport {\n liftFreeAp,\n retractFreeAp,\n foldFreeAp,\n hoistFreeAp,\n analyzeFreeAp,\n functorFreeAp,\n applyFreeAp,\n applicativeFreeAp\n};\n","// Generated by purs version 0.15.7\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Apply from \"../Control.Apply/index.js\";\nimport * as Control_Monad from \"../Control.Monad/index.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Foldable from \"../Data.Foldable/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_List from \"../Data.List/index.js\";\nimport * as Data_List_Types from \"../Data.List.Types/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Data_Ordering from \"../Data.Ordering/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nimport * as Data_Show from \"../Data.Show/index.js\";\nimport * as Data_Traversable from \"../Data.Traversable/index.js\";\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nvar $runtime_lazy = function (name, moduleName, init) {\n var state = 0;\n var val;\n return function (lineNumber) {\n if (state === 2) return val;\n if (state === 1) throw new ReferenceError(name + \" was needed before it finished initializing (module \" + moduleName + \", line \" + lineNumber + \")\", moduleName, lineNumber);\n state = 1;\n val = init();\n state = 2;\n return val;\n };\n};\nvar map = /* #__PURE__ */ Data_Functor.map(Data_List_Types.functorList);\nvar CatQueue = /* #__PURE__ */ (function () {\n function CatQueue(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n CatQueue.create = function (value0) {\n return function (value1) {\n return new CatQueue(value0, value1);\n };\n };\n return CatQueue;\n})();\nvar unsnoc = function ($copy_v) {\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(v) {\n if (v.value1 instanceof Data_List_Types.Cons) {\n $tco_done = true;\n return new Data_Maybe.Just(new Data_Tuple.Tuple(v.value1.value0, new CatQueue(v.value0, v.value1.value1)));\n };\n if (v.value0 instanceof Data_List_Types.Nil && v.value1 instanceof Data_List_Types.Nil) {\n $tco_done = true;\n return Data_Maybe.Nothing.value;\n };\n if (v.value1 instanceof Data_List_Types.Nil) {\n $copy_v = new CatQueue(Data_List_Types.Nil.value, Data_List.reverse(v.value0));\n return;\n };\n throw new Error(\"Failed pattern match at Data.CatQueue (line 92, column 1 - line 92, column 63): \" + [ v.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($copy_v);\n };\n return $tco_result;\n};\nvar uncons = function ($copy_v) {\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(v) {\n if (v.value0 instanceof Data_List_Types.Nil && v.value1 instanceof Data_List_Types.Nil) {\n $tco_done = true;\n return Data_Maybe.Nothing.value;\n };\n if (v.value0 instanceof Data_List_Types.Nil) {\n $copy_v = new CatQueue(Data_List.reverse(v.value1), Data_List_Types.Nil.value);\n return;\n };\n if (v.value0 instanceof Data_List_Types.Cons) {\n $tco_done = true;\n return new Data_Maybe.Just(new Data_Tuple.Tuple(v.value0.value0, new CatQueue(v.value0.value1, v.value1)));\n };\n throw new Error(\"Failed pattern match at Data.CatQueue (line 82, column 1 - line 82, column 63): \" + [ v.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($copy_v);\n };\n return $tco_result;\n};\nvar snoc = function (v) {\n return function (a) {\n return new CatQueue(v.value0, new Data_List_Types.Cons(a, v.value1));\n };\n};\nvar showCatQueue = function (dictShow) {\n var show = Data_Show.show(Data_List_Types.showList(dictShow));\n return {\n show: function (v) {\n return \"(CatQueue \" + (show(v.value0) + (\" \" + (show(v.value1) + \")\")));\n }\n };\n};\nvar $$null = function (v) {\n if (v.value0 instanceof Data_List_Types.Nil && v.value1 instanceof Data_List_Types.Nil) {\n return true;\n };\n return false;\n};\nvar length = function (v) {\n return Data_List.length(v.value0) + Data_List.length(v.value1) | 0;\n};\nvar functorCatQueue = {\n map: function (f) {\n return function (v) {\n return new CatQueue(map(f)(v.value0), map(f)(v.value1));\n };\n }\n};\nvar foldableCatQueue = {\n foldMap: function (dictMonoid) {\n return Data_Foldable.foldMapDefaultL(foldableCatQueue)(dictMonoid);\n },\n foldr: function (f) {\n return Data_Foldable.foldrDefault(foldableCatQueue)(f);\n },\n foldl: function (f) {\n var go = function ($copy_acc) {\n return function ($copy_q) {\n var $tco_var_acc = $copy_acc;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(acc, q) {\n var v = uncons(q);\n if (v instanceof Data_Maybe.Just) {\n $tco_var_acc = f(acc)(v.value0.value0);\n $copy_q = v.value0.value1;\n return;\n };\n if (v instanceof Data_Maybe.Nothing) {\n $tco_done = true;\n return acc;\n };\n throw new Error(\"Failed pattern match at Data.CatQueue (line 147, column 16 - line 149, column 22): \" + [ v.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_acc, $copy_q);\n };\n return $tco_result;\n };\n };\n return go;\n }\n};\nvar foldl = /* #__PURE__ */ Data_Foldable.foldl(foldableCatQueue);\nvar semigroupCatQueue = {\n append: /* #__PURE__ */ foldl(snoc)\n};\nvar empty = /* #__PURE__ */ (function () {\n return new CatQueue(Data_List_Types.Nil.value, Data_List_Types.Nil.value);\n})();\nvar monoidCatQueue = {\n mempty: empty,\n Semigroup0: function () {\n return semigroupCatQueue;\n }\n};\nvar singleton = /* #__PURE__ */ snoc(empty);\nvar fromFoldable = function (dictFoldable) {\n var foldMap = Data_Foldable.foldMap(dictFoldable)(monoidCatQueue);\n return function (f) {\n return foldMap(singleton)(f);\n };\n};\nvar traversableCatQueue = {\n traverse: function (dictApplicative) {\n var Apply0 = dictApplicative.Apply0();\n var map1 = Data_Functor.map(Apply0.Functor0());\n var lift2 = Control_Apply.lift2(Apply0);\n var pure = Control_Applicative.pure(dictApplicative);\n return function (f) {\n var $123 = map1(foldl(snoc)(empty));\n var $124 = foldl(function (acc) {\n var $126 = lift2(snoc)(acc);\n return function ($127) {\n return $126(f($127));\n };\n })(pure(empty));\n return function ($125) {\n return $123($124($125));\n };\n };\n },\n sequence: function (dictApplicative) {\n return Data_Traversable.sequenceDefault(traversableCatQueue)(dictApplicative);\n },\n Functor0: function () {\n return functorCatQueue;\n },\n Foldable1: function () {\n return foldableCatQueue;\n }\n};\nvar unfoldable1CatQueue = {\n unfoldr1: function (f) {\n return function (b) {\n var go = function ($copy_source) {\n return function ($copy_memo) {\n var $tco_var_source = $copy_source;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(source, memo) {\n var v = f(source);\n if (v.value1 instanceof Data_Maybe.Nothing) {\n $tco_done = true;\n return snoc(memo)(v.value0);\n };\n if (v.value1 instanceof Data_Maybe.Just) {\n $tco_var_source = v.value1.value0;\n $copy_memo = snoc(memo)(v.value0);\n return;\n };\n throw new Error(\"Failed pattern match at Data.CatQueue (line 154, column 24 - line 156, column 57): \" + [ v.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_source, $copy_memo);\n };\n return $tco_result;\n };\n };\n return go(b)(empty);\n };\n }\n};\nvar unfoldableCatQueue = {\n unfoldr: function (f) {\n return function (b) {\n var go = function ($copy_source) {\n return function ($copy_memo) {\n var $tco_var_source = $copy_source;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(source, memo) {\n var v = f(source);\n if (v instanceof Data_Maybe.Nothing) {\n $tco_done = true;\n return memo;\n };\n if (v instanceof Data_Maybe.Just) {\n $tco_var_source = v.value0.value1;\n $copy_memo = snoc(memo)(v.value0.value0);\n return;\n };\n throw new Error(\"Failed pattern match at Data.CatQueue (line 161, column 24 - line 163, column 57): \" + [ v.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_source, $copy_memo);\n };\n return $tco_result;\n };\n };\n return go(b)(empty);\n };\n },\n Unfoldable10: function () {\n return unfoldable1CatQueue;\n }\n};\nvar cqEq = function (dictEq) {\n var elemEq = Data_Eq.eq(dictEq);\n var go = function ($copy_xs) {\n return function ($copy_ys) {\n var $tco_var_xs = $copy_xs;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(xs, ys) {\n var v = uncons(ys);\n var v1 = uncons(xs);\n if (v1 instanceof Data_Maybe.Just && (v instanceof Data_Maybe.Just && elemEq(v1.value0.value0)(v.value0.value0))) {\n $tco_var_xs = v1.value0.value1;\n $copy_ys = v.value0.value1;\n return;\n };\n if (v1 instanceof Data_Maybe.Nothing && v instanceof Data_Maybe.Nothing) {\n $tco_done = true;\n return true;\n };\n $tco_done = true;\n return false;\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_xs, $copy_ys);\n };\n return $tco_result;\n };\n };\n return go;\n};\nvar eqCatQueue = function (dictEq) {\n return {\n eq: cqEq(dictEq)\n };\n};\nvar cqCompare = function (dictOrd) {\n var elemCompare = Data_Ord.compare(dictOrd);\n var go = function ($copy_xs) {\n return function ($copy_ys) {\n var $tco_var_xs = $copy_xs;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(xs, ys) {\n var v = uncons(ys);\n var v1 = uncons(xs);\n if (v1 instanceof Data_Maybe.Just && v instanceof Data_Maybe.Just) {\n var v2 = elemCompare(v1.value0.value0)(v.value0.value0);\n if (v2 instanceof Data_Ordering.EQ) {\n $tco_var_xs = v1.value0.value1;\n $copy_ys = v.value0.value1;\n return;\n };\n $tco_done = true;\n return v2;\n };\n if (v1 instanceof Data_Maybe.Just && v instanceof Data_Maybe.Nothing) {\n $tco_done = true;\n return Data_Ordering.GT.value;\n };\n if (v1 instanceof Data_Maybe.Nothing && v instanceof Data_Maybe.Just) {\n $tco_done = true;\n return Data_Ordering.LT.value;\n };\n if (v1 instanceof Data_Maybe.Nothing && v instanceof Data_Maybe.Nothing) {\n $tco_done = true;\n return Data_Ordering.EQ.value;\n };\n throw new Error(\"Failed pattern match at Data.CatQueue (line 117, column 16 - line 124, column 30): \" + [ v1.constructor.name, v.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_xs, $copy_ys);\n };\n return $tco_result;\n };\n };\n return go;\n};\nvar ordCatQueue = function (dictOrd) {\n var eqCatQueue1 = eqCatQueue(dictOrd.Eq0());\n return {\n compare: cqCompare(dictOrd),\n Eq0: function () {\n return eqCatQueue1;\n }\n };\n};\nvar cons = function (a) {\n return function (v) {\n return new CatQueue(new Data_List_Types.Cons(a, v.value0), v.value1);\n };\n};\nvar monadCatQueue = {\n Applicative0: function () {\n return applicativeCatQueue;\n },\n Bind1: function () {\n return bindCatQueue;\n }\n};\nvar bindCatQueue = {\n bind: /* #__PURE__ */ Data_Function.flip(/* #__PURE__ */ Data_Foldable.foldMap(foldableCatQueue)(monoidCatQueue)),\n Apply0: function () {\n return $lazy_applyCatQueue(0);\n }\n};\nvar applicativeCatQueue = {\n pure: singleton,\n Apply0: function () {\n return $lazy_applyCatQueue(0);\n }\n};\nvar $lazy_applyCatQueue = /* #__PURE__ */ $runtime_lazy(\"applyCatQueue\", \"Data.CatQueue\", function () {\n return {\n apply: Control_Monad.ap(monadCatQueue),\n Functor0: function () {\n return functorCatQueue;\n }\n };\n});\nvar applyCatQueue = /* #__PURE__ */ $lazy_applyCatQueue(174);\nvar altCatQueue = {\n alt: /* #__PURE__ */ Data_Semigroup.append(semigroupCatQueue),\n Functor0: function () {\n return functorCatQueue;\n }\n};\nvar plusCatQueue = {\n empty: empty,\n Alt0: function () {\n return altCatQueue;\n }\n};\nvar alternativeCatQueue = {\n Applicative0: function () {\n return applicativeCatQueue;\n },\n Plus1: function () {\n return plusCatQueue;\n }\n};\nvar monadPlusCatQueue = {\n Monad0: function () {\n return monadCatQueue;\n },\n Alternative1: function () {\n return alternativeCatQueue;\n }\n};\nexport {\n CatQueue,\n empty,\n $$null as null,\n singleton,\n length,\n cons,\n snoc,\n uncons,\n unsnoc,\n fromFoldable,\n eqCatQueue,\n ordCatQueue,\n semigroupCatQueue,\n monoidCatQueue,\n showCatQueue,\n foldableCatQueue,\n unfoldable1CatQueue,\n unfoldableCatQueue,\n traversableCatQueue,\n functorCatQueue,\n applyCatQueue,\n applicativeCatQueue,\n bindCatQueue,\n monadCatQueue,\n altCatQueue,\n plusCatQueue,\n alternativeCatQueue,\n monadPlusCatQueue\n};\n","// Generated by purs version 0.15.7\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Apply from \"../Control.Apply/index.js\";\nimport * as Control_Monad from \"../Control.Monad/index.js\";\nimport * as Data_CatQueue from \"../Data.CatQueue/index.js\";\nimport * as Data_Foldable from \"../Data.Foldable/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_List_Types from \"../Data.List.Types/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Monoid from \"../Data.Monoid/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nimport * as Data_Semiring from \"../Data.Semiring/index.js\";\nimport * as Data_Show from \"../Data.Show/index.js\";\nimport * as Data_Traversable from \"../Data.Traversable/index.js\";\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nvar $runtime_lazy = function (name, moduleName, init) {\n var state = 0;\n var val;\n return function (lineNumber) {\n if (state === 2) return val;\n if (state === 1) throw new ReferenceError(name + \" was needed before it finished initializing (module \" + moduleName + \", line \" + lineNumber + \")\", moduleName, lineNumber);\n state = 1;\n val = init();\n state = 2;\n return val;\n };\n};\nvar CatNil = /* #__PURE__ */ (function () {\n function CatNil() {\n\n };\n CatNil.value = new CatNil();\n return CatNil;\n})();\nvar CatCons = /* #__PURE__ */ (function () {\n function CatCons(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n CatCons.create = function (value0) {\n return function (value1) {\n return new CatCons(value0, value1);\n };\n };\n return CatCons;\n})();\nvar showCatList = function (dictShow) {\n var show = Data_Show.show(dictShow);\n return {\n show: function (v) {\n if (v instanceof CatNil) {\n return \"CatNil\";\n };\n if (v instanceof CatCons) {\n return \"(CatList \" + (show(v.value0) + (\" \" + (Data_Show.show(Data_CatQueue.showCatQueue(showCatList(dictShow)))(v.value1) + \")\")));\n };\n throw new Error(\"Failed pattern match at Data.CatList (line 147, column 1 - line 149, column 71): \" + [ v.constructor.name ]);\n }\n };\n};\nvar $$null = function (v) {\n if (v instanceof CatNil) {\n return true;\n };\n return false;\n};\nvar link = function (v) {\n return function (v1) {\n if (v instanceof CatNil) {\n return v1;\n };\n if (v1 instanceof CatNil) {\n return v;\n };\n if (v instanceof CatCons) {\n return new CatCons(v.value0, Data_CatQueue.snoc(v.value1)(v1));\n };\n throw new Error(\"Failed pattern match at Data.CatList (line 108, column 1 - line 108, column 54): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n};\nvar foldr = function (k) {\n return function (b) {\n return function (q) {\n var foldl = function ($copy_v) {\n return function ($copy_v1) {\n return function ($copy_v2) {\n var $tco_var_v = $copy_v;\n var $tco_var_v1 = $copy_v1;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(v, v1, v2) {\n if (v2 instanceof Data_List_Types.Nil) {\n $tco_done = true;\n return v1;\n };\n if (v2 instanceof Data_List_Types.Cons) {\n $tco_var_v = v;\n $tco_var_v1 = v(v1)(v2.value0);\n $copy_v2 = v2.value1;\n return;\n };\n throw new Error(\"Failed pattern match at Data.CatList (line 124, column 3 - line 124, column 59): \" + [ v.constructor.name, v1.constructor.name, v2.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_v, $tco_var_v1, $copy_v2);\n };\n return $tco_result;\n };\n };\n };\n var go = function ($copy_xs) {\n return function ($copy_ys) {\n var $tco_var_xs = $copy_xs;\n var $tco_done1 = false;\n var $tco_result;\n function $tco_loop(xs, ys) {\n var v = Data_CatQueue.uncons(xs);\n if (v instanceof Data_Maybe.Nothing) {\n $tco_done1 = true;\n return foldl(function (x) {\n return function (i) {\n return i(x);\n };\n })(b)(ys);\n };\n if (v instanceof Data_Maybe.Just) {\n $tco_var_xs = v.value0.value1;\n $copy_ys = new Data_List_Types.Cons(k(v.value0.value0), ys);\n return;\n };\n throw new Error(\"Failed pattern match at Data.CatList (line 120, column 14 - line 122, column 67): \" + [ v.constructor.name ]);\n };\n while (!$tco_done1) {\n $tco_result = $tco_loop($tco_var_xs, $copy_ys);\n };\n return $tco_result;\n };\n };\n return go(q)(Data_List_Types.Nil.value);\n };\n };\n};\nvar uncons = function (v) {\n if (v instanceof CatNil) {\n return Data_Maybe.Nothing.value;\n };\n if (v instanceof CatCons) {\n return new Data_Maybe.Just(new Data_Tuple.Tuple(v.value0, (function () {\n var $66 = Data_CatQueue[\"null\"](v.value1);\n if ($66) {\n return CatNil.value;\n };\n return foldr(link)(CatNil.value)(v.value1);\n })()));\n };\n throw new Error(\"Failed pattern match at Data.CatList (line 99, column 1 - line 99, column 61): \" + [ v.constructor.name ]);\n};\nvar foldableCatList = {\n foldMap: function (dictMonoid) {\n return Data_Foldable.foldMapDefaultL(foldableCatList)(dictMonoid);\n },\n foldr: function (f) {\n return function (s) {\n return function (l) {\n return Data_Foldable.foldrDefault(foldableCatList)(f)(s)(l);\n };\n };\n },\n foldl: function (f) {\n var go = function ($copy_acc) {\n return function ($copy_q) {\n var $tco_var_acc = $copy_acc;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(acc, q) {\n var v = uncons(q);\n if (v instanceof Data_Maybe.Just) {\n $tco_var_acc = f(acc)(v.value0.value0);\n $copy_q = v.value0.value1;\n return;\n };\n if (v instanceof Data_Maybe.Nothing) {\n $tco_done = true;\n return acc;\n };\n throw new Error(\"Failed pattern match at Data.CatList (line 156, column 16 - line 158, column 22): \" + [ v.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_acc, $copy_q);\n };\n return $tco_result;\n };\n };\n return go;\n }\n};\nvar length = /* #__PURE__ */ Data_Foldable.length(foldableCatList)(Data_Semiring.semiringInt);\nvar foldMap = function (dictMonoid) {\n var mempty = Data_Monoid.mempty(dictMonoid);\n var append2 = Data_Semigroup.append(dictMonoid.Semigroup0());\n return function (v) {\n return function (v1) {\n if (v1 instanceof CatNil) {\n return mempty;\n };\n if (v1 instanceof CatCons) {\n var d = (function () {\n var $75 = Data_CatQueue[\"null\"](v1.value1);\n if ($75) {\n return CatNil.value;\n };\n return foldr(link)(CatNil.value)(v1.value1);\n })();\n return append2(v(v1.value0))(foldMap(dictMonoid)(v)(d));\n };\n throw new Error(\"Failed pattern match at Data.CatList (line 134, column 1 - line 134, column 62): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n };\n};\nvar empty = /* #__PURE__ */ (function () {\n return CatNil.value;\n})();\nvar append = link;\nvar cons = function (a) {\n return function (cat) {\n return append(new CatCons(a, Data_CatQueue.empty))(cat);\n };\n};\nvar functorCatList = {\n map: function (v) {\n return function (v1) {\n if (v1 instanceof CatNil) {\n return CatNil.value;\n };\n if (v1 instanceof CatCons) {\n var d = (function () {\n var $80 = Data_CatQueue[\"null\"](v1.value1);\n if ($80) {\n return CatNil.value;\n };\n return foldr(link)(CatNil.value)(v1.value1);\n })();\n return cons(v(v1.value0))(Data_Functor.map(functorCatList)(v)(d));\n };\n throw new Error(\"Failed pattern match at Data.CatList (line 184, column 1 - line 188, column 26): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n }\n};\nvar singleton = function (a) {\n return cons(a)(CatNil.value);\n};\nvar traversableCatList = {\n traverse: function (dictApplicative) {\n var pure = Control_Applicative.pure(dictApplicative);\n var Apply0 = dictApplicative.Apply0();\n var apply = Control_Apply.apply(Apply0);\n var map = Data_Functor.map(Apply0.Functor0());\n return function (v) {\n return function (v1) {\n if (v1 instanceof CatNil) {\n return pure(CatNil.value);\n };\n if (v1 instanceof CatCons) {\n var d = (function () {\n var $85 = Data_CatQueue[\"null\"](v1.value1);\n if ($85) {\n return CatNil.value;\n };\n return foldr(link)(CatNil.value)(v1.value1);\n })();\n return apply(map(cons)(v(v1.value0)))(Data_Traversable.traverse(traversableCatList)(dictApplicative)(v)(d));\n };\n throw new Error(\"Failed pattern match at Data.CatList (line 174, column 1 - line 182, column 33): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n };\n },\n sequence: function (dictApplicative) {\n var pure = Control_Applicative.pure(dictApplicative);\n var Apply0 = dictApplicative.Apply0();\n var apply = Control_Apply.apply(Apply0);\n var map = Data_Functor.map(Apply0.Functor0());\n return function (v) {\n if (v instanceof CatNil) {\n return pure(CatNil.value);\n };\n if (v instanceof CatCons) {\n var d = (function () {\n var $89 = Data_CatQueue[\"null\"](v.value1);\n if ($89) {\n return CatNil.value;\n };\n return foldr(link)(CatNil.value)(v.value1);\n })();\n return apply(map(cons)(v.value0))(Data_Traversable.sequence(traversableCatList)(dictApplicative)(d));\n };\n throw new Error(\"Failed pattern match at Data.CatList (line 174, column 1 - line 182, column 33): \" + [ v.constructor.name ]);\n };\n },\n Functor0: function () {\n return functorCatList;\n },\n Foldable1: function () {\n return foldableCatList;\n }\n};\nvar semigroupCatList = {\n append: append\n};\nvar monoidCatList = /* #__PURE__ */ (function () {\n return {\n mempty: CatNil.value,\n Semigroup0: function () {\n return semigroupCatList;\n }\n };\n})();\nvar monadCatList = {\n Applicative0: function () {\n return applicativeCatList;\n },\n Bind1: function () {\n return bindCatList;\n }\n};\nvar bindCatList = {\n bind: /* #__PURE__ */ Data_Function.flip(/* #__PURE__ */ foldMap(monoidCatList)),\n Apply0: function () {\n return $lazy_applyCatList(0);\n }\n};\nvar applicativeCatList = {\n pure: singleton,\n Apply0: function () {\n return $lazy_applyCatList(0);\n }\n};\nvar $lazy_applyCatList = /* #__PURE__ */ $runtime_lazy(\"applyCatList\", \"Data.CatList\", function () {\n return {\n apply: Control_Monad.ap(monadCatList),\n Functor0: function () {\n return functorCatList;\n }\n };\n});\nvar applyCatList = /* #__PURE__ */ $lazy_applyCatList(190);\nvar fromFoldable = function (dictFoldable) {\n var foldMap1 = Data_Foldable.foldMap(dictFoldable)(monoidCatList);\n return function (f) {\n return foldMap1(singleton)(f);\n };\n};\nvar snoc = function (cat) {\n return function (a) {\n return append(cat)(new CatCons(a, Data_CatQueue.empty));\n };\n};\nvar unfoldable1CatList = {\n unfoldr1: function (f) {\n return function (b) {\n var go = function ($copy_source) {\n return function ($copy_memo) {\n var $tco_var_source = $copy_source;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(source, memo) {\n var v = f(source);\n if (v.value1 instanceof Data_Maybe.Nothing) {\n $tco_done = true;\n return snoc(memo)(v.value0);\n };\n if (v.value1 instanceof Data_Maybe.Just) {\n $tco_var_source = v.value1.value0;\n $copy_memo = snoc(memo)(v.value0);\n return;\n };\n throw new Error(\"Failed pattern match at Data.CatList (line 170, column 24 - line 172, column 57): \" + [ v.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_source, $copy_memo);\n };\n return $tco_result;\n };\n };\n return go(b)(CatNil.value);\n };\n }\n};\nvar unfoldableCatList = {\n unfoldr: function (f) {\n return function (b) {\n var go = function ($copy_source) {\n return function ($copy_memo) {\n var $tco_var_source = $copy_source;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(source, memo) {\n var v = f(source);\n if (v instanceof Data_Maybe.Nothing) {\n $tco_done = true;\n return memo;\n };\n if (v instanceof Data_Maybe.Just) {\n $tco_var_source = v.value0.value1;\n $copy_memo = snoc(memo)(v.value0.value0);\n return;\n };\n throw new Error(\"Failed pattern match at Data.CatList (line 163, column 24 - line 165, column 57): \" + [ v.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_source, $copy_memo);\n };\n return $tco_result;\n };\n };\n return go(b)(CatNil.value);\n };\n },\n Unfoldable10: function () {\n return unfoldable1CatList;\n }\n};\nvar altCatList = {\n alt: append,\n Functor0: function () {\n return functorCatList;\n }\n};\nvar plusCatList = {\n empty: empty,\n Alt0: function () {\n return altCatList;\n }\n};\nvar alternativeCatList = {\n Applicative0: function () {\n return applicativeCatList;\n },\n Plus1: function () {\n return plusCatList;\n }\n};\nvar monadPlusCatList = {\n Monad0: function () {\n return monadCatList;\n },\n Alternative1: function () {\n return alternativeCatList;\n }\n};\nexport {\n CatNil,\n CatCons,\n empty,\n $$null as null,\n singleton,\n length,\n append,\n cons,\n snoc,\n uncons,\n fromFoldable,\n semigroupCatList,\n monoidCatList,\n showCatList,\n foldableCatList,\n unfoldableCatList,\n unfoldable1CatList,\n traversableCatList,\n functorCatList,\n applyCatList,\n applicativeCatList,\n bindCatList,\n monadCatList,\n altCatList,\n plusCatList,\n alternativeCatList,\n monadPlusCatList\n};\n","// Generated by purs version 0.15.7\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Apply from \"../Control.Apply/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Control_Monad from \"../Control.Monad/index.js\";\nimport * as Control_Monad_Rec_Class from \"../Control.Monad.Rec.Class/index.js\";\nimport * as Data_CatList from \"../Data.CatList/index.js\";\nimport * as Data_Either from \"../Data.Either/index.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Foldable from \"../Data.Foldable/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Monoid from \"../Data.Monoid/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Data_Ordering from \"../Data.Ordering/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nimport * as Data_Traversable from \"../Data.Traversable/index.js\";\nimport * as Unsafe_Coerce from \"../Unsafe.Coerce/index.js\";\nvar $runtime_lazy = function (name, moduleName, init) {\n var state = 0;\n var val;\n return function (lineNumber) {\n if (state === 2) return val;\n if (state === 1) throw new ReferenceError(name + \" was needed before it finished initializing (module \" + moduleName + \", line \" + lineNumber + \")\", moduleName, lineNumber);\n state = 1;\n val = init();\n state = 2;\n return val;\n };\n};\nvar append = /* #__PURE__ */ Data_Semigroup.append(Data_CatList.semigroupCatList);\nvar map = /* #__PURE__ */ Data_Functor.map(Data_Functor.functorFn);\nvar identity = /* #__PURE__ */ Control_Category.identity(Control_Category.categoryFn);\nvar ExpF = function (x) {\n return x;\n};\nvar Free = /* #__PURE__ */ (function () {\n function Free(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n Free.create = function (value0) {\n return function (value1) {\n return new Free(value0, value1);\n };\n };\n return Free;\n})();\nvar Return = /* #__PURE__ */ (function () {\n function Return(value0) {\n this.value0 = value0;\n };\n Return.create = function (value0) {\n return new Return(value0);\n };\n return Return;\n})();\nvar Bind = /* #__PURE__ */ (function () {\n function Bind(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n Bind.create = function (value0) {\n return function (value1) {\n return new Bind(value0, value1);\n };\n };\n return Bind;\n})();\nvar toView = function ($copy_v) {\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(v) {\n var runExpF = function (v2) {\n return v2;\n };\n var concatF = function (v2) {\n return function (r) {\n return new Free(v2.value0, append(v2.value1)(r));\n };\n };\n if (v.value0 instanceof Return) {\n var v2 = Data_CatList.uncons(v.value1);\n if (v2 instanceof Data_Maybe.Nothing) {\n $tco_done = true;\n return new Return(v.value0.value0);\n };\n if (v2 instanceof Data_Maybe.Just) {\n $copy_v = concatF(runExpF(v2.value0.value0)(v.value0.value0))(v2.value0.value1);\n return;\n };\n throw new Error(\"Failed pattern match at Control.Monad.Free (line 227, column 7 - line 231, column 64): \" + [ v2.constructor.name ]);\n };\n if (v.value0 instanceof Bind) {\n $tco_done = true;\n return new Bind(v.value0.value0, function (a) {\n return concatF(v.value0.value1(a))(v.value1);\n });\n };\n throw new Error(\"Failed pattern match at Control.Monad.Free (line 225, column 3 - line 233, column 56): \" + [ v.value0.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($copy_v);\n };\n return $tco_result;\n};\nvar runFreeM = function (dictFunctor) {\n var map1 = Data_Functor.map(dictFunctor);\n return function (dictMonadRec) {\n var Monad0 = dictMonadRec.Monad0();\n var map2 = Data_Functor.map(((Monad0.Bind1()).Apply0()).Functor0());\n var pure1 = Control_Applicative.pure(Monad0.Applicative0());\n var tailRecM = Control_Monad_Rec_Class.tailRecM(dictMonadRec);\n return function (k) {\n var go = function (f) {\n var v = toView(f);\n if (v instanceof Return) {\n return map2(Control_Monad_Rec_Class.Done.create)(pure1(v.value0));\n };\n if (v instanceof Bind) {\n return map2(Control_Monad_Rec_Class.Loop.create)(k(map1(v.value1)(v.value0)));\n };\n throw new Error(\"Failed pattern match at Control.Monad.Free (line 194, column 10 - line 196, column 37): \" + [ v.constructor.name ]);\n };\n return tailRecM(go);\n };\n };\n};\nvar runFree = function (dictFunctor) {\n var map1 = Data_Functor.map(dictFunctor);\n return function (k) {\n var go = function ($copy_f) {\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(f) {\n var v = toView(f);\n if (v instanceof Return) {\n $tco_done = true;\n return v.value0;\n };\n if (v instanceof Bind) {\n $copy_f = k(map1(v.value1)(v.value0));\n return;\n };\n throw new Error(\"Failed pattern match at Control.Monad.Free (line 178, column 10 - line 180, column 33): \" + [ v.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($copy_f);\n };\n return $tco_result;\n };\n return go;\n };\n};\nvar resume$prime = function (k) {\n return function (j) {\n return function (f) {\n var v = toView(f);\n if (v instanceof Return) {\n return j(v.value0);\n };\n if (v instanceof Bind) {\n return k(v.value0)(v.value1);\n };\n throw new Error(\"Failed pattern match at Control.Monad.Free (line 213, column 17 - line 215, column 20): \" + [ v.constructor.name ]);\n };\n };\n};\nvar resume = function (dictFunctor) {\n var map1 = Data_Functor.map(dictFunctor);\n return resume$prime(function (g) {\n return function (i) {\n return new Data_Either.Left(map1(i)(g));\n };\n })(Data_Either.Right.create);\n};\nvar fromView = function (f) {\n return new Free(f, Data_CatList.empty);\n};\nvar wrap = function (f) {\n return fromView(new Bind(f, Unsafe_Coerce.unsafeCoerce));\n};\nvar suspendF = function (dictApplicative) {\n var pure1 = Control_Applicative.pure(dictApplicative);\n return function (f) {\n return wrap(pure1(f));\n };\n};\nvar freeMonad = {\n Applicative0: function () {\n return freeApplicative;\n },\n Bind1: function () {\n return freeBind;\n }\n};\nvar freeFunctor = {\n map: function (k) {\n return function (f) {\n return Control_Bind.bindFlipped(freeBind)((function () {\n var $189 = Control_Applicative.pure(freeApplicative);\n return function ($190) {\n return $189(k($190));\n };\n })())(f);\n };\n }\n};\nvar freeBind = {\n bind: function (v) {\n return function (k) {\n return new Free(v.value0, Data_CatList.snoc(v.value1)(k));\n };\n },\n Apply0: function () {\n return $lazy_freeApply(0);\n }\n};\nvar freeApplicative = {\n pure: function ($191) {\n return fromView(Return.create($191));\n },\n Apply0: function () {\n return $lazy_freeApply(0);\n }\n};\nvar $lazy_freeApply = /* #__PURE__ */ $runtime_lazy(\"freeApply\", \"Control.Monad.Free\", function () {\n return {\n apply: Control_Monad.ap(freeMonad),\n Functor0: function () {\n return freeFunctor;\n }\n };\n});\nvar freeApply = /* #__PURE__ */ $lazy_freeApply(77);\nvar lift2 = /* #__PURE__ */ Control_Apply.lift2(freeApply);\nvar bind = /* #__PURE__ */ Control_Bind.bind(freeBind);\nvar pure = /* #__PURE__ */ Control_Applicative.pure(freeApplicative);\nvar join = /* #__PURE__ */ Control_Bind.join(freeBind);\nvar semigroupFree = function (dictSemigroup) {\n return {\n append: lift2(Data_Semigroup.append(dictSemigroup))\n };\n};\nvar freeMonadRec = {\n tailRecM: function (k) {\n return function (a) {\n return bind(k(a))(function (v) {\n if (v instanceof Control_Monad_Rec_Class.Loop) {\n return Control_Monad_Rec_Class.tailRecM(freeMonadRec)(k)(v.value0);\n };\n if (v instanceof Control_Monad_Rec_Class.Done) {\n return pure(v.value0);\n };\n throw new Error(\"Failed pattern match at Control.Monad.Free (line 86, column 26 - line 88, column 21): \" + [ v.constructor.name ]);\n });\n };\n },\n Monad0: function () {\n return freeMonad;\n }\n};\nvar liftF = function (f) {\n return fromView(new Bind(f, function ($192) {\n return pure($192);\n }));\n};\nvar freeMonadTrans = {\n lift: function (dictMonad) {\n return liftF;\n }\n};\nvar monoidFree = function (dictMonoid) {\n var semigroupFree1 = semigroupFree(dictMonoid.Semigroup0());\n return {\n mempty: pure(Data_Monoid.mempty(dictMonoid)),\n Semigroup0: function () {\n return semigroupFree1;\n }\n };\n};\nvar substFree = function (k) {\n var go = function (f) {\n var v = toView(f);\n if (v instanceof Return) {\n return pure(v.value0);\n };\n if (v instanceof Bind) {\n return bind(k(v.value0))(map(go)(v.value1));\n };\n throw new Error(\"Failed pattern match at Control.Monad.Free (line 168, column 10 - line 170, column 33): \" + [ v.constructor.name ]);\n };\n return go;\n};\nvar hoistFree = function (k) {\n return substFree(function ($193) {\n return liftF(k($193));\n });\n};\nvar foldableFree = function (dictFunctor) {\n var resume1 = resume(dictFunctor);\n return function (dictFoldable) {\n var foldMap = Data_Foldable.foldMap(dictFoldable);\n var foldl = Data_Foldable.foldl(dictFoldable);\n var foldr = Data_Foldable.foldr(dictFoldable);\n return {\n foldMap: function (dictMonoid) {\n var foldMap1 = foldMap(dictMonoid);\n return function (f) {\n var $lazy_go = $runtime_lazy(\"go\", \"Control.Monad.Free\", function () {\n return function ($194) {\n return (function (v) {\n if (v instanceof Data_Either.Left) {\n return foldMap1($lazy_go(94))(v.value0);\n };\n if (v instanceof Data_Either.Right) {\n return f(v.value0);\n };\n throw new Error(\"Failed pattern match at Control.Monad.Free (line 93, column 21 - line 95, column 21): \" + [ v.constructor.name ]);\n })(resume1($194));\n };\n });\n var go = $lazy_go(93);\n return go;\n };\n },\n foldl: function (f) {\n var go = function (r) {\n return function ($195) {\n return (function (v) {\n if (v instanceof Data_Either.Left) {\n return foldl(go)(r)(v.value0);\n };\n if (v instanceof Data_Either.Right) {\n return f(r)(v.value0);\n };\n throw new Error(\"Failed pattern match at Control.Monad.Free (line 98, column 23 - line 100, column 23): \" + [ v.constructor.name ]);\n })(resume1($195));\n };\n };\n return go;\n },\n foldr: function (f) {\n var go = function (r) {\n return function ($196) {\n return (function (v) {\n if (v instanceof Data_Either.Left) {\n return foldr(Data_Function.flip(go))(r)(v.value0);\n };\n if (v instanceof Data_Either.Right) {\n return f(v.value0)(r);\n };\n throw new Error(\"Failed pattern match at Control.Monad.Free (line 103, column 23 - line 105, column 23): \" + [ v.constructor.name ]);\n })(resume1($196));\n };\n };\n return go;\n }\n };\n };\n};\nvar traversableFree = function (dictTraversable) {\n var Functor0 = dictTraversable.Functor0();\n var resume1 = resume(Functor0);\n var traverse = Data_Traversable.traverse(dictTraversable);\n var foldableFree1 = foldableFree(Functor0)(dictTraversable.Foldable1());\n return {\n traverse: function (dictApplicative) {\n var map1 = Data_Functor.map((dictApplicative.Apply0()).Functor0());\n var traverse1 = traverse(dictApplicative);\n return function (f) {\n var $lazy_go = $runtime_lazy(\"go\", \"Control.Monad.Free\", function () {\n return function ($197) {\n return (function (v) {\n if (v instanceof Data_Either.Left) {\n return map1(function ($198) {\n return join(liftF($198));\n })(traverse1($lazy_go(111))(v.value0));\n };\n if (v instanceof Data_Either.Right) {\n return map1(pure)(f(v.value0));\n };\n throw new Error(\"Failed pattern match at Control.Monad.Free (line 110, column 21 - line 112, column 30): \" + [ v.constructor.name ]);\n })(resume1($197));\n };\n });\n var go = $lazy_go(110);\n return go;\n };\n },\n sequence: function (dictApplicative) {\n return function (tma) {\n return Data_Traversable.traverse(traversableFree(dictTraversable))(dictApplicative)(identity)(tma);\n };\n },\n Functor0: function () {\n return freeFunctor;\n },\n Foldable1: function () {\n return foldableFree1;\n }\n };\n};\nvar foldFree = function (dictMonadRec) {\n var Monad0 = dictMonadRec.Monad0();\n var map1 = Data_Functor.map(((Monad0.Bind1()).Apply0()).Functor0());\n var pure1 = Control_Applicative.pure(Monad0.Applicative0());\n var tailRecM = Control_Monad_Rec_Class.tailRecM(dictMonadRec);\n return function (k) {\n var go = function (f) {\n var v = toView(f);\n if (v instanceof Return) {\n return map1(Control_Monad_Rec_Class.Done.create)(pure1(v.value0));\n };\n if (v instanceof Bind) {\n return map1(function ($199) {\n return Control_Monad_Rec_Class.Loop.create(v.value1($199));\n })(k(v.value0));\n };\n throw new Error(\"Failed pattern match at Control.Monad.Free (line 158, column 10 - line 160, column 37): \" + [ v.constructor.name ]);\n };\n return tailRecM(go);\n };\n};\nvar eqFree = function (dictFunctor) {\n var resume1 = resume(dictFunctor);\n return function (dictEq1) {\n var eq1 = Data_Eq.eq1(dictEq1);\n return function (dictEq) {\n var eq = Data_Eq.eq(dictEq);\n return {\n eq: function (x) {\n return function (y) {\n var v = resume1(y);\n var v1 = resume1(x);\n if (v1 instanceof Data_Either.Left && v instanceof Data_Either.Left) {\n return eq1(eqFree(dictFunctor)(dictEq1)(dictEq))(v1.value0)(v.value0);\n };\n if (v1 instanceof Data_Either.Right && v instanceof Data_Either.Right) {\n return eq(v1.value0)(v.value0);\n };\n return false;\n };\n }\n };\n };\n };\n};\nvar ordFree = function (dictFunctor) {\n var resume1 = resume(dictFunctor);\n var eqFree1 = eqFree(dictFunctor);\n return function (dictOrd1) {\n var compare1 = Data_Ord.compare1(dictOrd1);\n var eqFree2 = eqFree1(dictOrd1.Eq10());\n return function (dictOrd) {\n var compare = Data_Ord.compare(dictOrd);\n var eqFree3 = eqFree2(dictOrd.Eq0());\n return {\n compare: function (x) {\n return function (y) {\n var v = resume1(y);\n var v1 = resume1(x);\n if (v1 instanceof Data_Either.Left && v instanceof Data_Either.Left) {\n return compare1(ordFree(dictFunctor)(dictOrd1)(dictOrd))(v1.value0)(v.value0);\n };\n if (v1 instanceof Data_Either.Left) {\n return Data_Ordering.LT.value;\n };\n if (v instanceof Data_Either.Left) {\n return Data_Ordering.GT.value;\n };\n if (v1 instanceof Data_Either.Right && v instanceof Data_Either.Right) {\n return compare(v1.value0)(v.value0);\n };\n throw new Error(\"Failed pattern match at Control.Monad.Free (line 56, column 17 - line 60, column 36): \" + [ v1.constructor.name, v.constructor.name ]);\n };\n },\n Eq0: function () {\n return eqFree3;\n }\n };\n };\n };\n};\nvar eq1Free = function (dictFunctor) {\n var eqFree1 = eqFree(dictFunctor);\n return function (dictEq1) {\n var eqFree2 = eqFree1(dictEq1);\n return {\n eq1: function (dictEq) {\n return Data_Eq.eq(eqFree2(dictEq));\n }\n };\n };\n};\nvar ord1Free = function (dictFunctor) {\n var ordFree1 = ordFree(dictFunctor);\n var eq1Free1 = eq1Free(dictFunctor);\n return function (dictOrd1) {\n var ordFree2 = ordFree1(dictOrd1);\n var eq1Free2 = eq1Free1(dictOrd1.Eq10());\n return {\n compare1: function (dictOrd) {\n return Data_Ord.compare(ordFree2(dictOrd));\n },\n Eq10: function () {\n return eq1Free2;\n }\n };\n };\n};\nexport {\n suspendF,\n wrap,\n liftF,\n hoistFree,\n foldFree,\n substFree,\n runFree,\n runFreeM,\n resume,\n resume$prime,\n eqFree,\n eq1Free,\n ordFree,\n ord1Free,\n freeFunctor,\n freeBind,\n freeApplicative,\n freeApply,\n freeMonad,\n freeMonadTrans,\n freeMonadRec,\n foldableFree,\n traversableFree,\n semigroupFree,\n monoidFree\n};\n","// Generated by purs version 0.15.7\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Apply from \"../Control.Apply/index.js\";\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Foldable from \"../Data.Foldable/index.js\";\nimport * as Data_FoldableWithIndex from \"../Data.FoldableWithIndex/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_FunctorWithIndex from \"../Data.FunctorWithIndex/index.js\";\nimport * as Data_HeytingAlgebra from \"../Data.HeytingAlgebra/index.js\";\nimport * as Data_List from \"../Data.List/index.js\";\nimport * as Data_List_Lazy from \"../Data.List.Lazy/index.js\";\nimport * as Data_List_Lazy_Types from \"../Data.List.Lazy.Types/index.js\";\nimport * as Data_List_Types from \"../Data.List.Types/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Monoid from \"../Data.Monoid/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Data_Ordering from \"../Data.Ordering/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nimport * as Data_Show from \"../Data.Show/index.js\";\nimport * as Data_Traversable from \"../Data.Traversable/index.js\";\nimport * as Data_TraversableWithIndex from \"../Data.TraversableWithIndex/index.js\";\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nimport * as Data_Unfoldable from \"../Data.Unfoldable/index.js\";\nimport * as Partial_Unsafe from \"../Partial.Unsafe/index.js\";\nvar all = /* #__PURE__ */ Data_Foldable.all(Data_List_Lazy_Types.foldableList)(Data_HeytingAlgebra.heytingAlgebraBoolean);\nvar identity = /* #__PURE__ */ Control_Category.identity(Control_Category.categoryFn);\nvar foldl = /* #__PURE__ */ Data_Foldable.foldl(Data_List_Types.foldableList);\nvar pure = /* #__PURE__ */ Control_Applicative.pure(Data_List_Types.applicativeList);\nvar map = /* #__PURE__ */ Data_Functor.map(Data_List_Types.functorList);\nvar append1 = /* #__PURE__ */ Data_Semigroup.append(Data_List_Types.semigroupList);\nvar nub = /* #__PURE__ */ Data_List.nub(Data_Ord.ordInt);\nvar Leaf = /* #__PURE__ */ (function () {\n function Leaf() {\n\n };\n Leaf.value = new Leaf();\n return Leaf;\n})();\nvar Two = /* #__PURE__ */ (function () {\n function Two(value0, value1, value2, value3) {\n this.value0 = value0;\n this.value1 = value1;\n this.value2 = value2;\n this.value3 = value3;\n };\n Two.create = function (value0) {\n return function (value1) {\n return function (value2) {\n return function (value3) {\n return new Two(value0, value1, value2, value3);\n };\n };\n };\n };\n return Two;\n})();\nvar Three = /* #__PURE__ */ (function () {\n function Three(value0, value1, value2, value3, value4, value5, value6) {\n this.value0 = value0;\n this.value1 = value1;\n this.value2 = value2;\n this.value3 = value3;\n this.value4 = value4;\n this.value5 = value5;\n this.value6 = value6;\n };\n Three.create = function (value0) {\n return function (value1) {\n return function (value2) {\n return function (value3) {\n return function (value4) {\n return function (value5) {\n return function (value6) {\n return new Three(value0, value1, value2, value3, value4, value5, value6);\n };\n };\n };\n };\n };\n };\n };\n return Three;\n})();\nvar TwoLeft = /* #__PURE__ */ (function () {\n function TwoLeft(value0, value1, value2) {\n this.value0 = value0;\n this.value1 = value1;\n this.value2 = value2;\n };\n TwoLeft.create = function (value0) {\n return function (value1) {\n return function (value2) {\n return new TwoLeft(value0, value1, value2);\n };\n };\n };\n return TwoLeft;\n})();\nvar TwoRight = /* #__PURE__ */ (function () {\n function TwoRight(value0, value1, value2) {\n this.value0 = value0;\n this.value1 = value1;\n this.value2 = value2;\n };\n TwoRight.create = function (value0) {\n return function (value1) {\n return function (value2) {\n return new TwoRight(value0, value1, value2);\n };\n };\n };\n return TwoRight;\n})();\nvar ThreeLeft = /* #__PURE__ */ (function () {\n function ThreeLeft(value0, value1, value2, value3, value4, value5) {\n this.value0 = value0;\n this.value1 = value1;\n this.value2 = value2;\n this.value3 = value3;\n this.value4 = value4;\n this.value5 = value5;\n };\n ThreeLeft.create = function (value0) {\n return function (value1) {\n return function (value2) {\n return function (value3) {\n return function (value4) {\n return function (value5) {\n return new ThreeLeft(value0, value1, value2, value3, value4, value5);\n };\n };\n };\n };\n };\n };\n return ThreeLeft;\n})();\nvar ThreeMiddle = /* #__PURE__ */ (function () {\n function ThreeMiddle(value0, value1, value2, value3, value4, value5) {\n this.value0 = value0;\n this.value1 = value1;\n this.value2 = value2;\n this.value3 = value3;\n this.value4 = value4;\n this.value5 = value5;\n };\n ThreeMiddle.create = function (value0) {\n return function (value1) {\n return function (value2) {\n return function (value3) {\n return function (value4) {\n return function (value5) {\n return new ThreeMiddle(value0, value1, value2, value3, value4, value5);\n };\n };\n };\n };\n };\n };\n return ThreeMiddle;\n})();\nvar ThreeRight = /* #__PURE__ */ (function () {\n function ThreeRight(value0, value1, value2, value3, value4, value5) {\n this.value0 = value0;\n this.value1 = value1;\n this.value2 = value2;\n this.value3 = value3;\n this.value4 = value4;\n this.value5 = value5;\n };\n ThreeRight.create = function (value0) {\n return function (value1) {\n return function (value2) {\n return function (value3) {\n return function (value4) {\n return function (value5) {\n return new ThreeRight(value0, value1, value2, value3, value4, value5);\n };\n };\n };\n };\n };\n };\n return ThreeRight;\n})();\nvar KickUp = /* #__PURE__ */ (function () {\n function KickUp(value0, value1, value2, value3) {\n this.value0 = value0;\n this.value1 = value1;\n this.value2 = value2;\n this.value3 = value3;\n };\n KickUp.create = function (value0) {\n return function (value1) {\n return function (value2) {\n return function (value3) {\n return new KickUp(value0, value1, value2, value3);\n };\n };\n };\n };\n return KickUp;\n})();\nvar size = function (v) {\n if (v instanceof Leaf) {\n return 0;\n };\n if (v instanceof Two) {\n return (1 + size(v.value0) | 0) + size(v.value3) | 0;\n };\n if (v instanceof Three) {\n return ((2 + size(v.value0) | 0) + size(v.value3) | 0) + size(v.value6) | 0;\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 705, column 1 - line 705, column 35): \" + [ v.constructor.name ]);\n};\nvar singleton = function (k) {\n return function (v) {\n return new Two(Leaf.value, k, v, Leaf.value);\n };\n};\nvar toUnfoldable = function (dictUnfoldable) {\n var unfoldr = Data_Unfoldable.unfoldr(dictUnfoldable);\n return function (m) {\n var go = function ($copy_v) {\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(v) {\n if (v instanceof Data_List_Types.Nil) {\n $tco_done = true;\n return Data_Maybe.Nothing.value;\n };\n if (v instanceof Data_List_Types.Cons) {\n if (v.value0 instanceof Leaf) {\n $copy_v = v.value1;\n return;\n };\n if (v.value0 instanceof Two && (v.value0.value0 instanceof Leaf && v.value0.value3 instanceof Leaf)) {\n $tco_done = true;\n return new Data_Maybe.Just(new Data_Tuple.Tuple(new Data_Tuple.Tuple(v.value0.value1, v.value0.value2), v.value1));\n };\n if (v.value0 instanceof Two && v.value0.value0 instanceof Leaf) {\n $tco_done = true;\n return new Data_Maybe.Just(new Data_Tuple.Tuple(new Data_Tuple.Tuple(v.value0.value1, v.value0.value2), new Data_List_Types.Cons(v.value0.value3, v.value1)));\n };\n if (v.value0 instanceof Two) {\n $copy_v = new Data_List_Types.Cons(v.value0.value0, new Data_List_Types.Cons(singleton(v.value0.value1)(v.value0.value2), new Data_List_Types.Cons(v.value0.value3, v.value1)));\n return;\n };\n if (v.value0 instanceof Three) {\n $copy_v = new Data_List_Types.Cons(v.value0.value0, new Data_List_Types.Cons(singleton(v.value0.value1)(v.value0.value2), new Data_List_Types.Cons(v.value0.value3, new Data_List_Types.Cons(singleton(v.value0.value4)(v.value0.value5), new Data_List_Types.Cons(v.value0.value6, v.value1)))));\n return;\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 624, column 18 - line 633, column 71): \" + [ v.value0.constructor.name ]);\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 623, column 3 - line 623, column 19): \" + [ v.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($copy_v);\n };\n return $tco_result;\n };\n return unfoldr(go)(new Data_List_Types.Cons(m, Data_List_Types.Nil.value));\n };\n};\nvar toUnfoldable1 = /* #__PURE__ */ toUnfoldable(Data_List_Lazy_Types.unfoldableList);\nvar toUnfoldable2 = /* #__PURE__ */ toUnfoldable(Data_List_Types.unfoldableList);\nvar toAscArray = /* #__PURE__ */ toUnfoldable(Data_Unfoldable.unfoldableArray);\nvar toUnfoldableUnordered = function (dictUnfoldable) {\n var unfoldr = Data_Unfoldable.unfoldr(dictUnfoldable);\n return function (m) {\n var go = function ($copy_v) {\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(v) {\n if (v instanceof Data_List_Types.Nil) {\n $tco_done = true;\n return Data_Maybe.Nothing.value;\n };\n if (v instanceof Data_List_Types.Cons) {\n if (v.value0 instanceof Leaf) {\n $copy_v = v.value1;\n return;\n };\n if (v.value0 instanceof Two) {\n $tco_done = true;\n return new Data_Maybe.Just(new Data_Tuple.Tuple(new Data_Tuple.Tuple(v.value0.value1, v.value0.value2), new Data_List_Types.Cons(v.value0.value0, new Data_List_Types.Cons(v.value0.value3, v.value1))));\n };\n if (v.value0 instanceof Three) {\n $tco_done = true;\n return new Data_Maybe.Just(new Data_Tuple.Tuple(new Data_Tuple.Tuple(v.value0.value1, v.value0.value2), new Data_List_Types.Cons(singleton(v.value0.value4)(v.value0.value5), new Data_List_Types.Cons(v.value0.value0, new Data_List_Types.Cons(v.value0.value3, new Data_List_Types.Cons(v.value0.value6, v.value1))))));\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 645, column 18 - line 650, column 77): \" + [ v.value0.constructor.name ]);\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 644, column 3 - line 644, column 19): \" + [ v.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($copy_v);\n };\n return $tco_result;\n };\n return unfoldr(go)(new Data_List_Types.Cons(m, Data_List_Types.Nil.value));\n };\n};\nvar showTree = function (dictShow) {\n var show = Data_Show.show(dictShow);\n return function (dictShow1) {\n var show1 = Data_Show.show(dictShow1);\n return function (v) {\n if (v instanceof Leaf) {\n return \"Leaf\";\n };\n if (v instanceof Two) {\n return \"Two (\" + (showTree(dictShow)(dictShow1)(v.value0) + (\") (\" + (show(v.value1) + (\") (\" + (show1(v.value2) + (\") (\" + (showTree(dictShow)(dictShow1)(v.value3) + \")\")))))));\n };\n if (v instanceof Three) {\n return \"Three (\" + (showTree(dictShow)(dictShow1)(v.value0) + (\") (\" + (show(v.value1) + (\") (\" + (show1(v.value2) + (\") (\" + (showTree(dictShow)(dictShow1)(v.value3) + (\") (\" + (show(v.value4) + (\") (\" + (show1(v.value5) + (\") (\" + (showTree(dictShow)(dictShow1)(v.value6) + \")\")))))))))))));\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 194, column 1 - line 194, column 62): \" + [ v.constructor.name ]);\n };\n };\n};\nvar showMap = function (dictShow) {\n var showTuple = Data_Tuple.showTuple(dictShow);\n return function (dictShow1) {\n var show = Data_Show.show(Data_Show.showArray(showTuple(dictShow1)));\n return {\n show: function (m) {\n return \"(fromFoldable \" + (show(toAscArray(m)) + \")\");\n }\n };\n };\n};\nvar lookupLE = function (dictOrd) {\n var compare = Data_Ord.compare(dictOrd);\n return function (k) {\n var go = function (v) {\n if (v instanceof Leaf) {\n return Data_Maybe.Nothing.value;\n };\n if (v instanceof Two) {\n var v2 = compare(k)(v.value1);\n if (v2 instanceof Data_Ordering.EQ) {\n return new Data_Maybe.Just({\n key: v.value1,\n value: v.value2\n });\n };\n if (v2 instanceof Data_Ordering.GT) {\n return new Data_Maybe.Just(Data_Maybe.fromMaybe({\n key: v.value1,\n value: v.value2\n })(go(v.value3)));\n };\n if (v2 instanceof Data_Ordering.LT) {\n return go(v.value0);\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 266, column 33 - line 269, column 20): \" + [ v2.constructor.name ]);\n };\n if (v instanceof Three) {\n var v3 = compare(k)(v.value4);\n if (v3 instanceof Data_Ordering.EQ) {\n return new Data_Maybe.Just({\n key: v.value4,\n value: v.value5\n });\n };\n if (v3 instanceof Data_Ordering.GT) {\n return new Data_Maybe.Just(Data_Maybe.fromMaybe({\n key: v.value4,\n value: v.value5\n })(go(v.value6)));\n };\n if (v3 instanceof Data_Ordering.LT) {\n return go(new Two(v.value0, v.value1, v.value2, v.value3));\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 270, column 45 - line 273, column 36): \" + [ v3.constructor.name ]);\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 265, column 5 - line 265, column 22): \" + [ v.constructor.name ]);\n };\n return go;\n };\n};\nvar lookupGE = function (dictOrd) {\n var compare = Data_Ord.compare(dictOrd);\n return function (k) {\n var go = function (v) {\n if (v instanceof Leaf) {\n return Data_Maybe.Nothing.value;\n };\n if (v instanceof Two) {\n var v2 = compare(k)(v.value1);\n if (v2 instanceof Data_Ordering.EQ) {\n return new Data_Maybe.Just({\n key: v.value1,\n value: v.value2\n });\n };\n if (v2 instanceof Data_Ordering.LT) {\n return new Data_Maybe.Just(Data_Maybe.fromMaybe({\n key: v.value1,\n value: v.value2\n })(go(v.value0)));\n };\n if (v2 instanceof Data_Ordering.GT) {\n return go(v.value3);\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 300, column 33 - line 303, column 21): \" + [ v2.constructor.name ]);\n };\n if (v instanceof Three) {\n var v3 = compare(k)(v.value1);\n if (v3 instanceof Data_Ordering.EQ) {\n return new Data_Maybe.Just({\n key: v.value1,\n value: v.value2\n });\n };\n if (v3 instanceof Data_Ordering.LT) {\n return new Data_Maybe.Just(Data_Maybe.fromMaybe({\n key: v.value1,\n value: v.value2\n })(go(v.value0)));\n };\n if (v3 instanceof Data_Ordering.GT) {\n return go(new Two(v.value3, v.value4, v.value5, v.value6));\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 304, column 45 - line 307, column 37): \" + [ v3.constructor.name ]);\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 299, column 5 - line 299, column 22): \" + [ v.constructor.name ]);\n };\n return go;\n };\n};\nvar lookup = function (dictOrd) {\n var compare = Data_Ord.compare(dictOrd);\n return function (k) {\n var go = function ($copy_v) {\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(v) {\n if (v instanceof Leaf) {\n $tco_done = true;\n return Data_Maybe.Nothing.value;\n };\n if (v instanceof Two) {\n var v2 = compare(k)(v.value1);\n if (v2 instanceof Data_Ordering.EQ) {\n $tco_done = true;\n return new Data_Maybe.Just(v.value2);\n };\n if (v2 instanceof Data_Ordering.LT) {\n $copy_v = v.value0;\n return;\n };\n $copy_v = v.value3;\n return;\n };\n if (v instanceof Three) {\n var v3 = compare(k)(v.value1);\n if (v3 instanceof Data_Ordering.EQ) {\n $tco_done = true;\n return new Data_Maybe.Just(v.value2);\n };\n var v4 = compare(k)(v.value4);\n if (v4 instanceof Data_Ordering.EQ) {\n $tco_done = true;\n return new Data_Maybe.Just(v.value5);\n };\n if (v3 instanceof Data_Ordering.LT) {\n $copy_v = v.value0;\n return;\n };\n if (v4 instanceof Data_Ordering.GT) {\n $copy_v = v.value6;\n return;\n };\n $copy_v = v.value3;\n return;\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 241, column 5 - line 241, column 22): \" + [ v.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($copy_v);\n };\n return $tco_result;\n };\n return go;\n };\n};\nvar member = function (dictOrd) {\n var lookup1 = lookup(dictOrd);\n return function (k) {\n return function (m) {\n return Data_Maybe.isJust(lookup1(k)(m));\n };\n };\n};\nvar isSubmap = function (dictOrd) {\n var lookup1 = lookup(dictOrd);\n return function (dictEq) {\n var eq1 = Data_Eq.eq(Data_Maybe.eqMaybe(dictEq));\n return function (m1) {\n return function (m2) {\n var f = function (v) {\n return eq1(lookup1(v.value0)(m2))(new Data_Maybe.Just(v.value1));\n };\n return all(f)(toUnfoldable1(m1));\n };\n };\n };\n};\nvar isEmpty = function (v) {\n if (v instanceof Leaf) {\n return true;\n };\n return false;\n};\nvar functorMap = {\n map: function (v) {\n return function (v1) {\n if (v1 instanceof Leaf) {\n return Leaf.value;\n };\n if (v1 instanceof Two) {\n return new Two(Data_Functor.map(functorMap)(v)(v1.value0), v1.value1, v(v1.value2), Data_Functor.map(functorMap)(v)(v1.value3));\n };\n if (v1 instanceof Three) {\n return new Three(Data_Functor.map(functorMap)(v)(v1.value0), v1.value1, v(v1.value2), Data_Functor.map(functorMap)(v)(v1.value3), v1.value4, v(v1.value5), Data_Functor.map(functorMap)(v)(v1.value6));\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 116, column 1 - line 119, column 110): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n }\n};\nvar functorWithIndexMap = {\n mapWithIndex: function (v) {\n return function (v1) {\n if (v1 instanceof Leaf) {\n return Leaf.value;\n };\n if (v1 instanceof Two) {\n return new Two(Data_FunctorWithIndex.mapWithIndex(functorWithIndexMap)(v)(v1.value0), v1.value1, v(v1.value1)(v1.value2), Data_FunctorWithIndex.mapWithIndex(functorWithIndexMap)(v)(v1.value3));\n };\n if (v1 instanceof Three) {\n return new Three(Data_FunctorWithIndex.mapWithIndex(functorWithIndexMap)(v)(v1.value0), v1.value1, v(v1.value1)(v1.value2), Data_FunctorWithIndex.mapWithIndex(functorWithIndexMap)(v)(v1.value3), v1.value4, v(v1.value4)(v1.value5), Data_FunctorWithIndex.mapWithIndex(functorWithIndexMap)(v)(v1.value6));\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 121, column 1 - line 124, column 152): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n },\n Functor0: function () {\n return functorMap;\n }\n};\nvar fromZipper = function ($copy_dictOrd) {\n return function ($copy_v) {\n return function ($copy_v1) {\n var $tco_var_dictOrd = $copy_dictOrd;\n var $tco_var_v = $copy_v;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(dictOrd, v, v1) {\n if (v instanceof Data_List_Types.Nil) {\n $tco_done = true;\n return v1;\n };\n if (v instanceof Data_List_Types.Cons) {\n if (v.value0 instanceof TwoLeft) {\n $tco_var_dictOrd = dictOrd;\n $tco_var_v = v.value1;\n $copy_v1 = new Two(v1, v.value0.value0, v.value0.value1, v.value0.value2);\n return;\n };\n if (v.value0 instanceof TwoRight) {\n $tco_var_dictOrd = dictOrd;\n $tco_var_v = v.value1;\n $copy_v1 = new Two(v.value0.value0, v.value0.value1, v.value0.value2, v1);\n return;\n };\n if (v.value0 instanceof ThreeLeft) {\n $tco_var_dictOrd = dictOrd;\n $tco_var_v = v.value1;\n $copy_v1 = new Three(v1, v.value0.value0, v.value0.value1, v.value0.value2, v.value0.value3, v.value0.value4, v.value0.value5);\n return;\n };\n if (v.value0 instanceof ThreeMiddle) {\n $tco_var_dictOrd = dictOrd;\n $tco_var_v = v.value1;\n $copy_v1 = new Three(v.value0.value0, v.value0.value1, v.value0.value2, v1, v.value0.value3, v.value0.value4, v.value0.value5);\n return;\n };\n if (v.value0 instanceof ThreeRight) {\n $tco_var_dictOrd = dictOrd;\n $tco_var_v = v.value1;\n $copy_v1 = new Three(v.value0.value0, v.value0.value1, v.value0.value2, v.value0.value3, v.value0.value4, v.value0.value5, v1);\n return;\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 462, column 3 - line 467, column 88): \" + [ v.value0.constructor.name ]);\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 459, column 1 - line 459, column 80): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_dictOrd, $tco_var_v, $copy_v1);\n };\n return $tco_result;\n };\n };\n};\nvar insert = function (dictOrd) {\n var fromZipper1 = fromZipper(dictOrd);\n var compare = Data_Ord.compare(dictOrd);\n return function (k) {\n return function (v) {\n var up = function ($copy_v1) {\n return function ($copy_v2) {\n var $tco_var_v1 = $copy_v1;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(v1, v2) {\n if (v1 instanceof Data_List_Types.Nil) {\n $tco_done = true;\n return new Two(v2.value0, v2.value1, v2.value2, v2.value3);\n };\n if (v1 instanceof Data_List_Types.Cons) {\n if (v1.value0 instanceof TwoLeft) {\n $tco_done = true;\n return fromZipper1(v1.value1)(new Three(v2.value0, v2.value1, v2.value2, v2.value3, v1.value0.value0, v1.value0.value1, v1.value0.value2));\n };\n if (v1.value0 instanceof TwoRight) {\n $tco_done = true;\n return fromZipper1(v1.value1)(new Three(v1.value0.value0, v1.value0.value1, v1.value0.value2, v2.value0, v2.value1, v2.value2, v2.value3));\n };\n if (v1.value0 instanceof ThreeLeft) {\n $tco_var_v1 = v1.value1;\n $copy_v2 = new KickUp(new Two(v2.value0, v2.value1, v2.value2, v2.value3), v1.value0.value0, v1.value0.value1, new Two(v1.value0.value2, v1.value0.value3, v1.value0.value4, v1.value0.value5));\n return;\n };\n if (v1.value0 instanceof ThreeMiddle) {\n $tco_var_v1 = v1.value1;\n $copy_v2 = new KickUp(new Two(v1.value0.value0, v1.value0.value1, v1.value0.value2, v2.value0), v2.value1, v2.value2, new Two(v2.value3, v1.value0.value3, v1.value0.value4, v1.value0.value5));\n return;\n };\n if (v1.value0 instanceof ThreeRight) {\n $tco_var_v1 = v1.value1;\n $copy_v2 = new KickUp(new Two(v1.value0.value0, v1.value0.value1, v1.value0.value2, v1.value0.value3), v1.value0.value4, v1.value0.value5, new Two(v2.value0, v2.value1, v2.value2, v2.value3));\n return;\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 498, column 5 - line 503, column 108): \" + [ v1.value0.constructor.name, v2.constructor.name ]);\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 495, column 3 - line 495, column 56): \" + [ v1.constructor.name, v2.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_v1, $copy_v2);\n };\n return $tco_result;\n };\n };\n var down = function ($copy_v1) {\n return function ($copy_v2) {\n var $tco_var_v1 = $copy_v1;\n var $tco_done1 = false;\n var $tco_result;\n function $tco_loop(v1, v2) {\n if (v2 instanceof Leaf) {\n $tco_done1 = true;\n return up(v1)(new KickUp(Leaf.value, k, v, Leaf.value));\n };\n if (v2 instanceof Two) {\n var v3 = compare(k)(v2.value1);\n if (v3 instanceof Data_Ordering.EQ) {\n $tco_done1 = true;\n return fromZipper1(v1)(new Two(v2.value0, k, v, v2.value3));\n };\n if (v3 instanceof Data_Ordering.LT) {\n $tco_var_v1 = new Data_List_Types.Cons(new TwoLeft(v2.value1, v2.value2, v2.value3), v1);\n $copy_v2 = v2.value0;\n return;\n };\n $tco_var_v1 = new Data_List_Types.Cons(new TwoRight(v2.value0, v2.value1, v2.value2), v1);\n $copy_v2 = v2.value3;\n return;\n };\n if (v2 instanceof Three) {\n var v3 = compare(k)(v2.value1);\n if (v3 instanceof Data_Ordering.EQ) {\n $tco_done1 = true;\n return fromZipper1(v1)(new Three(v2.value0, k, v, v2.value3, v2.value4, v2.value5, v2.value6));\n };\n var v4 = compare(k)(v2.value4);\n if (v4 instanceof Data_Ordering.EQ) {\n $tco_done1 = true;\n return fromZipper1(v1)(new Three(v2.value0, v2.value1, v2.value2, v2.value3, k, v, v2.value6));\n };\n if (v3 instanceof Data_Ordering.LT) {\n $tco_var_v1 = new Data_List_Types.Cons(new ThreeLeft(v2.value1, v2.value2, v2.value3, v2.value4, v2.value5, v2.value6), v1);\n $copy_v2 = v2.value0;\n return;\n };\n if (v3 instanceof Data_Ordering.GT && v4 instanceof Data_Ordering.LT) {\n $tco_var_v1 = new Data_List_Types.Cons(new ThreeMiddle(v2.value0, v2.value1, v2.value2, v2.value4, v2.value5, v2.value6), v1);\n $copy_v2 = v2.value3;\n return;\n };\n $tco_var_v1 = new Data_List_Types.Cons(new ThreeRight(v2.value0, v2.value1, v2.value2, v2.value3, v2.value4, v2.value5), v1);\n $copy_v2 = v2.value6;\n return;\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 478, column 3 - line 478, column 55): \" + [ v1.constructor.name, v2.constructor.name ]);\n };\n while (!$tco_done1) {\n $tco_result = $tco_loop($tco_var_v1, $copy_v2);\n };\n return $tco_result;\n };\n };\n return down(Data_List_Types.Nil.value);\n };\n };\n};\nvar pop = function (dictOrd) {\n var fromZipper1 = fromZipper(dictOrd);\n var compare = Data_Ord.compare(dictOrd);\n return function (k) {\n var up = function ($copy_ctxs) {\n return function ($copy_tree) {\n var $tco_var_ctxs = $copy_ctxs;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(ctxs, tree) {\n if (ctxs instanceof Data_List_Types.Nil) {\n $tco_done = true;\n return tree;\n };\n if (ctxs instanceof Data_List_Types.Cons) {\n if (ctxs.value0 instanceof TwoLeft && (ctxs.value0.value2 instanceof Leaf && tree instanceof Leaf)) {\n $tco_done = true;\n return fromZipper1(ctxs.value1)(new Two(Leaf.value, ctxs.value0.value0, ctxs.value0.value1, Leaf.value));\n };\n if (ctxs.value0 instanceof TwoRight && (ctxs.value0.value0 instanceof Leaf && tree instanceof Leaf)) {\n $tco_done = true;\n return fromZipper1(ctxs.value1)(new Two(Leaf.value, ctxs.value0.value1, ctxs.value0.value2, Leaf.value));\n };\n if (ctxs.value0 instanceof TwoLeft && ctxs.value0.value2 instanceof Two) {\n $tco_var_ctxs = ctxs.value1;\n $copy_tree = new Three(tree, ctxs.value0.value0, ctxs.value0.value1, ctxs.value0.value2.value0, ctxs.value0.value2.value1, ctxs.value0.value2.value2, ctxs.value0.value2.value3);\n return;\n };\n if (ctxs.value0 instanceof TwoRight && ctxs.value0.value0 instanceof Two) {\n $tco_var_ctxs = ctxs.value1;\n $copy_tree = new Three(ctxs.value0.value0.value0, ctxs.value0.value0.value1, ctxs.value0.value0.value2, ctxs.value0.value0.value3, ctxs.value0.value1, ctxs.value0.value2, tree);\n return;\n };\n if (ctxs.value0 instanceof TwoLeft && ctxs.value0.value2 instanceof Three) {\n $tco_done = true;\n return fromZipper1(ctxs.value1)(new Two(new Two(tree, ctxs.value0.value0, ctxs.value0.value1, ctxs.value0.value2.value0), ctxs.value0.value2.value1, ctxs.value0.value2.value2, new Two(ctxs.value0.value2.value3, ctxs.value0.value2.value4, ctxs.value0.value2.value5, ctxs.value0.value2.value6)));\n };\n if (ctxs.value0 instanceof TwoRight && ctxs.value0.value0 instanceof Three) {\n $tco_done = true;\n return fromZipper1(ctxs.value1)(new Two(new Two(ctxs.value0.value0.value0, ctxs.value0.value0.value1, ctxs.value0.value0.value2, ctxs.value0.value0.value3), ctxs.value0.value0.value4, ctxs.value0.value0.value5, new Two(ctxs.value0.value0.value6, ctxs.value0.value1, ctxs.value0.value2, tree)));\n };\n if (ctxs.value0 instanceof ThreeLeft && (ctxs.value0.value2 instanceof Leaf && (ctxs.value0.value5 instanceof Leaf && tree instanceof Leaf))) {\n $tco_done = true;\n return fromZipper1(ctxs.value1)(new Three(Leaf.value, ctxs.value0.value0, ctxs.value0.value1, Leaf.value, ctxs.value0.value3, ctxs.value0.value4, Leaf.value));\n };\n if (ctxs.value0 instanceof ThreeMiddle && (ctxs.value0.value0 instanceof Leaf && (ctxs.value0.value5 instanceof Leaf && tree instanceof Leaf))) {\n $tco_done = true;\n return fromZipper1(ctxs.value1)(new Three(Leaf.value, ctxs.value0.value1, ctxs.value0.value2, Leaf.value, ctxs.value0.value3, ctxs.value0.value4, Leaf.value));\n };\n if (ctxs.value0 instanceof ThreeRight && (ctxs.value0.value0 instanceof Leaf && (ctxs.value0.value3 instanceof Leaf && tree instanceof Leaf))) {\n $tco_done = true;\n return fromZipper1(ctxs.value1)(new Three(Leaf.value, ctxs.value0.value1, ctxs.value0.value2, Leaf.value, ctxs.value0.value4, ctxs.value0.value5, Leaf.value));\n };\n if (ctxs.value0 instanceof ThreeLeft && ctxs.value0.value2 instanceof Two) {\n $tco_done = true;\n return fromZipper1(ctxs.value1)(new Two(new Three(tree, ctxs.value0.value0, ctxs.value0.value1, ctxs.value0.value2.value0, ctxs.value0.value2.value1, ctxs.value0.value2.value2, ctxs.value0.value2.value3), ctxs.value0.value3, ctxs.value0.value4, ctxs.value0.value5));\n };\n if (ctxs.value0 instanceof ThreeMiddle && ctxs.value0.value0 instanceof Two) {\n $tco_done = true;\n return fromZipper1(ctxs.value1)(new Two(new Three(ctxs.value0.value0.value0, ctxs.value0.value0.value1, ctxs.value0.value0.value2, ctxs.value0.value0.value3, ctxs.value0.value1, ctxs.value0.value2, tree), ctxs.value0.value3, ctxs.value0.value4, ctxs.value0.value5));\n };\n if (ctxs.value0 instanceof ThreeMiddle && ctxs.value0.value5 instanceof Two) {\n $tco_done = true;\n return fromZipper1(ctxs.value1)(new Two(ctxs.value0.value0, ctxs.value0.value1, ctxs.value0.value2, new Three(tree, ctxs.value0.value3, ctxs.value0.value4, ctxs.value0.value5.value0, ctxs.value0.value5.value1, ctxs.value0.value5.value2, ctxs.value0.value5.value3)));\n };\n if (ctxs.value0 instanceof ThreeRight && ctxs.value0.value3 instanceof Two) {\n $tco_done = true;\n return fromZipper1(ctxs.value1)(new Two(ctxs.value0.value0, ctxs.value0.value1, ctxs.value0.value2, new Three(ctxs.value0.value3.value0, ctxs.value0.value3.value1, ctxs.value0.value3.value2, ctxs.value0.value3.value3, ctxs.value0.value4, ctxs.value0.value5, tree)));\n };\n if (ctxs.value0 instanceof ThreeLeft && ctxs.value0.value2 instanceof Three) {\n $tco_done = true;\n return fromZipper1(ctxs.value1)(new Three(new Two(tree, ctxs.value0.value0, ctxs.value0.value1, ctxs.value0.value2.value0), ctxs.value0.value2.value1, ctxs.value0.value2.value2, new Two(ctxs.value0.value2.value3, ctxs.value0.value2.value4, ctxs.value0.value2.value5, ctxs.value0.value2.value6), ctxs.value0.value3, ctxs.value0.value4, ctxs.value0.value5));\n };\n if (ctxs.value0 instanceof ThreeMiddle && ctxs.value0.value0 instanceof Three) {\n $tco_done = true;\n return fromZipper1(ctxs.value1)(new Three(new Two(ctxs.value0.value0.value0, ctxs.value0.value0.value1, ctxs.value0.value0.value2, ctxs.value0.value0.value3), ctxs.value0.value0.value4, ctxs.value0.value0.value5, new Two(ctxs.value0.value0.value6, ctxs.value0.value1, ctxs.value0.value2, tree), ctxs.value0.value3, ctxs.value0.value4, ctxs.value0.value5));\n };\n if (ctxs.value0 instanceof ThreeMiddle && ctxs.value0.value5 instanceof Three) {\n $tco_done = true;\n return fromZipper1(ctxs.value1)(new Three(ctxs.value0.value0, ctxs.value0.value1, ctxs.value0.value2, new Two(tree, ctxs.value0.value3, ctxs.value0.value4, ctxs.value0.value5.value0), ctxs.value0.value5.value1, ctxs.value0.value5.value2, new Two(ctxs.value0.value5.value3, ctxs.value0.value5.value4, ctxs.value0.value5.value5, ctxs.value0.value5.value6)));\n };\n if (ctxs.value0 instanceof ThreeRight && ctxs.value0.value3 instanceof Three) {\n $tco_done = true;\n return fromZipper1(ctxs.value1)(new Three(ctxs.value0.value0, ctxs.value0.value1, ctxs.value0.value2, new Two(ctxs.value0.value3.value0, ctxs.value0.value3.value1, ctxs.value0.value3.value2, ctxs.value0.value3.value3), ctxs.value0.value3.value4, ctxs.value0.value3.value5, new Two(ctxs.value0.value3.value6, ctxs.value0.value4, ctxs.value0.value5, tree)));\n };\n $tco_done = true;\n return Partial_Unsafe.unsafeCrashWith(\"The impossible happened in partial function `up`.\");\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 552, column 5 - line 573, column 86): \" + [ ctxs.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_ctxs, $copy_tree);\n };\n return $tco_result;\n };\n };\n var removeMaxNode = function ($copy_ctx) {\n return function ($copy_m) {\n var $tco_var_ctx = $copy_ctx;\n var $tco_done1 = false;\n var $tco_result;\n function $tco_loop(ctx, m) {\n if (m instanceof Two && (m.value0 instanceof Leaf && m.value3 instanceof Leaf)) {\n $tco_done1 = true;\n return up(ctx)(Leaf.value);\n };\n if (m instanceof Two) {\n $tco_var_ctx = new Data_List_Types.Cons(new TwoRight(m.value0, m.value1, m.value2), ctx);\n $copy_m = m.value3;\n return;\n };\n if (m instanceof Three && (m.value0 instanceof Leaf && (m.value3 instanceof Leaf && m.value6 instanceof Leaf))) {\n $tco_done1 = true;\n return up(new Data_List_Types.Cons(new TwoRight(Leaf.value, m.value1, m.value2), ctx))(Leaf.value);\n };\n if (m instanceof Three) {\n $tco_var_ctx = new Data_List_Types.Cons(new ThreeRight(m.value0, m.value1, m.value2, m.value3, m.value4, m.value5), ctx);\n $copy_m = m.value6;\n return;\n };\n $tco_done1 = true;\n return Partial_Unsafe.unsafeCrashWith(\"The impossible happened in partial function `removeMaxNode`.\");\n };\n while (!$tco_done1) {\n $tco_result = $tco_loop($tco_var_ctx, $copy_m);\n };\n return $tco_result;\n };\n };\n var maxNode = function ($copy_m) {\n var $tco_done2 = false;\n var $tco_result;\n function $tco_loop(m) {\n if (m instanceof Two && m.value3 instanceof Leaf) {\n $tco_done2 = true;\n return {\n key: m.value1,\n value: m.value2\n };\n };\n if (m instanceof Two) {\n $copy_m = m.value3;\n return;\n };\n if (m instanceof Three && m.value6 instanceof Leaf) {\n $tco_done2 = true;\n return {\n key: m.value4,\n value: m.value5\n };\n };\n if (m instanceof Three) {\n $copy_m = m.value6;\n return;\n };\n $tco_done2 = true;\n return Partial_Unsafe.unsafeCrashWith(\"The impossible happened in partial function `maxNode`.\");\n };\n while (!$tco_done2) {\n $tco_result = $tco_loop($copy_m);\n };\n return $tco_result;\n };\n var down = function ($copy_ctx) {\n return function ($copy_m) {\n var $tco_var_ctx = $copy_ctx;\n var $tco_done3 = false;\n var $tco_result;\n function $tco_loop(ctx, m) {\n if (m instanceof Leaf) {\n $tco_done3 = true;\n return Data_Maybe.Nothing.value;\n };\n if (m instanceof Two) {\n var v = compare(k)(m.value1);\n if (m.value3 instanceof Leaf && v instanceof Data_Ordering.EQ) {\n $tco_done3 = true;\n return new Data_Maybe.Just(new Data_Tuple.Tuple(m.value2, up(ctx)(Leaf.value)));\n };\n if (v instanceof Data_Ordering.EQ) {\n var max = maxNode(m.value0);\n $tco_done3 = true;\n return new Data_Maybe.Just(new Data_Tuple.Tuple(m.value2, removeMaxNode(new Data_List_Types.Cons(new TwoLeft(max.key, max.value, m.value3), ctx))(m.value0)));\n };\n if (v instanceof Data_Ordering.LT) {\n $tco_var_ctx = new Data_List_Types.Cons(new TwoLeft(m.value1, m.value2, m.value3), ctx);\n $copy_m = m.value0;\n return;\n };\n $tco_var_ctx = new Data_List_Types.Cons(new TwoRight(m.value0, m.value1, m.value2), ctx);\n $copy_m = m.value3;\n return;\n };\n if (m instanceof Three) {\n var leaves = (function () {\n if (m.value0 instanceof Leaf && (m.value3 instanceof Leaf && m.value6 instanceof Leaf)) {\n return true;\n };\n return false;\n })();\n var v = compare(k)(m.value4);\n var v3 = compare(k)(m.value1);\n if (leaves && v3 instanceof Data_Ordering.EQ) {\n $tco_done3 = true;\n return new Data_Maybe.Just(new Data_Tuple.Tuple(m.value2, fromZipper1(ctx)(new Two(Leaf.value, m.value4, m.value5, Leaf.value))));\n };\n if (leaves && v instanceof Data_Ordering.EQ) {\n $tco_done3 = true;\n return new Data_Maybe.Just(new Data_Tuple.Tuple(m.value5, fromZipper1(ctx)(new Two(Leaf.value, m.value1, m.value2, Leaf.value))));\n };\n if (v3 instanceof Data_Ordering.EQ) {\n var max = maxNode(m.value0);\n $tco_done3 = true;\n return new Data_Maybe.Just(new Data_Tuple.Tuple(m.value2, removeMaxNode(new Data_List_Types.Cons(new ThreeLeft(max.key, max.value, m.value3, m.value4, m.value5, m.value6), ctx))(m.value0)));\n };\n if (v instanceof Data_Ordering.EQ) {\n var max = maxNode(m.value3);\n $tco_done3 = true;\n return new Data_Maybe.Just(new Data_Tuple.Tuple(m.value5, removeMaxNode(new Data_List_Types.Cons(new ThreeMiddle(m.value0, m.value1, m.value2, max.key, max.value, m.value6), ctx))(m.value3)));\n };\n if (v3 instanceof Data_Ordering.LT) {\n $tco_var_ctx = new Data_List_Types.Cons(new ThreeLeft(m.value1, m.value2, m.value3, m.value4, m.value5, m.value6), ctx);\n $copy_m = m.value0;\n return;\n };\n if (v3 instanceof Data_Ordering.GT && v instanceof Data_Ordering.LT) {\n $tco_var_ctx = new Data_List_Types.Cons(new ThreeMiddle(m.value0, m.value1, m.value2, m.value4, m.value5, m.value6), ctx);\n $copy_m = m.value3;\n return;\n };\n $tco_var_ctx = new Data_List_Types.Cons(new ThreeRight(m.value0, m.value1, m.value2, m.value3, m.value4, m.value5), ctx);\n $copy_m = m.value6;\n return;\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 525, column 16 - line 548, column 80): \" + [ m.constructor.name ]);\n };\n while (!$tco_done3) {\n $tco_result = $tco_loop($tco_var_ctx, $copy_m);\n };\n return $tco_result;\n };\n };\n return down(Data_List_Types.Nil.value);\n };\n};\nvar foldableMap = {\n foldr: function (f) {\n return function (z) {\n return function (m) {\n if (m instanceof Leaf) {\n return z;\n };\n if (m instanceof Two) {\n return Data_Foldable.foldr(foldableMap)(f)(f(m.value2)(Data_Foldable.foldr(foldableMap)(f)(z)(m.value3)))(m.value0);\n };\n if (m instanceof Three) {\n return Data_Foldable.foldr(foldableMap)(f)(f(m.value2)(Data_Foldable.foldr(foldableMap)(f)(f(m.value5)(Data_Foldable.foldr(foldableMap)(f)(z)(m.value6)))(m.value3)))(m.value0);\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 133, column 17 - line 136, column 85): \" + [ m.constructor.name ]);\n };\n };\n },\n foldl: function (f) {\n return function (z) {\n return function (m) {\n if (m instanceof Leaf) {\n return z;\n };\n if (m instanceof Two) {\n return Data_Foldable.foldl(foldableMap)(f)(f(Data_Foldable.foldl(foldableMap)(f)(z)(m.value0))(m.value2))(m.value3);\n };\n if (m instanceof Three) {\n return Data_Foldable.foldl(foldableMap)(f)(f(Data_Foldable.foldl(foldableMap)(f)(f(Data_Foldable.foldl(foldableMap)(f)(z)(m.value0))(m.value2))(m.value3))(m.value5))(m.value6);\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 137, column 17 - line 140, column 85): \" + [ m.constructor.name ]);\n };\n };\n },\n foldMap: function (dictMonoid) {\n var mempty = Data_Monoid.mempty(dictMonoid);\n var append2 = Data_Semigroup.append(dictMonoid.Semigroup0());\n return function (f) {\n return function (m) {\n if (m instanceof Leaf) {\n return mempty;\n };\n if (m instanceof Two) {\n return append2(Data_Foldable.foldMap(foldableMap)(dictMonoid)(f)(m.value0))(append2(f(m.value2))(Data_Foldable.foldMap(foldableMap)(dictMonoid)(f)(m.value3)));\n };\n if (m instanceof Three) {\n return append2(Data_Foldable.foldMap(foldableMap)(dictMonoid)(f)(m.value0))(append2(f(m.value2))(append2(Data_Foldable.foldMap(foldableMap)(dictMonoid)(f)(m.value3))(append2(f(m.value5))(Data_Foldable.foldMap(foldableMap)(dictMonoid)(f)(m.value6)))));\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 141, column 17 - line 144, column 93): \" + [ m.constructor.name ]);\n };\n };\n }\n};\nvar foldableWithIndexMap = {\n foldrWithIndex: function (f) {\n return function (z) {\n return function (m) {\n if (m instanceof Leaf) {\n return z;\n };\n if (m instanceof Two) {\n return Data_FoldableWithIndex.foldrWithIndex(foldableWithIndexMap)(f)(f(m.value1)(m.value2)(Data_FoldableWithIndex.foldrWithIndex(foldableWithIndexMap)(f)(z)(m.value3)))(m.value0);\n };\n if (m instanceof Three) {\n return Data_FoldableWithIndex.foldrWithIndex(foldableWithIndexMap)(f)(f(m.value1)(m.value2)(Data_FoldableWithIndex.foldrWithIndex(foldableWithIndexMap)(f)(f(m.value4)(m.value5)(Data_FoldableWithIndex.foldrWithIndex(foldableWithIndexMap)(f)(z)(m.value6)))(m.value3)))(m.value0);\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 147, column 26 - line 150, column 120): \" + [ m.constructor.name ]);\n };\n };\n },\n foldlWithIndex: function (f) {\n return function (z) {\n return function (m) {\n if (m instanceof Leaf) {\n return z;\n };\n if (m instanceof Two) {\n return Data_FoldableWithIndex.foldlWithIndex(foldableWithIndexMap)(f)(f(m.value1)(Data_FoldableWithIndex.foldlWithIndex(foldableWithIndexMap)(f)(z)(m.value0))(m.value2))(m.value3);\n };\n if (m instanceof Three) {\n return Data_FoldableWithIndex.foldlWithIndex(foldableWithIndexMap)(f)(f(m.value4)(Data_FoldableWithIndex.foldlWithIndex(foldableWithIndexMap)(f)(f(m.value1)(Data_FoldableWithIndex.foldlWithIndex(foldableWithIndexMap)(f)(z)(m.value0))(m.value2))(m.value3))(m.value5))(m.value6);\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 151, column 26 - line 154, column 120): \" + [ m.constructor.name ]);\n };\n };\n },\n foldMapWithIndex: function (dictMonoid) {\n var mempty = Data_Monoid.mempty(dictMonoid);\n var append2 = Data_Semigroup.append(dictMonoid.Semigroup0());\n return function (f) {\n return function (m) {\n if (m instanceof Leaf) {\n return mempty;\n };\n if (m instanceof Two) {\n return append2(Data_FoldableWithIndex.foldMapWithIndex(foldableWithIndexMap)(dictMonoid)(f)(m.value0))(append2(f(m.value1)(m.value2))(Data_FoldableWithIndex.foldMapWithIndex(foldableWithIndexMap)(dictMonoid)(f)(m.value3)));\n };\n if (m instanceof Three) {\n return append2(Data_FoldableWithIndex.foldMapWithIndex(foldableWithIndexMap)(dictMonoid)(f)(m.value0))(append2(f(m.value1)(m.value2))(append2(Data_FoldableWithIndex.foldMapWithIndex(foldableWithIndexMap)(dictMonoid)(f)(m.value3))(append2(f(m.value4)(m.value5))(Data_FoldableWithIndex.foldMapWithIndex(foldableWithIndexMap)(dictMonoid)(f)(m.value6)))));\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 155, column 26 - line 158, column 128): \" + [ m.constructor.name ]);\n };\n };\n },\n Foldable0: function () {\n return foldableMap;\n }\n};\nvar foldrWithIndex = /* #__PURE__ */ Data_FoldableWithIndex.foldrWithIndex(foldableWithIndexMap);\nvar foldlWithIndex = /* #__PURE__ */ Data_FoldableWithIndex.foldlWithIndex(foldableWithIndexMap);\nvar keys = /* #__PURE__ */ (function () {\n return foldrWithIndex(function (k) {\n return function (v) {\n return function (acc) {\n return new Data_List_Types.Cons(k, acc);\n };\n };\n })(Data_List_Types.Nil.value);\n})();\nvar traversableMap = {\n traverse: function (dictApplicative) {\n var pure1 = Control_Applicative.pure(dictApplicative);\n var Apply0 = dictApplicative.Apply0();\n var apply = Control_Apply.apply(Apply0);\n var map1 = Data_Functor.map(Apply0.Functor0());\n return function (v) {\n return function (v1) {\n if (v1 instanceof Leaf) {\n return pure1(Leaf.value);\n };\n if (v1 instanceof Two) {\n return apply(apply(apply(map1(Two.create)(Data_Traversable.traverse(traversableMap)(dictApplicative)(v)(v1.value0)))(pure1(v1.value1)))(v(v1.value2)))(Data_Traversable.traverse(traversableMap)(dictApplicative)(v)(v1.value3));\n };\n if (v1 instanceof Three) {\n return apply(apply(apply(apply(apply(apply(map1(Three.create)(Data_Traversable.traverse(traversableMap)(dictApplicative)(v)(v1.value0)))(pure1(v1.value1)))(v(v1.value2)))(Data_Traversable.traverse(traversableMap)(dictApplicative)(v)(v1.value3)))(pure1(v1.value4)))(v(v1.value5)))(Data_Traversable.traverse(traversableMap)(dictApplicative)(v)(v1.value6));\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 160, column 1 - line 175, column 31): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n };\n },\n sequence: function (dictApplicative) {\n return Data_Traversable.traverse(traversableMap)(dictApplicative)(identity);\n },\n Functor0: function () {\n return functorMap;\n },\n Foldable1: function () {\n return foldableMap;\n }\n};\nvar traversableWithIndexMap = {\n traverseWithIndex: function (dictApplicative) {\n var pure1 = Control_Applicative.pure(dictApplicative);\n var Apply0 = dictApplicative.Apply0();\n var apply = Control_Apply.apply(Apply0);\n var map1 = Data_Functor.map(Apply0.Functor0());\n return function (v) {\n return function (v1) {\n if (v1 instanceof Leaf) {\n return pure1(Leaf.value);\n };\n if (v1 instanceof Two) {\n return apply(apply(apply(map1(Two.create)(Data_TraversableWithIndex.traverseWithIndex(traversableWithIndexMap)(dictApplicative)(v)(v1.value0)))(pure1(v1.value1)))(v(v1.value1)(v1.value2)))(Data_TraversableWithIndex.traverseWithIndex(traversableWithIndexMap)(dictApplicative)(v)(v1.value3));\n };\n if (v1 instanceof Three) {\n return apply(apply(apply(apply(apply(apply(map1(Three.create)(Data_TraversableWithIndex.traverseWithIndex(traversableWithIndexMap)(dictApplicative)(v)(v1.value0)))(pure1(v1.value1)))(v(v1.value1)(v1.value2)))(Data_TraversableWithIndex.traverseWithIndex(traversableWithIndexMap)(dictApplicative)(v)(v1.value3)))(pure1(v1.value4)))(v(v1.value4)(v1.value5)))(Data_TraversableWithIndex.traverseWithIndex(traversableWithIndexMap)(dictApplicative)(v)(v1.value6));\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 177, column 1 - line 191, column 40): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n };\n },\n FunctorWithIndex0: function () {\n return functorWithIndexMap;\n },\n FoldableWithIndex1: function () {\n return foldableWithIndexMap;\n },\n Traversable2: function () {\n return traversableMap;\n }\n};\nvar values = /* #__PURE__ */ (function () {\n return Data_Foldable.foldr(foldableMap)(Data_List_Types.Cons.create)(Data_List_Types.Nil.value);\n})();\nvar foldSubmapBy = function (dictOrd) {\n var lessThan = Data_Ord.lessThan(dictOrd);\n var greaterThan = Data_Ord.greaterThan(dictOrd);\n var lessThanOrEq = Data_Ord.lessThanOrEq(dictOrd);\n return function (appendFn) {\n return function (memptyValue) {\n return function (kmin) {\n return function (kmax) {\n return function (f) {\n var tooSmall = (function () {\n if (kmin instanceof Data_Maybe.Just) {\n return function (k) {\n return lessThan(k)(kmin.value0);\n };\n };\n if (kmin instanceof Data_Maybe.Nothing) {\n return Data_Function[\"const\"](false);\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 363, column 7 - line 367, column 22): \" + [ kmin.constructor.name ]);\n })();\n var tooLarge = (function () {\n if (kmax instanceof Data_Maybe.Just) {\n return function (k) {\n return greaterThan(k)(kmax.value0);\n };\n };\n if (kmax instanceof Data_Maybe.Nothing) {\n return Data_Function[\"const\"](false);\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 370, column 7 - line 374, column 22): \" + [ kmax.constructor.name ]);\n })();\n var inBounds = (function () {\n if (kmin instanceof Data_Maybe.Just && kmax instanceof Data_Maybe.Just) {\n return function (k) {\n return lessThanOrEq(kmin.value0)(k) && lessThanOrEq(k)(kmax.value0);\n };\n };\n if (kmin instanceof Data_Maybe.Just && kmax instanceof Data_Maybe.Nothing) {\n return function (k) {\n return lessThanOrEq(kmin.value0)(k);\n };\n };\n if (kmin instanceof Data_Maybe.Nothing && kmax instanceof Data_Maybe.Just) {\n return function (k) {\n return lessThanOrEq(k)(kmax.value0);\n };\n };\n if (kmin instanceof Data_Maybe.Nothing && kmax instanceof Data_Maybe.Nothing) {\n return Data_Function[\"const\"](true);\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 377, column 7 - line 385, column 21): \" + [ kmin.constructor.name, kmax.constructor.name ]);\n })();\n var go = function (v) {\n if (v instanceof Leaf) {\n return memptyValue;\n };\n if (v instanceof Two) {\n return appendFn(appendFn((function () {\n var $819 = tooSmall(v.value1);\n if ($819) {\n return memptyValue;\n };\n return go(v.value0);\n })())((function () {\n var $820 = inBounds(v.value1);\n if ($820) {\n return f(v.value1)(v.value2);\n };\n return memptyValue;\n })()))((function () {\n var $821 = tooLarge(v.value1);\n if ($821) {\n return memptyValue;\n };\n return go(v.value3);\n })());\n };\n if (v instanceof Three) {\n return appendFn(appendFn(appendFn(appendFn((function () {\n var $826 = tooSmall(v.value1);\n if ($826) {\n return memptyValue;\n };\n return go(v.value0);\n })())((function () {\n var $827 = inBounds(v.value1);\n if ($827) {\n return f(v.value1)(v.value2);\n };\n return memptyValue;\n })()))((function () {\n var $828 = tooSmall(v.value4) || tooLarge(v.value1);\n if ($828) {\n return memptyValue;\n };\n return go(v.value3);\n })()))((function () {\n var $829 = inBounds(v.value4);\n if ($829) {\n return f(v.value4)(v.value5);\n };\n return memptyValue;\n })()))((function () {\n var $830 = tooLarge(v.value4);\n if ($830) {\n return memptyValue;\n };\n return go(v.value6);\n })());\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 403, column 10 - line 415, column 67): \" + [ v.constructor.name ]);\n };\n return go;\n };\n };\n };\n };\n };\n};\nvar foldSubmap = function (dictOrd) {\n var foldSubmapBy1 = foldSubmapBy(dictOrd);\n return function (dictMonoid) {\n return foldSubmapBy1(Data_Semigroup.append(dictMonoid.Semigroup0()))(Data_Monoid.mempty(dictMonoid));\n };\n};\nvar findMin = /* #__PURE__ */ (function () {\n var go = function ($copy_v) {\n return function ($copy_v1) {\n var $tco_var_v = $copy_v;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(v, v1) {\n if (v1 instanceof Leaf) {\n $tco_done = true;\n return v;\n };\n if (v1 instanceof Two) {\n $tco_var_v = new Data_Maybe.Just({\n key: v1.value1,\n value: v1.value2\n });\n $copy_v1 = v1.value0;\n return;\n };\n if (v1 instanceof Three) {\n $tco_var_v = new Data_Maybe.Just({\n key: v1.value1,\n value: v1.value2\n });\n $copy_v1 = v1.value0;\n return;\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 338, column 5 - line 338, column 22): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_v, $copy_v1);\n };\n return $tco_result;\n };\n };\n return go(Data_Maybe.Nothing.value);\n})();\nvar lookupGT = function (dictOrd) {\n var compare = Data_Ord.compare(dictOrd);\n return function (k) {\n var go = function (v) {\n if (v instanceof Leaf) {\n return Data_Maybe.Nothing.value;\n };\n if (v instanceof Two) {\n var v2 = compare(k)(v.value1);\n if (v2 instanceof Data_Ordering.EQ) {\n return findMin(v.value3);\n };\n if (v2 instanceof Data_Ordering.LT) {\n return new Data_Maybe.Just(Data_Maybe.fromMaybe({\n key: v.value1,\n value: v.value2\n })(go(v.value0)));\n };\n if (v2 instanceof Data_Ordering.GT) {\n return go(v.value3);\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 317, column 33 - line 320, column 21): \" + [ v2.constructor.name ]);\n };\n if (v instanceof Three) {\n var v3 = compare(k)(v.value1);\n if (v3 instanceof Data_Ordering.EQ) {\n return findMin(new Two(v.value3, v.value4, v.value5, v.value6));\n };\n if (v3 instanceof Data_Ordering.LT) {\n return new Data_Maybe.Just(Data_Maybe.fromMaybe({\n key: v.value1,\n value: v.value2\n })(go(v.value0)));\n };\n if (v3 instanceof Data_Ordering.GT) {\n return go(new Two(v.value3, v.value4, v.value5, v.value6));\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 321, column 45 - line 324, column 37): \" + [ v3.constructor.name ]);\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 316, column 5 - line 316, column 22): \" + [ v.constructor.name ]);\n };\n return go;\n };\n};\nvar findMax = /* #__PURE__ */ (function () {\n var go = function ($copy_v) {\n return function ($copy_v1) {\n var $tco_var_v = $copy_v;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(v, v1) {\n if (v1 instanceof Leaf) {\n $tco_done = true;\n return v;\n };\n if (v1 instanceof Two) {\n $tco_var_v = new Data_Maybe.Just({\n key: v1.value1,\n value: v1.value2\n });\n $copy_v1 = v1.value3;\n return;\n };\n if (v1 instanceof Three) {\n $tco_var_v = new Data_Maybe.Just({\n key: v1.value4,\n value: v1.value5\n });\n $copy_v1 = v1.value6;\n return;\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 330, column 5 - line 330, column 22): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_v, $copy_v1);\n };\n return $tco_result;\n };\n };\n return go(Data_Maybe.Nothing.value);\n})();\nvar lookupLT = function (dictOrd) {\n var compare = Data_Ord.compare(dictOrd);\n return function (k) {\n var go = function (v) {\n if (v instanceof Leaf) {\n return Data_Maybe.Nothing.value;\n };\n if (v instanceof Two) {\n var v2 = compare(k)(v.value1);\n if (v2 instanceof Data_Ordering.EQ) {\n return findMax(v.value0);\n };\n if (v2 instanceof Data_Ordering.GT) {\n return new Data_Maybe.Just(Data_Maybe.fromMaybe({\n key: v.value1,\n value: v.value2\n })(go(v.value3)));\n };\n if (v2 instanceof Data_Ordering.LT) {\n return go(v.value0);\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 283, column 33 - line 286, column 20): \" + [ v2.constructor.name ]);\n };\n if (v instanceof Three) {\n var v3 = compare(k)(v.value4);\n if (v3 instanceof Data_Ordering.EQ) {\n return findMax(new Two(v.value0, v.value1, v.value2, v.value3));\n };\n if (v3 instanceof Data_Ordering.GT) {\n return new Data_Maybe.Just(Data_Maybe.fromMaybe({\n key: v.value4,\n value: v.value5\n })(go(v.value6)));\n };\n if (v3 instanceof Data_Ordering.LT) {\n return go(new Two(v.value0, v.value1, v.value2, v.value3));\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 287, column 45 - line 290, column 36): \" + [ v3.constructor.name ]);\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 282, column 5 - line 282, column 22): \" + [ v.constructor.name ]);\n };\n return go;\n };\n};\nvar eqMap = function (dictEq) {\n var eqTuple = Data_Tuple.eqTuple(dictEq);\n return function (dictEq1) {\n var eq1 = Data_Eq.eq(Data_Eq.eqArray(eqTuple(dictEq1)));\n return {\n eq: function (m1) {\n return function (m2) {\n return eq1(toAscArray(m1))(toAscArray(m2));\n };\n }\n };\n };\n};\nvar ordMap = function (dictOrd) {\n var ordTuple = Data_Tuple.ordTuple(dictOrd);\n var eqMap1 = eqMap(dictOrd.Eq0());\n return function (dictOrd1) {\n var compare = Data_Ord.compare(Data_Ord.ordArray(ordTuple(dictOrd1)));\n var eqMap2 = eqMap1(dictOrd1.Eq0());\n return {\n compare: function (m1) {\n return function (m2) {\n return compare(toAscArray(m1))(toAscArray(m2));\n };\n },\n Eq0: function () {\n return eqMap2;\n }\n };\n };\n};\nvar eq1Map = function (dictEq) {\n var eqMap1 = eqMap(dictEq);\n return {\n eq1: function (dictEq1) {\n return Data_Eq.eq(eqMap1(dictEq1));\n }\n };\n};\nvar ord1Map = function (dictOrd) {\n var ordMap1 = ordMap(dictOrd);\n var eq1Map1 = eq1Map(dictOrd.Eq0());\n return {\n compare1: function (dictOrd1) {\n return Data_Ord.compare(ordMap1(dictOrd1));\n },\n Eq10: function () {\n return eq1Map1;\n }\n };\n};\nvar empty = /* #__PURE__ */ (function () {\n return Leaf.value;\n})();\nvar fromFoldable = function (dictOrd) {\n var insert1 = insert(dictOrd);\n return function (dictFoldable) {\n return Data_Foldable.foldl(dictFoldable)(function (m) {\n return function (v) {\n return insert1(v.value0)(v.value1)(m);\n };\n })(empty);\n };\n};\nvar filterWithKey = function (dictOrd) {\n var fromFoldable1 = fromFoldable(dictOrd)(Data_List_Lazy_Types.foldableList);\n return function (predicate) {\n var $927 = Data_List_Lazy.filter(Data_Tuple.uncurry(predicate));\n return function ($928) {\n return fromFoldable1($927(toUnfoldable1($928)));\n };\n };\n};\nvar filter = function (dictOrd) {\n var filterWithKey1 = filterWithKey(dictOrd);\n return function (predicate) {\n return filterWithKey1(Data_Function[\"const\"](predicate));\n };\n};\nvar filterKeys = function (dictOrd) {\n var filterWithKey1 = filterWithKey(dictOrd);\n return function (predicate) {\n return filterWithKey1(function ($929) {\n return Data_Function[\"const\"](predicate($929));\n });\n };\n};\nvar fromFoldableWithIndex = function (dictOrd) {\n var insert1 = insert(dictOrd);\n return function (dictFoldableWithIndex) {\n return Data_FoldableWithIndex.foldlWithIndex(dictFoldableWithIndex)(function (k) {\n return function (m) {\n return function (v) {\n return insert1(k)(v)(m);\n };\n };\n })(empty);\n };\n};\nvar intersectionWith = function (dictOrd) {\n var compare = Data_Ord.compare(dictOrd);\n var insert1 = insert(dictOrd);\n return function (f) {\n return function (m1) {\n return function (m2) {\n var go = function ($copy_v) {\n return function ($copy_v1) {\n return function ($copy_v2) {\n var $tco_var_v = $copy_v;\n var $tco_var_v1 = $copy_v1;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(v, v1, v2) {\n if (v instanceof Data_List_Types.Nil) {\n $tco_done = true;\n return v2;\n };\n if (v1 instanceof Data_List_Types.Nil) {\n $tco_done = true;\n return v2;\n };\n if (v instanceof Data_List_Types.Cons && v1 instanceof Data_List_Types.Cons) {\n var v3 = compare(v.value0.value0)(v1.value0.value0);\n if (v3 instanceof Data_Ordering.LT) {\n $tco_var_v = v.value1;\n $tco_var_v1 = v1;\n $copy_v2 = v2;\n return;\n };\n if (v3 instanceof Data_Ordering.EQ) {\n $tco_var_v = v.value1;\n $tco_var_v1 = v1.value1;\n $copy_v2 = insert1(v.value0.value0)(f(v.value0.value1)(v1.value0.value1))(v2);\n return;\n };\n if (v3 instanceof Data_Ordering.GT) {\n $tco_var_v = v;\n $tco_var_v1 = v1.value1;\n $copy_v2 = v2;\n return;\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 684, column 5 - line 687, column 27): \" + [ v3.constructor.name ]);\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 681, column 3 - line 681, column 17): \" + [ v.constructor.name, v1.constructor.name, v2.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_v, $tco_var_v1, $copy_v2);\n };\n return $tco_result;\n };\n };\n };\n return go(toUnfoldable2(m1))(toUnfoldable2(m2))(empty);\n };\n };\n };\n};\nvar intersection = function (dictOrd) {\n return intersectionWith(dictOrd)(Data_Function[\"const\"]);\n};\nvar mapMaybeWithKey = function (dictOrd) {\n var insert1 = insert(dictOrd);\n return function (f) {\n return foldrWithIndex(function (k) {\n return function (a) {\n return function (acc) {\n return Data_Maybe.maybe(acc)(function (b) {\n return insert1(k)(b)(acc);\n })(f(k)(a));\n };\n };\n })(empty);\n };\n};\nvar mapMaybe = function (dictOrd) {\n var $930 = mapMaybeWithKey(dictOrd);\n return function ($931) {\n return $930(Data_Function[\"const\"]($931));\n };\n};\nvar $$delete = function (dictOrd) {\n var pop1 = pop(dictOrd);\n return function (k) {\n return function (m) {\n return Data_Maybe.maybe(m)(Data_Tuple.snd)(pop1(k)(m));\n };\n };\n};\nvar difference = function (dictOrd) {\n var delete1 = $$delete(dictOrd);\n return function (m1) {\n return function (m2) {\n return foldl(Data_Function.flip(delete1))(m1)(keys(m2));\n };\n };\n};\nvar checkValid = function (tree) {\n var allHeights = function (v) {\n if (v instanceof Leaf) {\n return pure(0);\n };\n if (v instanceof Two) {\n return map(function (n) {\n return n + 1 | 0;\n })(append1(allHeights(v.value0))(allHeights(v.value3)));\n };\n if (v instanceof Three) {\n return map(function (n) {\n return n + 1 | 0;\n })(append1(allHeights(v.value0))(append1(allHeights(v.value3))(allHeights(v.value6))));\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 229, column 3 - line 229, column 36): \" + [ v.constructor.name ]);\n };\n return Data_List.length(nub(allHeights(tree))) === 1;\n};\nvar catMaybes = function (dictOrd) {\n return mapMaybe(dictOrd)(identity);\n};\nvar applyMap = function (dictOrd) {\n return {\n apply: intersectionWith(dictOrd)(identity),\n Functor0: function () {\n return functorMap;\n }\n };\n};\nvar bindMap = function (dictOrd) {\n var mapMaybeWithKey1 = mapMaybeWithKey(dictOrd);\n var lookup1 = lookup(dictOrd);\n var applyMap1 = applyMap(dictOrd);\n return {\n bind: function (m) {\n return function (f) {\n return mapMaybeWithKey1(function (k) {\n var $932 = lookup1(k);\n return function ($933) {\n return $932(f($933));\n };\n })(m);\n };\n },\n Apply0: function () {\n return applyMap1;\n }\n };\n};\nvar alter = function (dictOrd) {\n var lookup1 = lookup(dictOrd);\n var delete1 = $$delete(dictOrd);\n var insert1 = insert(dictOrd);\n return function (f) {\n return function (k) {\n return function (m) {\n var v = f(lookup1(k)(m));\n if (v instanceof Data_Maybe.Nothing) {\n return delete1(k)(m);\n };\n if (v instanceof Data_Maybe.Just) {\n return insert1(k)(v.value0)(m);\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 596, column 15 - line 598, column 25): \" + [ v.constructor.name ]);\n };\n };\n };\n};\nvar fromFoldableWith = function (dictOrd) {\n var alter1 = alter(dictOrd);\n return function (dictFoldable) {\n var foldl1 = Data_Foldable.foldl(dictFoldable);\n return function (f) {\n var combine = function (v) {\n return function (v1) {\n if (v1 instanceof Data_Maybe.Just) {\n return new Data_Maybe.Just(f(v)(v1.value0));\n };\n if (v1 instanceof Data_Maybe.Nothing) {\n return new Data_Maybe.Just(v);\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 613, column 3 - line 613, column 38): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n };\n return foldl1(function (m) {\n return function (v) {\n return alter1(combine(v.value1))(v.value0)(m);\n };\n })(empty);\n };\n };\n};\nvar insertWith = function (dictOrd) {\n var alter1 = alter(dictOrd);\n return function (f) {\n return function (k) {\n return function (v) {\n return alter1((function () {\n var $934 = Data_Maybe.maybe(v)(Data_Function.flip(f)(v));\n return function ($935) {\n return Data_Maybe.Just.create($934($935));\n };\n })())(k);\n };\n };\n };\n};\nvar unionWith = function (dictOrd) {\n var alter1 = alter(dictOrd);\n return function (f) {\n return function (m1) {\n return function (m2) {\n var go = function (k) {\n return function (m) {\n return function (v) {\n return alter1((function () {\n var $936 = Data_Maybe.maybe(v)(f(v));\n return function ($937) {\n return Data_Maybe.Just.create($936($937));\n };\n })())(k)(m);\n };\n };\n };\n return foldlWithIndex(go)(m2)(m1);\n };\n };\n };\n};\nvar semigroupMap = function () {\n return function (dictOrd) {\n var unionWith1 = unionWith(dictOrd);\n return function (dictSemigroup) {\n var append2 = Data_Semigroup.append(dictSemigroup);\n return {\n append: function (l) {\n return function (r) {\n return unionWith1(append2)(l)(r);\n };\n }\n };\n };\n };\n};\nvar semigroupMap1 = /* #__PURE__ */ semigroupMap();\nvar monoidSemigroupMap = function () {\n return function (dictOrd) {\n var semigroupMap2 = semigroupMap1(dictOrd);\n return function (dictSemigroup) {\n var semigroupMap3 = semigroupMap2(dictSemigroup);\n return {\n mempty: empty,\n Semigroup0: function () {\n return semigroupMap3;\n }\n };\n };\n };\n};\nvar union = function (dictOrd) {\n return unionWith(dictOrd)(Data_Function[\"const\"]);\n};\nvar submap = function (dictOrd) {\n var foldSubmapBy1 = foldSubmapBy(dictOrd);\n var union1 = union(dictOrd);\n return function (kmin) {\n return function (kmax) {\n return foldSubmapBy1(union1)(empty)(kmin)(kmax)(singleton);\n };\n };\n};\nvar unions = function (dictOrd) {\n var union1 = union(dictOrd);\n return function (dictFoldable) {\n return Data_Foldable.foldl(dictFoldable)(union1)(empty);\n };\n};\nvar update = function (dictOrd) {\n var alter1 = alter(dictOrd);\n return function (f) {\n return function (k) {\n return function (m) {\n return alter1(Data_Maybe.maybe(Data_Maybe.Nothing.value)(f))(k)(m);\n };\n };\n };\n};\nvar altMap = function (dictOrd) {\n return {\n alt: union(dictOrd),\n Functor0: function () {\n return functorMap;\n }\n };\n};\nvar plusMap = function (dictOrd) {\n var altMap1 = altMap(dictOrd);\n return {\n empty: empty,\n Alt0: function () {\n return altMap1;\n }\n };\n};\nexport {\n Leaf,\n Two,\n Three,\n showTree,\n empty,\n isEmpty,\n singleton,\n checkValid,\n insert,\n insertWith,\n lookup,\n lookupLE,\n lookupLT,\n lookupGE,\n lookupGT,\n findMin,\n findMax,\n foldSubmap,\n submap,\n fromFoldable,\n fromFoldableWith,\n fromFoldableWithIndex,\n toUnfoldable,\n toUnfoldableUnordered,\n $$delete as delete,\n pop,\n member,\n alter,\n update,\n keys,\n values,\n union,\n unionWith,\n unions,\n intersection,\n intersectionWith,\n difference,\n isSubmap,\n size,\n filterWithKey,\n filterKeys,\n filter,\n mapMaybeWithKey,\n mapMaybe,\n catMaybes,\n eq1Map,\n eqMap,\n ord1Map,\n ordMap,\n showMap,\n semigroupMap,\n monoidSemigroupMap,\n altMap,\n plusMap,\n functorMap,\n functorWithIndexMap,\n applyMap,\n bindMap,\n foldableMap,\n foldableWithIndexMap,\n traversableMap,\n traversableWithIndexMap\n};\n","// Generated by purs version 0.15.7\nimport * as Data_Boolean from \"../Data.Boolean/index.js\";\nimport * as Data_Foldable from \"../Data.Foldable/index.js\";\nimport * as Data_Map_Internal from \"../Data.Map.Internal/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Monoid_Alternate from \"../Data.Monoid.Alternate/index.js\";\nimport * as Data_Newtype from \"../Data.Newtype/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Data_Symbol from \"../Data.Symbol/index.js\";\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nimport * as Halogen_Data_OrdBox from \"../Halogen.Data.OrdBox/index.js\";\nvar un = /* #__PURE__ */ Data_Newtype.un();\nvar ordTuple = /* #__PURE__ */ Data_Tuple.ordTuple(Data_Ord.ordString)(Halogen_Data_OrdBox.ordOrdBox);\nvar foldSubmap = /* #__PURE__ */ Data_Map_Internal.foldSubmap(ordTuple);\nvar pop1 = /* #__PURE__ */ Data_Map_Internal.pop(ordTuple);\nvar lookup1 = /* #__PURE__ */ Data_Map_Internal.lookup(ordTuple);\nvar insert1 = /* #__PURE__ */ Data_Map_Internal.insert(ordTuple);\nvar SlotStorage = function (x) {\n return x;\n};\nvar slots = function () {\n return function (dictIsSymbol) {\n var reflectSymbol = Data_Symbol.reflectSymbol(dictIsSymbol);\n return function (dictOrd) {\n var foldSubmap1 = foldSubmap(Data_Monoid_Alternate.monoidAlternate(Data_Map_Internal.plusMap(dictOrd)));\n return function (sym) {\n return function (v) {\n var key = reflectSymbol(sym);\n var go = function (v1) {\n return function (val) {\n if (key === v1.value0) {\n return Data_Map_Internal.singleton(Halogen_Data_OrdBox.unOrdBox(v1.value1))(val);\n };\n if (Data_Boolean.otherwise) {\n return Data_Map_Internal.empty;\n };\n throw new Error(\"Failed pattern match at Halogen.Data.Slot (line 121, column 3 - line 123, column 38): \" + [ v1.constructor.name, val.constructor.name ]);\n };\n };\n return un(Data_Monoid_Alternate.Alternate)(foldSubmap1(Data_Maybe.Nothing.value)(Data_Maybe.Nothing.value)(go)(v));\n };\n };\n };\n };\n};\nvar pop = function () {\n return function (dictIsSymbol) {\n var reflectSymbol = Data_Symbol.reflectSymbol(dictIsSymbol);\n return function (dictOrd) {\n var mkOrdBox = Halogen_Data_OrdBox.mkOrdBox(dictOrd);\n return function (sym) {\n return function (key) {\n return function (v) {\n return pop1(new Data_Tuple.Tuple(reflectSymbol(sym), mkOrdBox(key)))(v);\n };\n };\n };\n };\n };\n};\nvar lookup = function () {\n return function (dictIsSymbol) {\n var reflectSymbol = Data_Symbol.reflectSymbol(dictIsSymbol);\n return function (dictOrd) {\n var mkOrdBox = Halogen_Data_OrdBox.mkOrdBox(dictOrd);\n return function (sym) {\n return function (key) {\n return function (v) {\n return lookup1(new Data_Tuple.Tuple(reflectSymbol(sym), mkOrdBox(key)))(v);\n };\n };\n };\n };\n };\n};\nvar insert = function () {\n return function (dictIsSymbol) {\n var reflectSymbol = Data_Symbol.reflectSymbol(dictIsSymbol);\n return function (dictOrd) {\n var mkOrdBox = Halogen_Data_OrdBox.mkOrdBox(dictOrd);\n return function (sym) {\n return function (key) {\n return function (val) {\n return function (v) {\n return insert1(new Data_Tuple.Tuple(reflectSymbol(sym), mkOrdBox(key)))(val)(v);\n };\n };\n };\n };\n };\n };\n};\nvar foreachSlot = function (dictApplicative) {\n var traverse_ = Data_Foldable.traverse_(dictApplicative)(Data_Map_Internal.foldableMap);\n return function (v) {\n return function (k) {\n return traverse_(function ($54) {\n return k($54);\n })(v);\n };\n };\n};\nvar empty = Data_Map_Internal.empty;\nexport {\n empty,\n lookup,\n insert,\n pop,\n slots,\n foreachSlot\n};\n","// Generated by purs version 0.15.7\nimport * as Unsafe_Coerce from \"../Unsafe.Coerce/index.js\";\nvar ChildQuery = /* #__PURE__ */ (function () {\n function ChildQuery(value0, value1, value2) {\n this.value0 = value0;\n this.value1 = value1;\n this.value2 = value2;\n };\n ChildQuery.create = function (value0) {\n return function (value1) {\n return function (value2) {\n return new ChildQuery(value0, value1, value2);\n };\n };\n };\n return ChildQuery;\n})();\nvar unChildQueryBox = Unsafe_Coerce.unsafeCoerce;\nvar mkChildQueryBox = Unsafe_Coerce.unsafeCoerce;\nvar functorChildQuery = {\n map: function (f) {\n return unChildQueryBox(function (v) {\n return mkChildQueryBox(new ChildQuery(function (dictApplicative) {\n return v.value0(dictApplicative);\n }, v.value1, function ($8) {\n return f(v.value2($8));\n }));\n });\n }\n};\nexport {\n ChildQuery,\n mkChildQueryBox,\n unChildQueryBox,\n functorChildQuery\n};\n","// Generated by purs version 0.15.7\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nvar UnsafeRefEqFallback = function (x) {\n return x;\n};\nvar UnsafeRefEq = function (x) {\n return x;\n};\nvar unsafeRefEq = $foreign.reallyUnsafeRefEq;\nvar eqUnsafeRefEqFallback = function (dictEq) {\n var eq = Data_Eq.eq(dictEq);\n return {\n eq: function (v) {\n return function (v1) {\n return unsafeRefEq(v)(v1) || eq(v)(v1);\n };\n }\n };\n};\nvar eqUnsafeRefEq = {\n eq: function (v) {\n return function (v1) {\n return unsafeRefEq(v)(v1);\n };\n }\n};\nexport {\n reallyUnsafeRefEq\n} from \"./foreign.js\";\nexport {\n unsafeRefEq,\n UnsafeRefEq,\n UnsafeRefEqFallback,\n eqUnsafeRefEq,\n eqUnsafeRefEqFallback\n};\n","export function reallyUnsafeRefEq(a) {\n return function (b) {\n return a === b;\n };\n}\n","// Generated by purs version 0.15.7\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Apply from \"../Control.Apply/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Data_Array from \"../Data.Array/index.js\";\nimport * as Data_Foldable from \"../Data.Foldable/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Monoid from \"../Data.Monoid/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nimport * as Effect from \"../Effect/index.js\";\nimport * as Effect_Ref from \"../Effect.Ref/index.js\";\nimport * as Effect_Unsafe from \"../Effect.Unsafe/index.js\";\nimport * as Safe_Coerce from \"../Safe.Coerce/index.js\";\nimport * as Unsafe_Reference from \"../Unsafe.Reference/index.js\";\nvar $$void = /* #__PURE__ */ Data_Functor[\"void\"](Effect.functorEffect);\nvar coerce = /* #__PURE__ */ Safe_Coerce.coerce();\nvar bind = /* #__PURE__ */ Control_Bind.bind(Effect.bindEffect);\nvar pure = /* #__PURE__ */ Control_Applicative.pure(Effect.applicativeEffect);\nvar append = /* #__PURE__ */ Data_Semigroup.append(Data_Semigroup.semigroupArray);\nvar traverse_ = /* #__PURE__ */ Data_Foldable.traverse_(Effect.applicativeEffect);\nvar traverse_1 = /* #__PURE__ */ traverse_(Data_Foldable.foldableArray);\nvar applySecond = /* #__PURE__ */ Control_Apply.applySecond(Effect.applyEffect);\nvar traverse_2 = /* #__PURE__ */ traverse_(Data_Foldable.foldableMaybe);\nvar Subscription = function (x) {\n return x;\n};\nvar Listener = function (x) {\n return x;\n};\nvar Emitter = function (x) {\n return x;\n};\nvar unsubscribe = function (v) {\n return v;\n};\nvar subscribe = function (v) {\n return function (k) {\n return v(function ($76) {\n return $$void(k($76));\n });\n };\n};\nvar semigroupSubscription = /* #__PURE__ */ Effect.semigroupEffect(Data_Semigroup.semigroupUnit);\nvar notify = function (v) {\n return function (a) {\n return v(a);\n };\n};\nvar monoidSubscription = /* #__PURE__ */ Effect.monoidEffect(Data_Monoid.monoidUnit);\nvar mempty = /* #__PURE__ */ Data_Monoid.mempty(/* #__PURE__ */ Data_Monoid.monoidFn(/* #__PURE__ */ Effect.monoidEffect(monoidSubscription)));\nvar makeEmitter = coerce;\nvar functorEmitter = {\n map: function (f) {\n return function (v) {\n return function (k) {\n return v(function ($77) {\n return k(f($77));\n });\n };\n };\n }\n};\nvar fold = function (f) {\n return function (v) {\n return function (b) {\n return function (k) {\n return function __do() {\n var result = Effect_Ref[\"new\"](b)();\n return v(function (a) {\n return bind(Effect_Ref.modify(f(a))(result))(k);\n })();\n };\n };\n };\n };\n};\nvar filter = function (p) {\n return function (v) {\n return function (k) {\n return v(function (a) {\n var $57 = p(a);\n if ($57) {\n return k(a);\n };\n return pure(Data_Unit.unit);\n });\n };\n };\n};\nvar create = function __do() {\n var subscribers = Effect_Ref[\"new\"]([ ])();\n return {\n emitter: function (k) {\n return function __do() {\n Effect_Ref.modify_(function (v) {\n return append(v)([ k ]);\n })(subscribers)();\n return Effect_Ref.modify_(Data_Array.deleteBy(Unsafe_Reference.unsafeRefEq)(k))(subscribers);\n };\n },\n listener: function (a) {\n return bind(Effect_Ref.read(subscribers))(traverse_1(function (k) {\n return k(a);\n }));\n }\n };\n};\nvar fix = function (f) {\n var v = Effect_Unsafe.unsafePerformEffect(create);\n var v1 = f(v.emitter);\n return function (k) {\n return function __do() {\n var v2 = subscribe(v1.input)(notify(v.listener))();\n var v3 = subscribe(v1.output)(k)();\n return applySecond(v2)(v3);\n };\n };\n};\nvar contravariantListener = {\n cmap: function (f) {\n return function (v) {\n return coerce(function ($78) {\n return v(f($78));\n });\n };\n }\n};\nvar applyEmitter = {\n apply: function (v) {\n return function (v1) {\n return function (k) {\n return function __do() {\n var latestA = Effect_Ref[\"new\"](Data_Maybe.Nothing.value)();\n var latestB = Effect_Ref[\"new\"](Data_Maybe.Nothing.value)();\n var v2 = v(function (a) {\n return function __do() {\n Effect_Ref.write(new Data_Maybe.Just(a))(latestA)();\n return bind(Effect_Ref.read(latestB))(traverse_2(function ($79) {\n return k(a($79));\n }))();\n };\n })();\n var v3 = v1(function (b) {\n return function __do() {\n Effect_Ref.write(new Data_Maybe.Just(b))(latestB)();\n return bind(Effect_Ref.read(latestA))(traverse_2(function ($80) {\n return k((function (v3) {\n return v3(b);\n })($80));\n }))();\n };\n })();\n return applySecond(v2)(v3);\n };\n };\n };\n },\n Functor0: function () {\n return functorEmitter;\n }\n};\nvar lift2 = /* #__PURE__ */ Control_Apply.lift2(applyEmitter);\nvar semigroupEmitter = function (dictSemigroup) {\n return {\n append: lift2(Data_Semigroup.append(dictSemigroup))\n };\n};\nvar monoidEmitter = function (dictMonoid) {\n var semigroupEmitter1 = semigroupEmitter(dictMonoid.Semigroup0());\n return {\n mempty: mempty,\n Semigroup0: function () {\n return semigroupEmitter1;\n }\n };\n};\nvar applicativeEmitter = {\n pure: function (a) {\n return function (k) {\n return function __do() {\n k(a)();\n return pure(Data_Unit.unit);\n };\n };\n },\n Apply0: function () {\n return applyEmitter;\n }\n};\nvar altEmitter = {\n alt: function (v) {\n return function (v1) {\n return function (k) {\n return function __do() {\n var v2 = v(k)();\n var v3 = v1(k)();\n return applySecond(v2)(v3);\n };\n };\n };\n },\n Functor0: function () {\n return functorEmitter;\n }\n};\nvar plusEmitter = {\n empty: function (v) {\n return pure(pure(Data_Unit.unit));\n },\n Alt0: function () {\n return altEmitter;\n }\n};\nvar alternativeEmitter = {\n Applicative0: function () {\n return applicativeEmitter;\n },\n Plus1: function () {\n return plusEmitter;\n }\n};\nexport {\n create,\n notify,\n makeEmitter,\n subscribe,\n unsubscribe,\n fold,\n filter,\n fix,\n functorEmitter,\n applyEmitter,\n applicativeEmitter,\n altEmitter,\n plusEmitter,\n alternativeEmitter,\n semigroupEmitter,\n monoidEmitter,\n contravariantListener,\n semigroupSubscription,\n monoidSubscription\n};\n","// Generated by purs version 0.15.7\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Applicative_Free from \"../Control.Applicative.Free/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Control_Monad_Error_Class from \"../Control.Monad.Error.Class/index.js\";\nimport * as Control_Monad_Free from \"../Control.Monad.Free/index.js\";\nimport * as Control_Monad_Reader_Class from \"../Control.Monad.Reader.Class/index.js\";\nimport * as Control_Monad_Rec_Class from \"../Control.Monad.Rec.Class/index.js\";\nimport * as Control_Monad_Writer_Class from \"../Control.Monad.Writer.Class/index.js\";\nimport * as Data_Bifunctor from \"../Data.Bifunctor/index.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_FoldableWithIndex from \"../Data.FoldableWithIndex/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Map_Internal from \"../Data.Map.Internal/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Newtype from \"../Data.Newtype/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Data_Traversable from \"../Data.Traversable/index.js\";\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nimport * as Effect_Aff_Class from \"../Effect.Aff.Class/index.js\";\nimport * as Effect_Class from \"../Effect.Class/index.js\";\nimport * as Halogen_Data_Slot from \"../Halogen.Data.Slot/index.js\";\nimport * as Halogen_Query_ChildQuery from \"../Halogen.Query.ChildQuery/index.js\";\nimport * as Halogen_Subscription from \"../Halogen.Subscription/index.js\";\nvar identity = /* #__PURE__ */ Control_Category.identity(Control_Category.categoryFn);\nvar foldrWithIndex = /* #__PURE__ */ Data_FoldableWithIndex.foldrWithIndex(Data_Map_Internal.foldableWithIndexMap);\nvar traverse = /* #__PURE__ */ Data_Traversable.traverse(Data_Map_Internal.traversableMap);\nvar slots = /* #__PURE__ */ Halogen_Data_Slot.slots();\nvar lookup = /* #__PURE__ */ Halogen_Data_Slot.lookup();\nvar over = /* #__PURE__ */ Data_Newtype.over()();\nvar map = /* #__PURE__ */ Data_Functor.map(Halogen_Subscription.functorEmitter);\nvar map1 = /* #__PURE__ */ Data_Functor.map(Data_Tuple.functorTuple);\nvar lmap = /* #__PURE__ */ Data_Bifunctor.lmap(Data_Bifunctor.bifunctorTuple);\nvar map2 = /* #__PURE__ */ Data_Functor.map(Halogen_Query_ChildQuery.functorChildQuery);\nvar SubscriptionId = function (x) {\n return x;\n};\nvar ForkId = function (x) {\n return x;\n};\nvar State = /* #__PURE__ */ (function () {\n function State(value0) {\n this.value0 = value0;\n };\n State.create = function (value0) {\n return new State(value0);\n };\n return State;\n})();\nvar Subscribe = /* #__PURE__ */ (function () {\n function Subscribe(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n Subscribe.create = function (value0) {\n return function (value1) {\n return new Subscribe(value0, value1);\n };\n };\n return Subscribe;\n})();\nvar Unsubscribe = /* #__PURE__ */ (function () {\n function Unsubscribe(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n Unsubscribe.create = function (value0) {\n return function (value1) {\n return new Unsubscribe(value0, value1);\n };\n };\n return Unsubscribe;\n})();\nvar Lift = /* #__PURE__ */ (function () {\n function Lift(value0) {\n this.value0 = value0;\n };\n Lift.create = function (value0) {\n return new Lift(value0);\n };\n return Lift;\n})();\nvar ChildQuery = /* #__PURE__ */ (function () {\n function ChildQuery(value0) {\n this.value0 = value0;\n };\n ChildQuery.create = function (value0) {\n return new ChildQuery(value0);\n };\n return ChildQuery;\n})();\nvar Raise = /* #__PURE__ */ (function () {\n function Raise(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n Raise.create = function (value0) {\n return function (value1) {\n return new Raise(value0, value1);\n };\n };\n return Raise;\n})();\nvar Par = /* #__PURE__ */ (function () {\n function Par(value0) {\n this.value0 = value0;\n };\n Par.create = function (value0) {\n return new Par(value0);\n };\n return Par;\n})();\nvar Fork = /* #__PURE__ */ (function () {\n function Fork(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n Fork.create = function (value0) {\n return function (value1) {\n return new Fork(value0, value1);\n };\n };\n return Fork;\n})();\nvar Join = /* #__PURE__ */ (function () {\n function Join(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n Join.create = function (value0) {\n return function (value1) {\n return new Join(value0, value1);\n };\n };\n return Join;\n})();\nvar Kill = /* #__PURE__ */ (function () {\n function Kill(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n Kill.create = function (value0) {\n return function (value1) {\n return new Kill(value0, value1);\n };\n };\n return Kill;\n})();\nvar GetRef = /* #__PURE__ */ (function () {\n function GetRef(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n GetRef.create = function (value0) {\n return function (value1) {\n return new GetRef(value0, value1);\n };\n };\n return GetRef;\n})();\nvar HalogenAp = function (x) {\n return x;\n};\nvar HalogenM = function (x) {\n return x;\n};\nvar unsubscribe = function (sid) {\n return Control_Monad_Free.liftF(new Unsubscribe(sid, Data_Unit.unit));\n};\nvar subscribe$prime = function (esc) {\n return Control_Monad_Free.liftF(new Subscribe(esc, Data_Function[\"const\"](Data_Unit.unit)));\n};\nvar subscribe = function (es) {\n return Control_Monad_Free.liftF(new Subscribe(function (v) {\n return es;\n }, identity));\n};\nvar semigroupHalogenM = function (dictSemigroup) {\n return Control_Monad_Free.semigroupFree(dictSemigroup);\n};\nvar raise = function (o) {\n return Control_Monad_Free.liftF(new Raise(o, Data_Unit.unit));\n};\nvar queryAll = function () {\n return function (dictIsSymbol) {\n var slots1 = slots(dictIsSymbol);\n return function (dictOrd) {\n var slots2 = slots1(dictOrd);\n return function (label) {\n return function (q) {\n var catMapMaybes = function (dictOrd1) {\n var insert = Data_Map_Internal.insert(dictOrd1);\n return foldrWithIndex(function (k) {\n return function (v) {\n return function (acc) {\n return Data_Maybe.maybe(acc)(Data_Function.flip(insert(k))(acc))(v);\n };\n };\n })(Data_Map_Internal.empty);\n };\n var catMapMaybes1 = catMapMaybes(dictOrd);\n return Control_Monad_Free.liftF(new ChildQuery(Halogen_Query_ChildQuery.mkChildQueryBox(new Halogen_Query_ChildQuery.ChildQuery(function (dictApplicative) {\n var map4 = Data_Functor.map((dictApplicative.Apply0()).Functor0());\n var traverse1 = traverse(dictApplicative);\n return function (k) {\n var $173 = map4(catMapMaybes1);\n var $174 = traverse1(k);\n var $175 = slots2(label);\n return function ($176) {\n return $173($174($175($176)));\n };\n };\n }, q, identity))));\n };\n };\n };\n };\n};\nvar query = function () {\n return function (dictIsSymbol) {\n var lookup1 = lookup(dictIsSymbol);\n return function (dictOrd) {\n var lookup2 = lookup1(dictOrd);\n return function (label) {\n return function (p) {\n return function (q) {\n return Control_Monad_Free.liftF(new ChildQuery(Halogen_Query_ChildQuery.mkChildQueryBox(new Halogen_Query_ChildQuery.ChildQuery(function (dictApplicative) {\n var pure1 = Control_Applicative.pure(dictApplicative);\n return function (k) {\n var $177 = Data_Maybe.maybe(pure1(Data_Maybe.Nothing.value))(k);\n var $178 = lookup2(label)(p);\n return function ($179) {\n return $177($178($179));\n };\n };\n }, q, identity))));\n };\n };\n };\n };\n };\n};\nvar ordSubscriptionId = Data_Ord.ordInt;\nvar ordForkId = Data_Ord.ordInt;\nvar newtypeHalogenAp = {\n Coercible0: function () {\n return undefined;\n }\n};\nvar monoidHalogenM = function (dictMonoid) {\n return Control_Monad_Free.monoidFree(dictMonoid);\n};\nvar monadTransHalogenM = {\n lift: function (dictMonad) {\n return function ($180) {\n return HalogenM(Control_Monad_Free.liftF(Lift.create($180)));\n };\n }\n};\nvar monadHalogenM = Control_Monad_Free.freeMonad;\nvar monadStateHalogenM = {\n state: function ($181) {\n return HalogenM(Control_Monad_Free.liftF(State.create($181)));\n },\n Monad0: function () {\n return monadHalogenM;\n }\n};\nvar monadTellHalogenM = function (dictMonadTell) {\n var Semigroup0 = dictMonadTell.Semigroup0();\n return {\n tell: (function () {\n var $182 = Control_Monad_Writer_Class.tell(dictMonadTell);\n return function ($183) {\n return HalogenM(Control_Monad_Free.liftF(Lift.create($182($183))));\n };\n })(),\n Semigroup0: function () {\n return Semigroup0;\n },\n Monad1: function () {\n return monadHalogenM;\n }\n };\n};\nvar monadThrowHalogenM = function (dictMonadThrow) {\n return {\n throwError: (function () {\n var $184 = Control_Monad_Error_Class.throwError(dictMonadThrow);\n return function ($185) {\n return HalogenM(Control_Monad_Free.liftF(Lift.create($184($185))));\n };\n })(),\n Monad0: function () {\n return monadHalogenM;\n }\n };\n};\nvar monadEffectHalogenM = function (dictMonadEffect) {\n return {\n liftEffect: (function () {\n var $186 = Effect_Class.liftEffect(dictMonadEffect);\n return function ($187) {\n return HalogenM(Control_Monad_Free.liftF(Lift.create($186($187))));\n };\n })(),\n Monad0: function () {\n return monadHalogenM;\n }\n };\n};\nvar monadAskHalogenM = function (dictMonadAsk) {\n return {\n ask: Control_Monad_Free.liftF(new Lift(Control_Monad_Reader_Class.ask(dictMonadAsk))),\n Monad0: function () {\n return monadHalogenM;\n }\n };\n};\nvar monadAffHalogenM = function (dictMonadAff) {\n var monadEffectHalogenM1 = monadEffectHalogenM(dictMonadAff.MonadEffect0());\n return {\n liftAff: (function () {\n var $188 = Effect_Aff_Class.liftAff(dictMonadAff);\n return function ($189) {\n return HalogenM(Control_Monad_Free.liftF(Lift.create($188($189))));\n };\n })(),\n MonadEffect0: function () {\n return monadEffectHalogenM1;\n }\n };\n};\nvar mapOutput = function (f) {\n return function (v) {\n var go = function (v1) {\n if (v1 instanceof State) {\n return new State(v1.value0);\n };\n if (v1 instanceof Subscribe) {\n return new Subscribe(v1.value0, v1.value1);\n };\n if (v1 instanceof Unsubscribe) {\n return new Unsubscribe(v1.value0, v1.value1);\n };\n if (v1 instanceof Lift) {\n return new Lift(v1.value0);\n };\n if (v1 instanceof ChildQuery) {\n return new ChildQuery(v1.value0);\n };\n if (v1 instanceof Raise) {\n return new Raise(f(v1.value0), v1.value1);\n };\n if (v1 instanceof Par) {\n return new Par(over(HalogenAp)(Control_Applicative_Free.hoistFreeAp(mapOutput(f)))(v1.value0));\n };\n if (v1 instanceof Fork) {\n return new Fork(mapOutput(f)(v1.value0), v1.value1);\n };\n if (v1 instanceof Join) {\n return new Join(v1.value0, v1.value1);\n };\n if (v1 instanceof Kill) {\n return new Kill(v1.value0, v1.value1);\n };\n if (v1 instanceof GetRef) {\n return new GetRef(v1.value0, v1.value1);\n };\n throw new Error(\"Failed pattern match at Halogen.Query.HalogenM (line 290, column 8 - line 301, column 29): \" + [ v1.constructor.name ]);\n };\n return Control_Monad_Free.hoistFree(go)(v);\n };\n};\nvar mapAction = function (dictFunctor) {\n return function (f) {\n return function (v) {\n var go = function (v1) {\n if (v1 instanceof State) {\n return new State(v1.value0);\n };\n if (v1 instanceof Subscribe) {\n return new Subscribe((function () {\n var $190 = map(f);\n return function ($191) {\n return $190(v1.value0($191));\n };\n })(), v1.value1);\n };\n if (v1 instanceof Unsubscribe) {\n return new Unsubscribe(v1.value0, v1.value1);\n };\n if (v1 instanceof Lift) {\n return new Lift(v1.value0);\n };\n if (v1 instanceof ChildQuery) {\n return new ChildQuery(v1.value0);\n };\n if (v1 instanceof Raise) {\n return new Raise(v1.value0, v1.value1);\n };\n if (v1 instanceof Par) {\n return new Par(over(HalogenAp)(Control_Applicative_Free.hoistFreeAp(mapAction(dictFunctor)(f)))(v1.value0));\n };\n if (v1 instanceof Fork) {\n return new Fork(mapAction(dictFunctor)(f)(v1.value0), v1.value1);\n };\n if (v1 instanceof Join) {\n return new Join(v1.value0, v1.value1);\n };\n if (v1 instanceof Kill) {\n return new Kill(v1.value0, v1.value1);\n };\n if (v1 instanceof GetRef) {\n return new GetRef(v1.value0, v1.value1);\n };\n throw new Error(\"Failed pattern match at Halogen.Query.HalogenM (line 269, column 8 - line 280, column 29): \" + [ v1.constructor.name ]);\n };\n return Control_Monad_Free.hoistFree(go)(v);\n };\n };\n};\nvar kill = function (fid) {\n return Control_Monad_Free.liftF(new Kill(fid, Data_Unit.unit));\n};\nvar join = function (fid) {\n return Control_Monad_Free.liftF(new Join(fid, Data_Unit.unit));\n};\nvar imapState = function (f) {\n return function (f$prime) {\n return function (v) {\n var go = function (v1) {\n if (v1 instanceof State) {\n return new State((function () {\n var $192 = map1(f);\n return function ($193) {\n return $192(v1.value0(f$prime($193)));\n };\n })());\n };\n if (v1 instanceof Subscribe) {\n return new Subscribe(v1.value0, v1.value1);\n };\n if (v1 instanceof Unsubscribe) {\n return new Unsubscribe(v1.value0, v1.value1);\n };\n if (v1 instanceof Lift) {\n return new Lift(v1.value0);\n };\n if (v1 instanceof ChildQuery) {\n return new ChildQuery(v1.value0);\n };\n if (v1 instanceof Raise) {\n return new Raise(v1.value0, v1.value1);\n };\n if (v1 instanceof Par) {\n return new Par(over(HalogenAp)(Control_Applicative_Free.hoistFreeAp(imapState(f)(f$prime)))(v1.value0));\n };\n if (v1 instanceof Fork) {\n return new Fork(imapState(f)(f$prime)(v1.value0), v1.value1);\n };\n if (v1 instanceof Join) {\n return new Join(v1.value0, v1.value1);\n };\n if (v1 instanceof Kill) {\n return new Kill(v1.value0, v1.value1);\n };\n if (v1 instanceof GetRef) {\n return new GetRef(v1.value0, v1.value1);\n };\n throw new Error(\"Failed pattern match at Halogen.Query.HalogenM (line 247, column 8 - line 258, column 29): \" + [ v1.constructor.name ]);\n };\n return Control_Monad_Free.hoistFree(go)(v);\n };\n };\n};\nvar hoist = function (dictFunctor) {\n return function (nat) {\n return function (v) {\n var go = function (v1) {\n if (v1 instanceof State) {\n return new State(v1.value0);\n };\n if (v1 instanceof Subscribe) {\n return new Subscribe(v1.value0, v1.value1);\n };\n if (v1 instanceof Unsubscribe) {\n return new Unsubscribe(v1.value0, v1.value1);\n };\n if (v1 instanceof Lift) {\n return new Lift(nat(v1.value0));\n };\n if (v1 instanceof ChildQuery) {\n return new ChildQuery(v1.value0);\n };\n if (v1 instanceof Raise) {\n return new Raise(v1.value0, v1.value1);\n };\n if (v1 instanceof Par) {\n return new Par(over(HalogenAp)(Control_Applicative_Free.hoistFreeAp(hoist(dictFunctor)(nat)))(v1.value0));\n };\n if (v1 instanceof Fork) {\n return new Fork(hoist(dictFunctor)(nat)(v1.value0), v1.value1);\n };\n if (v1 instanceof Join) {\n return new Join(v1.value0, v1.value1);\n };\n if (v1 instanceof Kill) {\n return new Kill(v1.value0, v1.value1);\n };\n if (v1 instanceof GetRef) {\n return new GetRef(v1.value0, v1.value1);\n };\n throw new Error(\"Failed pattern match at Halogen.Query.HalogenM (line 312, column 8 - line 323, column 29): \" + [ v1.constructor.name ]);\n };\n return Control_Monad_Free.hoistFree(go)(v);\n };\n };\n};\nvar getRef = function (p) {\n return Control_Monad_Free.liftF(new GetRef(p, identity));\n};\nvar functorHalogenM = Control_Monad_Free.freeFunctor;\nvar functorHalogenAp = Control_Applicative_Free.functorFreeAp;\nvar map3 = /* #__PURE__ */ Data_Functor.map(functorHalogenAp);\nvar functorHalogenF = function (dictFunctor) {\n var map4 = Data_Functor.map(dictFunctor);\n return {\n map: function (f) {\n return function (v) {\n if (v instanceof State) {\n return new State((function () {\n var $194 = lmap(f);\n return function ($195) {\n return $194(v.value0($195));\n };\n })());\n };\n if (v instanceof Subscribe) {\n return new Subscribe(v.value0, function ($196) {\n return f(v.value1($196));\n });\n };\n if (v instanceof Unsubscribe) {\n return new Unsubscribe(v.value0, f(v.value1));\n };\n if (v instanceof Lift) {\n return new Lift(map4(f)(v.value0));\n };\n if (v instanceof ChildQuery) {\n return new ChildQuery(map2(f)(v.value0));\n };\n if (v instanceof Raise) {\n return new Raise(v.value0, f(v.value1));\n };\n if (v instanceof Par) {\n return new Par(map3(f)(v.value0));\n };\n if (v instanceof Fork) {\n return new Fork(v.value0, function ($197) {\n return f(v.value1($197));\n });\n };\n if (v instanceof Join) {\n return new Join(v.value0, f(v.value1));\n };\n if (v instanceof Kill) {\n return new Kill(v.value0, f(v.value1));\n };\n if (v instanceof GetRef) {\n return new GetRef(v.value0, function ($198) {\n return f(v.value1($198));\n });\n };\n throw new Error(\"Failed pattern match at Halogen.Query.HalogenM (line 57, column 11 - line 68, column 37): \" + [ v.constructor.name ]);\n };\n }\n };\n};\nvar fork = function (hmu) {\n return Control_Monad_Free.liftF(new Fork(hmu, identity));\n};\nvar eqSubscriptionId = Data_Eq.eqInt;\nvar eqForkId = Data_Eq.eqInt;\nvar bindHalogenM = Control_Monad_Free.freeBind;\nvar bind = /* #__PURE__ */ Control_Bind.bind(bindHalogenM);\nvar applyHalogenM = Control_Monad_Free.freeApply;\nvar applyHalogenAp = Control_Applicative_Free.applyFreeAp;\nvar applicativeHalogenM = Control_Monad_Free.freeApplicative;\nvar pure = /* #__PURE__ */ Control_Applicative.pure(applicativeHalogenM);\nvar monadRecHalogenM = {\n tailRecM: function (k) {\n return function (a) {\n return bind(k(a))(function (v) {\n if (v instanceof Control_Monad_Rec_Class.Loop) {\n return Control_Monad_Rec_Class.tailRecM(monadRecHalogenM)(k)(v.value0);\n };\n if (v instanceof Control_Monad_Rec_Class.Done) {\n return pure(v.value0);\n };\n throw new Error(\"Failed pattern match at Halogen.Query.HalogenM (line 105, column 26 - line 107, column 21): \" + [ v.constructor.name ]);\n });\n };\n },\n Monad0: function () {\n return monadHalogenM;\n }\n};\nvar applicativeHalogenAp = Control_Applicative_Free.applicativeFreeAp;\nvar parallelHalogenM = {\n parallel: function ($199) {\n return HalogenAp(Control_Applicative_Free.liftFreeAp($199));\n },\n sequential: function ($200) {\n return HalogenM(Control_Monad_Free.liftF(Par.create($200)));\n },\n Monad0: function () {\n return monadHalogenM;\n },\n Applicative1: function () {\n return applicativeHalogenAp;\n }\n};\nexport {\n State,\n Subscribe,\n Unsubscribe,\n Lift,\n ChildQuery,\n Raise,\n Par,\n Fork,\n Join,\n Kill,\n GetRef,\n HalogenM,\n HalogenAp,\n raise,\n query,\n queryAll,\n SubscriptionId,\n subscribe,\n subscribe$prime,\n unsubscribe,\n ForkId,\n fork,\n join,\n kill,\n getRef,\n imapState,\n mapAction,\n mapOutput,\n hoist,\n functorHalogenF,\n functorHalogenM,\n applyHalogenM,\n applicativeHalogenM,\n bindHalogenM,\n monadHalogenM,\n semigroupHalogenM,\n monoidHalogenM,\n monadEffectHalogenM,\n monadAffHalogenM,\n parallelHalogenM,\n monadTransHalogenM,\n monadRecHalogenM,\n monadStateHalogenM,\n monadAskHalogenM,\n monadTellHalogenM,\n monadThrowHalogenM,\n newtypeHalogenAp,\n functorHalogenAp,\n applyHalogenAp,\n applicativeHalogenAp,\n eqSubscriptionId,\n ordSubscriptionId,\n eqForkId,\n ordForkId\n};\n","// Generated by purs version 0.15.7\nimport * as Unsafe_Coerce from \"../Unsafe.Coerce/index.js\";\nvar runExists = Unsafe_Coerce.unsafeCoerce;\nvar mkExists = Unsafe_Coerce.unsafeCoerce;\nexport {\n mkExists,\n runExists\n};\n","// Generated by purs version 0.15.7\nimport * as Control_Alt from \"../Control.Alt/index.js\";\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Apply from \"../Control.Apply/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Control_Comonad from \"../Control.Comonad/index.js\";\nimport * as Control_Extend from \"../Control.Extend/index.js\";\nimport * as Control_Plus from \"../Control.Plus/index.js\";\nimport * as Data_Distributive from \"../Data.Distributive/index.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Exists from \"../Data.Exists/index.js\";\nimport * as Data_Foldable from \"../Data.Foldable/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Functor_Invariant from \"../Data.Functor.Invariant/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Data_Semigroup_Foldable from \"../Data.Semigroup.Foldable/index.js\";\nimport * as Data_Semigroup_Traversable from \"../Data.Semigroup.Traversable/index.js\";\nimport * as Data_Traversable from \"../Data.Traversable/index.js\";\nvar CoyonedaF = /* #__PURE__ */ (function () {\n function CoyonedaF(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n CoyonedaF.create = function (value0) {\n return function (value1) {\n return new CoyonedaF(value0, value1);\n };\n };\n return CoyonedaF;\n})();\nvar Coyoneda = function (x) {\n return x;\n};\nvar unCoyoneda = function (f) {\n return function (v) {\n return Data_Exists.runExists(function (v1) {\n return f(v1.value0)(v1.value1);\n })(v);\n };\n};\nvar lowerCoyoneda = function (dictFunctor) {\n return unCoyoneda(Data_Functor.map(dictFunctor));\n};\nvar foldableCoyoneda = function (dictFoldable) {\n var foldr = Data_Foldable.foldr(dictFoldable);\n var foldl = Data_Foldable.foldl(dictFoldable);\n var foldMap = Data_Foldable.foldMap(dictFoldable);\n return {\n foldr: function (f) {\n return function (z) {\n return unCoyoneda(function (k) {\n return foldr(function ($175) {\n return f(k($175));\n })(z);\n });\n };\n },\n foldl: function (f) {\n return function (z) {\n return unCoyoneda(function (k) {\n return foldl(function (x) {\n var $176 = f(x);\n return function ($177) {\n return $176(k($177));\n };\n })(z);\n });\n };\n },\n foldMap: function (dictMonoid) {\n var foldMap1 = foldMap(dictMonoid);\n return function (f) {\n return unCoyoneda(function (k) {\n return foldMap1(function ($178) {\n return f(k($178));\n });\n });\n };\n }\n };\n};\nvar foldable1Coyoneda = function (dictFoldable1) {\n var foldMap1 = Data_Semigroup_Foldable.foldMap1(dictFoldable1);\n var foldableCoyoneda1 = foldableCoyoneda(dictFoldable1.Foldable0());\n return {\n foldMap1: function (dictSemigroup) {\n var foldMap11 = foldMap1(dictSemigroup);\n return function (f) {\n return unCoyoneda(function (k) {\n return foldMap11(function ($179) {\n return f(k($179));\n });\n });\n };\n },\n foldr1: Data_Semigroup_Foldable.foldr1Default(foldable1Coyoneda(dictFoldable1)),\n foldl1: Data_Semigroup_Foldable.foldl1Default(foldable1Coyoneda(dictFoldable1)),\n Foldable0: function () {\n return foldableCoyoneda1;\n }\n };\n};\nvar eqCoyoneda = function (dictFunctor) {\n var lowerCoyoneda1 = lowerCoyoneda(dictFunctor);\n return function (dictEq1) {\n var eq1 = Data_Eq.eq1(dictEq1);\n return function (dictEq) {\n var eq11 = eq1(dictEq);\n return {\n eq: function (x) {\n return function (y) {\n return eq11(lowerCoyoneda1(x))(lowerCoyoneda1(y));\n };\n }\n };\n };\n };\n};\nvar ordCoyoneda = function (dictFunctor) {\n var lowerCoyoneda1 = lowerCoyoneda(dictFunctor);\n var eqCoyoneda1 = eqCoyoneda(dictFunctor);\n return function (dictOrd1) {\n var compare1 = Data_Ord.compare1(dictOrd1);\n var eqCoyoneda2 = eqCoyoneda1(dictOrd1.Eq10());\n return function (dictOrd) {\n var compare11 = compare1(dictOrd);\n var eqCoyoneda3 = eqCoyoneda2(dictOrd.Eq0());\n return {\n compare: function (x) {\n return function (y) {\n return compare11(lowerCoyoneda1(x))(lowerCoyoneda1(y));\n };\n },\n Eq0: function () {\n return eqCoyoneda3;\n }\n };\n };\n };\n};\nvar eq1Coyoneda = function (dictFunctor) {\n var eqCoyoneda1 = eqCoyoneda(dictFunctor);\n return function (dictEq1) {\n var eqCoyoneda2 = eqCoyoneda1(dictEq1);\n return {\n eq1: function (dictEq) {\n return Data_Eq.eq(eqCoyoneda2(dictEq));\n }\n };\n };\n};\nvar ord1Coyoneda = function (dictFunctor) {\n var ordCoyoneda1 = ordCoyoneda(dictFunctor);\n var eq1Coyoneda1 = eq1Coyoneda(dictFunctor);\n return function (dictOrd1) {\n var ordCoyoneda2 = ordCoyoneda1(dictOrd1);\n var eq1Coyoneda2 = eq1Coyoneda1(dictOrd1.Eq10());\n return {\n compare1: function (dictOrd) {\n return Data_Ord.compare(ordCoyoneda2(dictOrd));\n },\n Eq10: function () {\n return eq1Coyoneda2;\n }\n };\n };\n};\nvar coyoneda = function (k) {\n return function (fi) {\n return Data_Exists.mkExists(new CoyonedaF(k, fi));\n };\n};\nvar functorCoyoneda = {\n map: function (f) {\n return function (v) {\n return Data_Exists.runExists(function (v1) {\n return coyoneda(function ($180) {\n return f(v1.value0($180));\n })(v1.value1);\n })(v);\n };\n }\n};\nvar invatiantCoyoneda = {\n imap: /* #__PURE__ */ Data_Functor_Invariant.imapF(functorCoyoneda)\n};\nvar hoistCoyoneda = function (nat) {\n return function (v) {\n return Data_Exists.runExists(function (v1) {\n return coyoneda(v1.value0)(nat(v1.value1));\n })(v);\n };\n};\nvar liftCoyoneda = /* #__PURE__ */ coyoneda(/* #__PURE__ */ Control_Category.identity(Control_Category.categoryFn));\nvar distributiveCoyoneda = function (dictDistributive) {\n var collect = Data_Distributive.collect(dictDistributive);\n var lowerCoyoneda1 = lowerCoyoneda(dictDistributive.Functor0());\n return {\n collect: function (dictFunctor) {\n var collect1 = collect(dictFunctor);\n return function (f) {\n var $181 = collect1(function ($183) {\n return lowerCoyoneda1(f($183));\n });\n return function ($182) {\n return liftCoyoneda($181($182));\n };\n };\n },\n distribute: function (dictFunctor) {\n var $184 = collect(dictFunctor)(lowerCoyoneda1);\n return function ($185) {\n return liftCoyoneda($184($185));\n };\n },\n Functor0: function () {\n return functorCoyoneda;\n }\n };\n};\nvar extendCoyoneda = function (dictExtend) {\n var extend = Control_Extend.extend(dictExtend);\n return {\n extend: function (f) {\n return function (v) {\n return Data_Exists.runExists(function (v1) {\n return liftCoyoneda(extend((function () {\n var $186 = coyoneda(v1.value0);\n return function ($187) {\n return f($186($187));\n };\n })())(v1.value1));\n })(v);\n };\n },\n Functor0: function () {\n return functorCoyoneda;\n }\n };\n};\nvar monadTransCoyoneda = {\n lift: function (dictMonad) {\n return liftCoyoneda;\n }\n};\nvar traversableCoyoneda = function (dictTraversable) {\n var traverse = Data_Traversable.traverse(dictTraversable);\n var foldableCoyoneda1 = foldableCoyoneda(dictTraversable.Foldable1());\n return {\n traverse: function (dictApplicative) {\n var map = Data_Functor.map((dictApplicative.Apply0()).Functor0());\n var traverse1 = traverse(dictApplicative);\n return function (f) {\n return unCoyoneda(function (k) {\n var $188 = map(liftCoyoneda);\n var $189 = traverse1(function ($191) {\n return f(k($191));\n });\n return function ($190) {\n return $188($189($190));\n };\n });\n };\n },\n sequence: function (dictApplicative) {\n var map = Data_Functor.map((dictApplicative.Apply0()).Functor0());\n var traverse1 = traverse(dictApplicative);\n return unCoyoneda(function (k) {\n var $192 = map(liftCoyoneda);\n var $193 = traverse1(k);\n return function ($194) {\n return $192($193($194));\n };\n });\n },\n Functor0: function () {\n return functorCoyoneda;\n },\n Foldable1: function () {\n return foldableCoyoneda1;\n }\n };\n};\nvar traversable1Coyoneda = function (dictTraversable1) {\n var traverse1 = Data_Semigroup_Traversable.traverse1(dictTraversable1);\n var sequence1 = Data_Semigroup_Traversable.sequence1(dictTraversable1);\n var Traversable1 = dictTraversable1.Traversable1();\n var map = Data_Functor.map(Traversable1.Functor0());\n var foldable1Coyoneda1 = foldable1Coyoneda(dictTraversable1.Foldable10());\n var traversableCoyoneda1 = traversableCoyoneda(Traversable1);\n return {\n traverse1: function (dictApply) {\n var map1 = Data_Functor.map(dictApply.Functor0());\n var traverse11 = traverse1(dictApply);\n return function (f) {\n return unCoyoneda(function (k) {\n var $195 = map1(liftCoyoneda);\n var $196 = traverse11(function ($198) {\n return f(k($198));\n });\n return function ($197) {\n return $195($196($197));\n };\n });\n };\n },\n sequence1: function (dictApply) {\n var map1 = Data_Functor.map(dictApply.Functor0());\n var sequence11 = sequence1(dictApply);\n return unCoyoneda(function (k) {\n var $199 = map1(liftCoyoneda);\n var $200 = map(k);\n return function ($201) {\n return $199(sequence11($200($201)));\n };\n });\n },\n Foldable10: function () {\n return foldable1Coyoneda1;\n },\n Traversable1: function () {\n return traversableCoyoneda1;\n }\n };\n};\nvar comonadCoyoneda = function (dictComonad) {\n var extract = Control_Comonad.extract(dictComonad);\n var extendCoyoneda1 = extendCoyoneda(dictComonad.Extend0());\n return {\n extract: function (v) {\n return Data_Exists.runExists(function (v1) {\n return v1.value0(extract(v1.value1));\n })(v);\n },\n Extend0: function () {\n return extendCoyoneda1;\n }\n };\n};\nvar applyCoyoneda = function (dictApply) {\n var apply = Control_Apply.apply(dictApply);\n var lowerCoyoneda1 = lowerCoyoneda(dictApply.Functor0());\n return {\n apply: function (f) {\n return function (g) {\n return liftCoyoneda(apply(lowerCoyoneda1(f))(lowerCoyoneda1(g)));\n };\n },\n Functor0: function () {\n return functorCoyoneda;\n }\n };\n};\nvar bindCoyoneda = function (dictBind) {\n var bindFlipped = Control_Bind.bindFlipped(dictBind);\n var Apply0 = dictBind.Apply0();\n var lowerCoyoneda1 = lowerCoyoneda(Apply0.Functor0());\n var applyCoyoneda1 = applyCoyoneda(Apply0);\n return {\n bind: function (v) {\n return function (f) {\n return liftCoyoneda(Data_Exists.runExists(function (v1) {\n return bindFlipped(function ($202) {\n return lowerCoyoneda1(f(v1.value0($202)));\n })(v1.value1);\n })(v));\n };\n },\n Apply0: function () {\n return applyCoyoneda1;\n }\n };\n};\nvar applicativeCoyoneda = function (dictApplicative) {\n var applyCoyoneda1 = applyCoyoneda(dictApplicative.Apply0());\n return {\n pure: (function () {\n var $203 = Control_Applicative.pure(dictApplicative);\n return function ($204) {\n return liftCoyoneda($203($204));\n };\n })(),\n Apply0: function () {\n return applyCoyoneda1;\n }\n };\n};\nvar monadCoyoneda = function (dictMonad) {\n var applicativeCoyoneda1 = applicativeCoyoneda(dictMonad.Applicative0());\n var bindCoyoneda1 = bindCoyoneda(dictMonad.Bind1());\n return {\n Applicative0: function () {\n return applicativeCoyoneda1;\n },\n Bind1: function () {\n return bindCoyoneda1;\n }\n };\n};\nvar altCoyoneda = function (dictAlt) {\n var alt = Control_Alt.alt(dictAlt);\n var lowerCoyoneda1 = lowerCoyoneda(dictAlt.Functor0());\n return {\n alt: function (x) {\n return function (y) {\n return liftCoyoneda(alt(lowerCoyoneda1(x))(lowerCoyoneda1(y)));\n };\n },\n Functor0: function () {\n return functorCoyoneda;\n }\n };\n};\nvar plusCoyoneda = function (dictPlus) {\n var altCoyoneda1 = altCoyoneda(dictPlus.Alt0());\n return {\n empty: liftCoyoneda(Control_Plus.empty(dictPlus)),\n Alt0: function () {\n return altCoyoneda1;\n }\n };\n};\nvar alternativeCoyoneda = function (dictAlternative) {\n var applicativeCoyoneda1 = applicativeCoyoneda(dictAlternative.Applicative0());\n var plusCoyoneda1 = plusCoyoneda(dictAlternative.Plus1());\n return {\n Applicative0: function () {\n return applicativeCoyoneda1;\n },\n Plus1: function () {\n return plusCoyoneda1;\n }\n };\n};\nvar monadPlusCoyoneda = function (dictMonadPlus) {\n var monadCoyoneda1 = monadCoyoneda(dictMonadPlus.Monad0());\n var alternativeCoyoneda1 = alternativeCoyoneda(dictMonadPlus.Alternative1());\n return {\n Monad0: function () {\n return monadCoyoneda1;\n },\n Alternative1: function () {\n return alternativeCoyoneda1;\n }\n };\n};\nexport {\n Coyoneda,\n coyoneda,\n unCoyoneda,\n liftCoyoneda,\n lowerCoyoneda,\n hoistCoyoneda,\n eqCoyoneda,\n eq1Coyoneda,\n ordCoyoneda,\n ord1Coyoneda,\n functorCoyoneda,\n invatiantCoyoneda,\n applyCoyoneda,\n applicativeCoyoneda,\n altCoyoneda,\n plusCoyoneda,\n alternativeCoyoneda,\n bindCoyoneda,\n monadCoyoneda,\n monadTransCoyoneda,\n monadPlusCoyoneda,\n extendCoyoneda,\n comonadCoyoneda,\n foldableCoyoneda,\n traversableCoyoneda,\n foldable1Coyoneda,\n traversable1Coyoneda,\n distributiveCoyoneda\n};\n","// Generated by purs version 0.15.7\nimport * as Data_Coyoneda from \"../Data.Coyoneda/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nvar map = /* #__PURE__ */ Data_Functor.map(Data_Coyoneda.functorCoyoneda);\nvar map1 = /* #__PURE__ */ Data_Functor.map(Data_Functor.functorFn);\nvar Initialize = /* #__PURE__ */ (function () {\n function Initialize(value0) {\n this.value0 = value0;\n };\n Initialize.create = function (value0) {\n return new Initialize(value0);\n };\n return Initialize;\n})();\nvar Finalize = /* #__PURE__ */ (function () {\n function Finalize(value0) {\n this.value0 = value0;\n };\n Finalize.create = function (value0) {\n return new Finalize(value0);\n };\n return Finalize;\n})();\nvar Receive = /* #__PURE__ */ (function () {\n function Receive(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n Receive.create = function (value0) {\n return function (value1) {\n return new Receive(value0, value1);\n };\n };\n return Receive;\n})();\nvar Action = /* #__PURE__ */ (function () {\n function Action(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n Action.create = function (value0) {\n return function (value1) {\n return new Action(value0, value1);\n };\n };\n return Action;\n})();\nvar Query = /* #__PURE__ */ (function () {\n function Query(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n Query.create = function (value0) {\n return function (value1) {\n return new Query(value0, value1);\n };\n };\n return Query;\n})();\nvar functorHalogenQ = {\n map: function (f) {\n return function (m) {\n if (m instanceof Initialize) {\n return new Initialize(f(m.value0));\n };\n if (m instanceof Finalize) {\n return new Finalize(f(m.value0));\n };\n if (m instanceof Receive) {\n return new Receive(m.value0, f(m.value1));\n };\n if (m instanceof Action) {\n return new Action(m.value0, f(m.value1));\n };\n if (m instanceof Query) {\n return new Query(map(f)(m.value0), map1(f)(m.value1));\n };\n throw new Error(\"Failed pattern match at Halogen.Query.HalogenQ (line 0, column 0 - line 0, column 0): \" + [ m.constructor.name ]);\n };\n }\n};\nvar bifunctorHalogenQ = {\n bimap: function (f) {\n return function (g) {\n return function (v) {\n if (v instanceof Initialize) {\n return new Initialize(g(v.value0));\n };\n if (v instanceof Finalize) {\n return new Finalize(g(v.value0));\n };\n if (v instanceof Receive) {\n return new Receive(f(v.value0), g(v.value1));\n };\n if (v instanceof Action) {\n return new Action(v.value0, g(v.value1));\n };\n if (v instanceof Query) {\n return new Query(map(g)(v.value0), map1(g)(v.value1));\n };\n throw new Error(\"Failed pattern match at Halogen.Query.HalogenQ (line 16, column 15 - line 21, column 45): \" + [ v.constructor.name ]);\n };\n };\n }\n};\nexport {\n Initialize,\n Finalize,\n Receive,\n Action,\n Query,\n bifunctorHalogenQ,\n functorHalogenQ\n};\n","export function _read(nothing, just, value) {\n var tag = Object.prototype.toString.call(value);\n if (tag.indexOf(\"[object HTML\") === 0 && tag.indexOf(\"Element]\") === tag.length - 8) {\n return just(value);\n } else {\n return nothing;\n }\n}\n\n// ----------------------------------------------------------------------------\n\nexport function title(elt) {\n return function () {\n return elt.title;\n };\n}\n\nexport function setTitle(title) {\n return function (elt) {\n return function () {\n elt.title = title;\n };\n };\n}\n\n// ----------------------------------------------------------------------------\n\nexport function lang(elt) {\n return function () {\n return elt.lang;\n };\n}\n\nexport function setLang(lang) {\n return function (elt) {\n return function () {\n elt.lang = lang;\n };\n };\n}\n\n// ----------------------------------------------------------------------------\n\nexport function dir(elt) {\n return function () {\n return elt.dir;\n };\n}\n\nexport function setDir(dir) {\n return function (elt) {\n return function () {\n elt.dir = dir;\n };\n };\n}\n\n// ----------------------------------------------------------------------------\n\nexport function hidden(elt) {\n return function () {\n return elt.hidden;\n };\n}\n\nexport function setHidden(hidden) {\n return function (elt) {\n return function () {\n elt.hidden = hidden;\n };\n };\n}\n\n// ----------------------------------------------------------------------------\n\nexport function tabIndex(elt) {\n return function () {\n return elt.tabIndex;\n };\n}\n\nexport function setTabIndex(tabIndex) {\n return function (elt) {\n return function () {\n elt.tabIndex = tabIndex;\n };\n };\n}\n\n// ----------------------------------------------------------------------------\n\nexport function draggable(elt) {\n return function () {\n return elt.draggable;\n };\n}\n\nexport function setDraggable(draggable) {\n return function (elt) {\n return function () {\n elt.draggable = draggable;\n };\n };\n}\n\n// ----------------------------------------------------------------------------\n\nexport function contentEditable(elt) {\n return function () {\n return elt.contentEditable;\n };\n}\n\nexport function setContentEditable(contentEditable) {\n return function (elt) {\n return function () {\n elt.contentEditable = contentEditable;\n };\n };\n}\n\nexport function isContentEditable(elt) {\n return function () {\n return elt.isContentEditable;\n };\n}\n\n// ----------------------------------------------------------------------------\n\nexport function spellcheck(elt) {\n return function () {\n return elt.spellcheck;\n };\n}\n\nexport function setSpellcheck(spellcheck) {\n return function (elt) {\n return function () {\n elt.spellcheck = spellcheck;\n };\n };\n}\n\n// ----------------------------------------------------------------------------\n\nexport function click(elt) {\n return function () {\n return elt.click();\n };\n}\n\nexport function focus(elt) {\n return function () {\n return elt.focus();\n };\n}\n\nexport function blur(elt) {\n return function () {\n return elt.blur();\n };\n}\n\n// - CSSOM ---------------------------------------------------------------------\n\nexport function _offsetParent(el) {\n return function () {\n return el.offsetParent;\n };\n}\n\nexport function offsetTop(el) {\n return function () {\n return el.offsetTop;\n };\n}\n\nexport function offsetLeft(el) {\n return function () {\n return el.offsetLeft;\n };\n}\n\nexport function offsetWidth(el) {\n return function () {\n return el.offsetWidth;\n };\n}\n\nexport function offsetHeight(el) {\n return function () {\n return el.offsetHeight;\n };\n}\n","// Generated by purs version 0.15.7\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Nullable from \"../Data.Nullable/index.js\";\nimport * as Effect from \"../Effect/index.js\";\nimport * as Unsafe_Coerce from \"../Unsafe.Coerce/index.js\";\nvar toParentNode = Unsafe_Coerce.unsafeCoerce;\nvar toNonDocumentTypeChildNode = Unsafe_Coerce.unsafeCoerce;\nvar toNode = Unsafe_Coerce.unsafeCoerce;\nvar toEventTarget = Unsafe_Coerce.unsafeCoerce;\nvar toElement = Unsafe_Coerce.unsafeCoerce;\nvar toChildNode = Unsafe_Coerce.unsafeCoerce;\nvar offsetParent = /* #__PURE__ */ (function () {\n var $2 = Data_Functor.map(Effect.functorEffect)(Data_Nullable.toMaybe);\n return function ($3) {\n return $2($foreign[\"_offsetParent\"]($3));\n };\n})();\nvar fromParentNode = function (x) {\n return $foreign[\"_read\"](Data_Maybe.Nothing.value, Data_Maybe.Just.create, x);\n};\nvar fromNonDocumentTypeChildNode = function (x) {\n return $foreign[\"_read\"](Data_Maybe.Nothing.value, Data_Maybe.Just.create, x);\n};\nvar fromNode = function (x) {\n return $foreign[\"_read\"](Data_Maybe.Nothing.value, Data_Maybe.Just.create, x);\n};\nvar fromEventTarget = function (x) {\n return $foreign[\"_read\"](Data_Maybe.Nothing.value, Data_Maybe.Just.create, x);\n};\nvar fromElement = function (x) {\n return $foreign[\"_read\"](Data_Maybe.Nothing.value, Data_Maybe.Just.create, x);\n};\nvar fromChildNode = function (x) {\n return $foreign[\"_read\"](Data_Maybe.Nothing.value, Data_Maybe.Just.create, x);\n};\nexport {\n title,\n setTitle,\n lang,\n setLang,\n dir,\n setDir,\n hidden,\n setHidden,\n tabIndex,\n setTabIndex,\n draggable,\n setDraggable,\n contentEditable,\n setContentEditable,\n isContentEditable,\n spellcheck,\n setSpellcheck,\n click,\n focus,\n blur,\n offsetTop,\n offsetLeft,\n offsetWidth,\n offsetHeight\n} from \"./foreign.js\";\nexport {\n fromElement,\n fromNode,\n fromChildNode,\n fromNonDocumentTypeChildNode,\n fromParentNode,\n fromEventTarget,\n toElement,\n toNode,\n toChildNode,\n toNonDocumentTypeChildNode,\n toParentNode,\n toEventTarget,\n offsetParent\n};\n","// Generated by purs version 0.15.7\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Control_Monad_State_Class from \"../Control.Monad.State.Class/index.js\";\nimport * as Control_Monad_Trans_Class from \"../Control.Monad.Trans.Class/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nimport * as Effect_Aff_Class from \"../Effect.Aff.Class/index.js\";\nimport * as Effect_Class from \"../Effect.Class/index.js\";\nimport * as Halogen_Query_HalogenM from \"../Halogen.Query.HalogenM/index.js\";\nimport * as Halogen_Query_HalogenQ from \"../Halogen.Query.HalogenQ/index.js\";\nimport * as Halogen_Query_Input from \"../Halogen.Query.Input/index.js\";\nimport * as Web_HTML_HTMLElement from \"../Web.HTML.HTMLElement/index.js\";\nvar $$void = /* #__PURE__ */ Data_Functor[\"void\"](Halogen_Query_HalogenM.functorHalogenM);\nvar queryAll = /* #__PURE__ */ Halogen_Query_HalogenM.queryAll();\nvar query = /* #__PURE__ */ Halogen_Query_HalogenM.query();\nvar identity = /* #__PURE__ */ Control_Category.identity(Control_Category.categoryFn);\nvar bindFlipped = /* #__PURE__ */ Control_Bind.bindFlipped(Data_Maybe.bindMaybe);\nvar tellAll = function () {\n return function (dictIsSymbol) {\n var queryAll1 = queryAll(dictIsSymbol);\n return function (dictOrd) {\n var queryAll2 = queryAll1(dictOrd);\n return function (label) {\n return function (req) {\n return $$void(queryAll2(label)(req(Data_Unit.unit)));\n };\n };\n };\n };\n};\nvar tell = function () {\n return function (dictIsSymbol) {\n var query1 = query(dictIsSymbol);\n return function (dictOrd) {\n var query2 = query1(dictOrd);\n return function (slot) {\n return function (label) {\n return function (req) {\n return $$void(query2(slot)(label)(req(Data_Unit.unit)));\n };\n };\n };\n };\n };\n};\nvar requestAll = function () {\n return function (dictIsSymbol) {\n var queryAll1 = queryAll(dictIsSymbol);\n return function (dictOrd) {\n var queryAll2 = queryAll1(dictOrd);\n return function (label) {\n return function (req) {\n return queryAll2(label)(req(identity));\n };\n };\n };\n };\n};\nvar request = function () {\n return function (dictIsSymbol) {\n var query1 = query(dictIsSymbol);\n return function (dictOrd) {\n var query2 = query1(dictOrd);\n return function (slot) {\n return function (label) {\n return function (req) {\n return query2(slot)(label)(req(identity));\n };\n };\n };\n };\n };\n};\nvar mkTell = function (act) {\n return act(Data_Unit.unit);\n};\nvar mkRequest = function (req) {\n return req(identity);\n};\nvar getHTMLElementRef = /* #__PURE__ */ (function () {\n var $24 = Data_Functor.map(Halogen_Query_HalogenM.functorHalogenM)(function (v) {\n return bindFlipped(Web_HTML_HTMLElement.fromElement)(v);\n });\n return function ($25) {\n return $24(Halogen_Query_HalogenM.getRef($25));\n };\n})();\nexport {\n mkTell,\n tell,\n tellAll,\n mkRequest,\n request,\n requestAll,\n getHTMLElementRef\n};\nexport {\n get,\n gets,\n modify,\n modify_,\n put\n} from \"../Control.Monad.State.Class/index.js\";\nexport {\n lift\n} from \"../Control.Monad.Trans.Class/index.js\";\nexport {\n liftAff\n} from \"../Effect.Aff.Class/index.js\";\nexport {\n liftEffect\n} from \"../Effect.Class/index.js\";\nexport {\n ChildQuery,\n Fork,\n GetRef,\n Join,\n Kill,\n Lift,\n Par,\n Raise,\n State,\n Subscribe,\n Unsubscribe,\n HalogenM,\n fork,\n getRef,\n join,\n kill,\n query,\n queryAll,\n raise,\n subscribe,\n subscribe$prime,\n unsubscribe\n} from \"../Halogen.Query.HalogenM/index.js\";\nexport {\n Action,\n Finalize,\n Initialize,\n Query,\n Receive\n} from \"../Halogen.Query.HalogenQ/index.js\";\nexport {\n RefLabel\n} from \"../Halogen.Query.Input/index.js\";\n","// Generated by purs version 0.15.7\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_String_Common from \"../Data.String.Common/index.js\";\nimport * as Halogen_HTML_Core from \"../Halogen.HTML.Core/index.js\";\nimport * as Halogen_HTML_Elements from \"../Halogen.HTML.Elements/index.js\";\nimport * as Halogen_HTML_Properties from \"../Halogen.HTML.Properties/index.js\";\nvar mapFlipped = /* #__PURE__ */ Data_Functor.mapFlipped(Data_Functor.functorArray);\nvar renderLineEnding = /* #__PURE__ */ Halogen_HTML_Core.text(\"\\x0a\");\nvar classString = function (string) {\n return Halogen_HTML_Properties.classes(mapFlipped(Data_String_Common.split(\" \")(string))(function (s) {\n return s;\n }));\n};\nvar fontAwesome = function (glyphName) {\n return Halogen_HTML_Elements.i([ classString(\"fas \" + glyphName) ])([ ]);\n};\nvar optionalHtml = function (html) {\n return Halogen_HTML_Elements.span([ classString(\"largeViewport\") ])([ html ]);\n};\nvar optionalText = function (text) {\n return Halogen_HTML_Elements.span([ classString(\"largeViewport\") ])([ Halogen_HTML_Core.text(text) ]);\n};\nvar alternativeHtml = function (longHtml) {\n return function (shortAlt) {\n return [ Halogen_HTML_Elements.span([ classString(\"largeViewport\") ])([ longHtml ]), Halogen_HTML_Elements.span([ classString(\"smallViewport\") ])([ shortAlt ]) ];\n };\n};\nexport {\n scrollBy\n} from \"./foreign.js\";\nexport {\n classString,\n fontAwesome,\n optionalText,\n optionalHtml,\n alternativeHtml,\n renderLineEnding\n};\n","// Generated by purs version 0.15.7\nimport * as Control_Alt from \"../Control.Alt/index.js\";\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Apply from \"../Control.Apply/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Control_Monad_ST_Internal from \"../Control.Monad.ST.Internal/index.js\";\nimport * as Control_Plus from \"../Control.Plus/index.js\";\nimport * as Data_Array from \"../Data.Array/index.js\";\nimport * as Data_Array_ST from \"../Data.Array.ST/index.js\";\nimport * as Data_Array_ST_Iterator from \"../Data.Array.ST.Iterator/index.js\";\nimport * as Data_Either from \"../Data.Either/index.js\";\nimport * as Data_Foldable from \"../Data.Foldable/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_List from \"../Data.List/index.js\";\nimport * as Data_List_Types from \"../Data.List.Types/index.js\";\nimport * as Data_Map_Internal from \"../Data.Map.Internal/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Monoid from \"../Data.Monoid/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nvar toUnfoldable = /* #__PURE__ */ Data_Map_Internal.toUnfoldable(Data_List_Types.unfoldableList);\nvar foldr = /* #__PURE__ */ Data_Foldable.foldr(Data_List_Types.foldableList);\nvar alt = /* #__PURE__ */ Control_Alt.alt(Data_List_Types.altList);\nvar pure = /* #__PURE__ */ Control_Applicative.pure(Data_List_Types.applicativeList);\nvar empty = /* #__PURE__ */ Control_Plus.empty(Data_List_Types.plusList);\nvar $$void = /* #__PURE__ */ Data_Functor[\"void\"](Control_Monad_ST_Internal.functorST);\nvar pure1 = /* #__PURE__ */ Control_Applicative.pure(Control_Monad_ST_Internal.applicativeST);\nvar apply = /* #__PURE__ */ Control_Apply.apply(Control_Monad_ST_Internal.applyST);\nvar map = /* #__PURE__ */ Data_Functor.map(Control_Monad_ST_Internal.functorST);\nvar separate = function (dict) {\n return dict.separate;\n};\nvar mapToList = function (dictOrd) {\n return toUnfoldable;\n};\nvar compactableMaybe = {\n compact: /* #__PURE__ */ Control_Bind.join(Data_Maybe.bindMaybe),\n separate: function (v) {\n if (v instanceof Data_Maybe.Nothing) {\n return {\n left: Data_Maybe.Nothing.value,\n right: Data_Maybe.Nothing.value\n };\n };\n if (v instanceof Data_Maybe.Just) {\n if (v.value0 instanceof Data_Either.Left) {\n return {\n left: new Data_Maybe.Just(v.value0.value0),\n right: Data_Maybe.Nothing.value\n };\n };\n if (v.value0 instanceof Data_Either.Right) {\n return {\n left: Data_Maybe.Nothing.value,\n right: new Data_Maybe.Just(v.value0.value0)\n };\n };\n throw new Error(\"Failed pattern match at Data.Compactable (line 91, column 23 - line 93, column 48): \" + [ v.value0.constructor.name ]);\n };\n throw new Error(\"Failed pattern match at Data.Compactable (line 87, column 1 - line 93, column 48): \" + [ v.constructor.name ]);\n }\n};\nvar compactableMap = function (dictOrd) {\n var alter = Data_Map_Internal.alter(dictOrd);\n var mapToList1 = mapToList(dictOrd);\n var insert = Data_Map_Internal.insert(dictOrd);\n return {\n compact: (function () {\n var select = function (v) {\n return function (m) {\n return alter(Data_Function[\"const\"](v.value1))(v.value0)(m);\n };\n };\n var $104 = foldr(select)(Data_Map_Internal.empty);\n return function ($105) {\n return $104(mapToList1($105));\n };\n })(),\n separate: (function () {\n var select = function (v) {\n return function (v1) {\n if (v.value1 instanceof Data_Either.Left) {\n return {\n left: insert(v.value0)(v.value1.value0)(v1.left),\n right: v1.right\n };\n };\n if (v.value1 instanceof Data_Either.Right) {\n return {\n left: v1.left,\n right: insert(v.value0)(v.value1.value0)(v1.right)\n };\n };\n throw new Error(\"Failed pattern match at Data.Compactable (line 142, column 44 - line 144, column 63): \" + [ v.value1.constructor.name ]);\n };\n };\n var $106 = foldr(select)({\n left: Data_Map_Internal.empty,\n right: Data_Map_Internal.empty\n });\n return function ($107) {\n return $106(mapToList1($107));\n };\n })()\n };\n};\nvar compactableList = {\n compact: Data_List.catMaybes,\n separate: /* #__PURE__ */ (function () {\n var go = function (acc) {\n return function (v) {\n if (v instanceof Data_Either.Left) {\n return {\n left: alt(acc.left)(pure(v.value0)),\n right: acc.right\n };\n };\n if (v instanceof Data_Either.Right) {\n return {\n right: alt(acc.right)(pure(v.value0)),\n left: acc.left\n };\n };\n throw new Error(\"Failed pattern match at Data.Compactable (line 131, column 14 - line 133, column 54): \" + [ v.constructor.name ]);\n };\n };\n return Data_Foldable.foldl(Data_List_Types.foldableList)(go)({\n left: empty,\n right: empty\n });\n })()\n};\nvar compactableEither = function (dictMonoid) {\n var mempty = Data_Monoid.mempty(dictMonoid);\n return {\n compact: function (v) {\n if (v instanceof Data_Either.Left) {\n return new Data_Either.Left(v.value0);\n };\n if (v instanceof Data_Either.Right) {\n if (v.value0 instanceof Data_Maybe.Just) {\n return new Data_Either.Right(v.value0.value0);\n };\n if (v.value0 instanceof Data_Maybe.Nothing) {\n return new Data_Either.Left(mempty);\n };\n throw new Error(\"Failed pattern match at Data.Compactable (line 97, column 23 - line 99, column 27): \" + [ v.value0.constructor.name ]);\n };\n throw new Error(\"Failed pattern match at Data.Compactable (line 95, column 1 - line 104, column 53): \" + [ v.constructor.name ]);\n },\n separate: function (v) {\n if (v instanceof Data_Either.Left) {\n return {\n left: new Data_Either.Left(v.value0),\n right: new Data_Either.Left(v.value0)\n };\n };\n if (v instanceof Data_Either.Right) {\n if (v.value0 instanceof Data_Either.Left) {\n return {\n left: new Data_Either.Right(v.value0.value0),\n right: new Data_Either.Left(mempty)\n };\n };\n if (v.value0 instanceof Data_Either.Right) {\n return {\n left: new Data_Either.Left(mempty),\n right: new Data_Either.Right(v.value0.value0)\n };\n };\n throw new Error(\"Failed pattern match at Data.Compactable (line 102, column 24 - line 104, column 53): \" + [ v.value0.constructor.name ]);\n };\n throw new Error(\"Failed pattern match at Data.Compactable (line 95, column 1 - line 104, column 53): \" + [ v.constructor.name ]);\n }\n };\n};\nvar compactableArray = {\n compact: function (xs) {\n return (function __do() {\n var result = Data_Array_ST[\"new\"]();\n var iter = Data_Array_ST_Iterator.iterator(function (v) {\n return Data_Array.index(xs)(v);\n })();\n Data_Array_ST_Iterator.iterate(iter)(function ($108) {\n return $$void((function (v) {\n if (v instanceof Data_Maybe.Nothing) {\n return pure1(0);\n };\n if (v instanceof Data_Maybe.Just) {\n return Data_Array_ST.push(v.value0)(result);\n };\n throw new Error(\"Failed pattern match at Data.Compactable (line 111, column 34 - line 113, column 35): \" + [ v.constructor.name ]);\n })($108));\n })();\n return Data_Array_ST.unsafeFreeze(result)();\n })();\n },\n separate: function (xs) {\n return (function __do() {\n var ls = Data_Array_ST[\"new\"]();\n var rs = Data_Array_ST[\"new\"]();\n var iter = Data_Array_ST_Iterator.iterator(function (v) {\n return Data_Array.index(xs)(v);\n })();\n Data_Array_ST_Iterator.iterate(iter)(function ($109) {\n return $$void((function (v) {\n if (v instanceof Data_Either.Left) {\n return Data_Array_ST.push(v.value0)(ls);\n };\n if (v instanceof Data_Either.Right) {\n return Data_Array_ST.push(v.value0)(rs);\n };\n throw new Error(\"Failed pattern match at Data.Compactable (line 122, column 34 - line 124, column 31): \" + [ v.constructor.name ]);\n })($109));\n })();\n return apply(map(function (v) {\n return function (v1) {\n return {\n left: v,\n right: v1\n };\n };\n })(Data_Array_ST.unsafeFreeze(ls)))(Data_Array_ST.unsafeFreeze(rs))();\n })();\n }\n};\nvar compactDefault = function (dictFunctor) {\n var map1 = Data_Functor.map(dictFunctor);\n return function (dictCompactable) {\n var $110 = separate(dictCompactable);\n var $111 = map1(Data_Either.note(Data_Unit.unit));\n return function ($112) {\n return (function (v) {\n return v.right;\n })($110($111($112)));\n };\n };\n};\nvar compact = function (dict) {\n return dict.compact;\n};\nvar separateDefault = function (dictFunctor) {\n var map1 = Data_Functor.map(dictFunctor);\n return function (dictCompactable) {\n var compact1 = compact(dictCompactable);\n return function (xs) {\n var swapEither = function (e) {\n if (e instanceof Data_Either.Left) {\n return new Data_Either.Right(e.value0);\n };\n if (e instanceof Data_Either.Right) {\n return new Data_Either.Left(e.value0);\n };\n throw new Error(\"Failed pattern match at Data.Compactable (line 83, column 20 - line 85, column 24): \" + [ e.constructor.name ]);\n };\n return {\n left: compact1(map1(function ($113) {\n return Data_Either.hush(swapEither($113));\n })(xs)),\n right: compact1(map1(Data_Either.hush)(xs))\n };\n };\n };\n};\nvar bindMaybe = function (dictBind) {\n var bind1 = Control_Bind.bind(dictBind);\n return function (dictCompactable) {\n var compact1 = compact(dictCompactable);\n return function (x) {\n var $114 = bind1(x);\n return function ($115) {\n return compact1($114($115));\n };\n };\n };\n};\nvar bindEither = function (dictBind) {\n var bind1 = Control_Bind.bind(dictBind);\n return function (dictCompactable) {\n var separate1 = separate(dictCompactable);\n return function (x) {\n var $116 = bind1(x);\n return function ($117) {\n return separate1($116($117));\n };\n };\n };\n};\nvar applyMaybe = function (dictApply) {\n var apply1 = Control_Apply.apply(dictApply);\n return function (dictCompactable) {\n var compact1 = compact(dictCompactable);\n return function (p) {\n var $118 = apply1(p);\n return function ($119) {\n return compact1($118($119));\n };\n };\n };\n};\nvar applyEither = function (dictApply) {\n var apply1 = Control_Apply.apply(dictApply);\n return function (dictCompactable) {\n var separate1 = separate(dictCompactable);\n return function (p) {\n var $120 = apply1(p);\n return function ($121) {\n return separate1($120($121));\n };\n };\n };\n};\nexport {\n compact,\n separate,\n compactDefault,\n separateDefault,\n applyMaybe,\n applyEither,\n bindMaybe,\n bindEither,\n compactableMaybe,\n compactableEither,\n compactableArray,\n compactableList,\n compactableMap\n};\n","// Generated by purs version 0.15.7\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Data_Array from \"../Data.Array/index.js\";\nimport * as Data_Compactable from \"../Data.Compactable/index.js\";\nimport * as Data_Either from \"../Data.Either/index.js\";\nimport * as Data_Foldable from \"../Data.Foldable/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_HeytingAlgebra from \"../Data.HeytingAlgebra/index.js\";\nimport * as Data_List from \"../Data.List/index.js\";\nimport * as Data_List_Types from \"../Data.List.Types/index.js\";\nimport * as Data_Map_Internal from \"../Data.Map.Internal/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Monoid from \"../Data.Monoid/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nvar foldr = /* #__PURE__ */ Data_Foldable.foldr(Data_List_Types.foldableList);\nvar append = /* #__PURE__ */ Data_Semigroup.append(Data_Semigroup.semigroupArray);\nvar foldl = /* #__PURE__ */ Data_Foldable.foldl(Data_Foldable.foldableArray);\nvar not = /* #__PURE__ */ Data_HeytingAlgebra.not(/* #__PURE__ */ Data_HeytingAlgebra.heytingAlgebraFunction(Data_HeytingAlgebra.heytingAlgebraBoolean));\nvar toUnfoldable = /* #__PURE__ */ Data_Map_Internal.toUnfoldable(Data_List_Types.unfoldableList);\nvar partitionMapDefault = function (dictFilterable) {\n var separate = Data_Compactable.separate(dictFilterable.Compactable0());\n var map = Data_Functor.map(dictFilterable.Functor1());\n return function (p) {\n var $117 = map(p);\n return function ($118) {\n return separate($117($118));\n };\n };\n};\nvar partitionMap = function (dict) {\n return dict.partitionMap;\n};\nvar partition = function (dict) {\n return dict.partition;\n};\nvar maybeBool = function (p) {\n return function (x) {\n var $66 = p(x);\n if ($66) {\n return new Data_Maybe.Just(x);\n };\n return Data_Maybe.Nothing.value;\n };\n};\nvar filterableList = {\n partitionMap: function (p) {\n return function (xs) {\n var select = function (x) {\n return function (v) {\n var v1 = p(x);\n if (v1 instanceof Data_Either.Left) {\n return {\n left: new Data_List_Types.Cons(v1.value0, v.left),\n right: v.right\n };\n };\n if (v1 instanceof Data_Either.Right) {\n return {\n left: v.left,\n right: new Data_List_Types.Cons(v1.value0, v.right)\n };\n };\n throw new Error(\"Failed pattern match at Data.Filterable (line 190, column 36 - line 192, column 83): \" + [ v1.constructor.name ]);\n };\n };\n return foldr(select)({\n left: Data_List_Types.Nil.value,\n right: Data_List_Types.Nil.value\n })(xs);\n };\n },\n partition: function (p) {\n return function (xs) {\n var select = function (x) {\n return function (v) {\n var $76 = p(x);\n if ($76) {\n return {\n no: v.no,\n yes: new Data_List_Types.Cons(x, v.yes)\n };\n };\n return {\n no: new Data_List_Types.Cons(x, v.no),\n yes: v.yes\n };\n };\n };\n return foldr(select)({\n no: Data_List_Types.Nil.value,\n yes: Data_List_Types.Nil.value\n })(xs);\n };\n },\n filterMap: function (p) {\n return Data_List.mapMaybe(p);\n },\n filter: Data_List.filter,\n Compactable0: function () {\n return Data_Compactable.compactableList;\n },\n Functor1: function () {\n return Data_List_Types.functorList;\n }\n};\nvar filterableArray = {\n partitionMap: function (p) {\n var go = function (acc) {\n return function (x) {\n var v = p(x);\n if (v instanceof Data_Either.Left) {\n return {\n left: append(acc.left)([ v.value0 ]),\n right: acc.right\n };\n };\n if (v instanceof Data_Either.Right) {\n return {\n right: append(acc.right)([ v.value0 ]),\n left: acc.left\n };\n };\n throw new Error(\"Failed pattern match at Data.Filterable (line 149, column 16 - line 151, column 50): \" + [ v.constructor.name ]);\n };\n };\n return foldl(go)({\n left: [ ],\n right: [ ]\n });\n },\n partition: Data_Array.partition,\n filterMap: Data_Array.mapMaybe,\n filter: Data_Array.filter,\n Compactable0: function () {\n return Data_Compactable.compactableArray;\n },\n Functor1: function () {\n return Data_Functor.functorArray;\n }\n};\nvar filterMapDefault = function (dictFilterable) {\n var compact = Data_Compactable.compact(dictFilterable.Compactable0());\n var map = Data_Functor.map(dictFilterable.Functor1());\n return function (p) {\n var $119 = map(p);\n return function ($120) {\n return compact($119($120));\n };\n };\n};\nvar filterMap = function (dict) {\n return dict.filterMap;\n};\nvar partitionDefaultFilterMap = function (dictFilterable) {\n var filterMap1 = filterMap(dictFilterable);\n return function (p) {\n return function (xs) {\n return {\n yes: filterMap1(maybeBool(p))(xs),\n no: filterMap1(maybeBool(not(p)))(xs)\n };\n };\n };\n};\nvar filterDefaultPartition = function (dictFilterable) {\n var partition1 = partition(dictFilterable);\n return function (p) {\n return function (xs) {\n return (partition1(p)(xs)).yes;\n };\n };\n};\nvar filterDefault = function (dictFilterable) {\n var $121 = filterMap(dictFilterable);\n return function ($122) {\n return $121(maybeBool($122));\n };\n};\nvar filter = function (dict) {\n return dict.filter;\n};\nvar partitionDefaultFilter = function (dictFilterable) {\n var filter1 = filter(dictFilterable);\n return function (p) {\n return function (xs) {\n return {\n yes: filter1(p)(xs),\n no: filter1(not(p))(xs)\n };\n };\n };\n};\nvar eitherBool = function (p) {\n return function (x) {\n var $84 = p(x);\n if ($84) {\n return new Data_Either.Right(x);\n };\n return new Data_Either.Left(x);\n };\n};\nvar filterDefaultPartitionMap = function (dictFilterable) {\n var partitionMap1 = partitionMap(dictFilterable);\n return function (p) {\n return function (xs) {\n return (partitionMap1(eitherBool(p))(xs)).right;\n };\n };\n};\nvar partitionDefault = function (dictFilterable) {\n var partitionMap1 = partitionMap(dictFilterable);\n return function (p) {\n return function (xs) {\n var o = partitionMap1(eitherBool(p))(xs);\n return {\n no: o.left,\n yes: o.right\n };\n };\n };\n};\nvar filterableEither = function (dictMonoid) {\n var mempty = Data_Monoid.mempty(dictMonoid);\n var compactableEither = Data_Compactable.compactableEither(dictMonoid);\n return {\n partitionMap: function (v) {\n return function (v1) {\n if (v1 instanceof Data_Either.Left) {\n return {\n left: new Data_Either.Left(v1.value0),\n right: new Data_Either.Left(v1.value0)\n };\n };\n if (v1 instanceof Data_Either.Right) {\n var v2 = v(v1.value0);\n if (v2 instanceof Data_Either.Left) {\n return {\n left: new Data_Either.Right(v2.value0),\n right: new Data_Either.Left(mempty)\n };\n };\n if (v2 instanceof Data_Either.Right) {\n return {\n left: new Data_Either.Left(mempty),\n right: new Data_Either.Right(v2.value0)\n };\n };\n throw new Error(\"Failed pattern match at Data.Filterable (line 173, column 30 - line 175, column 53): \" + [ v2.constructor.name ]);\n };\n throw new Error(\"Failed pattern match at Data.Filterable (line 171, column 1 - line 184, column 29): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n },\n partition: function (p) {\n return partitionDefault(filterableEither(dictMonoid))(p);\n },\n filterMap: function (v) {\n return function (v1) {\n if (v1 instanceof Data_Either.Left) {\n return new Data_Either.Left(v1.value0);\n };\n if (v1 instanceof Data_Either.Right) {\n var v2 = v(v1.value0);\n if (v2 instanceof Data_Maybe.Nothing) {\n return new Data_Either.Left(mempty);\n };\n if (v2 instanceof Data_Maybe.Just) {\n return new Data_Either.Right(v2.value0);\n };\n throw new Error(\"Failed pattern match at Data.Filterable (line 180, column 27 - line 182, column 22): \" + [ v2.constructor.name ]);\n };\n throw new Error(\"Failed pattern match at Data.Filterable (line 171, column 1 - line 184, column 29): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n },\n filter: function (p) {\n return filterDefault(filterableEither(dictMonoid))(p);\n },\n Compactable0: function () {\n return compactableEither;\n },\n Functor1: function () {\n return Data_Either.functorEither;\n }\n };\n};\nvar filterableMap = function (dictOrd) {\n var insert = Data_Map_Internal.insert(dictOrd);\n var alter = Data_Map_Internal.alter(dictOrd);\n var compactableMap = Data_Compactable.compactableMap(dictOrd);\n return {\n partitionMap: function (p) {\n return function (xs) {\n var select = function (v) {\n return function (v1) {\n var v2 = p(v.value1);\n if (v2 instanceof Data_Either.Left) {\n return {\n left: insert(v.value0)(v2.value0)(v1.left),\n right: v1.right\n };\n };\n if (v2 instanceof Data_Either.Right) {\n return {\n left: v1.left,\n right: insert(v.value0)(v2.value0)(v1.right)\n };\n };\n throw new Error(\"Failed pattern match at Data.Filterable (line 215, column 44 - line 217, column 57): \" + [ v2.constructor.name ]);\n };\n };\n return foldr(select)({\n left: Data_Map_Internal.empty,\n right: Data_Map_Internal.empty\n })(toUnfoldable(xs));\n };\n },\n partition: function (p) {\n return partitionDefault(filterableMap(dictOrd))(p);\n },\n filterMap: function (p) {\n return function (xs) {\n var select = function (v) {\n return function (m) {\n return alter(Data_Function[\"const\"](p(v.value1)))(v.value0)(m);\n };\n };\n return foldr(select)(Data_Map_Internal.empty)(toUnfoldable(xs));\n };\n },\n filter: function (p) {\n return filterDefault(filterableMap(dictOrd))(p);\n },\n Compactable0: function () {\n return compactableMap;\n },\n Functor1: function () {\n return Data_Map_Internal.functorMap;\n }\n };\n};\nvar filterableMaybe = {\n partitionMap: function (v) {\n return function (v1) {\n if (v1 instanceof Data_Maybe.Nothing) {\n return {\n left: Data_Maybe.Nothing.value,\n right: Data_Maybe.Nothing.value\n };\n };\n if (v1 instanceof Data_Maybe.Just) {\n var v2 = v(v1.value0);\n if (v2 instanceof Data_Either.Left) {\n return {\n left: new Data_Maybe.Just(v2.value0),\n right: Data_Maybe.Nothing.value\n };\n };\n if (v2 instanceof Data_Either.Right) {\n return {\n left: Data_Maybe.Nothing.value,\n right: new Data_Maybe.Just(v2.value0)\n };\n };\n throw new Error(\"Failed pattern match at Data.Filterable (line 161, column 29 - line 163, column 48): \" + [ v2.constructor.name ]);\n };\n throw new Error(\"Failed pattern match at Data.Filterable (line 159, column 1 - line 169, column 29): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n },\n partition: function (p) {\n return partitionDefault(filterableMaybe)(p);\n },\n filterMap: /* #__PURE__ */ Control_Bind.bindFlipped(Data_Maybe.bindMaybe),\n filter: function (p) {\n return filterDefault(filterableMaybe)(p);\n },\n Compactable0: function () {\n return Data_Compactable.compactableMaybe;\n },\n Functor1: function () {\n return Data_Maybe.functorMaybe;\n }\n};\nvar cleared = function (dictFilterable) {\n return filterMap(dictFilterable)(Data_Function[\"const\"](Data_Maybe.Nothing.value));\n};\nexport {\n partitionMap,\n partition,\n filterMap,\n filter,\n eitherBool,\n partitionDefault,\n partitionDefaultFilter,\n partitionDefaultFilterMap,\n partitionMapDefault,\n maybeBool,\n filterDefault,\n filterDefaultPartition,\n filterDefaultPartitionMap,\n filterMapDefault,\n cleared,\n filterableArray,\n filterableMaybe,\n filterableEither,\n filterableList,\n filterableMap\n};\nexport {\n compact,\n separate\n} from \"../Data.Compactable/index.js\";\n","// Generated by purs version 0.15.7\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Data_Array from \"../Data.Array/index.js\";\nimport * as Data_Filterable from \"../Data.Filterable/index.js\";\nimport * as Data_Foldable from \"../Data.Foldable/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Lens_Fold from \"../Data.Lens.Fold/index.js\";\nimport * as Data_Lens_Getter from \"../Data.Lens.Getter/index.js\";\nimport * as Data_Lens_Internal_Forget from \"../Data.Lens.Internal.Forget/index.js\";\nimport * as Data_Lens_Traversal from \"../Data.Lens.Traversal/index.js\";\nimport * as Data_List_Types from \"../Data.List.Types/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Monoid_Endo from \"../Data.Monoid.Endo/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nimport * as Data_String_CodePoints from \"../Data.String.CodePoints/index.js\";\nimport * as Data_String_Utils from \"../Data.String.Utils/index.js\";\nimport * as Halogen_HTML_Core from \"../Halogen.HTML.Core/index.js\";\nimport * as Halogen_HTML_Elements from \"../Halogen.HTML.Elements/index.js\";\nimport * as HalogenUtils from \"../HalogenUtils/index.js\";\nimport * as TablatureDocument from \"../TablatureDocument/index.js\";\nimport * as Utils from \"../Utils/index.js\";\nvar fromFoldable = /* #__PURE__ */ Data_Array.fromFoldable(Data_List_Types.foldableList);\nvar append = /* #__PURE__ */ Data_Semigroup.append(Data_List_Types.semigroupList);\nvar map = /* #__PURE__ */ Data_Functor.map(Data_List_Types.functorList);\nvar foldr = /* #__PURE__ */ Data_Foldable.foldr(Data_List_Types.foldableList);\nvar append1 = /* #__PURE__ */ Data_Semigroup.append(Data_Semigroup.semigroupString);\nvar print = /* #__PURE__ */ Utils.print(TablatureDocument.printChordMod);\nvar _elem = /* #__PURE__ */ TablatureDocument[\"_elem\"](Data_Lens_Internal_Forget.strongForget);\nvar _mods = /* #__PURE__ */ TablatureDocument[\"_mods\"](Data_Lens_Internal_Forget.strongForget);\nvar filterMap = /* #__PURE__ */ Data_Filterable.filterMap(Data_Filterable.filterableArray);\nvar identity = /* #__PURE__ */ Control_Category.identity(Control_Category.categoryFn);\nvar print1 = /* #__PURE__ */ Utils.print(TablatureDocument.printNoteLetter);\nvar _root = /* #__PURE__ */ TablatureDocument[\"_root\"](Data_Lens_Internal_Forget.strongForget);\nvar _letter = /* #__PURE__ */ TablatureDocument[\"_letter\"](Data_Lens_Internal_Forget.strongForget);\nvar _mod = /* #__PURE__ */ TablatureDocument[\"_mod\"](Data_Lens_Internal_Forget.strongForget);\nvar _type = /* #__PURE__ */ TablatureDocument[\"_type\"](Data_Lens_Internal_Forget.strongForget);\nvar mapFlipped = /* #__PURE__ */ Data_Functor.mapFlipped(Data_Maybe.functorMaybe);\nvar _bass = /* #__PURE__ */ TablatureDocument[\"_bass\"](Data_Lens_Internal_Forget.strongForget);\nvar max = /* #__PURE__ */ Data_Ord.max(Data_Ord.ordInt);\nvar _spaceSuffix = /* #__PURE__ */ TablatureDocument[\"_spaceSuffix\"](Data_Lens_Internal_Forget.strongForget);\nvar traversed = /* #__PURE__ */ Data_Lens_Traversal.traversed(Data_List_Types.traversableList);\nvar minimumOf = /* #__PURE__ */ Data_Lens_Fold.minimumOf(Data_Ord.ordInt);\nvar wanderForget = /* #__PURE__ */ Data_Lens_Internal_Forget.wanderForget(/* #__PURE__ */ Data_Monoid_Endo.monoidEndo(Control_Category.categoryFn));\nvar renderTablatureDocument = function (doc) {\n var renderWithClass = function (string) {\n return function (klass) {\n return Halogen_HTML_Elements.span([ HalogenUtils.classString(klass) ])([ Halogen_HTML_Core.text(string) ]);\n };\n };\n var renderTitleLineElem = function (v) {\n if (v instanceof TablatureDocument.Title) {\n return renderWithClass(v.value0)(\"tabTitle\");\n };\n if (v instanceof TablatureDocument.TitleOther) {\n return renderWithClass(v.value0)(\"tabText\");\n };\n throw new Error(\"Failed pattern match at TablatureRenderer (line 32, column 3 - line 32, column 73): \" + [ v.constructor.name ]);\n };\n var renderLine$prime = function (line) {\n return function (lineRenderer) {\n return Halogen_HTML_Elements.span_(fromFoldable(append(map(lineRenderer)(line))(new Data_List_Types.Cons(HalogenUtils.renderLineEnding, Data_List_Types.Nil.value))));\n };\n };\n var renderHeaderLineElem = function (v) {\n if (v instanceof TablatureDocument.Header) {\n return renderWithClass(v.value0)(\"tabHeader\");\n };\n if (v instanceof TablatureDocument.HeaderSuffix) {\n return renderWithClass(v.value0)(\"tabText\");\n };\n throw new Error(\"Failed pattern match at TablatureRenderer (line 48, column 3 - line 48, column 76): \" + [ v.constructor.name ]);\n };\n var renderChordLegendElem = function (v) {\n if (v instanceof TablatureDocument.ChordFret) {\n return renderWithClass(v.value0)(\"tabFret\");\n };\n if (v instanceof TablatureDocument.ChordSpecial) {\n return renderWithClass(v.value0)(\"tabSpecial\");\n };\n throw new Error(\"Failed pattern match at TablatureRenderer (line 53, column 3 - line 53, column 58): \" + [ v.constructor.name ]);\n };\n var createFontSizeCompensation = function (string) {\n return Halogen_HTML_Elements.span([ HalogenUtils.classString(\"fontsize-compensation\") ])([ Halogen_HTML_Core.text(Data_Maybe.fromMaybe(\"\")(Data_String_Utils.repeat(Data_String_CodePoints.length(string))(\" \"))) ]);\n };\n var renderChord = function (chord) {\n var chordMods = foldr(append1)(\"\")(map(print)(Data_Lens_Getter.view(function ($81) {\n return _elem(_mods($81));\n })(chord)));\n return Halogen_HTML_Elements.span([ HalogenUtils.classString(\"tabChord\") ])(filterMap(identity)([ new Data_Maybe.Just(Halogen_HTML_Core.text(print1(Data_Lens_Getter.view(function ($82) {\n return _elem(_root(_letter($82)));\n })(chord)))), new Data_Maybe.Just(Halogen_HTML_Elements.sub_([ Halogen_HTML_Core.text(Data_Lens_Getter.view(function ($83) {\n return _elem(_root(_mod($83)));\n })(chord)) ])), new Data_Maybe.Just(Halogen_HTML_Core.text(Data_Lens_Getter.view(function ($84) {\n return _elem(_type($84));\n })(chord))), new Data_Maybe.Just(Halogen_HTML_Elements.sup_([ Halogen_HTML_Core.text(chordMods) ])), mapFlipped(Data_Lens_Getter.view(function ($85) {\n return _elem(_bass($85));\n })(chord))(function (v) {\n return Halogen_HTML_Core.text(\"/\" + print1(v.letter));\n }), mapFlipped(Data_Lens_Getter.view(function ($86) {\n return _elem(_bass($86));\n })(chord))(function (v) {\n return Halogen_HTML_Elements.sub_([ Halogen_HTML_Core.text(v.mod) ]);\n }), new Data_Maybe.Just(Halogen_HTML_Core.text(Data_Maybe.fromMaybe(\"\")(Data_String_Utils.repeat(max(1)(Data_Lens_Getter.view(_spaceSuffix)(chord)))(\" \")))), new Data_Maybe.Just(Halogen_HTML_Elements.sub_([ createFontSizeCompensation(Data_Lens_Getter.view(function ($87) {\n return _elem(_root(_mod($87)));\n })(chord)) ])), new Data_Maybe.Just(Halogen_HTML_Elements.sup_([ createFontSizeCompensation(chordMods) ])), mapFlipped(Data_Lens_Getter.view(function ($88) {\n return _elem(_bass($88));\n })(chord))(function (v) {\n return Halogen_HTML_Elements.sub_([ createFontSizeCompensation(v.mod) ]);\n }) ]));\n };\n var renderChordLineElem = function (v) {\n if (v instanceof TablatureDocument.ChordComment) {\n return renderWithClass(v.value0)(\"tabSuffix\");\n };\n if (v instanceof TablatureDocument.ChordLineChord) {\n return renderChord(v.value0);\n };\n throw new Error(\"Failed pattern match at TablatureRenderer (line 50, column 3 - line 50, column 81): \" + [ v.constructor.name ]);\n };\n var renderTextLineElem = function (v) {\n if (v instanceof TablatureDocument.Text) {\n return renderWithClass(v.value0)(\"tabText\");\n };\n if (v instanceof TablatureDocument.Spaces) {\n return renderWithClass(v.value0)(\"tabText\");\n };\n if (v instanceof TablatureDocument.TextLineChord) {\n return renderChord(v.value0);\n };\n if (v instanceof TablatureDocument.ChordLegend) {\n return Halogen_HTML_Elements.span_(fromFoldable(map(renderChordLegendElem)(v.value0)));\n };\n throw new Error(\"Failed pattern match at TablatureRenderer (line 35, column 3 - line 35, column 52): \" + [ v.constructor.name ]);\n };\n var _tuningSpaceSuffixes = function (dictWander) {\n var traversed1 = traversed(dictWander);\n var Choice1 = dictWander.Choice1();\n var $89 = TablatureDocument[\"_TablatureLine\"](Choice1);\n var $90 = TablatureDocument[\"_Tuning\"](Choice1);\n var $91 = TablatureDocument[\"_spaceSuffix\"](dictWander.Strong0());\n return function ($92) {\n return traversed1($89(traversed1($90($91($92)))));\n };\n };\n var minTuningSpace = Data_Maybe.fromMaybe(0)(minimumOf(_tuningSpaceSuffixes(wanderForget))(doc));\n var renderTuning = function (spacedNote) {\n return Halogen_HTML_Elements.span([ HalogenUtils.classString(\"tabChord\") ])([ Halogen_HTML_Core.text(print1(Data_Lens_Getter.view(function ($93) {\n return _elem(_letter($93));\n })(spacedNote))), Halogen_HTML_Elements.sub_([ Halogen_HTML_Core.text(Data_Lens_Getter.view(function ($94) {\n return _elem(_mod($94));\n })(spacedNote)) ]), Halogen_HTML_Core.text(Data_Maybe.fromMaybe(\"\")(Data_String_Utils.repeat(Data_Lens_Getter.view(_spaceSuffix)(spacedNote) - minTuningSpace | 0)(\" \"))), Halogen_HTML_Elements.sub_([ createFontSizeCompensation(Data_Lens_Getter.view(function ($95) {\n return _elem(_mod($95));\n })(spacedNote)) ]) ]);\n };\n var renderTablatureLineElem = function (v) {\n if (v instanceof TablatureDocument.Prefix) {\n return renderWithClass(v.value0)(\"tabPrefix\");\n };\n if (v instanceof TablatureDocument.Tuning) {\n return renderTuning(v.value0);\n };\n if (v instanceof TablatureDocument.Suffix) {\n return renderWithClass(v.value0)(\"tabSuffix\");\n };\n if (v instanceof TablatureDocument.Special) {\n return renderWithClass(v.value0)(\"tabSpecial\");\n };\n if (v instanceof TablatureDocument.TimelineSep) {\n return renderWithClass(v.value0)(\"tabTimeline\");\n };\n if (v instanceof TablatureDocument.TimelineConnection) {\n return renderWithClass(v.value0)(\"tabTimeline\");\n };\n if (v instanceof TablatureDocument.TimelineSpace) {\n return renderWithClass(v.value0)(\"tabTimeline\");\n };\n if (v instanceof TablatureDocument.Fret) {\n return renderWithClass(v.value0)(\"tabFret\");\n };\n throw new Error(\"Failed pattern match at TablatureRenderer (line 40, column 3 - line 40, column 79): \" + [ v.constructor.name ]);\n };\n var renderLine = function (v) {\n if (v instanceof TablatureDocument.TitleLine) {\n return renderLine$prime(v.value0)(renderTitleLineElem);\n };\n if (v instanceof TablatureDocument.TextLine) {\n return renderLine$prime(v.value0)(renderTextLineElem);\n };\n if (v instanceof TablatureDocument.ChordLine) {\n return renderLine$prime(v.value0)(renderChordLineElem);\n };\n if (v instanceof TablatureDocument.HeaderLine) {\n return renderLine$prime(v.value0)(renderHeaderLineElem);\n };\n if (v instanceof TablatureDocument.TablatureLine) {\n return renderLine$prime(v.value0)(renderTablatureLineElem);\n };\n throw new Error(\"Failed pattern match at TablatureRenderer (line 22, column 3 - line 22, column 53): \" + [ v.constructor.name ]);\n };\n return map(renderLine)(doc);\n};\nexport {\n renderTablatureDocument\n};\n","// Generated by purs version 0.15.7\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Nullable from \"../Data.Nullable/index.js\";\nimport * as Effect from \"../Effect/index.js\";\nimport * as Unsafe_Coerce from \"../Unsafe.Coerce/index.js\";\nimport * as Web_HTML_SelectionMode from \"../Web.HTML.SelectionMode/index.js\";\nimport * as Web_Internal_FFI from \"../Web.Internal.FFI/index.js\";\nvar toParentNode = Unsafe_Coerce.unsafeCoerce;\nvar toNonDocumentTypeChildNode = Unsafe_Coerce.unsafeCoerce;\nvar toNode = Unsafe_Coerce.unsafeCoerce;\nvar toHTMLElement = Unsafe_Coerce.unsafeCoerce;\nvar toEventTarget = Unsafe_Coerce.unsafeCoerce;\nvar toElement = Unsafe_Coerce.unsafeCoerce;\nvar toChildNode = Unsafe_Coerce.unsafeCoerce;\nvar setRangeText$prime = function (rpl) {\n return function (s) {\n return function (e) {\n return function (mode) {\n return function (area) {\n return function () {\n return $foreign[\"_setRangeText\"](rpl, s, e, Web_HTML_SelectionMode.print(mode), area);\n };\n };\n };\n };\n };\n};\nvar fromParentNode = /* #__PURE__ */ Web_Internal_FFI.unsafeReadProtoTagged(\"HTMLTextAreaElement\");\nvar fromNonDocumentTypeChildNode = /* #__PURE__ */ Web_Internal_FFI.unsafeReadProtoTagged(\"HTMLTextAreaElement\");\nvar fromNode = /* #__PURE__ */ Web_Internal_FFI.unsafeReadProtoTagged(\"HTMLTextAreaElement\");\nvar fromHTMLElement = /* #__PURE__ */ Web_Internal_FFI.unsafeReadProtoTagged(\"HTMLTextAreaElement\");\nvar fromEventTarget = /* #__PURE__ */ Web_Internal_FFI.unsafeReadProtoTagged(\"HTMLTextAreaElement\");\nvar fromElement = /* #__PURE__ */ Web_Internal_FFI.unsafeReadProtoTagged(\"HTMLTextAreaElement\");\nvar fromChildNode = /* #__PURE__ */ Web_Internal_FFI.unsafeReadProtoTagged(\"HTMLTextAreaElement\");\nvar form = /* #__PURE__ */ (function () {\n var $2 = Data_Functor.map(Effect.functorEffect)(Data_Nullable.toMaybe);\n return function ($3) {\n return $2($foreign[\"_form\"]($3));\n };\n})();\nexport {\n autocomplete,\n setAutocomplete,\n autofocus,\n setAutofocus,\n cols,\n setCols,\n dirName,\n setDirName,\n disabled,\n setDisabled,\n maxLength,\n setMaxLength,\n minLength,\n setMinLength,\n name,\n setName,\n placeholder,\n setPlaceholder,\n readOnly,\n setReadOnly,\n required,\n setRequired,\n rows,\n setRows,\n wrap,\n setWrap,\n type_,\n defaultValue,\n setDefaultValue,\n value,\n setValue,\n textLength,\n willValidate,\n validity,\n validationMessage,\n checkValidity,\n reportValidity,\n setCustomValidity,\n labels,\n select,\n selectionStart,\n setSelectionStart,\n selectionEnd,\n setSelectionEnd,\n selectionDirection,\n setSelectionDirection,\n setRangeText,\n setSelectionRange\n} from \"./foreign.js\";\nexport {\n fromHTMLElement,\n fromElement,\n fromNode,\n fromChildNode,\n fromNonDocumentTypeChildNode,\n fromParentNode,\n fromEventTarget,\n toHTMLElement,\n toElement,\n toNode,\n toChildNode,\n toNonDocumentTypeChildNode,\n toParentNode,\n toEventTarget,\n form,\n setRangeText$prime\n};\n","export function key(e) {\n return e.key;\n}\n\nexport function code(e) {\n return e.code;\n}\n\nexport function locationIndex(e) {\n return e.location;\n}\n\nexport function ctrlKey(e) {\n return e.ctrlKey;\n}\n\nexport function shiftKey(e) {\n return e.shiftKey;\n}\n\nexport function altKey(e) {\n return e.altKey;\n}\n\nexport function metaKey(e) {\n return e.metaKey;\n}\n\nexport function repeat(e) {\n return e.repeat;\n}\n\nexport function isComposing(e) {\n return e.isComposing;\n}\n\nexport function getModifierState(s) {\n return function (e) {\n return function () {\n return e.getModifierState(s);\n };\n };\n}\n","// Generated by purs version 0.15.7\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Enum from \"../Data.Enum/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Ordering from \"../Data.Ordering/index.js\";\nimport * as Unsafe_Coerce from \"../Unsafe.Coerce/index.js\";\nimport * as Web_Internal_FFI from \"../Web.Internal.FFI/index.js\";\nvar fromJust = /* #__PURE__ */ Data_Maybe.fromJust();\nvar Standard = /* #__PURE__ */ (function () {\n function Standard() {\n\n };\n Standard.value = new Standard();\n return Standard;\n})();\nvar Left = /* #__PURE__ */ (function () {\n function Left() {\n\n };\n Left.value = new Left();\n return Left;\n})();\nvar Right = /* #__PURE__ */ (function () {\n function Right() {\n\n };\n Right.value = new Right();\n return Right;\n})();\nvar Numpad = /* #__PURE__ */ (function () {\n function Numpad() {\n\n };\n Numpad.value = new Numpad();\n return Numpad;\n})();\nvar toUIEvent = Unsafe_Coerce.unsafeCoerce;\nvar toEvent = Unsafe_Coerce.unsafeCoerce;\nvar toEnumKeyLocation = function (v) {\n if (v === 0) {\n return new Data_Maybe.Just(Standard.value);\n };\n if (v === 1) {\n return new Data_Maybe.Just(Left.value);\n };\n if (v === 2) {\n return new Data_Maybe.Just(Right.value);\n };\n if (v === 3) {\n return new Data_Maybe.Just(Numpad.value);\n };\n return Data_Maybe.Nothing.value;\n};\nvar fromUIEvent = /* #__PURE__ */ Web_Internal_FFI.unsafeReadProtoTagged(\"KeyboardEvent\");\nvar fromEvent = /* #__PURE__ */ Web_Internal_FFI.unsafeReadProtoTagged(\"KeyboardEvent\");\nvar fromEnumKeyLocation = function (v) {\n if (v instanceof Standard) {\n return 0;\n };\n if (v instanceof Left) {\n return 1;\n };\n if (v instanceof Right) {\n return 2;\n };\n if (v instanceof Numpad) {\n return 3;\n };\n throw new Error(\"Failed pattern match at Web.UIEvent.KeyboardEvent (line 107, column 3 - line 111, column 16): \" + [ v.constructor.name ]);\n};\nvar eqKeyLocation = {\n eq: function (x) {\n return function (y) {\n if (x instanceof Standard && y instanceof Standard) {\n return true;\n };\n if (x instanceof Left && y instanceof Left) {\n return true;\n };\n if (x instanceof Right && y instanceof Right) {\n return true;\n };\n if (x instanceof Numpad && y instanceof Numpad) {\n return true;\n };\n return false;\n };\n }\n};\nvar ordKeyLocation = {\n compare: function (x) {\n return function (y) {\n if (x instanceof Standard && y instanceof Standard) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof Standard) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof Standard) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof Left && y instanceof Left) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof Left) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof Left) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof Right && y instanceof Right) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof Right) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof Right) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof Numpad && y instanceof Numpad) {\n return Data_Ordering.EQ.value;\n };\n throw new Error(\"Failed pattern match at Web.UIEvent.KeyboardEvent (line 0, column 0 - line 0, column 0): \" + [ x.constructor.name, y.constructor.name ]);\n };\n },\n Eq0: function () {\n return eqKeyLocation;\n }\n};\nvar enumKeyLocation = {\n succ: /* #__PURE__ */ Data_Enum.defaultSucc(toEnumKeyLocation)(fromEnumKeyLocation),\n pred: /* #__PURE__ */ Data_Enum.defaultPred(toEnumKeyLocation)(fromEnumKeyLocation),\n Ord0: function () {\n return ordKeyLocation;\n }\n};\nvar boundedKeyLocation = /* #__PURE__ */ (function () {\n return {\n bottom: Standard.value,\n top: Numpad.value,\n Ord0: function () {\n return ordKeyLocation;\n }\n };\n})();\nvar boundedEnumKeyLocation = {\n cardinality: 4,\n toEnum: toEnumKeyLocation,\n fromEnum: fromEnumKeyLocation,\n Bounded0: function () {\n return boundedKeyLocation;\n },\n Enum1: function () {\n return enumKeyLocation;\n }\n};\nvar toEnum = /* #__PURE__ */ Data_Enum.toEnum(boundedEnumKeyLocation);\nvar location = function () {\n return function ($15) {\n return fromJust(toEnum($foreign.locationIndex($15)));\n };\n};\nexport {\n key,\n code,\n locationIndex,\n ctrlKey,\n shiftKey,\n altKey,\n metaKey,\n repeat,\n isComposing,\n getModifierState\n} from \"./foreign.js\";\nexport {\n fromUIEvent,\n fromEvent,\n toUIEvent,\n toEvent,\n location,\n Standard,\n Left,\n Right,\n Numpad,\n toEnumKeyLocation,\n fromEnumKeyLocation,\n eqKeyLocation,\n ordKeyLocation,\n boundedKeyLocation,\n enumKeyLocation,\n boundedEnumKeyLocation\n};\n","// Generated by purs version 0.15.7\nimport * as AppActions from \"../AppActions/index.js\";\nimport * as AppState from \"../AppState/index.js\";\nimport * as AutoscrollSpeed from \"../AutoscrollSpeed/index.js\";\nimport * as Cache from \"../Cache/index.js\";\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Apply from \"../Control.Apply/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Data_Array from \"../Data.Array/index.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Lens_Getter from \"../Data.Lens.Getter/index.js\";\nimport * as Data_Lens_Internal_Forget from \"../Data.Lens.Internal.Forget/index.js\";\nimport * as Data_List_Types from \"../Data.List.Types/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Number_Format from \"../Data.Number.Format/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nimport * as Data_Show from \"../Data.Show/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nimport * as Effect from \"../Effect/index.js\";\nimport * as Effect_Class from \"../Effect.Class/index.js\";\nimport * as Effect_Console from \"../Effect.Console/index.js\";\nimport * as Effect_Timer from \"../Effect.Timer/index.js\";\nimport * as Halogen_HTML_Core from \"../Halogen.HTML.Core/index.js\";\nimport * as Halogen_HTML_Elements from \"../Halogen.HTML.Elements/index.js\";\nimport * as Halogen_HTML_Events from \"../Halogen.HTML.Events/index.js\";\nimport * as Halogen_HTML_Properties from \"../Halogen.HTML.Properties/index.js\";\nimport * as Halogen_Query from \"../Halogen.Query/index.js\";\nimport * as Halogen_Query_HalogenM from \"../Halogen.Query.HalogenM/index.js\";\nimport * as HalogenUtils from \"../HalogenUtils/index.js\";\nimport * as TablatureDocument from \"../TablatureDocument/index.js\";\nimport * as TablatureRenderer from \"../TablatureRenderer/index.js\";\nimport * as TablatureRewriter from \"../TablatureRewriter/index.js\";\nimport * as Utils from \"../Utils/index.js\";\nimport * as Web_DOM_Element from \"../Web.DOM.Element/index.js\";\nimport * as Web_HTML_HTMLElement from \"../Web.HTML.HTMLElement/index.js\";\nimport * as Web_HTML_HTMLInputElement from \"../Web.HTML.HTMLInputElement/index.js\";\nimport * as Web_HTML_HTMLTextAreaElement from \"../Web.HTML.HTMLTextAreaElement/index.js\";\nimport * as Web_UIEvent_KeyboardEvent from \"../Web.UIEvent.KeyboardEvent/index.js\";\nvar discard = /* #__PURE__ */ Control_Bind.discard(Control_Bind.discardUnit);\nvar _mode = /* #__PURE__ */ AppState[\"_mode\"](Data_Lens_Internal_Forget.strongForget);\nvar show = /* #__PURE__ */ Data_Show.show(TablatureDocument.showTransposition);\nvar eq = /* #__PURE__ */ Data_Eq.eq(TablatureRewriter.eqNoteOrientation);\nvar print = /* #__PURE__ */ Utils.print(AutoscrollSpeed.printAutoscrollSpeed);\nvar _autoscrollSpeed = /* #__PURE__ */ AppState[\"_autoscrollSpeed\"](Data_Lens_Internal_Forget.strongForget);\nvar fromFoldable = /* #__PURE__ */ Data_Array.fromFoldable(Data_List_Types.foldableList);\nvar mapFlipped = /* #__PURE__ */ Data_Functor.mapFlipped(Data_Maybe.functorMaybe);\nvar _searchResults = /* #__PURE__ */ AppState[\"_searchResults\"](Data_Lens_Internal_Forget.strongForget);\nvar append1 = /* #__PURE__ */ Data_Semigroup.append(Data_Semigroup.semigroupArray);\nvar mapFlipped1 = /* #__PURE__ */ Data_Functor.mapFlipped(Data_Functor.functorArray);\nvar _loading = /* #__PURE__ */ AppState[\"_loading\"](Data_Lens_Internal_Forget.strongForget);\nvar notEq = /* #__PURE__ */ Data_Eq.notEq(AppState.eqMode);\nvar notEq1 = /* #__PURE__ */ Data_Eq.notEq(AppState.eqActiveMenu);\nvar _activeMenu = /* #__PURE__ */ AppState[\"_activeMenu\"](Data_Lens_Internal_Forget.strongForget);\nvar eq2 = /* #__PURE__ */ Data_Eq.eq(AppState.eqMode);\nvar _autoscroll = /* #__PURE__ */ AppState[\"_autoscroll\"](Data_Lens_Internal_Forget.strongForget);\nvar mapFlipped2 = /* #__PURE__ */ Data_Functor.mapFlipped(Halogen_Query_HalogenM.functorHalogenM);\nvar bind = /* #__PURE__ */ Control_Bind.bind(Data_Maybe.bindMaybe);\nvar bind1 = /* #__PURE__ */ Control_Bind.bind(Halogen_Query_HalogenM.bindHalogenM);\nvar applySecond = /* #__PURE__ */ Control_Apply.applySecond(Effect.applyEffect);\nvar pure = /* #__PURE__ */ Control_Applicative.pure(Effect.applicativeEffect);\nvar viewState = /* #__PURE__ */ AppState.viewState(Halogen_Query_HalogenM.monadStateHalogenM);\nvar pure1 = /* #__PURE__ */ Control_Applicative.pure(Halogen_Query_HalogenM.applicativeHalogenM);\nvar map = /* #__PURE__ */ Data_Functor.map(Data_Maybe.functorMaybe);\nvar setState = /* #__PURE__ */ AppState.setState(Halogen_Query_HalogenM.monadStateHalogenM);\nvar stopAutoscroll = function (dictMonadEffect) {\n var Monad0 = dictMonadEffect.Monad0();\n var Bind1 = Monad0.Bind1();\n var bind2 = Control_Bind.bind(Bind1);\n var pure2 = Control_Applicative.pure(Monad0.Applicative0());\n var discard1 = discard(Bind1);\n var liftEffect = Effect_Class.liftEffect(dictMonadEffect);\n return function (dictMonadState) {\n var setState1 = AppState.setState(dictMonadState);\n return bind2(AppState.viewState(dictMonadState)(function (dictStrong) {\n return AppState[\"_autoscrollTimer\"](dictStrong);\n }))(function (autoscrollTimer) {\n if (autoscrollTimer instanceof Data_Maybe.Nothing) {\n return pure2(Data_Unit.unit);\n };\n if (autoscrollTimer instanceof Data_Maybe.Just) {\n return discard1(liftEffect(Effect_Timer.clearInterval(autoscrollTimer.value0)))(function () {\n return setState1(function (dictStrong) {\n return AppState[\"_autoscrollTimer\"](dictStrong);\n })(Data_Maybe.Nothing.value);\n });\n };\n throw new Error(\"Failed pattern match at AppHtml (line 426, column 3 - line 430, column 40): \" + [ autoscrollTimer.constructor.name ]);\n });\n };\n};\nvar startAutoscrollOnElement = function (dictMonadEffect) {\n var bind2 = Control_Bind.bind((dictMonadEffect.Monad0()).Bind1());\n var liftEffect = Effect_Class.liftEffect(dictMonadEffect);\n return function (dictMonadState) {\n var viewState1 = AppState.viewState(dictMonadState);\n var setState1 = AppState.setState(dictMonadState);\n return function (elem) {\n return bind2(viewState1(function (dictStrong) {\n return AppState[\"_autoscrollSpeed\"](dictStrong);\n }))(function (autoscrollSpeed) {\n return bind2(liftEffect(Effect_Timer.setInterval(AutoscrollSpeed.speedToIntervalMs(autoscrollSpeed))(HalogenUtils.scrollBy(0)(AutoscrollSpeed.speedToIntervalPixelDelta(autoscrollSpeed))(elem))))(function (intervalId) {\n return setState1(function (dictStrong) {\n return AppState[\"_autoscrollTimer\"](dictStrong);\n })(new Data_Maybe.Just(intervalId));\n });\n });\n };\n };\n};\nvar refTablatureViewer = \"tablatureViewer\";\nvar refTablatureSearchInput = \"tablatureSearchInput\";\nvar refTablatureEditor = \"tablatureEditor\";\nvar render = function (state) {\n var toggleButtonTitle = (function () {\n var v = Data_Lens_Getter.view(_mode)(state);\n if (v instanceof AppState.EditMode) {\n return \"Save tablature\";\n };\n return \"Edit tablature\";\n })();\n var renderViewMenu = Halogen_HTML_Elements.div([ HalogenUtils.classString(\"dropdown-menu\") ])([ Halogen_HTML_Elements.div([ HalogenUtils.classString(\"dropdown-item\") ])([ Halogen_HTML_Elements.button([ Halogen_HTML_Properties.title(\"Toggle normalization for tabs on or off\"), Halogen_HTML_Events.onClick(function (v) {\n return AppActions.ToggleTabNormalization.value;\n }) ])([ (function () {\n var $120 = Cache.peek(AppState[\"_tabNormalizationEnabled\"])(state);\n if ($120) {\n return HalogenUtils.fontAwesome(\"fa-toggle-on\");\n };\n return HalogenUtils.fontAwesome(\"fa-toggle-off\");\n })() ]), Halogen_HTML_Elements.div_([ Halogen_HTML_Core.text(\"Normalize tabs\") ]) ]), Halogen_HTML_Elements.div([ HalogenUtils.classString(\"dropdown-item\") ])([ (function () {\n var $121 = Cache.peek(AppState[\"_ignoreDozenalization\"])(state);\n if ($121) {\n return Halogen_HTML_Elements.button([ Halogen_HTML_Properties.title(\"Tablature is already dozenal\"), HalogenUtils.classString(\"disabled\") ])([ HalogenUtils.fontAwesome(\"fa-toggle-off\") ]);\n };\n return Halogen_HTML_Elements.button([ Halogen_HTML_Properties.title(\"Toggle decimal to dozenal conversion for tabs on or off\"), Halogen_HTML_Events.onClick(function (v) {\n return AppActions.ToggleTabDozenalization.value;\n }) ])([ (function () {\n var $122 = Cache.peek(AppState[\"_tabDozenalizationEnabled\"])(state);\n if ($122) {\n return HalogenUtils.fontAwesome(\"fa-toggle-on\");\n };\n return HalogenUtils.fontAwesome(\"fa-toggle-off\");\n })() ]);\n })(), Halogen_HTML_Elements.div_([ Halogen_HTML_Core.text(\"Dozenalize tabs\") ]) ]), Halogen_HTML_Elements.div([ HalogenUtils.classString(\"dropdown-item\") ])([ Halogen_HTML_Elements.button([ Halogen_HTML_Properties.title(\"Toggle normalization for chords on or off\"), Halogen_HTML_Events.onClick(function (v) {\n return AppActions.ToggleChordNormalization.value;\n }) ])([ (function () {\n var $123 = Cache.peek(AppState[\"_chordNormalizationEnabled\"])(state);\n if ($123) {\n return HalogenUtils.fontAwesome(\"fa-toggle-on\");\n };\n return HalogenUtils.fontAwesome(\"fa-toggle-off\");\n })() ]), Halogen_HTML_Elements.div_([ Halogen_HTML_Core.text(\"Normalize chords\") ]) ]), Halogen_HTML_Elements.div([ HalogenUtils.classString(\"dropdown-item\") ])([ (function () {\n var $124 = Cache.peek(AppState[\"_ignoreDozenalization\"])(state);\n if ($124) {\n return Halogen_HTML_Elements.button([ Halogen_HTML_Properties.title(\"Tablature is already dozenal\"), HalogenUtils.classString(\"disabled\") ])([ HalogenUtils.fontAwesome(\"fa-toggle-off\") ]);\n };\n return Halogen_HTML_Elements.button([ Halogen_HTML_Properties.title(\"Toggle decimal to dozenal conversion for chords on or off\"), Halogen_HTML_Events.onClick(function (v) {\n return AppActions.ToggleChordDozenalization.value;\n }) ])([ (function () {\n var $125 = Cache.peek(AppState[\"_chordDozenalizationEnabled\"])(state);\n if ($125) {\n return HalogenUtils.fontAwesome(\"fa-toggle-on\");\n };\n return HalogenUtils.fontAwesome(\"fa-toggle-off\");\n })() ]);\n })(), Halogen_HTML_Elements.div_([ Halogen_HTML_Core.text(\" Dozenalize chords\") ]) ]), Halogen_HTML_Elements.div([ Halogen_HTML_Properties.title(\"Transpose the tablature\"), HalogenUtils.classString(\"dropdown-item\") ])([ Halogen_HTML_Elements.button([ Halogen_HTML_Properties.title(\"Transpose down\"), Halogen_HTML_Events.onClick(function (v) {\n return AppActions.DecreaseTransposition.value;\n }) ])([ HalogenUtils.fontAwesome(\"fa-caret-down\") ]), Halogen_HTML_Elements.button([ Halogen_HTML_Properties.title(\"Transpose up\"), Halogen_HTML_Events.onClick(function (v) {\n return AppActions.IncreaseTransposition.value;\n }) ])([ HalogenUtils.fontAwesome(\"fa-caret-up\") ]), Halogen_HTML_Elements.div_([ Halogen_HTML_Core.text(\"Transpose \" + show((Cache.peek(AppState[\"_urlParams\"])(state)).transposition)) ]) ]), Halogen_HTML_Elements.div([ Halogen_HTML_Properties.title(\"Preferred note orientation\"), HalogenUtils.classString(\"dropdown-item\") ])((function () {\n var noteOrientation = (Cache.peek(AppState[\"_urlParams\"])(state)).noteOrientation;\n return [ Halogen_HTML_Elements.button([ Halogen_HTML_Properties.title(\"default\"), Halogen_HTML_Events.onClick(function (v) {\n return AppActions.DefaultNoteOrientation.value;\n }), (function () {\n var $126 = eq(noteOrientation)(TablatureRewriter.Default.value);\n if ($126) {\n return HalogenUtils.classString(\"selected\");\n };\n return HalogenUtils.classString(\"\");\n })() ])([ Halogen_HTML_Core.text(\"default\") ]), Halogen_HTML_Elements.button([ Halogen_HTML_Properties.title(\"Prefer flat\"), Halogen_HTML_Events.onClick(function (v) {\n return AppActions.FlatNoteOrientation.value;\n }), (function () {\n var $127 = eq(noteOrientation)(TablatureRewriter.Flat.value);\n if ($127) {\n return HalogenUtils.classString(\"selected\");\n };\n return HalogenUtils.classString(\"\");\n })() ])([ Halogen_HTML_Core.text(\"flat\") ]), Halogen_HTML_Elements.button([ Halogen_HTML_Properties.title(\"Prefer sharp\"), Halogen_HTML_Events.onClick(function (v) {\n return AppActions.SharpNoteOrientation.value;\n }), (function () {\n var $128 = eq(noteOrientation)(TablatureRewriter.Sharp.value);\n if ($128) {\n return HalogenUtils.classString(\"selected\");\n };\n return HalogenUtils.classString(\"\");\n })() ])([ Halogen_HTML_Core.text(\"sharp\") ]), Halogen_HTML_Elements.div_([ Halogen_HTML_Core.text(\"Note orientation\") ]) ];\n })()), Halogen_HTML_Elements.div([ Halogen_HTML_Properties.title(\"Change the autoscroll speed\"), HalogenUtils.classString(\"dropdown-item\") ])([ Halogen_HTML_Elements.button([ Halogen_HTML_Properties.title(\"Decrease the autoscroll speed\"), Halogen_HTML_Events.onClick(function (v) {\n return AppActions.DecreaseAutoscrollSpeed.value;\n }) ])([ HalogenUtils.fontAwesome(\"fa-backward\") ]), Halogen_HTML_Elements.button([ Halogen_HTML_Properties.title(\"Increase the autoscroll speed\"), Halogen_HTML_Events.onClick(function (v) {\n return AppActions.IncreaseAutoscrollSpeed.value;\n }) ])([ HalogenUtils.fontAwesome(\"fa-forward\") ]), Halogen_HTML_Elements.div_([ Halogen_HTML_Core.text(\"Autoscroll speed \" + print(Data_Lens_Getter.view(_autoscrollSpeed)(state))) ]) ]) ]);\n var renderTitle = Halogen_HTML_Elements.div([ HalogenUtils.classString(\"title largeViewport\") ])([ Halogen_HTML_Elements.a([ Halogen_HTML_Properties.href(\"https://github.com/tablature-viewer/tablature-viewer.github.io\"), Halogen_HTML_Properties.target(\"_blank\") ])([ Halogen_HTML_Elements.h1_([ Halogen_HTML_Core.text(\"Tablature Viewer\") ]) ]) ]);\n var renderTablature = fromFoldable(TablatureRenderer.renderTablatureDocument(Cache.peek(AppState[\"_rewriteResult\"])(state)));\n var renderSearchResult = function (searchResult) {\n return Halogen_HTML_Elements.tr([ Halogen_HTML_Events.onClick(function (v) {\n return new AppActions.ImportFromUrl(searchResult.url);\n }), Halogen_HTML_Events.onKeyDown(function (e) {\n var $129 = Web_UIEvent_KeyboardEvent.key(e) === \"Enter\" || Web_UIEvent_KeyboardEvent.key(e) === \" \";\n if ($129) {\n return new AppActions.ImportFromUrl(searchResult.url);\n };\n return AppActions.NoAction.value;\n }), Halogen_HTML_Properties.tabIndex(0) ])([ Halogen_HTML_Elements.td([ ])([ Halogen_HTML_Core.text(searchResult.name) ]), Halogen_HTML_Elements.td([ ])([ Halogen_HTML_Core.text(searchResult.artist) ]), Halogen_HTML_Elements.td([ ])([ Halogen_HTML_Core.text(Data_Maybe.fromMaybe(\"\")(mapFlipped(searchResult.rating)(Data_Number_Format.toStringWith(Data_Number_Format.precision(3))))) ]), Halogen_HTML_Elements.td([ ])([ Halogen_HTML_Core.text(Data_Maybe.fromMaybe(\"\")(searchResult.contentType)) ]) ]);\n };\n var renderSearchResults = Halogen_HTML_Elements.div([ HalogenUtils.classString(\"searchResults\") ])([ (function () {\n var v = Data_Lens_Getter.view(_searchResults)(state);\n if (v instanceof Data_Maybe.Nothing) {\n return Halogen_HTML_Elements.span([ ])([ Halogen_HTML_Core.text(\"Type something in the search bar\") ]);\n };\n if (v instanceof Data_Maybe.Just && v.value0.length === 0) {\n return Halogen_HTML_Elements.span([ ])([ Halogen_HTML_Core.text(\"No search results\") ]);\n };\n if (v instanceof Data_Maybe.Just) {\n return Halogen_HTML_Elements.table([ ])(append1([ Halogen_HTML_Elements.th([ ])([ Halogen_HTML_Core.text(\"Song\") ]), Halogen_HTML_Elements.th([ ])([ Halogen_HTML_Core.text(\"Artist\") ]), Halogen_HTML_Elements.th([ ])([ Halogen_HTML_Core.text(\"Rating\") ]), Halogen_HTML_Elements.th([ ])([ Halogen_HTML_Core.text(\"Type\") ]) ])(mapFlipped1(v.value0)(renderSearchResult)));\n };\n throw new Error(\"Failed pattern match at AppHtml (line 98, column 7 - line 107, column 12): \" + [ v.constructor.name ]);\n })() ]);\n var renderSearchBar = Halogen_HTML_Elements.input([ Halogen_HTML_Properties.ref(refTablatureSearchInput), Halogen_HTML_Events.onValueChange(AppActions.SearchInput.create), HalogenUtils.classString(\"searchBar\") ]);\n var renderLoadingIcon = Halogen_HTML_Elements.div([ HalogenUtils.classString(\"loadingIcon lds-ellipsis\") ])((function () {\n var $133 = Data_Lens_Getter.view(_loading)(state);\n if ($133) {\n return [ Halogen_HTML_Elements.div_([ ]), Halogen_HTML_Elements.div_([ ]), Halogen_HTML_Elements.div_([ ]), Halogen_HTML_Elements.div_([ ]) ];\n };\n return [ ];\n })());\n var renderFileMenu = Halogen_HTML_Elements.div([ HalogenUtils.classString(\"dropdown-menu\") ])([ Halogen_HTML_Elements.div([ HalogenUtils.classString((function () {\n var $134 = notEq(Data_Lens_Getter.view(_mode)(state))(AppState.ViewMode.value);\n if ($134) {\n return \"hidden\";\n };\n return \"dropdown-item\";\n })()) ])([ Halogen_HTML_Elements.button([ Halogen_HTML_Properties.title(toggleButtonTitle), Halogen_HTML_Events.onClick(function (v) {\n return AppActions.ToggleEditMode.value;\n }) ])([ HalogenUtils.fontAwesome(\"fa-edit\") ]), Halogen_HTML_Elements.div_([ Halogen_HTML_Core.text(\"Edit tablature\") ]) ]), Halogen_HTML_Elements.div([ HalogenUtils.classString(\"dropdown-item\") ])([ Halogen_HTML_Elements.a([ Halogen_HTML_Properties.href(\"./\"), Halogen_HTML_Properties.target(\"_blank\"), Halogen_HTML_Properties.tabIndex(-1 | 0) ])([ Halogen_HTML_Elements.button([ Halogen_HTML_Properties.title(\"Open an empty tablature in a new browser tab\") ])([ HalogenUtils.fontAwesome(\"fa-plus\") ]) ]), Halogen_HTML_Elements.div_([ Halogen_HTML_Core.text(\"New tablature\") ]) ]), Halogen_HTML_Elements.div([ HalogenUtils.classString(\"dropdown-item\") ])([ Halogen_HTML_Elements.button([ Halogen_HTML_Properties.title(\"Create a short link to the tablature for sharing with other people\"), Halogen_HTML_Events.onClick(function (v) {\n return AppActions.CreateShortUrl.value;\n }) ])([ HalogenUtils.fontAwesome(\"fa-share\") ]), Halogen_HTML_Elements.div_([ Halogen_HTML_Core.text(\"Share tablature\") ]) ]) ]);\n var renderControls = Halogen_HTML_Elements.div([ HalogenUtils.classString(\"controls\") ])([ Halogen_HTML_Elements.div([ HalogenUtils.classString((function () {\n var $135 = notEq(Data_Lens_Getter.view(_mode)(state))(AppState.ViewMode.value);\n if ($135) {\n return \"hidden\";\n };\n return \"dropdown-container\";\n })()) ])([ Halogen_HTML_Elements.button([ Halogen_HTML_Properties.title(\"File\"), Halogen_HTML_Events.onClick(function (v) {\n return AppActions.ClickFileMenu.value;\n }), HalogenUtils.classString(\"header-button dropdown-header\"), (function () {\n var $136 = notEq1(Data_Lens_Getter.view(_activeMenu)(state))(AppState.FileMenu.value);\n if ($136) {\n return HalogenUtils.classString(\"header-button dropdown-header\");\n };\n return HalogenUtils.classString(\"header-button dropdown-header selected\");\n })() ])([ HalogenUtils.fontAwesome(\"fa-file\"), HalogenUtils.optionalText(\" File\") ]), (function () {\n var $137 = notEq1(Data_Lens_Getter.view(_activeMenu)(state))(AppState.FileMenu.value);\n if ($137) {\n return Halogen_HTML_Elements.div([ ])([ ]);\n };\n return renderFileMenu;\n })() ]), Halogen_HTML_Elements.button([ Halogen_HTML_Properties.title(toggleButtonTitle), Halogen_HTML_Events.onClick(function (v) {\n return AppActions.ToggleEditMode.value;\n }), HalogenUtils.classString((function () {\n var $138 = notEq(Data_Lens_Getter.view(_mode)(state))(AppState.EditMode.value);\n if ($138) {\n return \"hidden\";\n };\n return \"header-button\";\n })()) ])([ HalogenUtils.fontAwesome(\"fa-save\"), HalogenUtils.optionalText(\" Save\") ]), Halogen_HTML_Elements.div([ HalogenUtils.classString((function () {\n var $139 = notEq(Data_Lens_Getter.view(_mode)(state))(AppState.ViewMode.value);\n if ($139) {\n return \"hidden\";\n };\n return \"dropdown-container\";\n })()) ])([ Halogen_HTML_Elements.button([ Halogen_HTML_Properties.title(\"View\"), Halogen_HTML_Events.onClick(function (v) {\n return AppActions.ClickSettingsMenu.value;\n }), (function () {\n var $140 = notEq1(Data_Lens_Getter.view(_activeMenu)(state))(AppState.SettingsMenu.value);\n if ($140) {\n return HalogenUtils.classString(\"header-button dropdown-header\");\n };\n return HalogenUtils.classString(\"header-button dropdown-header selected\");\n })() ])([ HalogenUtils.fontAwesome(\"fa-wrench\"), HalogenUtils.optionalText(\" View\") ]), (function () {\n var $141 = notEq1(Data_Lens_Getter.view(_activeMenu)(state))(AppState.SettingsMenu.value);\n if ($141) {\n return Halogen_HTML_Elements.div([ ])([ ]);\n };\n return renderViewMenu;\n })() ]), Halogen_HTML_Elements.button([ Halogen_HTML_Properties.title(\"Toggle search mode\"), Halogen_HTML_Events.onClick(function (v) {\n return AppActions.ToggleSearch.value;\n }), HalogenUtils.classString(\"header-button\") ])([ (function () {\n var $142 = eq2(Data_Lens_Getter.view(_mode)(state))(AppState.SearchMode.value);\n if ($142) {\n return HalogenUtils.fontAwesome(\"fa-chevron-left\");\n };\n return HalogenUtils.fontAwesome(\"fa-search\");\n })(), (function () {\n var $143 = eq2(Data_Lens_Getter.view(_mode)(state))(AppState.SearchMode.value);\n if ($143) {\n return HalogenUtils.optionalText(\" Exit Search\");\n };\n return HalogenUtils.optionalText(\" Search\");\n })() ]), Halogen_HTML_Elements.button([ Halogen_HTML_Properties.title(\"Toggle autoscrolling\"), Halogen_HTML_Events.onClick(function (v) {\n return AppActions.ToggleAutoscroll.value;\n }), HalogenUtils.classString((function () {\n var $144 = notEq(Data_Lens_Getter.view(_mode)(state))(AppState.ViewMode.value);\n if ($144) {\n return \"hidden\";\n };\n return \"header-button\";\n })()) ])((function () {\n var $145 = Data_Lens_Getter.view(_autoscroll)(state);\n if ($145) {\n return [ HalogenUtils.fontAwesome(\"fa-stop\"), HalogenUtils.optionalText(\" Autoscroll\") ];\n };\n return [ HalogenUtils.fontAwesome(\"fa-play\"), HalogenUtils.optionalText(\" Autoscroll\") ];\n })()), Halogen_HTML_Elements.a([ Halogen_HTML_Properties.href(\"https://github.com/tablature-viewer/tablature-viewer.github.io\"), Halogen_HTML_Properties.target(\"_blank\"), Halogen_HTML_Properties.tabIndex(-1 | 0), HalogenUtils.classString(\"header-button\") ])([ Halogen_HTML_Elements.button([ Halogen_HTML_Properties.title(\"Open the README in a new browser tab\") ])([ HalogenUtils.fontAwesome(\"fa-question\"), HalogenUtils.optionalText(\" Readme\") ]) ]) ]);\n var renderHeader = Halogen_HTML_Elements.div([ HalogenUtils.classString(\"header\") ])([ renderTitle, renderControls, renderLoadingIcon ]);\n var clickNoMenuEvent = (function () {\n var $146 = notEq1(Data_Lens_Getter.view(_activeMenu)(state))(AppState.NoMenu.value);\n if ($146) {\n return [ Halogen_HTML_Events.onClick(function (v) {\n return AppActions.ClickNoMenu.value;\n }) ];\n };\n return [ ];\n })();\n var renderBody = (function () {\n var v = Data_Lens_Getter.view(_mode)(state);\n if (v instanceof AppState.ViewMode) {\n return Halogen_HTML_Elements.div(append1([ HalogenUtils.classString(\"tablatureViewer tablature\"), Halogen_HTML_Properties.ref(refTablatureViewer), Halogen_HTML_Properties.tabIndex(1) ])(clickNoMenuEvent))([ Halogen_HTML_Elements.pre_(renderTablature) ]);\n };\n if (v instanceof AppState.EditMode) {\n return Halogen_HTML_Elements.textarea(append1([ Halogen_HTML_Properties.ref(refTablatureEditor), Halogen_HTML_Properties.tabIndex(1), HalogenUtils.classString(\"tablatureEditor\"), Halogen_HTML_Properties.placeholder(\"Paste your plaintext tablature or chord sheet here, click 'Save' and bookmark it\"), Halogen_HTML_Properties.spellcheck(false) ])(clickNoMenuEvent));\n };\n if (v instanceof AppState.SearchMode) {\n return Halogen_HTML_Elements.div(append1([ HalogenUtils.classString(\"tablatureSearch\"), Halogen_HTML_Properties.tabIndex(1) ])(clickNoMenuEvent))([ renderSearchBar, renderSearchResults ]);\n };\n throw new Error(\"Failed pattern match at AppHtml (line 63, column 16 - line 88, column 49): \" + [ v.constructor.name ]);\n })();\n return Halogen_HTML_Elements.div_([ Halogen_HTML_Elements.div([ HalogenUtils.classString(\"app\") ])([ renderHeader, renderBody ]), Halogen_HTML_Elements.div([ HalogenUtils.classString(\"tablaturePrinter tablature\") ])([ Halogen_HTML_Elements.pre_(renderTablature) ]) ]);\n};\nvar getTablatureEditorElement = function (dictMonadEffect) {\n return mapFlipped2(Halogen_Query.getHTMLElementRef(refTablatureEditor))(function (maybeHtmlElement) {\n return bind(maybeHtmlElement)(Web_HTML_HTMLTextAreaElement.fromHTMLElement);\n });\n};\nvar getTablatureTextFromEditor = function (dictMonadEffect) {\n var liftEffect = Effect_Class.liftEffect(Halogen_Query_HalogenM.monadEffectHalogenM(dictMonadEffect));\n return bind1(getTablatureEditorElement(dictMonadEffect))(function (maybeTextArea) {\n if (maybeTextArea instanceof Data_Maybe.Nothing) {\n return liftEffect(applySecond(Effect_Console.error(\"Could not find textareaTablature\"))(pure(\"\")));\n };\n if (maybeTextArea instanceof Data_Maybe.Just) {\n return liftEffect(Web_HTML_HTMLTextAreaElement.value(maybeTextArea.value0));\n };\n throw new Error(\"Failed pattern match at AppHtml (line 369, column 3 - line 371, column 72): \" + [ maybeTextArea.constructor.name ]);\n });\n};\nvar setTablatureTextInEditor = function (dictMonadEffect) {\n var getTablatureEditorElement1 = getTablatureEditorElement(dictMonadEffect);\n var liftEffect = Effect_Class.liftEffect(Halogen_Query_HalogenM.monadEffectHalogenM(dictMonadEffect));\n return function (text) {\n return bind1(getTablatureEditorElement1)(function (maybeTextArea) {\n if (maybeTextArea instanceof Data_Maybe.Nothing) {\n return liftEffect(applySecond(Effect_Console.error(\"Could not find textareaTablature to set text\"))(pure(Data_Unit.unit)));\n };\n if (maybeTextArea instanceof Data_Maybe.Just) {\n return liftEffect(Web_HTML_HTMLTextAreaElement.setValue(text)(maybeTextArea.value0));\n };\n throw new Error(\"Failed pattern match at AppHtml (line 419, column 3 - line 421, column 80): \" + [ maybeTextArea.constructor.name ]);\n });\n };\n};\nvar getTablatureContainerHtmlElement = function (dictMonadEffect) {\n return bind1(viewState(function (dictStrong) {\n return AppState[\"_mode\"](dictStrong);\n }))(function (mode) {\n if (mode instanceof AppState.EditMode) {\n return Halogen_Query.getHTMLElementRef(refTablatureEditor);\n };\n if (mode instanceof AppState.ViewMode) {\n return Halogen_Query.getHTMLElementRef(refTablatureViewer);\n };\n if (mode instanceof AppState.SearchMode) {\n return pure1(Data_Maybe.Nothing.value);\n };\n throw new Error(\"Failed pattern match at AppHtml (line 376, column 3 - line 379, column 31): \" + [ mode.constructor.name ]);\n });\n};\nvar getTablatureContainerElement = function (dictMonadEffect) {\n return mapFlipped2(getTablatureContainerHtmlElement(dictMonadEffect))(map(Web_HTML_HTMLElement.toElement));\n};\nvar loadScrollTop = function (dictMonadEffect) {\n var liftEffect = Effect_Class.liftEffect(Halogen_Query_HalogenM.monadEffectHalogenM(dictMonadEffect));\n return bind1(getTablatureContainerElement(dictMonadEffect))(function (maybeTablatureContainerElem) {\n if (maybeTablatureContainerElem instanceof Data_Maybe.Nothing) {\n return liftEffect(Effect_Console.error(\"Could not find tablatureContainer to load scroll top\"));\n };\n if (maybeTablatureContainerElem instanceof Data_Maybe.Just) {\n return bind1(viewState(function (dictStrong) {\n return AppState[\"_scrollTop\"](dictStrong);\n }))(function (scrollTop) {\n return liftEffect(Web_DOM_Element.setScrollTop(scrollTop)(maybeTablatureContainerElem.value0));\n });\n };\n throw new Error(\"Failed pattern match at AppHtml (line 396, column 3 - line 400, column 65): \" + [ maybeTablatureContainerElem.constructor.name ]);\n });\n};\nvar saveScrollTop = function (dictMonadEffect) {\n var liftEffect = Effect_Class.liftEffect(Halogen_Query_HalogenM.monadEffectHalogenM(dictMonadEffect));\n return bind1(getTablatureContainerElement(dictMonadEffect))(function (maybeTablatureContainerElem) {\n if (maybeTablatureContainerElem instanceof Data_Maybe.Nothing) {\n return liftEffect(Effect_Console.error(\"Could not find tablatureContainer to save scroll top\"));\n };\n if (maybeTablatureContainerElem instanceof Data_Maybe.Just) {\n return bind1(liftEffect(Web_DOM_Element.scrollTop(maybeTablatureContainerElem.value0)))(function (newScrollTop) {\n return setState(function (dictStrong) {\n return AppState[\"_scrollTop\"](dictStrong);\n })(newScrollTop);\n });\n };\n throw new Error(\"Failed pattern match at AppHtml (line 387, column 3 - line 391, column 39): \" + [ maybeTablatureContainerElem.constructor.name ]);\n });\n};\nvar getSearchInputHtmlElement = function (dictMonadEffect) {\n return Halogen_Query.getHTMLElementRef(refTablatureSearchInput);\n};\nvar getSearchInputElement = function (dictMonadEffect) {\n return mapFlipped2(getSearchInputHtmlElement(dictMonadEffect))(function (maybeHtmlElement) {\n return bind(maybeHtmlElement)(Web_HTML_HTMLInputElement.fromHTMLElement);\n });\n};\nvar focusTablatureContainer = function (dictMonadEffect) {\n var liftEffect = Effect_Class.liftEffect(Halogen_Query_HalogenM.monadEffectHalogenM(dictMonadEffect));\n return bind1(getTablatureContainerHtmlElement(dictMonadEffect))(function (maybeTablatureContainerElem) {\n if (maybeTablatureContainerElem instanceof Data_Maybe.Nothing) {\n return liftEffect(Effect_Console.error(\"Could not find tablatureContainer to focus\"));\n };\n if (maybeTablatureContainerElem instanceof Data_Maybe.Just) {\n return liftEffect(Web_HTML_HTMLElement.focus(maybeTablatureContainerElem.value0));\n };\n throw new Error(\"Failed pattern match at AppHtml (line 412, column 3 - line 414, column 77): \" + [ maybeTablatureContainerElem.constructor.name ]);\n });\n};\nvar focusSearchInput = function (dictMonadEffect) {\n var liftEffect = Effect_Class.liftEffect(Halogen_Query_HalogenM.monadEffectHalogenM(dictMonadEffect));\n return bind1(getSearchInputHtmlElement(dictMonadEffect))(function (maybeSearchInputElement) {\n if (maybeSearchInputElement instanceof Data_Maybe.Nothing) {\n return liftEffect(Effect_Console.error(\"Could not find search element to focus\"));\n };\n if (maybeSearchInputElement instanceof Data_Maybe.Just) {\n return liftEffect(Web_HTML_HTMLElement.focus(maybeSearchInputElement.value0));\n };\n throw new Error(\"Failed pattern match at AppHtml (line 405, column 3 - line 407, column 69): \" + [ maybeSearchInputElement.constructor.name ]);\n });\n};\nexport {\n refTablatureEditor,\n refTablatureViewer,\n refTablatureSearchInput,\n render,\n getSearchInputHtmlElement,\n getSearchInputElement,\n getTablatureEditorElement,\n getTablatureTextFromEditor,\n getTablatureContainerHtmlElement,\n getTablatureContainerElement,\n saveScrollTop,\n loadScrollTop,\n focusSearchInput,\n focusTablatureContainer,\n setTablatureTextInEditor,\n stopAutoscroll,\n startAutoscrollOnElement\n};\n","'use strict';\n\nfunction scrollBy(x) {\n return function (y) {\n return function (elt) {\n return function () {\n elt.scrollBy({\n top: y,\n left: x,\n behavior: 'instant'\n });\n };\n };\n };\n};\n\nexport { scrollBy }\n","const windowImpl = function () {\n return window;\n};\nexport { windowImpl as window };\n","// Generated by purs version 0.15.7\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Ordering from \"../Data.Ordering/index.js\";\nvar Loading = /* #__PURE__ */ (function () {\n function Loading() {\n\n };\n Loading.value = new Loading();\n return Loading;\n})();\nvar Interactive = /* #__PURE__ */ (function () {\n function Interactive() {\n\n };\n Interactive.value = new Interactive();\n return Interactive;\n})();\nvar Complete = /* #__PURE__ */ (function () {\n function Complete() {\n\n };\n Complete.value = new Complete();\n return Complete;\n})();\nvar showReadyState = {\n show: function (v) {\n if (v instanceof Loading) {\n return \"Loading\";\n };\n if (v instanceof Interactive) {\n return \"Interactive\";\n };\n if (v instanceof Complete) {\n return \"Complete\";\n };\n throw new Error(\"Failed pattern match at Web.HTML.HTMLDocument.ReadyState (line 15, column 10 - line 18, column 27): \" + [ v.constructor.name ]);\n }\n};\nvar print = function (v) {\n if (v instanceof Loading) {\n return \"loading\";\n };\n if (v instanceof Interactive) {\n return \"interactive\";\n };\n if (v instanceof Complete) {\n return \"complete\";\n };\n throw new Error(\"Failed pattern match at Web.HTML.HTMLDocument.ReadyState (line 21, column 9 - line 24, column 25): \" + [ v.constructor.name ]);\n};\nvar parse = function (v) {\n if (v === \"loading\") {\n return new Data_Maybe.Just(Loading.value);\n };\n if (v === \"interactive\") {\n return new Data_Maybe.Just(Interactive.value);\n };\n if (v === \"complete\") {\n return new Data_Maybe.Just(Complete.value);\n };\n return Data_Maybe.Nothing.value;\n};\nvar eqReadyState = {\n eq: function (x) {\n return function (y) {\n if (x instanceof Loading && y instanceof Loading) {\n return true;\n };\n if (x instanceof Interactive && y instanceof Interactive) {\n return true;\n };\n if (x instanceof Complete && y instanceof Complete) {\n return true;\n };\n return false;\n };\n }\n};\nvar ordReadyState = {\n compare: function (x) {\n return function (y) {\n if (x instanceof Loading && y instanceof Loading) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof Loading) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof Loading) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof Interactive && y instanceof Interactive) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof Interactive) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof Interactive) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof Complete && y instanceof Complete) {\n return Data_Ordering.EQ.value;\n };\n throw new Error(\"Failed pattern match at Web.HTML.HTMLDocument.ReadyState (line 0, column 0 - line 0, column 0): \" + [ x.constructor.name, y.constructor.name ]);\n };\n },\n Eq0: function () {\n return eqReadyState;\n }\n};\nexport {\n Loading,\n Interactive,\n Complete,\n print,\n parse,\n eqReadyState,\n ordReadyState,\n showReadyState\n};\n","// Generated by purs version 0.15.7\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Nullable from \"../Data.Nullable/index.js\";\nimport * as Effect from \"../Effect/index.js\";\nimport * as Unsafe_Coerce from \"../Unsafe.Coerce/index.js\";\nimport * as Web_HTML_HTMLDocument_ReadyState from \"../Web.HTML.HTMLDocument.ReadyState/index.js\";\nimport * as Web_Internal_FFI from \"../Web.Internal.FFI/index.js\";\nvar map = /* #__PURE__ */ Data_Functor.map(Effect.functorEffect);\nvar toParentNode = Unsafe_Coerce.unsafeCoerce;\nvar toNonElementParentNode = Unsafe_Coerce.unsafeCoerce;\nvar toNode = Unsafe_Coerce.unsafeCoerce;\nvar toEventTarget = Unsafe_Coerce.unsafeCoerce;\nvar toDocument = Unsafe_Coerce.unsafeCoerce;\nvar readyState = /* #__PURE__ */ (function () {\n var $2 = map((function () {\n var $4 = Data_Maybe.fromMaybe(Web_HTML_HTMLDocument_ReadyState.Loading.value);\n return function ($5) {\n return $4(Web_HTML_HTMLDocument_ReadyState.parse($5));\n };\n })());\n return function ($3) {\n return $2($foreign[\"_readyState\"]($3));\n };\n})();\nvar head = /* #__PURE__ */ (function () {\n var $6 = map(Data_Nullable.toMaybe);\n return function ($7) {\n return $6($foreign[\"_head\"]($7));\n };\n})();\nvar fromParentNode = /* #__PURE__ */ Web_Internal_FFI.unsafeReadProtoTagged(\"HTMLDocument\");\nvar fromNonElementParentNode = /* #__PURE__ */ Web_Internal_FFI.unsafeReadProtoTagged(\"HTMLDocument\");\nvar fromNode = /* #__PURE__ */ Web_Internal_FFI.unsafeReadProtoTagged(\"HTMLDocument\");\nvar fromEventTarget = /* #__PURE__ */ Web_Internal_FFI.unsafeReadProtoTagged(\"HTMLDocument\");\nvar fromDocument = /* #__PURE__ */ Web_Internal_FFI.unsafeReadProtoTagged(\"HTMLDocument\");\nvar documentElement = /* #__PURE__ */ (function () {\n var $8 = map(Data_Nullable.toMaybe);\n return function ($9) {\n return $8($foreign[\"_documentElement\"]($9));\n };\n})();\nvar currentScript = /* #__PURE__ */ (function () {\n var $10 = map(Data_Nullable.toMaybe);\n return function ($11) {\n return $10($foreign[\"_currentScript\"]($11));\n };\n})();\nvar body = /* #__PURE__ */ (function () {\n var $12 = map(Data_Nullable.toMaybe);\n return function ($13) {\n return $12($foreign[\"_body\"]($13));\n };\n})();\nvar activeElement = /* #__PURE__ */ (function () {\n var $14 = map(Data_Nullable.toMaybe);\n return function ($15) {\n return $14($foreign[\"_activeElement\"]($15));\n };\n})();\nexport {\n referrer,\n title,\n setTitle\n} from \"./foreign.js\";\nexport {\n fromDocument,\n fromNode,\n fromParentNode,\n fromNonElementParentNode,\n fromEventTarget,\n toDocument,\n toNode,\n toParentNode,\n toNonElementParentNode,\n toEventTarget,\n documentElement,\n head,\n body,\n readyState,\n activeElement,\n currentScript\n};\n","export function _documentElement(doc) {\n return function () {\n return doc.documentElement;\n };\n}\n\nexport function _head(doc) {\n return function () {\n return doc.head;\n };\n}\n\nexport function _body(doc) {\n return function () {\n return doc.body;\n };\n}\n\nexport function _readyState(doc) {\n return function () {\n return doc.readyState;\n };\n}\n\nexport function _activeElement(doc) {\n return function () {\n return doc.activeElement;\n };\n}\n\nexport function _currentScript(doc) {\n return function () {\n return doc.currentScript;\n };\n}\n\nexport function referrer(doc) {\n return function () {\n return doc.referrer;\n };\n}\n\nexport function title(doc) {\n return function () {\n return doc.title;\n };\n}\n\nexport function setTitle(title) {\n return function (doc) {\n return function () {\n doc.title = title;\n };\n };\n}\n","export function document(window) {\n return function () {\n return window.document;\n };\n}\n\nexport function navigator(window) {\n return function () {\n return window.navigator;\n };\n}\n\nexport function location(window) {\n return function () {\n return window.location;\n };\n}\n\nexport function history(window) {\n return function() {\n return window.history;\n };\n}\n\nexport function innerWidth(window) {\n return function () {\n return window.innerWidth;\n };\n}\n\nexport function innerHeight(window) {\n return function () {\n return window.innerHeight;\n };\n}\n\nexport function alert(str) {\n return function (window) {\n return function () {\n window.alert(str);\n };\n };\n}\n\nexport function confirm(str) {\n return function (window) {\n return function () {\n return window.confirm(str);\n };\n };\n}\n\nexport function moveBy(xDelta) {\n return function (yDelta) {\n return function (window) {\n return function () {\n window.moveBy(xDelta, yDelta);\n };\n };\n };\n}\n\nexport function moveTo(width) {\n return function (height) {\n return function (window) {\n return function () {\n window.moveTo(width, height);\n };\n };\n };\n}\n\nexport function _open(url) {\n return function (name) {\n return function (features) {\n return function (window) {\n return function () {\n return window.open(url, name, features);\n };\n };\n };\n };\n}\n\nexport function outerHeight(window) {\n return function () {\n return window.outerHeight;\n };\n}\n\nexport function outerWidth(window) {\n return function () {\n return window.outerWidth;\n };\n}\n\nexport function print(window) {\n return function () {\n window.print();\n };\n}\n\nexport function _prompt(str) {\n return function (defaultText) {\n return function (window) {\n return function () {\n return window.prompt(str, defaultText);\n };\n };\n };\n}\n\nexport function resizeBy(xDelta) {\n return function (yDelta) {\n return function (window) {\n return function () {\n window.resizeBy(xDelta, yDelta);\n };\n };\n };\n}\n\nexport function resizeTo(width) {\n return function (height) {\n return function (window) {\n return function () {\n window.resizeTo(width, height);\n };\n };\n };\n}\n\nexport function screenX(window) {\n return function () {\n return window.screenX;\n };\n}\n\nexport function screenY(window) {\n return function () {\n return window.screenY;\n };\n}\n\nexport function scroll(xCoord) {\n return function (yCoord) {\n return function (window) {\n return function () {\n window.scroll(xCoord, yCoord);\n };\n };\n };\n}\n\nexport function scrollBy(xCoord) {\n return function (yCoord) {\n return function (window) {\n return function () {\n window.scrollBy(xCoord, yCoord);\n };\n };\n };\n}\n\nexport function scrollX(window) {\n return function () {\n return window.scrollX;\n };\n}\n\nexport function scrollY(window) {\n return function () {\n return window.scrollY;\n };\n}\n\nexport function localStorage(window) {\n return function () {\n return window.localStorage;\n };\n}\n\nexport function sessionStorage(window) {\n return function () {\n return window.sessionStorage;\n };\n}\n\nexport function requestAnimationFrame(fn) {\n return function(window) {\n return function() {\n return window.requestAnimationFrame(fn);\n };\n };\n}\n\nexport function cancelAnimationFrame(id) {\n return function(window) {\n return function() {\n return window.cancelAnimationFrame(id);\n };\n };\n}\n\nexport function requestIdleCallback(opts) {\n return function(fn) {\n return function(window) {\n return function() {\n return window.requestIdleCallback(fn, opts);\n };\n };\n };\n}\n\nexport function cancelIdleCallback(id) {\n return function(window) {\n return function() {\n return window.cancelIdleCallback(id);\n };\n };\n}\n\nexport function parent(window) {\n return function() {\n return window.parent;\n };\n}\n\nexport function _opener(window) {\n return function() {\n return window.opener;\n };\n}\n","// Generated by purs version 0.15.7\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Nullable from \"../Data.Nullable/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Effect from \"../Effect/index.js\";\nimport * as Unsafe_Coerce from \"../Unsafe.Coerce/index.js\";\nimport * as Web_Internal_FFI from \"../Web.Internal.FFI/index.js\";\nvar map = /* #__PURE__ */ Data_Functor.map(Effect.functorEffect);\nvar compare = /* #__PURE__ */ Data_Ord.compare(Data_Ord.ordInt);\nvar RequestIdleCallbackId = function (x) {\n return x;\n};\nvar RequestAnimationFrameId = function (x) {\n return x;\n};\nvar toEventTarget = Unsafe_Coerce.unsafeCoerce;\nvar promptDefault = function (msg) {\n return function (defaultText) {\n return function (window) {\n return map(Data_Nullable.toMaybe)($foreign[\"_prompt\"](msg)(defaultText)(window));\n };\n };\n};\nvar prompt = function (msg) {\n return function (window) {\n return map(Data_Nullable.toMaybe)($foreign[\"_prompt\"](msg)(\"\")(window));\n };\n};\nvar opener = function (window) {\n return map(Data_Nullable.toMaybe)($foreign[\"_opener\"](window));\n};\nvar open = function (url$prime) {\n return function (name) {\n return function (features) {\n return function (window) {\n return map(Data_Nullable.toMaybe)($foreign[\"_open\"](url$prime)(name)(features)(window));\n };\n };\n };\n};\nvar fromEventTarget = /* #__PURE__ */ Web_Internal_FFI.unsafeReadProtoTagged(\"Window\");\nvar eqRequestIdleCallbackId = {\n eq: function (x) {\n return function (y) {\n return x === y;\n };\n }\n};\nvar ordRequestIdleCallbackId = {\n compare: function (x) {\n return function (y) {\n return compare(x)(y);\n };\n },\n Eq0: function () {\n return eqRequestIdleCallbackId;\n }\n};\nvar eqRequestAnimationFrameId = {\n eq: function (x) {\n return function (y) {\n return x === y;\n };\n }\n};\nvar ordRequestAnimationFrameId = {\n compare: function (x) {\n return function (y) {\n return compare(x)(y);\n };\n },\n Eq0: function () {\n return eqRequestAnimationFrameId;\n }\n};\nexport {\n document,\n navigator,\n location,\n history,\n innerWidth,\n innerHeight,\n alert,\n confirm,\n moveBy,\n moveTo,\n outerHeight,\n outerWidth,\n print,\n resizeBy,\n resizeTo,\n screenX,\n screenY,\n scroll,\n scrollBy,\n scrollX,\n scrollY,\n localStorage,\n sessionStorage,\n requestAnimationFrame,\n cancelAnimationFrame,\n requestIdleCallback,\n cancelIdleCallback,\n parent\n} from \"./foreign.js\";\nexport {\n toEventTarget,\n fromEventTarget,\n open,\n prompt,\n promptDefault,\n opener,\n eqRequestAnimationFrameId,\n ordRequestAnimationFrameId,\n eqRequestIdleCallbackId,\n ordRequestIdleCallbackId\n};\n","// Generated by purs version 0.15.7\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Control_Monad_Error_Class from \"../Control.Monad.Error.Class/index.js\";\nimport * as Data_Either from \"../Data.Either/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nimport * as Effect from \"../Effect/index.js\";\nimport * as Effect_Aff from \"../Effect.Aff/index.js\";\nimport * as Effect_Class from \"../Effect.Class/index.js\";\nimport * as Effect_Exception from \"../Effect.Exception/index.js\";\nimport * as Web_DOM_ParentNode from \"../Web.DOM.ParentNode/index.js\";\nimport * as Web_Event_EventTarget from \"../Web.Event.EventTarget/index.js\";\nimport * as Web_HTML from \"../Web.HTML/index.js\";\nimport * as Web_HTML_Event_EventTypes from \"../Web.HTML.Event.EventTypes/index.js\";\nimport * as Web_HTML_HTMLDocument from \"../Web.HTML.HTMLDocument/index.js\";\nimport * as Web_HTML_HTMLDocument_ReadyState from \"../Web.HTML.HTMLDocument.ReadyState/index.js\";\nimport * as Web_HTML_HTMLElement from \"../Web.HTML.HTMLElement/index.js\";\nimport * as Web_HTML_Window from \"../Web.HTML.Window/index.js\";\nvar bind = /* #__PURE__ */ Control_Bind.bind(Effect_Aff.bindAff);\nvar liftEffect = /* #__PURE__ */ Effect_Class.liftEffect(Effect_Aff.monadEffectAff);\nvar bindFlipped = /* #__PURE__ */ Control_Bind.bindFlipped(Effect.bindEffect);\nvar composeKleisliFlipped = /* #__PURE__ */ Control_Bind.composeKleisliFlipped(Effect.bindEffect);\nvar pure = /* #__PURE__ */ Control_Applicative.pure(Effect_Aff.applicativeAff);\nvar bindFlipped1 = /* #__PURE__ */ Control_Bind.bindFlipped(Data_Maybe.bindMaybe);\nvar pure1 = /* #__PURE__ */ Control_Applicative.pure(Effect.applicativeEffect);\nvar map = /* #__PURE__ */ Data_Functor.map(Effect.functorEffect);\nvar discard = /* #__PURE__ */ Control_Bind.discard(Control_Bind.discardUnit);\nvar throwError = /* #__PURE__ */ Control_Monad_Error_Class.throwError(Effect_Aff.monadThrowAff);\nvar selectElement = function (query) {\n return bind(liftEffect(bindFlipped(composeKleisliFlipped((function () {\n var $16 = Web_DOM_ParentNode.querySelector(query);\n return function ($17) {\n return $16(Web_HTML_HTMLDocument.toParentNode($17));\n };\n })())(Web_HTML_Window.document))(Web_HTML.window)))(function (mel) {\n return pure(bindFlipped1(Web_HTML_HTMLElement.fromElement)(mel));\n });\n};\nvar runHalogenAff = /* #__PURE__ */ Effect_Aff.runAff_(/* #__PURE__ */ Data_Either.either(Effect_Exception.throwException)(/* #__PURE__ */ Data_Function[\"const\"](/* #__PURE__ */ pure1(Data_Unit.unit))));\nvar awaitLoad = /* #__PURE__ */ Effect_Aff.makeAff(function (callback) {\n return function __do() {\n var rs = bindFlipped(Web_HTML_HTMLDocument.readyState)(bindFlipped(Web_HTML_Window.document)(Web_HTML.window))();\n if (rs instanceof Web_HTML_HTMLDocument_ReadyState.Loading) {\n var et = map(Web_HTML_Window.toEventTarget)(Web_HTML.window)();\n var listener = Web_Event_EventTarget.eventListener(function (v) {\n return callback(new Data_Either.Right(Data_Unit.unit));\n })();\n Web_Event_EventTarget.addEventListener(Web_HTML_Event_EventTypes.domcontentloaded)(listener)(false)(et)();\n return Effect_Aff.effectCanceler(Web_Event_EventTarget.removeEventListener(Web_HTML_Event_EventTypes.domcontentloaded)(listener)(false)(et));\n };\n callback(new Data_Either.Right(Data_Unit.unit))();\n return Effect_Aff.nonCanceler;\n };\n});\nvar awaitBody = /* #__PURE__ */ discard(Effect_Aff.bindAff)(awaitLoad)(function () {\n return bind(selectElement(\"body\"))(function (body) {\n return Data_Maybe.maybe(throwError(Effect_Exception.error(\"Could not find body\")))(pure)(body);\n });\n});\nexport {\n awaitLoad,\n awaitBody,\n selectElement,\n runHalogenAff\n};\n","// Generated by purs version 0.15.7\nimport * as Data_Function_Uncurried from \"../Data.Function.Uncurried/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Halogen_VDom_DOM from \"../Halogen.VDom.DOM/index.js\";\nimport * as Halogen_VDom_Machine from \"../Halogen.VDom.Machine/index.js\";\nimport * as Halogen_VDom_Util from \"../Halogen.VDom.Util/index.js\";\nimport * as Unsafe_Coerce from \"../Unsafe.Coerce/index.js\";\nvar $runtime_lazy = function (name, moduleName, init) {\n var state = 0;\n var val;\n return function (lineNumber) {\n if (state === 2) return val;\n if (state === 1) throw new ReferenceError(name + \" was needed before it finished initializing (module \" + moduleName + \", line \" + lineNumber + \")\", moduleName, lineNumber);\n state = 1;\n val = init();\n state = 2;\n return val;\n };\n};\nvar Thunk = /* #__PURE__ */ (function () {\n function Thunk(value0, value1, value2, value3) {\n this.value0 = value0;\n this.value1 = value1;\n this.value2 = value2;\n this.value3 = value3;\n };\n Thunk.create = function (value0) {\n return function (value1) {\n return function (value2) {\n return function (value3) {\n return new Thunk(value0, value1, value2, value3);\n };\n };\n };\n };\n return Thunk;\n})();\nvar unsafeThunkId = Unsafe_Coerce.unsafeCoerce;\nvar unsafeEqThunk = function (v, v1) {\n return Halogen_VDom_Util.refEq(v.value0, v1.value0) && (Halogen_VDom_Util.refEq(v.value1, v1.value1) && v.value1(v.value3, v1.value3));\n};\nvar thunk = function (tid, eqFn, f, a) {\n return new Thunk(tid, eqFn, f, a);\n};\nvar thunk1 = function (f, a) {\n return thunk(unsafeThunkId(f), Halogen_VDom_Util.refEq, f, a);\n};\nvar thunk2 = /* #__PURE__ */ (function () {\n var eqFn = function (a, b) {\n return Halogen_VDom_Util.refEq(a[\"_1\"], b[\"_1\"]) && Halogen_VDom_Util.refEq(a[\"_2\"], b[\"_2\"]);\n };\n return function (f, a, b) {\n return thunk(unsafeThunkId(f), eqFn, function (v) {\n return f(v[\"_1\"])(v[\"_2\"]);\n }, {\n \"_1\": a,\n \"_2\": b\n });\n };\n})();\nvar thunk3 = /* #__PURE__ */ (function () {\n var eqFn = function (a, b) {\n return Halogen_VDom_Util.refEq(a[\"_1\"], b[\"_1\"]) && (Halogen_VDom_Util.refEq(a[\"_2\"], b[\"_2\"]) && Halogen_VDom_Util.refEq(a[\"_3\"], b[\"_3\"]));\n };\n return function (f, a, b, c) {\n return thunk(unsafeThunkId(f), eqFn, function (v) {\n return f(v[\"_1\"])(v[\"_2\"])(v[\"_3\"]);\n }, {\n \"_1\": a,\n \"_2\": b,\n \"_3\": c\n });\n };\n})();\nvar thunked = function (eqFn) {\n return function (f) {\n var tid = unsafeThunkId({\n f: f\n });\n var eqFn$prime = Data_Function_Uncurried.mkFn2(eqFn);\n return function (a) {\n return thunk(tid, eqFn$prime, f, a);\n };\n };\n};\nvar runThunk = function (v) {\n return v.value2(v.value3);\n};\nvar mapThunk = function (k) {\n return function (v) {\n return new Thunk(v.value0, v.value1, function ($51) {\n return k(v.value2($51));\n }, v.value3);\n };\n};\nvar hoist = mapThunk;\nvar functorThunk = function (dictFunctor) {\n var map = Data_Functor.map(dictFunctor);\n return {\n map: function (f) {\n return function (v) {\n return new Thunk(v.value0, v.value1, (function () {\n var $52 = map(f);\n return function ($53) {\n return $52(v.value2($53));\n };\n })(), v.value3);\n };\n }\n };\n};\nvar buildThunk = function (toVDom) {\n var haltThunk = function (state) {\n return Halogen_VDom_Machine.halt(state.vdom);\n };\n var $lazy_patchThunk = $runtime_lazy(\"patchThunk\", \"Halogen.VDom.Thunk\", function () {\n return function (state, t2) {\n var $48 = unsafeEqThunk(state.thunk, t2);\n if ($48) {\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(Halogen_VDom_Machine.extract(state.vdom), state, $lazy_patchThunk(112), haltThunk));\n };\n var vdom = Halogen_VDom_Machine.step(state.vdom, toVDom(runThunk(t2)));\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(Halogen_VDom_Machine.extract(vdom), {\n vdom: vdom,\n thunk: t2\n }, $lazy_patchThunk(115), haltThunk));\n };\n });\n var patchThunk = $lazy_patchThunk(108);\n var renderThunk = function (spec) {\n return function (t) {\n var vdom = Halogen_VDom_DOM.buildVDom(spec)(toVDom(runThunk(t)));\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(Halogen_VDom_Machine.extract(vdom), {\n thunk: t,\n vdom: vdom\n }, patchThunk, haltThunk));\n };\n };\n return renderThunk;\n};\nexport {\n buildThunk,\n runThunk,\n hoist,\n mapThunk,\n thunked,\n thunk1,\n thunk2,\n thunk3,\n functorThunk\n};\n","// Generated by purs version 0.15.7\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Data_Bifunctor from \"../Data.Bifunctor/index.js\";\nimport * as Data_Coyoneda from \"../Data.Coyoneda/index.js\";\nimport * as Data_Foldable from \"../Data.Foldable/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nimport * as Halogen_Data_Slot from \"../Halogen.Data.Slot/index.js\";\nimport * as Halogen_HTML_Core from \"../Halogen.HTML.Core/index.js\";\nimport * as Halogen_Query_HalogenM from \"../Halogen.Query.HalogenM/index.js\";\nimport * as Halogen_Query_HalogenQ from \"../Halogen.Query.HalogenQ/index.js\";\nimport * as Halogen_VDom_Thunk from \"../Halogen.VDom.Thunk/index.js\";\nimport * as Unsafe_Coerce from \"../Unsafe.Coerce/index.js\";\nvar voidLeft = /* #__PURE__ */ Data_Functor.voidLeft(Halogen_Query_HalogenM.functorHalogenM);\nvar traverse_ = /* #__PURE__ */ Data_Foldable.traverse_(Halogen_Query_HalogenM.applicativeHalogenM)(Data_Foldable.foldableMaybe);\nvar map = /* #__PURE__ */ Data_Functor.map(Halogen_Query_HalogenM.functorHalogenM);\nvar lmap = /* #__PURE__ */ Data_Bifunctor.lmap(Halogen_HTML_Core.bifunctorHTML);\nvar map1 = /* #__PURE__ */ Data_Functor.map(Data_Functor.functorFn);\nvar map2 = /* #__PURE__ */ Data_Functor.map(Data_Maybe.functorMaybe);\nvar bimap = /* #__PURE__ */ Data_Bifunctor.bimap(Halogen_HTML_Core.bifunctorHTML);\nvar pure = /* #__PURE__ */ Control_Applicative.pure(Halogen_Query_HalogenM.applicativeHalogenM);\nvar lookup = /* #__PURE__ */ Halogen_Data_Slot.lookup();\nvar pop = /* #__PURE__ */ Halogen_Data_Slot.pop();\nvar insert = /* #__PURE__ */ Halogen_Data_Slot.insert();\nvar ComponentSlot = /* #__PURE__ */ (function () {\n function ComponentSlot(value0) {\n this.value0 = value0;\n };\n ComponentSlot.create = function (value0) {\n return new ComponentSlot(value0);\n };\n return ComponentSlot;\n})();\nvar ThunkSlot = /* #__PURE__ */ (function () {\n function ThunkSlot(value0) {\n this.value0 = value0;\n };\n ThunkSlot.create = function (value0) {\n return new ThunkSlot(value0);\n };\n return ThunkSlot;\n})();\nvar unComponentSlot = Unsafe_Coerce.unsafeCoerce;\nvar unComponent = Unsafe_Coerce.unsafeCoerce;\nvar mkEval = function (args) {\n return function (v) {\n if (v instanceof Halogen_Query_HalogenQ.Initialize) {\n return voidLeft(traverse_(args.handleAction)(args.initialize))(v.value0);\n };\n if (v instanceof Halogen_Query_HalogenQ.Finalize) {\n return voidLeft(traverse_(args.handleAction)(args.finalize))(v.value0);\n };\n if (v instanceof Halogen_Query_HalogenQ.Receive) {\n return voidLeft(traverse_(args.handleAction)(args.receive(v.value0)))(v.value1);\n };\n if (v instanceof Halogen_Query_HalogenQ.Action) {\n return voidLeft(args.handleAction(v.value0))(v.value1);\n };\n if (v instanceof Halogen_Query_HalogenQ.Query) {\n return Data_Coyoneda.unCoyoneda(function (g) {\n var $45 = map(Data_Maybe.maybe(v.value1(Data_Unit.unit))(g));\n return function ($46) {\n return $45(args.handleQuery($46));\n };\n })(v.value0);\n };\n throw new Error(\"Failed pattern match at Halogen.Component (line 182, column 15 - line 192, column 71): \" + [ v.constructor.name ]);\n };\n};\nvar mkComponentSlot = Unsafe_Coerce.unsafeCoerce;\nvar mkComponent = Unsafe_Coerce.unsafeCoerce;\nvar hoistSlot = function (dictFunctor) {\n return function (nat) {\n return function (v) {\n if (v instanceof ComponentSlot) {\n return unComponentSlot(function (slot) {\n return new ComponentSlot(mkComponentSlot({\n get: slot.get,\n pop: slot.pop,\n set: slot.set,\n component: hoist(dictFunctor)(nat)(slot.component),\n input: slot.input,\n output: slot.output\n }));\n })(v.value0);\n };\n if (v instanceof ThunkSlot) {\n return new ThunkSlot(Halogen_VDom_Thunk.hoist(lmap(hoistSlot(dictFunctor)(nat)))(v.value0));\n };\n throw new Error(\"Failed pattern match at Halogen.Component (line 279, column 17 - line 284, column 53): \" + [ v.constructor.name ]);\n };\n };\n};\nvar hoist = function (dictFunctor) {\n var hoist1 = Halogen_Query_HalogenM.hoist(dictFunctor);\n return function (nat) {\n return unComponent(function (c) {\n return mkComponent({\n initialState: c.initialState,\n render: (function () {\n var $47 = lmap(hoistSlot(dictFunctor)(nat));\n return function ($48) {\n return $47(c.render($48));\n };\n })(),\n \"eval\": (function () {\n var $49 = hoist1(nat);\n return function ($50) {\n return $49(c[\"eval\"]($50));\n };\n })()\n });\n });\n };\n};\nvar functorComponentSlotBox = {\n map: function (f) {\n return unComponentSlot(function (slot) {\n return mkComponentSlot({\n get: slot.get,\n pop: slot.pop,\n set: slot.set,\n component: slot.component,\n input: slot.input,\n output: map1(map2(f))(slot.output)\n });\n });\n }\n};\nvar map3 = /* #__PURE__ */ Data_Functor.map(functorComponentSlotBox);\nvar functorComponentSlot = {\n map: function (f) {\n return function (v) {\n if (v instanceof ComponentSlot) {\n return new ComponentSlot(map3(f)(v.value0));\n };\n if (v instanceof ThunkSlot) {\n return new ThunkSlot(Halogen_VDom_Thunk.mapThunk(bimap(Data_Functor.map(functorComponentSlot)(f))(f))(v.value0));\n };\n throw new Error(\"Failed pattern match at Halogen.Component (line 209, column 11 - line 211, column 74): \" + [ v.constructor.name ]);\n };\n }\n};\nvar defaultEval = /* #__PURE__ */ (function () {\n return {\n handleAction: Data_Function[\"const\"](pure(Data_Unit.unit)),\n handleQuery: Data_Function[\"const\"](pure(Data_Maybe.Nothing.value)),\n receive: Data_Function[\"const\"](Data_Maybe.Nothing.value),\n initialize: Data_Maybe.Nothing.value,\n finalize: Data_Maybe.Nothing.value\n };\n})();\nvar componentSlot = function () {\n return function (dictIsSymbol) {\n var lookup1 = lookup(dictIsSymbol);\n var pop1 = pop(dictIsSymbol);\n var insert1 = insert(dictIsSymbol);\n return function (dictOrd) {\n var lookup2 = lookup1(dictOrd);\n var pop2 = pop1(dictOrd);\n var insert2 = insert1(dictOrd);\n return function (label) {\n return function (p) {\n return function (comp) {\n return function (input) {\n return function (output) {\n return mkComponentSlot({\n get: lookup2(label)(p),\n pop: pop2(label)(p),\n set: insert2(label)(p),\n component: comp,\n input: input,\n output: output\n });\n };\n };\n };\n };\n };\n };\n };\n};\nexport {\n mkComponent,\n unComponent,\n hoist,\n mkEval,\n defaultEval,\n ComponentSlot,\n ThunkSlot,\n componentSlot,\n mkComponentSlot,\n unComponentSlot,\n hoistSlot,\n functorComponentSlotBox,\n functorComponentSlot\n};\n","// Generated by purs version 0.15.7\nimport * as Control_Monad_Reader_Trans from \"../Control.Monad.Reader.Trans/index.js\";\nimport * as Control_Monad_Trans_Class from \"../Control.Monad.Trans.Class/index.js\";\nimport * as Effect_Aff from \"../Effect.Aff/index.js\";\nvar lift = /* #__PURE__ */ Control_Monad_Trans_Class.lift(Control_Monad_Reader_Trans.monadTransReaderT);\nvar Completed = /* #__PURE__ */ (function () {\n function Completed(value0) {\n this.value0 = value0;\n };\n Completed.create = function (value0) {\n return new Completed(value0);\n };\n return Completed;\n})();\nvar Failed = /* #__PURE__ */ (function () {\n function Failed(value0) {\n this.value0 = value0;\n };\n Failed.create = function (value0) {\n return new Failed(value0);\n };\n return Failed;\n})();\nvar Killed = /* #__PURE__ */ (function () {\n function Killed(value0) {\n this.value0 = value0;\n };\n Killed.create = function (value0) {\n return new Killed(value0);\n };\n return Killed;\n})();\nvar uninterruptible = function (dict) {\n return dict.uninterruptible;\n};\nvar suspend = function (dict) {\n return dict.suspend;\n};\nvar never = function (dict) {\n return dict.never;\n};\nvar monadForkAff = {\n suspend: Effect_Aff.suspendAff,\n fork: Effect_Aff.forkAff,\n join: Effect_Aff.joinFiber,\n Monad0: function () {\n return Effect_Aff.monadAff;\n },\n Functor1: function () {\n return Effect_Aff.functorFiber;\n }\n};\nvar monadKillAff = {\n kill: Effect_Aff.killFiber,\n MonadFork0: function () {\n return monadForkAff;\n },\n MonadThrow1: function () {\n return Effect_Aff.monadThrowAff;\n }\n};\nvar monadBracketAff = {\n bracket: function (acquire) {\n return function (release) {\n return function (run) {\n return Effect_Aff.generalBracket(acquire)({\n completed: function ($44) {\n return release(Completed.create($44));\n },\n failed: function ($45) {\n return release(Failed.create($45));\n },\n killed: function ($46) {\n return release(Killed.create($46));\n }\n })(run);\n };\n };\n },\n uninterruptible: Effect_Aff.invincible,\n never: Effect_Aff.never,\n MonadKill0: function () {\n return monadKillAff;\n },\n MonadError1: function () {\n return Effect_Aff.monadErrorAff;\n }\n};\nvar kill = function (dict) {\n return dict.kill;\n};\nvar join = function (dict) {\n return dict.join;\n};\nvar fork = function (dict) {\n return dict.fork;\n};\nvar monadForkReaderT = function (dictMonadFork) {\n var suspend1 = suspend(dictMonadFork);\n var fork1 = fork(dictMonadFork);\n var Monad0 = dictMonadFork.Monad0();\n var monadReaderT = Control_Monad_Reader_Trans.monadReaderT(Monad0);\n var Functor1 = dictMonadFork.Functor1();\n return {\n suspend: function (v) {\n return function ($47) {\n return suspend1(v($47));\n };\n },\n fork: function (v) {\n return function ($48) {\n return fork1(v($48));\n };\n },\n join: (function () {\n var $49 = lift(Monad0);\n var $50 = join(dictMonadFork);\n return function ($51) {\n return $49($50($51));\n };\n })(),\n Monad0: function () {\n return monadReaderT;\n },\n Functor1: function () {\n return Functor1;\n }\n };\n};\nvar monadKillReaderT = function (dictMonadKill) {\n var MonadThrow1 = dictMonadKill.MonadThrow1();\n var lift1 = lift(MonadThrow1.Monad0());\n var kill1 = kill(dictMonadKill);\n var monadForkReaderT1 = monadForkReaderT(dictMonadKill.MonadFork0());\n var monadThrowReaderT = Control_Monad_Reader_Trans.monadThrowReaderT(MonadThrow1);\n return {\n kill: function (e) {\n var $52 = kill1(e);\n return function ($53) {\n return lift1($52($53));\n };\n },\n MonadFork0: function () {\n return monadForkReaderT1;\n },\n MonadThrow1: function () {\n return monadThrowReaderT;\n }\n };\n};\nvar bracket = function (dict) {\n return dict.bracket;\n};\nvar monadBracketReaderT = function (dictMonadBracket) {\n var bracket1 = bracket(dictMonadBracket);\n var uninterruptible1 = uninterruptible(dictMonadBracket);\n var MonadError1 = dictMonadBracket.MonadError1();\n var monadKillReaderT1 = monadKillReaderT(dictMonadBracket.MonadKill0());\n var monadErrorReaderT = Control_Monad_Reader_Trans.monadErrorReaderT(MonadError1);\n return {\n bracket: function (v) {\n return function (release) {\n return function (run) {\n return function (r) {\n return bracket1(v(r))(function (c) {\n return function (a) {\n return Control_Monad_Reader_Trans.runReaderT(release(c)(a))(r);\n };\n })(function (a) {\n return Control_Monad_Reader_Trans.runReaderT(run(a))(r);\n });\n };\n };\n };\n },\n uninterruptible: function (k) {\n return function (r) {\n return uninterruptible1(Control_Monad_Reader_Trans.runReaderT(k)(r));\n };\n },\n never: lift((MonadError1.MonadThrow0()).Monad0())(never(dictMonadBracket)),\n MonadKill0: function () {\n return monadKillReaderT1;\n },\n MonadError1: function () {\n return monadErrorReaderT;\n }\n };\n};\nexport {\n bracket,\n fork,\n join,\n kill,\n never,\n suspend,\n uninterruptible,\n Completed,\n Failed,\n Killed,\n monadForkAff,\n monadForkReaderT,\n monadKillAff,\n monadKillReaderT,\n monadBracketAff,\n monadBracketReaderT\n};\n","// Generated by purs version 0.15.7\nimport * as Data_Foldable from \"../Data.Foldable/index.js\";\nimport * as Data_List_Types from \"../Data.List.Types/index.js\";\nimport * as Data_Map_Internal from \"../Data.Map.Internal/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Effect_Ref from \"../Effect.Ref/index.js\";\nimport * as Halogen_Data_Slot from \"../Halogen.Data.Slot/index.js\";\nimport * as Unsafe_Coerce from \"../Unsafe.Coerce/index.js\";\nvar DriverStateRef = function (x) {\n return x;\n};\nvar DriverState = function (x) {\n return x;\n};\nvar unRenderStateX = Unsafe_Coerce.unsafeCoerce;\nvar unDriverStateX = Unsafe_Coerce.unsafeCoerce;\nvar renderStateX_ = function (dictApplicative) {\n var traverse_ = Data_Foldable.traverse_(dictApplicative)(Data_Foldable.foldableMaybe);\n return function (f) {\n return unDriverStateX(function (st) {\n return traverse_(f)(st.rendering);\n });\n };\n};\nvar mkRenderStateX = Unsafe_Coerce.unsafeCoerce;\nvar renderStateX = function (dictFunctor) {\n return function (f) {\n return unDriverStateX(function (st) {\n return mkRenderStateX(f(st.rendering));\n });\n };\n};\nvar mkDriverStateXRef = Unsafe_Coerce.unsafeCoerce;\nvar mapDriverState = function (f) {\n return function (v) {\n return f(v);\n };\n};\nvar initDriverState = function (component) {\n return function (input) {\n return function (handler) {\n return function (lchs) {\n return function __do() {\n var selfRef = Effect_Ref[\"new\"]({})();\n var childrenIn = Effect_Ref[\"new\"](Halogen_Data_Slot.empty)();\n var childrenOut = Effect_Ref[\"new\"](Halogen_Data_Slot.empty)();\n var handlerRef = Effect_Ref[\"new\"](handler)();\n var pendingQueries = Effect_Ref[\"new\"](new Data_Maybe.Just(Data_List_Types.Nil.value))();\n var pendingOuts = Effect_Ref[\"new\"](new Data_Maybe.Just(Data_List_Types.Nil.value))();\n var pendingHandlers = Effect_Ref[\"new\"](Data_Maybe.Nothing.value)();\n var fresh = Effect_Ref[\"new\"](1)();\n var subscriptions = Effect_Ref[\"new\"](new Data_Maybe.Just(Data_Map_Internal.empty))();\n var forks = Effect_Ref[\"new\"](Data_Map_Internal.empty)();\n var ds = {\n component: component,\n state: component.initialState(input),\n refs: Data_Map_Internal.empty,\n children: Halogen_Data_Slot.empty,\n childrenIn: childrenIn,\n childrenOut: childrenOut,\n selfRef: selfRef,\n handlerRef: handlerRef,\n pendingQueries: pendingQueries,\n pendingOuts: pendingOuts,\n pendingHandlers: pendingHandlers,\n rendering: Data_Maybe.Nothing.value,\n fresh: fresh,\n subscriptions: subscriptions,\n forks: forks,\n lifecycleHandlers: lchs\n };\n Effect_Ref.write(ds)(selfRef)();\n return mkDriverStateXRef(selfRef);\n };\n };\n };\n };\n};\nexport {\n DriverState,\n mapDriverState,\n DriverStateRef,\n unDriverStateX,\n mkDriverStateXRef,\n renderStateX,\n renderStateX_,\n unRenderStateX,\n initDriverState\n};\n","// Generated by purs version 0.15.7\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Applicative_Free from \"../Control.Applicative.Free/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Control_Monad from \"../Control.Monad/index.js\";\nimport * as Control_Monad_Fork_Class from \"../Control.Monad.Fork.Class/index.js\";\nimport * as Control_Monad_Free from \"../Control.Monad.Free/index.js\";\nimport * as Control_Parallel from \"../Control.Parallel/index.js\";\nimport * as Control_Parallel_Class from \"../Control.Parallel.Class/index.js\";\nimport * as Data_Boolean from \"../Data.Boolean/index.js\";\nimport * as Data_Coyoneda from \"../Data.Coyoneda/index.js\";\nimport * as Data_Either from \"../Data.Either/index.js\";\nimport * as Data_Foldable from \"../Data.Foldable/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_List_Types from \"../Data.List.Types/index.js\";\nimport * as Data_Map_Internal from \"../Data.Map.Internal/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nimport * as Effect from \"../Effect/index.js\";\nimport * as Effect_Aff from \"../Effect.Aff/index.js\";\nimport * as Effect_Class from \"../Effect.Class/index.js\";\nimport * as Effect_Exception from \"../Effect.Exception/index.js\";\nimport * as Effect_Ref from \"../Effect.Ref/index.js\";\nimport * as Halogen_Aff_Driver_State from \"../Halogen.Aff.Driver.State/index.js\";\nimport * as Halogen_Query_ChildQuery from \"../Halogen.Query.ChildQuery/index.js\";\nimport * as Halogen_Query_HalogenM from \"../Halogen.Query.HalogenM/index.js\";\nimport * as Halogen_Query_HalogenQ from \"../Halogen.Query.HalogenQ/index.js\";\nimport * as Halogen_Query_Input from \"../Halogen.Query.Input/index.js\";\nimport * as Halogen_Subscription from \"../Halogen.Subscription/index.js\";\nimport * as Unsafe_Reference from \"../Unsafe.Reference/index.js\";\nvar traverse_ = /* #__PURE__ */ Data_Foldable.traverse_(Effect.applicativeEffect)(Data_Foldable.foldableMaybe);\nvar bindFlipped = /* #__PURE__ */ Control_Bind.bindFlipped(Data_Maybe.bindMaybe);\nvar lookup = /* #__PURE__ */ Data_Map_Internal.lookup(Halogen_Query_HalogenM.ordSubscriptionId);\nvar bind1 = /* #__PURE__ */ Control_Bind.bind(Effect_Aff.bindAff);\nvar liftEffect = /* #__PURE__ */ Effect_Class.liftEffect(Effect_Aff.monadEffectAff);\nvar discard = /* #__PURE__ */ Control_Bind.discard(Control_Bind.discardUnit);\nvar discard1 = /* #__PURE__ */ discard(Effect_Aff.bindAff);\nvar traverse_1 = /* #__PURE__ */ Data_Foldable.traverse_(Effect_Aff.applicativeAff);\nvar traverse_2 = /* #__PURE__ */ traverse_1(Data_List_Types.foldableList);\nvar fork = /* #__PURE__ */ Control_Monad_Fork_Class.fork(Control_Monad_Fork_Class.monadForkAff);\nvar parSequence_ = /* #__PURE__ */ Control_Parallel.parSequence_(Effect_Aff.parallelAff)(Data_List_Types.foldableList);\nvar pure = /* #__PURE__ */ Control_Applicative.pure(Effect_Aff.applicativeAff);\nvar map = /* #__PURE__ */ Data_Functor.map(Data_Coyoneda.functorCoyoneda);\nvar parallel = /* #__PURE__ */ Control_Parallel_Class.parallel(Effect_Aff.parallelAff);\nvar map1 = /* #__PURE__ */ Data_Functor.map(Effect_Aff.functorAff);\nvar sequential = /* #__PURE__ */ Control_Parallel_Class.sequential(Effect_Aff.parallelAff);\nvar map2 = /* #__PURE__ */ Data_Functor.map(Data_Maybe.functorMaybe);\nvar insert = /* #__PURE__ */ Data_Map_Internal.insert(Halogen_Query_HalogenM.ordSubscriptionId);\nvar retractFreeAp = /* #__PURE__ */ Control_Applicative_Free.retractFreeAp(Effect_Aff.applicativeParAff);\nvar $$delete = /* #__PURE__ */ Data_Map_Internal[\"delete\"](Halogen_Query_HalogenM.ordForkId);\nvar unlessM = /* #__PURE__ */ Control_Monad.unlessM(Effect.monadEffect);\nvar insert1 = /* #__PURE__ */ Data_Map_Internal.insert(Halogen_Query_HalogenM.ordForkId);\nvar traverse_3 = /* #__PURE__ */ traverse_1(Data_Foldable.foldableMaybe);\nvar lookup1 = /* #__PURE__ */ Data_Map_Internal.lookup(Halogen_Query_HalogenM.ordForkId);\nvar lookup2 = /* #__PURE__ */ Data_Map_Internal.lookup(Data_Ord.ordString);\nvar foldFree = /* #__PURE__ */ Control_Monad_Free.foldFree(Effect_Aff.monadRecAff);\nvar alter = /* #__PURE__ */ Data_Map_Internal.alter(Data_Ord.ordString);\nvar unsubscribe = function (sid) {\n return function (ref) {\n return function __do() {\n var v = Effect_Ref.read(ref)();\n var subs = Effect_Ref.read(v.subscriptions)();\n return traverse_(Halogen_Subscription.unsubscribe)(bindFlipped(lookup(sid))(subs))();\n };\n };\n};\nvar queueOrRun = function (ref) {\n return function (au) {\n return bind1(liftEffect(Effect_Ref.read(ref)))(function (v) {\n if (v instanceof Data_Maybe.Nothing) {\n return au;\n };\n if (v instanceof Data_Maybe.Just) {\n return liftEffect(Effect_Ref.write(new Data_Maybe.Just(new Data_List_Types.Cons(au, v.value0)))(ref));\n };\n throw new Error(\"Failed pattern match at Halogen.Aff.Driver.Eval (line 188, column 33 - line 190, column 57): \" + [ v.constructor.name ]);\n });\n };\n};\nvar handleLifecycle = function (lchs) {\n return function (f) {\n return discard1(liftEffect(Effect_Ref.write({\n initializers: Data_List_Types.Nil.value,\n finalizers: Data_List_Types.Nil.value\n })(lchs)))(function () {\n return bind1(liftEffect(f))(function (result) {\n return bind1(liftEffect(Effect_Ref.read(lchs)))(function (v) {\n return discard1(traverse_2(fork)(v.finalizers))(function () {\n return discard1(parSequence_(v.initializers))(function () {\n return pure(result);\n });\n });\n });\n });\n });\n };\n};\nvar handleAff = /* #__PURE__ */ Effect_Aff.runAff_(/* #__PURE__ */ Data_Either.either(Effect_Exception.throwException)(/* #__PURE__ */ Data_Function[\"const\"](/* #__PURE__ */ Control_Applicative.pure(Effect.applicativeEffect)(Data_Unit.unit))));\nvar fresh = function (f) {\n return function (ref) {\n return bind1(liftEffect(Effect_Ref.read(ref)))(function (v) {\n return liftEffect(Effect_Ref[\"modify$prime\"](function (i) {\n return {\n state: i + 1 | 0,\n value: f(i)\n };\n })(v.fresh));\n });\n };\n};\nvar evalQ = function (render) {\n return function (ref) {\n return function (q) {\n return bind1(liftEffect(Effect_Ref.read(ref)))(function (v) {\n return evalM(render)(ref)(v[\"component\"][\"eval\"](new Halogen_Query_HalogenQ.Query(map(Data_Maybe.Just.create)(Data_Coyoneda.liftCoyoneda(q)), Data_Function[\"const\"](Data_Maybe.Nothing.value))));\n });\n };\n };\n};\nvar evalM = function (render) {\n return function (initRef) {\n return function (v) {\n var evalChildQuery = function (ref) {\n return function (cqb) {\n return bind1(liftEffect(Effect_Ref.read(ref)))(function (v1) {\n return Halogen_Query_ChildQuery.unChildQueryBox(function (v2) {\n var evalChild = function (v3) {\n return parallel(bind1(liftEffect(Effect_Ref.read(v3)))(function (dsx) {\n return Halogen_Aff_Driver_State.unDriverStateX(function (ds) {\n return evalQ(render)(ds.selfRef)(v2.value1);\n })(dsx);\n }));\n };\n return map1(v2.value2)(sequential(v2.value0(Effect_Aff.applicativeParAff)(evalChild)(v1.children)));\n })(cqb);\n });\n };\n };\n var go = function (ref) {\n return function (v1) {\n if (v1 instanceof Halogen_Query_HalogenM.State) {\n return bind1(liftEffect(Effect_Ref.read(ref)))(function (v2) {\n var v3 = v1.value0(v2.state);\n if (Unsafe_Reference.unsafeRefEq(v2.state)(v3.value1)) {\n return pure(v3.value0);\n };\n if (Data_Boolean.otherwise) {\n return discard1(liftEffect(Effect_Ref.write({\n component: v2.component,\n state: v3.value1,\n refs: v2.refs,\n children: v2.children,\n childrenIn: v2.childrenIn,\n childrenOut: v2.childrenOut,\n selfRef: v2.selfRef,\n handlerRef: v2.handlerRef,\n pendingQueries: v2.pendingQueries,\n pendingOuts: v2.pendingOuts,\n pendingHandlers: v2.pendingHandlers,\n rendering: v2.rendering,\n fresh: v2.fresh,\n subscriptions: v2.subscriptions,\n forks: v2.forks,\n lifecycleHandlers: v2.lifecycleHandlers\n })(ref)))(function () {\n return discard1(handleLifecycle(v2.lifecycleHandlers)(render(v2.lifecycleHandlers)(ref)))(function () {\n return pure(v3.value0);\n });\n });\n };\n throw new Error(\"Failed pattern match at Halogen.Aff.Driver.Eval (line 86, column 7 - line 92, column 21): \" + [ v3.constructor.name ]);\n });\n };\n if (v1 instanceof Halogen_Query_HalogenM.Subscribe) {\n return bind1(fresh(Halogen_Query_HalogenM.SubscriptionId)(ref))(function (sid) {\n return bind1(liftEffect(Halogen_Subscription.subscribe(v1.value0(sid))(function (act) {\n return handleAff(evalF(render)(ref)(new Halogen_Query_Input.Action(act)));\n })))(function (finalize) {\n return bind1(liftEffect(Effect_Ref.read(ref)))(function (v2) {\n return discard1(liftEffect(Effect_Ref.modify_(map2(insert(sid)(finalize)))(v2.subscriptions)))(function () {\n return pure(v1.value1(sid));\n });\n });\n });\n });\n };\n if (v1 instanceof Halogen_Query_HalogenM.Unsubscribe) {\n return discard1(liftEffect(unsubscribe(v1.value0)(ref)))(function () {\n return pure(v1.value1);\n });\n };\n if (v1 instanceof Halogen_Query_HalogenM.Lift) {\n return v1.value0;\n };\n if (v1 instanceof Halogen_Query_HalogenM.ChildQuery) {\n return evalChildQuery(ref)(v1.value0);\n };\n if (v1 instanceof Halogen_Query_HalogenM.Raise) {\n return bind1(liftEffect(Effect_Ref.read(ref)))(function (v2) {\n return bind1(liftEffect(Effect_Ref.read(v2.handlerRef)))(function (handler) {\n return discard1(queueOrRun(v2.pendingOuts)(handler(v1.value0)))(function () {\n return pure(v1.value1);\n });\n });\n });\n };\n if (v1 instanceof Halogen_Query_HalogenM.Par) {\n return sequential(retractFreeAp(Control_Applicative_Free.hoistFreeAp((function () {\n var $118 = evalM(render)(ref);\n return function ($119) {\n return parallel($118($119));\n };\n })())(v1.value0)));\n };\n if (v1 instanceof Halogen_Query_HalogenM.Fork) {\n return bind1(fresh(Halogen_Query_HalogenM.ForkId)(ref))(function (fid) {\n return bind1(liftEffect(Effect_Ref.read(ref)))(function (v2) {\n return bind1(liftEffect(Effect_Ref[\"new\"](false)))(function (doneRef) {\n return bind1(fork(Effect_Aff[\"finally\"](liftEffect(function __do() {\n Effect_Ref.modify_($$delete(fid))(v2.forks)();\n return Effect_Ref.write(true)(doneRef)();\n }))(evalM(render)(ref)(v1.value0))))(function (fiber) {\n return discard1(liftEffect(unlessM(Effect_Ref.read(doneRef))(Effect_Ref.modify_(insert1(fid)(fiber))(v2.forks))))(function () {\n return pure(v1.value1(fid));\n });\n });\n });\n });\n });\n };\n if (v1 instanceof Halogen_Query_HalogenM.Join) {\n return bind1(liftEffect(Effect_Ref.read(ref)))(function (v2) {\n return bind1(liftEffect(Effect_Ref.read(v2.forks)))(function (forkMap) {\n return discard1(traverse_3(Effect_Aff.joinFiber)(lookup1(v1.value0)(forkMap)))(function () {\n return pure(v1.value1);\n });\n });\n });\n };\n if (v1 instanceof Halogen_Query_HalogenM.Kill) {\n return bind1(liftEffect(Effect_Ref.read(ref)))(function (v2) {\n return bind1(liftEffect(Effect_Ref.read(v2.forks)))(function (forkMap) {\n return discard1(traverse_3(Effect_Aff.killFiber(Effect_Exception.error(\"Cancelled\")))(lookup1(v1.value0)(forkMap)))(function () {\n return pure(v1.value1);\n });\n });\n });\n };\n if (v1 instanceof Halogen_Query_HalogenM.GetRef) {\n return bind1(liftEffect(Effect_Ref.read(ref)))(function (v2) {\n return pure(v1.value1(lookup2(v1.value0)(v2.refs)));\n });\n };\n throw new Error(\"Failed pattern match at Halogen.Aff.Driver.Eval (line 83, column 12 - line 139, column 33): \" + [ v1.constructor.name ]);\n };\n };\n return foldFree(go(initRef))(v);\n };\n };\n};\nvar evalF = function (render) {\n return function (ref) {\n return function (v) {\n if (v instanceof Halogen_Query_Input.RefUpdate) {\n return liftEffect(Data_Function.flip(Effect_Ref.modify_)(ref)(Halogen_Aff_Driver_State.mapDriverState(function (st) {\n return {\n component: st.component,\n state: st.state,\n refs: alter(Data_Function[\"const\"](v.value1))(v.value0)(st.refs),\n children: st.children,\n childrenIn: st.childrenIn,\n childrenOut: st.childrenOut,\n selfRef: st.selfRef,\n handlerRef: st.handlerRef,\n pendingQueries: st.pendingQueries,\n pendingOuts: st.pendingOuts,\n pendingHandlers: st.pendingHandlers,\n rendering: st.rendering,\n fresh: st.fresh,\n subscriptions: st.subscriptions,\n forks: st.forks,\n lifecycleHandlers: st.lifecycleHandlers\n };\n })));\n };\n if (v instanceof Halogen_Query_Input.Action) {\n return bind1(liftEffect(Effect_Ref.read(ref)))(function (v1) {\n return evalM(render)(ref)(v1[\"component\"][\"eval\"](new Halogen_Query_HalogenQ.Action(v.value0, Data_Unit.unit)));\n });\n };\n throw new Error(\"Failed pattern match at Halogen.Aff.Driver.Eval (line 52, column 20 - line 58, column 62): \" + [ v.constructor.name ]);\n };\n };\n};\nexport {\n evalF,\n evalQ,\n evalM,\n handleLifecycle,\n queueOrRun,\n handleAff\n};\n","// Generated by purs version 0.15.7\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Control_Monad_Fork_Class from \"../Control.Monad.Fork.Class/index.js\";\nimport * as Control_Monad_Rec_Class from \"../Control.Monad.Rec.Class/index.js\";\nimport * as Control_Parallel from \"../Control.Parallel/index.js\";\nimport * as Data_Foldable from \"../Data.Foldable/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_List from \"../Data.List/index.js\";\nimport * as Data_List_Types from \"../Data.List.Types/index.js\";\nimport * as Data_Map_Internal from \"../Data.Map.Internal/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nimport * as Effect from \"../Effect/index.js\";\nimport * as Effect_Aff from \"../Effect.Aff/index.js\";\nimport * as Effect_Class from \"../Effect.Class/index.js\";\nimport * as Effect_Console from \"../Effect.Console/index.js\";\nimport * as Effect_Exception from \"../Effect.Exception/index.js\";\nimport * as Effect_Ref from \"../Effect.Ref/index.js\";\nimport * as Halogen from \"../Halogen/index.js\";\nimport * as Halogen_Aff_Driver_Eval from \"../Halogen.Aff.Driver.Eval/index.js\";\nimport * as Halogen_Aff_Driver_State from \"../Halogen.Aff.Driver.State/index.js\";\nimport * as Halogen_Component from \"../Halogen.Component/index.js\";\nimport * as Halogen_Data_Slot from \"../Halogen.Data.Slot/index.js\";\nimport * as Halogen_Query_HalogenQ from \"../Halogen.Query.HalogenQ/index.js\";\nimport * as Halogen_Query_Input from \"../Halogen.Query.Input/index.js\";\nimport * as Halogen_Subscription from \"../Halogen.Subscription/index.js\";\nvar bind = /* #__PURE__ */ Control_Bind.bind(Effect.bindEffect);\nvar discard = /* #__PURE__ */ Control_Bind.discard(Control_Bind.discardUnit);\nvar for_ = /* #__PURE__ */ Data_Foldable.for_(Effect.applicativeEffect)(Data_Foldable.foldableMaybe);\nvar traverse_ = /* #__PURE__ */ Data_Foldable.traverse_(Effect_Aff.applicativeAff)(Data_List_Types.foldableList);\nvar fork = /* #__PURE__ */ Control_Monad_Fork_Class.fork(Control_Monad_Fork_Class.monadForkAff);\nvar bindFlipped = /* #__PURE__ */ Control_Bind.bindFlipped(Effect.bindEffect);\nvar traverse_1 = /* #__PURE__ */ Data_Foldable.traverse_(Effect.applicativeEffect);\nvar traverse_2 = /* #__PURE__ */ traverse_1(Data_Foldable.foldableMaybe);\nvar traverse_3 = /* #__PURE__ */ traverse_1(Data_Map_Internal.foldableMap);\nvar discard2 = /* #__PURE__ */ discard(Effect_Aff.bindAff);\nvar parSequence_ = /* #__PURE__ */ Control_Parallel.parSequence_(Effect_Aff.parallelAff)(Data_List_Types.foldableList);\nvar liftEffect = /* #__PURE__ */ Effect_Class.liftEffect(Effect_Aff.monadEffectAff);\nvar pure = /* #__PURE__ */ Control_Applicative.pure(Effect.applicativeEffect);\nvar map = /* #__PURE__ */ Data_Functor.map(Effect.functorEffect);\nvar pure1 = /* #__PURE__ */ Control_Applicative.pure(Effect_Aff.applicativeAff);\nvar when = /* #__PURE__ */ Control_Applicative.when(Effect.applicativeEffect);\nvar renderStateX = /* #__PURE__ */ Halogen_Aff_Driver_State.renderStateX(Effect.functorEffect);\nvar $$void = /* #__PURE__ */ Data_Functor[\"void\"](Effect_Aff.functorAff);\nvar foreachSlot = /* #__PURE__ */ Halogen_Data_Slot.foreachSlot(Effect.applicativeEffect);\nvar renderStateX_ = /* #__PURE__ */ Halogen_Aff_Driver_State.renderStateX_(Effect.applicativeEffect);\nvar tailRecM = /* #__PURE__ */ Control_Monad_Rec_Class.tailRecM(Control_Monad_Rec_Class.monadRecEffect);\nvar voidLeft = /* #__PURE__ */ Data_Functor.voidLeft(Effect.functorEffect);\nvar bind1 = /* #__PURE__ */ Control_Bind.bind(Effect_Aff.bindAff);\nvar liftEffect1 = /* #__PURE__ */ Effect_Class.liftEffect(Effect_Class.monadEffectEffect);\nvar newLifecycleHandlers = /* #__PURE__ */ (function () {\n return Effect_Ref[\"new\"]({\n initializers: Data_List_Types.Nil.value,\n finalizers: Data_List_Types.Nil.value\n });\n})();\nvar handlePending = function (ref) {\n return function __do() {\n var queue = Effect_Ref.read(ref)();\n Effect_Ref.write(Data_Maybe.Nothing.value)(ref)();\n return for_(queue)((function () {\n var $58 = traverse_(fork);\n return function ($59) {\n return Halogen_Aff_Driver_Eval.handleAff($58(Data_List.reverse($59)));\n };\n })())();\n };\n};\nvar cleanupSubscriptionsAndForks = function (v) {\n return function __do() {\n bindFlipped(traverse_2(traverse_3(Halogen_Subscription.unsubscribe)))(Effect_Ref.read(v.subscriptions))();\n Effect_Ref.write(Data_Maybe.Nothing.value)(v.subscriptions)();\n bindFlipped(traverse_3((function () {\n var $60 = Effect_Aff.killFiber(Effect_Exception.error(\"finalized\"));\n return function ($61) {\n return Halogen_Aff_Driver_Eval.handleAff($60($61));\n };\n })()))(Effect_Ref.read(v.forks))();\n return Effect_Ref.write(Data_Map_Internal.empty)(v.forks)();\n };\n};\nvar runUI = function (renderSpec) {\n return function (component) {\n return function (i) {\n var squashChildInitializers = function (lchs) {\n return function (preInits) {\n return Halogen_Aff_Driver_State.unDriverStateX(function (st) {\n var parentInitializer = Halogen_Aff_Driver_Eval.evalM(render)(st.selfRef)(st[\"component\"][\"eval\"](new Halogen_Query_HalogenQ.Initialize(Data_Unit.unit)));\n return Effect_Ref.modify_(function (handlers) {\n return {\n initializers: new Data_List_Types.Cons(discard2(parSequence_(Data_List.reverse(handlers.initializers)))(function () {\n return discard2(parentInitializer)(function () {\n return liftEffect(function __do() {\n handlePending(st.pendingQueries)();\n return handlePending(st.pendingOuts)();\n });\n });\n }), preInits),\n finalizers: handlers.finalizers\n };\n })(lchs);\n });\n };\n };\n var runComponent = function (lchs) {\n return function (handler) {\n return function (j) {\n return Halogen_Component.unComponent(function (c) {\n return function __do() {\n var lchs$prime = newLifecycleHandlers();\n var $$var = Halogen_Aff_Driver_State.initDriverState(c)(j)(handler)(lchs$prime)();\n var pre = Effect_Ref.read(lchs)();\n Effect_Ref.write({\n initializers: Data_List_Types.Nil.value,\n finalizers: pre.finalizers\n })(lchs)();\n bindFlipped(Halogen_Aff_Driver_State.unDriverStateX((function () {\n var $62 = render(lchs);\n return function ($63) {\n return $62((function (v) {\n return v.selfRef;\n })($63));\n };\n })()))(Effect_Ref.read($$var))();\n bindFlipped(squashChildInitializers(lchs)(pre.initializers))(Effect_Ref.read($$var))();\n return $$var;\n };\n });\n };\n };\n };\n var renderChild = function (lchs) {\n return function (handler) {\n return function (childrenInRef) {\n return function (childrenOutRef) {\n return Halogen_Component.unComponentSlot(function (slot) {\n return function __do() {\n var childrenIn = map(slot.pop)(Effect_Ref.read(childrenInRef))();\n var $$var = (function () {\n if (childrenIn instanceof Data_Maybe.Just) {\n Effect_Ref.write(childrenIn.value0.value1)(childrenInRef)();\n var dsx = Effect_Ref.read(childrenIn.value0.value0)();\n Halogen_Aff_Driver_State.unDriverStateX(function (st) {\n return function __do() {\n Data_Function.flip(Effect_Ref.write)(st.handlerRef)((function () {\n var $64 = Data_Maybe.maybe(pure1(Data_Unit.unit))(handler);\n return function ($65) {\n return $64(slot.output($65));\n };\n })())();\n return Halogen_Aff_Driver_Eval.handleAff(Halogen_Aff_Driver_Eval.evalM(render)(st.selfRef)(st[\"component\"][\"eval\"](new Halogen_Query_HalogenQ.Receive(slot.input, Data_Unit.unit))))();\n };\n })(dsx)();\n return childrenIn.value0.value0;\n };\n if (childrenIn instanceof Data_Maybe.Nothing) {\n return runComponent(lchs)((function () {\n var $66 = Data_Maybe.maybe(pure1(Data_Unit.unit))(handler);\n return function ($67) {\n return $66(slot.output($67));\n };\n })())(slot.input)(slot.component)();\n };\n throw new Error(\"Failed pattern match at Halogen.Aff.Driver (line 213, column 14 - line 222, column 98): \" + [ childrenIn.constructor.name ]);\n })();\n var isDuplicate = map(function ($68) {\n return Data_Maybe.isJust(slot.get($68));\n })(Effect_Ref.read(childrenOutRef))();\n when(isDuplicate)(Effect_Console.warn(\"Halogen: Duplicate slot address was detected during rendering, unexpected results may occur\"))();\n Effect_Ref.modify_(slot.set($$var))(childrenOutRef)();\n return bind(Effect_Ref.read($$var))(renderStateX(function (v) {\n if (v instanceof Data_Maybe.Nothing) {\n return Effect_Exception[\"throw\"](\"Halogen internal error: child was not initialized in renderChild\");\n };\n if (v instanceof Data_Maybe.Just) {\n return pure(renderSpec.renderChild(v.value0));\n };\n throw new Error(\"Failed pattern match at Halogen.Aff.Driver (line 227, column 37 - line 229, column 50): \" + [ v.constructor.name ]);\n }))();\n };\n });\n };\n };\n };\n };\n var render = function (lchs) {\n return function ($$var) {\n return function __do() {\n var v = Effect_Ref.read($$var)();\n var shouldProcessHandlers = map(Data_Maybe.isNothing)(Effect_Ref.read(v.pendingHandlers))();\n when(shouldProcessHandlers)(Effect_Ref.write(new Data_Maybe.Just(Data_List_Types.Nil.value))(v.pendingHandlers))();\n Effect_Ref.write(Halogen_Data_Slot.empty)(v.childrenOut)();\n Effect_Ref.write(v.children)(v.childrenIn)();\n var handler = (function () {\n var $69 = Halogen_Aff_Driver_Eval.queueOrRun(v.pendingHandlers);\n var $70 = Halogen_Aff_Driver_Eval.evalF(render)(v.selfRef);\n return function ($71) {\n return $69($$void($70($71)));\n };\n })();\n var childHandler = (function () {\n var $72 = Halogen_Aff_Driver_Eval.queueOrRun(v.pendingQueries);\n return function ($73) {\n return $72(handler(Halogen_Query_Input.Action.create($73)));\n };\n })();\n var rendering = renderSpec.render(function ($74) {\n return Halogen_Aff_Driver_Eval.handleAff(handler($74));\n })(renderChild(lchs)(childHandler)(v.childrenIn)(v.childrenOut))(v.component.render(v.state))(v.rendering)();\n var children = Effect_Ref.read(v.childrenOut)();\n var childrenIn = Effect_Ref.read(v.childrenIn)();\n foreachSlot(childrenIn)(function (v1) {\n return function __do() {\n var childDS = Effect_Ref.read(v1)();\n renderStateX_(renderSpec.removeChild)(childDS)();\n return finalize(lchs)(childDS)();\n };\n })();\n Data_Function.flip(Effect_Ref.modify_)(v.selfRef)(Halogen_Aff_Driver_State.mapDriverState(function (ds$prime) {\n return {\n component: ds$prime.component,\n state: ds$prime.state,\n refs: ds$prime.refs,\n children: children,\n childrenIn: ds$prime.childrenIn,\n childrenOut: ds$prime.childrenOut,\n selfRef: ds$prime.selfRef,\n handlerRef: ds$prime.handlerRef,\n pendingQueries: ds$prime.pendingQueries,\n pendingOuts: ds$prime.pendingOuts,\n pendingHandlers: ds$prime.pendingHandlers,\n rendering: new Data_Maybe.Just(rendering),\n fresh: ds$prime.fresh,\n subscriptions: ds$prime.subscriptions,\n forks: ds$prime.forks,\n lifecycleHandlers: ds$prime.lifecycleHandlers\n };\n }))();\n return when(shouldProcessHandlers)(Data_Function.flip(tailRecM)(Data_Unit.unit)(function (v1) {\n return function __do() {\n var handlers = Effect_Ref.read(v.pendingHandlers)();\n Effect_Ref.write(new Data_Maybe.Just(Data_List_Types.Nil.value))(v.pendingHandlers)();\n traverse_2((function () {\n var $75 = traverse_(fork);\n return function ($76) {\n return Halogen_Aff_Driver_Eval.handleAff($75(Data_List.reverse($76)));\n };\n })())(handlers)();\n var mmore = Effect_Ref.read(v.pendingHandlers)();\n var $51 = Data_Maybe.maybe(false)(Data_List[\"null\"])(mmore);\n if ($51) {\n return voidLeft(Effect_Ref.write(Data_Maybe.Nothing.value)(v.pendingHandlers))(new Control_Monad_Rec_Class.Done(Data_Unit.unit))();\n };\n return new Control_Monad_Rec_Class.Loop(Data_Unit.unit);\n };\n }))();\n };\n };\n };\n var finalize = function (lchs) {\n return Halogen_Aff_Driver_State.unDriverStateX(function (st) {\n return function __do() {\n cleanupSubscriptionsAndForks(st)();\n var f = Halogen_Aff_Driver_Eval.evalM(render)(st.selfRef)(st[\"component\"][\"eval\"](new Halogen_Query_HalogenQ.Finalize(Data_Unit.unit)));\n Effect_Ref.modify_(function (handlers) {\n return {\n initializers: handlers.initializers,\n finalizers: new Data_List_Types.Cons(f, handlers.finalizers)\n };\n })(lchs)();\n return foreachSlot(st.children)(function (v) {\n return function __do() {\n var dsx = Effect_Ref.read(v)();\n return finalize(lchs)(dsx)();\n };\n })();\n };\n });\n };\n var evalDriver = function (disposed) {\n return function (ref) {\n return function (q) {\n return bind1(liftEffect(Effect_Ref.read(disposed)))(function (v) {\n if (v) {\n return pure1(Data_Maybe.Nothing.value);\n };\n return Halogen_Aff_Driver_Eval.evalQ(render)(ref)(q);\n });\n };\n };\n };\n var dispose = function (disposed) {\n return function (lchs) {\n return function (dsx) {\n return Halogen_Aff_Driver_Eval.handleLifecycle(lchs)(function __do() {\n var v = Effect_Ref.read(disposed)();\n if (v) {\n return Data_Unit.unit;\n };\n Effect_Ref.write(true)(disposed)();\n finalize(lchs)(dsx)();\n return Halogen_Aff_Driver_State.unDriverStateX(function (v1) {\n return function __do() {\n var v2 = liftEffect1(Effect_Ref.read(v1.selfRef))();\n return for_(v2.rendering)(renderSpec.dispose)();\n };\n })(dsx)();\n });\n };\n };\n };\n return bind1(liftEffect(newLifecycleHandlers))(function (lchs) {\n return bind1(liftEffect(Effect_Ref[\"new\"](false)))(function (disposed) {\n return Halogen_Aff_Driver_Eval.handleLifecycle(lchs)(function __do() {\n var sio = Halogen_Subscription.create();\n var dsx = bindFlipped(Effect_Ref.read)(runComponent(lchs)((function () {\n var $77 = Halogen_Subscription.notify(sio.listener);\n return function ($78) {\n return liftEffect($77($78));\n };\n })())(i)(component))();\n return Halogen_Aff_Driver_State.unDriverStateX(function (st) {\n return pure({\n query: evalDriver(disposed)(st.selfRef),\n messages: sio.emitter,\n dispose: dispose(disposed)(lchs)(dsx)\n });\n })(dsx)();\n });\n });\n });\n };\n };\n};\nexport {\n runUI\n};\n","// Generated by purs version 0.15.7\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Data_Foldable from \"../Data.Foldable/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_HeytingAlgebra from \"../Data.HeytingAlgebra/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Newtype from \"../Data.Newtype/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nimport * as Effect from \"../Effect/index.js\";\nimport * as Effect_Aff from \"../Effect.Aff/index.js\";\nimport * as Effect_Class from \"../Effect.Class/index.js\";\nimport * as Effect_Ref from \"../Effect.Ref/index.js\";\nimport * as Halogen_Aff_Driver from \"../Halogen.Aff.Driver/index.js\";\nimport * as Halogen_Aff_Driver_State from \"../Halogen.Aff.Driver.State/index.js\";\nimport * as Halogen_Component from \"../Halogen.Component/index.js\";\nimport * as Halogen_VDom_DOM from \"../Halogen.VDom.DOM/index.js\";\nimport * as Halogen_VDom_DOM_Prop from \"../Halogen.VDom.DOM.Prop/index.js\";\nimport * as Halogen_VDom_Machine from \"../Halogen.VDom.Machine/index.js\";\nimport * as Halogen_VDom_Thunk from \"../Halogen.VDom.Thunk/index.js\";\nimport * as Unsafe_Reference from \"../Unsafe.Reference/index.js\";\nimport * as Web_DOM_Node from \"../Web.DOM.Node/index.js\";\nimport * as Web_HTML from \"../Web.HTML/index.js\";\nimport * as Web_HTML_HTMLDocument from \"../Web.HTML.HTMLDocument/index.js\";\nimport * as Web_HTML_HTMLElement from \"../Web.HTML.HTMLElement/index.js\";\nimport * as Web_HTML_Window from \"../Web.HTML.Window/index.js\";\nvar $runtime_lazy = function (name, moduleName, init) {\n var state = 0;\n var val;\n return function (lineNumber) {\n if (state === 2) return val;\n if (state === 1) throw new ReferenceError(name + \" was needed before it finished initializing (module \" + moduleName + \", line \" + lineNumber + \")\", moduleName, lineNumber);\n state = 1;\n val = init();\n state = 2;\n return val;\n };\n};\nvar $$void = /* #__PURE__ */ Data_Functor[\"void\"](Effect.functorEffect);\nvar pure = /* #__PURE__ */ Control_Applicative.pure(Effect.applicativeEffect);\nvar traverse_ = /* #__PURE__ */ Data_Foldable.traverse_(Effect.applicativeEffect)(Data_Foldable.foldableMaybe);\nvar unwrap = /* #__PURE__ */ Data_Newtype.unwrap();\nvar when = /* #__PURE__ */ Control_Applicative.when(Effect.applicativeEffect);\nvar not = /* #__PURE__ */ Data_HeytingAlgebra.not(/* #__PURE__ */ Data_HeytingAlgebra.heytingAlgebraFunction(/* #__PURE__ */ Data_HeytingAlgebra.heytingAlgebraFunction(Data_HeytingAlgebra.heytingAlgebraBoolean)));\nvar identity = /* #__PURE__ */ Control_Category.identity(Control_Category.categoryFn);\nvar bind1 = /* #__PURE__ */ Control_Bind.bind(Effect_Aff.bindAff);\nvar liftEffect = /* #__PURE__ */ Effect_Class.liftEffect(Effect_Aff.monadEffectAff);\nvar map = /* #__PURE__ */ Data_Functor.map(Effect.functorEffect);\nvar bindFlipped = /* #__PURE__ */ Control_Bind.bindFlipped(Effect.bindEffect);\nvar RenderState = function (x) {\n return x;\n};\nvar substInParent = function (v) {\n return function (v1) {\n return function (v2) {\n if (v1 instanceof Data_Maybe.Just && v2 instanceof Data_Maybe.Just) {\n return $$void(Web_DOM_Node.insertBefore(v)(v1.value0)(v2.value0));\n };\n if (v1 instanceof Data_Maybe.Nothing && v2 instanceof Data_Maybe.Just) {\n return $$void(Web_DOM_Node.appendChild(v)(v2.value0));\n };\n return pure(Data_Unit.unit);\n };\n };\n};\nvar removeChild = function (v) {\n return function __do() {\n var npn = Web_DOM_Node.parentNode(v.node)();\n return traverse_(function (pn) {\n return Web_DOM_Node.removeChild(v.node)(pn);\n })(npn)();\n };\n};\nvar mkSpec = function (handler) {\n return function (renderChildRef) {\n return function (document) {\n var getNode = Halogen_Aff_Driver_State.unRenderStateX(function (v) {\n return v.node;\n });\n var done = function (st) {\n if (st instanceof Data_Maybe.Just) {\n return Halogen_VDom_Machine.halt(st.value0);\n };\n return Data_Unit.unit;\n };\n var buildWidget = function (spec) {\n var buildThunk = Halogen_VDom_Thunk.buildThunk(unwrap)(spec);\n var $lazy_patch = $runtime_lazy(\"patch\", \"Halogen.VDom.Driver\", function () {\n return function (st, slot) {\n if (st instanceof Data_Maybe.Just) {\n if (slot instanceof Halogen_Component.ComponentSlot) {\n Halogen_VDom_Machine.halt(st.value0);\n return $lazy_renderComponentSlot(100)(slot.value0);\n };\n if (slot instanceof Halogen_Component.ThunkSlot) {\n var step$prime = Halogen_VDom_Machine.step(st.value0, slot.value0);\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(Halogen_VDom_Machine.extract(step$prime), new Data_Maybe.Just(step$prime), $lazy_patch(103), done));\n };\n throw new Error(\"Failed pattern match at Halogen.VDom.Driver (line 97, column 22 - line 103, column 79): \" + [ slot.constructor.name ]);\n };\n return $lazy_render(104)(slot);\n };\n });\n var $lazy_render = $runtime_lazy(\"render\", \"Halogen.VDom.Driver\", function () {\n return function (slot) {\n if (slot instanceof Halogen_Component.ComponentSlot) {\n return $lazy_renderComponentSlot(86)(slot.value0);\n };\n if (slot instanceof Halogen_Component.ThunkSlot) {\n var step = buildThunk(slot.value0);\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(Halogen_VDom_Machine.extract(step), new Data_Maybe.Just(step), $lazy_patch(89), done));\n };\n throw new Error(\"Failed pattern match at Halogen.VDom.Driver (line 84, column 7 - line 89, column 75): \" + [ slot.constructor.name ]);\n };\n });\n var $lazy_renderComponentSlot = $runtime_lazy(\"renderComponentSlot\", \"Halogen.VDom.Driver\", function () {\n return function (cs) {\n var renderChild = Effect_Ref.read(renderChildRef)();\n var rsx = renderChild(cs)();\n var node = getNode(rsx);\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(node, Data_Maybe.Nothing.value, $lazy_patch(117), done));\n };\n });\n var patch = $lazy_patch(91);\n var render = $lazy_render(82);\n var renderComponentSlot = $lazy_renderComponentSlot(109);\n return render;\n };\n var buildAttributes = Halogen_VDom_DOM_Prop.buildProp(handler);\n return {\n buildWidget: buildWidget,\n buildAttributes: buildAttributes,\n document: document\n };\n };\n };\n};\nvar renderSpec = function (document) {\n return function (container) {\n var render = function (handler) {\n return function (child) {\n return function (v) {\n return function (v1) {\n if (v1 instanceof Data_Maybe.Nothing) {\n return function __do() {\n var renderChildRef = Effect_Ref[\"new\"](child)();\n var spec = mkSpec(handler)(renderChildRef)(document);\n var machine = Halogen_VDom_DOM.buildVDom(spec)(v);\n var node = Halogen_VDom_Machine.extract(machine);\n $$void(Web_DOM_Node.appendChild(node)(Web_HTML_HTMLElement.toNode(container)))();\n return {\n machine: machine,\n node: node,\n renderChildRef: renderChildRef\n };\n };\n };\n if (v1 instanceof Data_Maybe.Just) {\n return function __do() {\n Effect_Ref.write(child)(v1.value0.renderChildRef)();\n var parent = Web_DOM_Node.parentNode(v1.value0.node)();\n var nextSib = Web_DOM_Node.nextSibling(v1.value0.node)();\n var machine$prime = Halogen_VDom_Machine.step(v1.value0.machine, v);\n var newNode = Halogen_VDom_Machine.extract(machine$prime);\n when(not(Unsafe_Reference.unsafeRefEq)(v1.value0.node)(newNode))(substInParent(newNode)(nextSib)(parent))();\n return {\n machine: machine$prime,\n node: newNode,\n renderChildRef: v1.value0.renderChildRef\n };\n };\n };\n throw new Error(\"Failed pattern match at Halogen.VDom.Driver (line 157, column 5 - line 173, column 80): \" + [ v1.constructor.name ]);\n };\n };\n };\n };\n return {\n render: render,\n renderChild: identity,\n removeChild: removeChild,\n dispose: removeChild\n };\n };\n};\nvar runUI = function (component) {\n return function (i) {\n return function (element) {\n return bind1(liftEffect(map(Web_HTML_HTMLDocument.toDocument)(bindFlipped(Web_HTML_Window.document)(Web_HTML.window))))(function (document) {\n return Halogen_Aff_Driver.runUI(renderSpec(document)(element))(component)(i);\n });\n };\n };\n};\nexport {\n runUI\n};\n","// Generated by purs version 0.15.7\nimport * as $foreign from \"./foreign.js\";\nimport * as AppActions from \"../AppActions/index.js\";\nimport * as AppHtml from \"../AppHtml/index.js\";\nimport * as AppState from \"../AppState/index.js\";\nimport * as AppUrl from \"../AppUrl/index.js\";\nimport * as Cache from \"../Cache/index.js\";\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Control_Monad_State_Class from \"../Control.Monad.State.Class/index.js\";\nimport * as Control_Monad_State_Trans from \"../Control.Monad.State.Trans/index.js\";\nimport * as Control_Monad_Trans_Class from \"../Control.Monad.Trans.Class/index.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nimport * as Effect_Aff from \"../Effect.Aff/index.js\";\nimport * as Effect_Aff_Class from \"../Effect.Aff.Class/index.js\";\nimport * as Effect_Class from \"../Effect.Class/index.js\";\nimport * as Halogen_Aff_Util from \"../Halogen.Aff.Util/index.js\";\nimport * as Halogen_Component from \"../Halogen.Component/index.js\";\nimport * as Halogen_Query_HalogenM from \"../Halogen.Query.HalogenM/index.js\";\nimport * as Halogen_VDom_Driver from \"../Halogen.VDom.Driver/index.js\";\nimport * as LocationString from \"../LocationString/index.js\";\nimport * as TablatureRewriter from \"../TablatureRewriter/index.js\";\nimport * as Web_HTML from \"../Web.HTML/index.js\";\nimport * as Web_HTML_HTMLDocument from \"../Web.HTML.HTMLDocument/index.js\";\nimport * as Web_HTML_Window from \"../Web.HTML.Window/index.js\";\nvar bind = /* #__PURE__ */ Control_Bind.bind(Halogen_Query_HalogenM.bindHalogenM);\nvar viewState = /* #__PURE__ */ AppState.viewState(Halogen_Query_HalogenM.monadStateHalogenM);\nvar eq = /* #__PURE__ */ Data_Eq.eq(AppState.eqMode);\nvar pure = /* #__PURE__ */ Control_Applicative.pure(Halogen_Query_HalogenM.applicativeHalogenM);\nvar discard = /* #__PURE__ */ Control_Bind.discard(Control_Bind.discardUnit);\nvar discard1 = /* #__PURE__ */ discard(Halogen_Query_HalogenM.bindHalogenM);\nvar setState = /* #__PURE__ */ AppState.setState(Halogen_Query_HalogenM.monadStateHalogenM);\nvar read = /* #__PURE__ */ Cache.read(Halogen_Query_HalogenM.monadStateHalogenM);\nvar write = /* #__PURE__ */ Cache.write(Halogen_Query_HalogenM.monadStateHalogenM);\nvar bindStateT = /* #__PURE__ */ Control_Monad_State_Trans.bindStateT(Halogen_Query_HalogenM.monadHalogenM);\nvar bind1 = /* #__PURE__ */ Control_Bind.bind(bindStateT);\nvar lift = /* #__PURE__ */ Control_Monad_Trans_Class.lift(Control_Monad_State_Trans.monadTransStateT)(Halogen_Query_HalogenM.monadHalogenM);\nvar pure1 = /* #__PURE__ */ Control_Applicative.pure(/* #__PURE__ */ Control_Monad_State_Trans.applicativeStateT(Halogen_Query_HalogenM.monadHalogenM));\nvar monadStateStateT = /* #__PURE__ */ Control_Monad_State_Trans.monadStateStateT(Halogen_Query_HalogenM.monadHalogenM);\nvar discard2 = /* #__PURE__ */ discard(bindStateT);\nvar viewState1 = /* #__PURE__ */ AppState.viewState(monadStateStateT);\nvar setState1 = /* #__PURE__ */ AppState.setState(monadStateStateT);\nvar read1 = /* #__PURE__ */ Cache.read(monadStateStateT);\nvar get = /* #__PURE__ */ Control_Monad_State_Class.get(Halogen_Query_HalogenM.monadStateHalogenM);\nvar execStateT = /* #__PURE__ */ Control_Monad_State_Trans.execStateT(Halogen_Query_HalogenM.functorHalogenM);\nvar put = /* #__PURE__ */ Control_Monad_State_Class.put(Halogen_Query_HalogenM.monadStateHalogenM);\nvar bind3 = /* #__PURE__ */ Control_Bind.bind(Effect_Aff.bindAff);\nvar updateFocus = function (dictMonadAff) {\n var MonadEffect0 = dictMonadAff.MonadEffect0();\n var focusTablatureContainer = AppHtml.focusTablatureContainer(MonadEffect0);\n var loadScrollTop = AppHtml.loadScrollTop(MonadEffect0);\n var focusSearchInput = AppHtml.focusSearchInput(MonadEffect0);\n return function (action) {\n if (action instanceof AppActions.Initialize) {\n return focusTablatureContainer;\n };\n if (action instanceof AppActions.ToggleEditMode) {\n return loadScrollTop;\n };\n if (action instanceof AppActions.CreateShortUrl) {\n return focusTablatureContainer;\n };\n if (action instanceof AppActions.ToggleSearch) {\n return bind(viewState(function (dictStrong) {\n return AppState[\"_mode\"](dictStrong);\n }))(function (mode) {\n var $143 = eq(mode)(AppState.SearchMode.value);\n if ($143) {\n return focusSearchInput;\n };\n return focusTablatureContainer;\n });\n };\n return pure(Data_Unit.unit);\n };\n};\nvar toggleEditMode = function (dictMonadAff) {\n var tablatureTextCache = AppState.tablatureTextCache(Halogen_Query_HalogenM.monadAffHalogenM(dictMonadAff))(Halogen_Query_HalogenM.monadStateHalogenM);\n var MonadEffect0 = dictMonadAff.MonadEffect0();\n var setTablatureTextInEditor = AppHtml.setTablatureTextInEditor(MonadEffect0);\n var getTablatureTextFromEditor = AppHtml.getTablatureTextFromEditor(MonadEffect0);\n var focusTablatureContainer = AppHtml.focusTablatureContainer(MonadEffect0);\n return bind(viewState(function (dictStrong) {\n return AppState[\"_mode\"](dictStrong);\n }))(function (mode) {\n if (mode instanceof AppState.ViewMode) {\n return discard1(setState(function (dictStrong) {\n return AppState[\"_mode\"](dictStrong);\n })(AppState.EditMode.value))(function () {\n return bind(read(tablatureTextCache))(function (tablatureText) {\n return setTablatureTextInEditor(tablatureText);\n });\n });\n };\n if (mode instanceof AppState.EditMode) {\n return bind(getTablatureTextFromEditor)(function (tablatureText) {\n return discard1(write(tablatureTextCache)(tablatureText))(function () {\n return discard1(setState(function (dictStrong) {\n return AppState[\"_mode\"](dictStrong);\n })(AppState.ViewMode.value))(function () {\n return focusTablatureContainer;\n });\n });\n });\n };\n if (mode instanceof AppState.SearchMode) {\n return pure(Data_Unit.unit);\n };\n throw new Error(\"Failed pattern match at Main (line 131, column 3 - line 142, column 28): \" + [ mode.constructor.name ]);\n });\n};\nvar startAutoscroll = function (dictMonadAff) {\n var MonadEffect0 = dictMonadAff.MonadEffect0();\n var startAutoscrollOnElement = AppHtml.startAutoscrollOnElement(Control_Monad_State_Trans.monadEffectState(Halogen_Query_HalogenM.monadEffectHalogenM(MonadEffect0)))(monadStateStateT);\n return bind1(lift(AppHtml.getTablatureContainerElement(MonadEffect0)))(function (maybeTablatureContainerElem) {\n if (maybeTablatureContainerElem instanceof Data_Maybe.Nothing) {\n return pure1(Data_Unit.unit);\n };\n if (maybeTablatureContainerElem instanceof Data_Maybe.Just) {\n return startAutoscrollOnElement(maybeTablatureContainerElem.value0);\n };\n throw new Error(\"Failed pattern match at Main (line 164, column 3 - line 166, column 47): \" + [ maybeTablatureContainerElem.constructor.name ]);\n });\n};\nvar updateAutoscrollTimer = function (dictMonadAff) {\n var startAutoscroll1 = startAutoscroll(dictMonadAff);\n return discard2(AppHtml.stopAutoscroll(Control_Monad_State_Trans.monadEffectState(Halogen_Query_HalogenM.monadEffectHalogenM(dictMonadAff.MonadEffect0())))(monadStateStateT))(function () {\n return bind1(viewState1(function (dictStrong) {\n return AppState[\"_autoscroll\"](dictStrong);\n }))(function (autoscroll) {\n if (autoscroll) {\n return startAutoscroll1;\n };\n return pure1(Data_Unit.unit);\n });\n });\n};\nvar updateAutoscroll = function (dictMonadAff) {\n var updateAutoscrollTimer1 = updateAutoscrollTimer(dictMonadAff);\n return function (action) {\n return bind1(viewState1(function (dictStrong) {\n return AppState[\"_autoscroll\"](dictStrong);\n }))(function (currentAutoscroll) {\n return discard2(setState1(function (dictStrong) {\n return AppState[\"_autoscroll\"](dictStrong);\n })((function () {\n if (action instanceof AppActions.DecreaseAutoscrollSpeed) {\n return true;\n };\n if (action instanceof AppActions.IncreaseAutoscrollSpeed) {\n return true;\n };\n if (action instanceof AppActions.ToggleAutoscroll) {\n return !currentAutoscroll;\n };\n if (action instanceof AppActions.ClickNoMenu) {\n return currentAutoscroll;\n };\n return false;\n })()))(function () {\n return updateAutoscrollTimer1;\n });\n });\n };\n};\nvar setDocumentTitle = function (title) {\n return function __do() {\n var window = Web_HTML.window();\n var document = Web_HTML_Window.document(window)();\n return Web_HTML_HTMLDocument.setTitle(title)(document)();\n };\n};\nvar updateDocumentTitle = function (dictMonadAff) {\n var MonadEffect0 = dictMonadAff.MonadEffect0();\n var bind4 = Control_Bind.bind((MonadEffect0.Monad0()).Bind1());\n var tablatureTitleCache = AppState.tablatureTitleCache(dictMonadAff);\n var liftEffect = Effect_Class.liftEffect(MonadEffect0);\n return function (dictMonadState) {\n return bind4(Cache.read(dictMonadState)(tablatureTitleCache(dictMonadState)))(function (tablatureTitle) {\n return liftEffect(setDocumentTitle(tablatureTitle));\n });\n };\n};\nvar prepareHtml = function (dictMonadAff) {\n var MonadEffect0 = dictMonadAff.MonadEffect0();\n var saveScrollTop = AppHtml.saveScrollTop(MonadEffect0);\n var toggleEditMode1 = toggleEditMode(dictMonadAff);\n var focusTablatureContainer = AppHtml.focusTablatureContainer(MonadEffect0);\n return function (action) {\n return discard1(setState(function (dictStrong) {\n return AppState[\"_loading\"](dictStrong);\n })(true))(function () {\n if (action instanceof AppActions.ToggleEditMode) {\n return discard1(saveScrollTop)(function () {\n return discard1(toggleEditMode1)(function () {\n return bind(viewState(function (dictStrong) {\n return AppState[\"_mode\"](dictStrong);\n }))(function (mode) {\n if (mode instanceof AppState.ViewMode) {\n return focusTablatureContainer;\n };\n if (mode instanceof AppState.EditMode) {\n return pure(Data_Unit.unit);\n };\n if (mode instanceof AppState.SearchMode) {\n return pure(Data_Unit.unit);\n };\n throw new Error(\"Failed pattern match at Main (line 70, column 7 - line 74, column 32): \" + [ mode.constructor.name ]);\n });\n });\n });\n };\n return pure(Data_Unit.unit);\n });\n };\n};\nvar doAction = function (dictMonadAff) {\n var monadAffState = Effect_Aff_Class.monadAffState(Halogen_Query_HalogenM.monadAffHalogenM(dictMonadAff));\n var initialize = AppActions.initialize(monadAffState)(monadStateStateT);\n var clickFileMenu = AppActions.clickFileMenu(monadAffState)(monadStateStateT);\n var clickSettingsMenu = AppActions.clickSettingsMenu(monadAffState)(monadStateStateT);\n var clickNoMenu = AppActions.clickNoMenu(monadAffState)(monadStateStateT);\n var toggleTabNormalization = AppActions.toggleTabNormalization(monadAffState)(monadStateStateT);\n var toggleTabDozenalization = AppActions.toggleTabDozenalization(monadAffState)(monadStateStateT);\n var toggleChordDozenalization = AppActions.toggleChordDozenalization(monadAffState)(monadStateStateT);\n var toggleChordNormalization = AppActions.toggleChordNormalization(monadAffState)(monadStateStateT);\n var createAndCopyShortUrl = AppActions.createAndCopyShortUrl(monadAffState)(monadStateStateT);\n var increaseAutoscrollSpeed = AppActions.increaseAutoscrollSpeed(monadAffState)(monadStateStateT);\n var decreaseAutoscrollSpeed = AppActions.decreaseAutoscrollSpeed(monadAffState)(monadStateStateT);\n var increaseTransposition = AppActions.increaseTransposition(monadAffState)(monadStateStateT);\n var decreaseTransposition = AppActions.decreaseTransposition(monadAffState)(monadStateStateT);\n var setNoteOrientation = AppActions.setNoteOrientation(monadAffState);\n var importFromUrl = AppActions.importFromUrl(monadAffState)(monadStateStateT);\n var searchInput = AppActions.searchInput(monadAffState)(monadStateStateT);\n var toggleSearch = AppActions.toggleSearch(monadAffState)(monadStateStateT);\n var updateAutoscroll1 = updateAutoscroll(dictMonadAff);\n var updateDocumentTitle1 = updateDocumentTitle(monadAffState)(monadStateStateT);\n var rewriteResultCache = AppState.rewriteResultCache(monadAffState)(monadStateStateT);\n return function (action) {\n return discard2((function () {\n if (action instanceof AppActions.Initialize) {\n return initialize;\n };\n if (action instanceof AppActions.ClickFileMenu) {\n return clickFileMenu;\n };\n if (action instanceof AppActions.ClickSettingsMenu) {\n return clickSettingsMenu;\n };\n if (action instanceof AppActions.ClickNoMenu) {\n return clickNoMenu;\n };\n if (action instanceof AppActions.ToggleEditMode) {\n return pure1(Data_Unit.unit);\n };\n if (action instanceof AppActions.ToggleTabNormalization) {\n return toggleTabNormalization;\n };\n if (action instanceof AppActions.ToggleTabDozenalization) {\n return toggleTabDozenalization;\n };\n if (action instanceof AppActions.ToggleChordDozenalization) {\n return toggleChordDozenalization;\n };\n if (action instanceof AppActions.ToggleChordNormalization) {\n return toggleChordNormalization;\n };\n if (action instanceof AppActions.CreateShortUrl) {\n return createAndCopyShortUrl;\n };\n if (action instanceof AppActions.ToggleAutoscroll) {\n return pure1(Data_Unit.unit);\n };\n if (action instanceof AppActions.IncreaseAutoscrollSpeed) {\n return increaseAutoscrollSpeed;\n };\n if (action instanceof AppActions.DecreaseAutoscrollSpeed) {\n return decreaseAutoscrollSpeed;\n };\n if (action instanceof AppActions.IncreaseTransposition) {\n return increaseTransposition;\n };\n if (action instanceof AppActions.DecreaseTransposition) {\n return decreaseTransposition;\n };\n if (action instanceof AppActions.FlatNoteOrientation) {\n return setNoteOrientation(TablatureRewriter.Flat.value)(monadStateStateT);\n };\n if (action instanceof AppActions.SharpNoteOrientation) {\n return setNoteOrientation(TablatureRewriter.Sharp.value)(monadStateStateT);\n };\n if (action instanceof AppActions.DefaultNoteOrientation) {\n return setNoteOrientation(TablatureRewriter.Default.value)(monadStateStateT);\n };\n if (action instanceof AppActions.ImportFromUrl) {\n return importFromUrl(action.value0);\n };\n if (action instanceof AppActions.SearchInput) {\n return searchInput(action.value0);\n };\n if (action instanceof AppActions.ToggleSearch) {\n return toggleSearch;\n };\n if (action instanceof AppActions.NoAction) {\n return pure1(Data_Unit.unit);\n };\n throw new Error(\"Failed pattern match at Main (line 81, column 3 - line 103, column 26): \" + [ action.constructor.name ]);\n })())(function () {\n return discard2(updateAutoscroll1(action))(function () {\n return discard2(updateDocumentTitle1)(function () {\n return bind1(read1(rewriteResultCache))(function () {\n return setState1(function (dictStrong) {\n return AppState[\"_loading\"](dictStrong);\n })(false);\n });\n });\n });\n });\n };\n};\nvar handleAction = function (dictMonadAff) {\n var prepareHtml1 = prepareHtml(dictMonadAff);\n var liftAff = Effect_Aff_Class.liftAff(Halogen_Query_HalogenM.monadAffHalogenM(dictMonadAff));\n var doAction1 = doAction(dictMonadAff);\n var updateFocus1 = updateFocus(dictMonadAff);\n return function (action) {\n return discard1(prepareHtml1(action))(function () {\n return discard1(liftAff(Effect_Aff.delay(0.0)))(function () {\n return bind(get)(function (currentState) {\n return bind(execStateT(doAction1(action))(currentState))(function (newState) {\n return discard1(put(newState))(function () {\n return discard1(liftAff(Effect_Aff.delay(0.0)))(function () {\n return updateFocus1(action);\n });\n });\n });\n });\n });\n });\n };\n};\nvar component = function (dictMonadAff) {\n return Halogen_Component.mkComponent({\n initialState: AppState.initialState,\n render: AppHtml.render,\n \"eval\": Halogen_Component.mkEval({\n handleAction: handleAction(dictMonadAff),\n handleQuery: Halogen_Component.defaultEval.handleQuery,\n receive: Halogen_Component.defaultEval.receive,\n initialize: new Data_Maybe.Just(AppActions.Initialize.value),\n finalize: Halogen_Component.defaultEval.finalize\n })\n });\n};\nvar component1 = /* #__PURE__ */ component(Effect_Aff_Class.monadAffAff);\nvar main = function __do() {\n var mode = LocationString.getQueryParam(\"u\")();\n if (mode instanceof Data_Maybe.Just) {\n return AppUrl.redirectToUrlInFragment();\n };\n $foreign.executeJavascriptHacks();\n return Halogen_Aff_Util.runHalogenAff(bind3(Halogen_Aff_Util.awaitBody)(function (body) {\n return Halogen_VDom_Driver.runUI(component1)(Data_Unit.unit)(body);\n }))();\n};\nexport {\n executeJavascriptHacks\n} from \"./foreign.js\";\nexport {\n main,\n component,\n handleAction,\n prepareHtml,\n doAction,\n updateDocumentTitle,\n updateFocus,\n toggleEditMode,\n updateAutoscroll,\n updateAutoscrollTimer,\n startAutoscroll,\n setDocumentTitle\n};\n","export function autocomplete(textarea) {\n return function () {\n return textarea.autocomplete;\n };\n}\n\nexport function setAutocomplete(autocomplete) {\n return function (textarea) {\n return function () {\n textarea.autocomplete = autocomplete;\n };\n };\n}\n\n// ----------------------------------------------------------------------------\n\nexport function autofocus(textarea) {\n return function () {\n return textarea.autofocus;\n };\n}\n\nexport function setAutofocus(autofocus) {\n return function (textarea) {\n return function () {\n textarea.autofocus = autofocus;\n };\n };\n}\n\n// ----------------------------------------------------------------------------\n\nexport function cols(textarea) {\n return function () {\n return textarea.cols;\n };\n}\n\nexport function setCols(cols) {\n return function (textarea) {\n return function () {\n textarea.cols = cols;\n };\n };\n}\n\n// ----------------------------------------------------------------------------\n\nexport function dirName(textarea) {\n return function () {\n return textarea.dirName;\n };\n}\n\nexport function setDirName(dirName) {\n return function (textarea) {\n return function () {\n textarea.dirName = dirName;\n };\n };\n}\n\n// ----------------------------------------------------------------------------\n\nexport function disabled(textarea) {\n return function () {\n return textarea.disabled;\n };\n}\n\nexport function setDisabled(disabled) {\n return function (textarea) {\n return function () {\n textarea.disabled = disabled;\n };\n };\n}\n\n// ----------------------------------------------------------------------------\n\nexport function _form(textarea) {\n return function () {\n return textarea.form;\n };\n}\n\n// ----------------------------------------------------------------------------\n\nexport function maxLength(textarea) {\n return function () {\n return textarea.maxLength;\n };\n}\n\nexport function setMaxLength(maxLength) {\n return function (textarea) {\n return function () {\n textarea.maxLength = maxLength;\n };\n };\n}\n\n// ----------------------------------------------------------------------------\n\nexport function minLength(textarea) {\n return function () {\n return textarea.minLength;\n };\n}\n\nexport function setMinLength(minLength) {\n return function (textarea) {\n return function () {\n textarea.minLength = minLength;\n };\n };\n}\n\n// ----------------------------------------------------------------------------\n\nexport function name(textarea) {\n return function () {\n return textarea.name;\n };\n}\n\nexport function setName(name) {\n return function (textarea) {\n return function () {\n textarea.name = name;\n };\n };\n}\n\n// ----------------------------------------------------------------------------\n\nexport function placeholder(textarea) {\n return function () {\n return textarea.placeholder;\n };\n}\n\nexport function setPlaceholder(placeholder) {\n return function (textarea) {\n return function () {\n textarea.placeholder = placeholder;\n };\n };\n}\n\n// ----------------------------------------------------------------------------\n\nexport function readOnly(textarea) {\n return function () {\n return textarea.readOnly;\n };\n}\n\nexport function setReadOnly(readOnly) {\n return function (textarea) {\n return function () {\n textarea.readOnly = readOnly;\n };\n };\n}\n\n// ----------------------------------------------------------------------------\n\nexport function required(textarea) {\n return function () {\n return textarea.required;\n };\n}\n\nexport function setRequired(required) {\n return function (textarea) {\n return function () {\n textarea.required = required;\n };\n };\n}\n\n// ----------------------------------------------------------------------------\n\nexport function rows(textarea) {\n return function () {\n return textarea.rows;\n };\n}\n\nexport function setRows(rows) {\n return function (textarea) {\n return function () {\n textarea.rows = rows;\n };\n };\n}\n\n// ----------------------------------------------------------------------------\n\nexport function wrap(textarea) {\n return function () {\n return textarea.wrap;\n };\n}\n\nexport function setWrap(wrap) {\n return function (textarea) {\n return function () {\n textarea.wrap = wrap;\n };\n };\n}\n\n// ----------------------------------------------------------------------------\n\nexport function type_(textarea) {\n return function () {\n return textarea.type;\n };\n}\n\n// ----------------------------------------------------------------------------\n\nexport function defaultValue(textarea) {\n return function () {\n return textarea.defaultValue;\n };\n}\n\nexport function setDefaultValue(defaultValue) {\n return function (textarea) {\n return function () {\n textarea.defaultValue = defaultValue;\n };\n };\n}\n\n// ----------------------------------------------------------------------------\n\nexport function value(textarea) {\n return function () {\n return textarea.value;\n };\n}\n\nexport function setValue(value) {\n return function (textarea) {\n return function () {\n textarea.value = value;\n };\n };\n}\n\n// ----------------------------------------------------------------------------\n\nexport function textLength(textarea) {\n return function () {\n return textarea.textLength;\n };\n}\n\n// ----------------------------------------------------------------------------\n\nexport function willValidate(textarea) {\n return function () {\n return textarea.willValidate;\n };\n}\n\n// ----------------------------------------------------------------------------\n\nexport function validity(textarea) {\n return function () {\n return textarea.validity;\n };\n}\n\n// ----------------------------------------------------------------------------\n\nexport function validationMessage(textarea) {\n return function () {\n return textarea.validationMessage;\n };\n}\n\n// ----------------------------------------------------------------------------\n\nexport function checkValidity(textarea) {\n return function () {\n return textarea.checkValidity();\n };\n}\n\n// ----------------------------------------------------------------------------\n\nexport function reportValidity(textarea) {\n return function () {\n return textarea.reportValidity();\n };\n}\n\n// ----------------------------------------------------------------------------\n\nexport function setCustomValidity(value) {\n return function (textarea) {\n return function () {\n textarea.setCustomValidity(value);\n };\n };\n}\n\n// ----------------------------------------------------------------------------\n\nexport function labels(textarea) {\n return function () {\n return textarea.labels;\n };\n}\n\n// ----------------------------------------------------------------------------\n\nexport function select(textarea) {\n return function () {\n textarea.select();\n };\n}\n\n// ----------------------------------------------------------------------------\n\nexport function selectionStart(textarea) {\n return function () {\n return textarea.selectionStart;\n };\n}\n\nexport function setSelectionStart(selectionStart) {\n return function (textarea) {\n return function () {\n textarea.selectionStart = selectionStart;\n };\n };\n}\n\n// ----------------------------------------------------------------------------\n\nexport function selectionEnd(textarea) {\n return function () {\n return textarea.selectionEnd;\n };\n}\n\nexport function setSelectionEnd(selectionEnd) {\n return function (textarea) {\n return function () {\n textarea.selectionEnd = selectionEnd;\n };\n };\n}\n\n// ----------------------------------------------------------------------------\n\nexport function selectionDirection(textarea) {\n return function () {\n return textarea.selectionDirection;\n };\n}\n\nexport function setSelectionDirection(selectionDirection) {\n return function (textarea) {\n return function () {\n textarea.selectionDirection = selectionDirection;\n };\n };\n}\n\n// ----------------------------------------------------------------------------\n\nexport function setRangeText(replacement) {\n return function (textarea) {\n return function () {\n textarea.setRangeText(replacement);\n };\n };\n}\n\nexport function _setRangeText(replacement, start, end, selectionMode, textarea) {\n textarea.setRangeText(replacement, start, end, selectionMode);\n}\n\n// ----------------------------------------------------------------------------\n\nexport function setSelectionRange(start) {\n return function (end) {\n return function (direction) {\n return function (textarea) {\n return function () {\n textarea.setSelectionRange(start, end, direction);\n };\n };\n };\n };\n}\n","var Main = require('../output/Main');\n\nfunction main () {\n /*\n Here we could add variables such as\n\n var baseUrl = process.env.BASE_URL;\n\n Parcel will replace `process.env.BASE_URL`\n with the string contents of the BASE_URL environment\n variable at bundle/build time.\n A .env file can also be used to override shell variables\n for more information, see https://en.parceljs.org/env.html\n\n These variables can be supplied to the Main.main function.\n However, you will need to change the type to accept variables, by default it is an Effect.\n You will probably want to make it a function from String -> Effect ()\n */\n\n Main.main();\n}\n\n// For HMR info see: https://parceljs.org/hmr.html\n\nconsole.log('Starting app');\nmain();\n"],"names":["LZString","f","String","fromCharCode","keyStrBase64","keyStrUriSafe","baseReverseDic","getBaseValue","alphabet","character","i","length","charAt","compressToBase64","input","res","_compress","a","decompressFromBase64","_decompress","index","compressToUTF16","decompressFromUTF16","compressed","charCodeAt","compressToUint8Array","uncompressed","compress","buf","Uint8Array","TotalLen","current_value","decompressFromUint8Array","decompress","Array","result","forEach","c","push","join","compressToEncodedURIComponent","decompressFromEncodedURIComponent","replace","bitsPerChar","getCharFromInt","value","ii","context_dictionary","context_dictionaryToCreate","context_c","context_wc","context_w","context_enlargeIn","context_dictSize","context_numBits","context_data","context_data_val","context_data_position","Object","prototype","hasOwnProperty","call","Math","pow","resetValue","getNextValue","w","bits","resb","maxpower","power","dictionary","enlargeIn","dictSize","numBits","entry","data","val","position","define","amd","module","exports","angular","factory","$bbf04ce6ad0d5805$exports","webm","mp4","$50e735a1de9ac006$var$oldIOS","navigator","parseFloat","exec","userAgent","window","MSStream","$50e735a1de9ac006$var$nativeWakeLock","$62b3ded9d4f7f437$var$noSleep","$parcel$interopDefault","constructor","this","enabled","_wakeLock","handleVisibilityChange","document","visibilityState","enable","addEventListener","noSleepTimer","noSleepVideo","createElement","setAttribute","_addSourceToVideo","$50e735a1de9ac006$require$webm","$50e735a1de9ac006$require$mp4","duration","currentTime","random","element","type","dataURI","source","src","appendChild","isEnabled","wakeLock","request","then","console","log","catch","err","error","name","message","disable","warn","setInterval","hidden","location","href","split","setTimeout","stop","Promise","resolve","play","release","clearInterval","pause","$62b3ded9d4f7f437$export$5d114b05173d62d0","reload","root","querySelector","style","setProperty","max","documentElement","clientHeight","innerHeight","bgColor","getComputedStyle","getPropertyValue","m","content","head","enableNoSleep","removeEventListener","$5807467a73465f3c$export$3af17640bddf7212","compose","g","x","$5807467a73465f3c$export$f672e0b6f7222cd7","dict","$5be483788e0e6f04$export$f0954fd7d5368655","identity","$5be483788e0e6f04$export$7037e3b2ba3bd7aa","Semigroupoid0","$f57f4b701aa7b66e$export$af631764ddc44097","y","$f57f4b701aa7b66e$export$8a83211c878a3f1f","b","$f57f4b701aa7b66e$export$5b38a098e5a9e7ca","v","$05149ea687d6b460$export$523c0b569236b342","undefined","$c6a0478cbb9b5a21$export$accffb5fb4579e0d","$$Proxy","$f4b2eb11fc32ed34$export$871de8747c9eaa88","map","$f4b2eb11fc32ed34$export$5c8c64e4bc0bcb7a","dictFunctor","map1","fa","$f4b2eb11fc32ed34$export$490e536ee7389aeb","$f4b2eb11fc32ed34$export$6775eb02dd4c5e2a","$f4b2eb11fc32ed34$export$2330f868b62ed546","arr","l","$7576d3a958d66ab0$var$identity","$7576d3a958d66ab0$export$60d7bd9d686a5521","apply","fs","xs","k","n","j","Functor0","$7576d3a958d66ab0$export$5635d7ef4b8fee1c","$7576d3a958d66ab0$export$e48e2da4536c2eea","dictApply","apply1","$7576d3a958d66ab0$export$3d5d566a030a20fc","$7576d3a958d66ab0$export$f016650e64b51e7d","$c50cfdb0b9e8fa31$export$48ec4a2b1cfc6557","pure","$c50cfdb0b9e8fa31$export$a55877ca9db47377","dictApplicative","pure1","v1","Error","fill","$fc8c1182ec2aefec$export$7de5ece11b723a44","Cons","tail","emptyList","curryCons","foldr","list","count","listToArray","$fc8c1182ec2aefec$export$f24224f1c91d8156","$fc8c1182ec2aefec$export$3dea766d36a8935f","filter","$fc8c1182ec2aefec$export$b29f828819edca8d","yes","no","mergeFromTo","compare","fromOrdering","xs1","xs2","from","to","mid","$1f7f00687c3959c5$export$e5ed8a20a1c4d576","reflectSymbol","$d2fadbdf02925823$export$1d94535d2cda4eda","label","rec","$d2fadbdf02925823$export$444262986932b766","copy","key","$d7bf9817a417d4ae$export$d9b7100b101f2c5b","append","s1","s2","$d7bf9817a417d4ae$export$d082f07d0a8e9909","ys","concat","$d7bf9817a417d4ae$export$10d8903dec122b9d","$d7bf9817a417d4ae$export$49c9dc4575956c55","dictSemigroup","append1","$75e93a4111e80214$export$228be17d80722ab","alt","$70cd3177464e7915$var$identity","$70cd3177464e7915$export$584af591d945b55a","discard","$70cd3177464e7915$export$794f9574ca20b986","bind","Apply0","$70cd3177464e7915$export$2385a24977818dd0","$70cd3177464e7915$export$f2077a1c19a006d9","dictBind","$70cd3177464e7915$export$ea9fbbe247ef8e50","bindFlipped1","$70cd3177464e7915$export$61a2047e1b1e0d3e","bind1","$70cd3177464e7915$export$f73711e565ded7e","$70cd3177464e7915$export$f7e2c8231c57a8bd","$d3d065da31679be1$export$551dd5524146e426","dictMonad","Bind1","unless","Applicative0","mb","$d3d065da31679be1$export$2f6ca3d3b1f80bf5","f$prime","a$prime","$cd1cb347a48b7ff0$export$4ffd3705721c8b5b","$cd1cb347a48b7ff0$export$d6be889e229abd84","Number","POSITIVE_INFINITY","NEGATIVE_INFINITY","$e07f6ef164bf0728$var$unsafeCompareImpl","lt","eq","gt","$e07f6ef164bf0728$export$654933317498633e","$e07f6ef164bf0728$export$bfcbb0304ffa620f","$e07f6ef164bf0728$export$5a20025607cdef3f","$f4eec6a416d226bf$var$refEq","r1","r2","$37b880af5f4991bd$export$fa624555ca2acbc8","$37b880af5f4991bd$export$e65788c6d4494539","$37b880af5f4991bd$export$bcd79f9321394c38","$37b880af5f4991bd$export$d7927e8ffc1afb48","$37b880af5f4991bd$export$9663ddc1cf085b32","$37b880af5f4991bd$var$eq2","$37b880af5f4991bd$export$5475dfc31a65c2cd","dictEq","eq3","$5026be88823ef1f4$export$7158f0ceb70f54c7","LT","$5026be88823ef1f4$export$b023c82b48e70453","GT","$5026be88823ef1f4$export$1c0a5d05eb3f6e18","EQ","$c0e822be92afc4df$export$7f9972325ebfd559","zero","$c0e822be92afc4df$export$7e80d6910c05bd77","add","mul","one","$c0e822be92afc4df$export$e16d8520af44a096","$d061555d3b2c84b2$export$f93b5905241a7cca","sub","$d061555d3b2c84b2$export$d40e27c88e22a303","Semiring0","$d061555d3b2c84b2$export$aef51622e549b8b0","dictRing","sub1","$97937c29f879e68e$export$c5f2758e49b2b86a","Eq0","$97937c29f879e68e$export$ff461bf68e7dd332","$97937c29f879e68e$export$3abd12c96be3b09b","$97937c29f879e68e$export$398604a469f7de9a","$97937c29f879e68e$export$4be320a4fd1ac499","dictOrd","compare3","a1","a2","$97937c29f879e68e$export$9b050841a3a1b328","$97937c29f879e68e$export$8960430cfd85939f","$97937c29f879e68e$export$96ec731ed4dcb222","$97937c29f879e68e$export$7d15b64cf5a3a4c4","min1","max1","low","hi","$97937c29f879e68e$export$2335f513bbd82c6d","greaterThanOrEq1","negate1","$69d0e3dbb12088d2$export$1e95b668f3b82d","top","$69d0e3dbb12088d2$export$c84fa7e5ca2385dd","bottom","Ord0","$69d0e3dbb12088d2$export$7cd7c97ac7ec5b79","$69d0e3dbb12088d2$export$40e543e69a8b3fbb","$2c6b3d51d10471a7$export$e4b6cd05df3043f6","show","s","empty","toString","$2c6b3d51d10471a7$export$3d7cf516d27998a0","$2c6b3d51d10471a7$export$ad55f318773e3cd5","$2c6b3d51d10471a7$export$57bf213be019eeb0","$91c996e9c07e3b3f$export$dd5fad028b7772cd","Inl","value0","create","$91c996e9c07e3b3f$export$df71ca4577dbdff6","Inr","$91c996e9c07e3b3f$export$928c7f2d618c070b","NoArguments","$91c996e9c07e3b3f$export$8bfc33963ccbb2a","$91c996e9c07e3b3f$export$2c618a4308a30424","$91c996e9c07e3b3f$export$6788812c4e6611e6","$06733ae99ed4f534$var$identity","$06733ae99ed4f534$export$bebe9059409a0d04","Nothing","$06733ae99ed4f534$export$8a67b48435b5d073","Just","$06733ae99ed4f534$export$f8b8b9ce72e9ccbf","v2","$06733ae99ed4f534$export$4967676db1b89293","$06733ae99ed4f534$export$c15bd07a493e1236","$06733ae99ed4f534$export$fdd2427f0e60fd66","$06733ae99ed4f534$var$map","$06733ae99ed4f534$export$43db023a260c5e9f","$06733ae99ed4f534$export$2506262575dd10a7","$06733ae99ed4f534$export$8f45bb76abf9699e","$06733ae99ed4f534$export$22d9917da16590e7","$06733ae99ed4f534$export$e5fea5661dee377","$06733ae99ed4f534$export$b203ef4465f15037","$7d4cccdf062a2261$export$37c4d04eafdc5515","Left","$7d4cccdf062a2261$export$19db0165690c701a","Right","$7d4cccdf062a2261$export$a92e4c44d367d0af","$7d4cccdf062a2261$export$f0a413d3d6075601","$7d4cccdf062a2261$var$map","$7d4cccdf062a2261$export$5f5be1bb6cd1fded","$7d4cccdf062a2261$export$3a6c138b8d0f3874","$7d4cccdf062a2261$export$d5df7cb019d08f04","$7d4cccdf062a2261$export$3806e10d0c441ac5","e","$7d4cccdf062a2261$export$400f1ef3f3ec304d","$7d4cccdf062a2261$export$b3b4ecb28e3a8df3","$50c50d1f444e5fa4$export$544bf02140fa9a77","$50c50d1f444e5fa4$export$dc85e8383eafbd81","$50c50d1f444e5fa4$export$c7d2c62721e92954","$50c50d1f444e5fa4$export$91e759983456b85e","$50c50d1f444e5fa4$export$fd3b2458e55fc503","$50c50d1f444e5fa4$export$9a2f2fd6148bc6d0","$a64f08f726dec5e9$export$5745e05f6b169cee","Ring0","$b0cd729514c2504e$export$842a2cf37af977e1","mod","$b0cd729514c2504e$export$437776face1858ae","degree","min","abs","div","floor","yy","CommutativeRing0","$b0cd729514c2504e$export$159d9494db57879b","$784e1bd3d26d71da$export$fc39f3d77fa2e58a","mempty","Semigroup0","$784e1bd3d26d71da$export$db307f59121ffcc4","$784e1bd3d26d71da$export$9a7d64bc1d75357","$784e1bd3d26d71da$export$192e81b9fe7e4abe","dictMonoid","mempty1","semigroupFn","$01fd16aefb19fd56$export$f6d4f01ca39c2fe","$6c2f8951ecf9531e$var$$runtime_lazy","moduleName","init","state","lineNumber","ReferenceError","$6c2f8951ecf9531e$export$7e900d895707a1af","$6c2f8951ecf9531e$export$89bf999217d3022a","$6c2f8951ecf9531e$export$855330f8a2a9f2e8","$6c2f8951ecf9531e$var$$lazy_applyEffect","$6c2f8951ecf9531e$var$$lazy_functorEffect","$6c2f8951ecf9531e$export$91fce01ecf0438e1","$6c2f8951ecf9531e$export$59a7b217c53300d2","$e521936ea118867a$export$aafa59e2e03f2942","ref","$e521936ea118867a$export$68d8715fc104d294","$90327512d8280b8d$var$$$void","$90327512d8280b8d$export$b8cb59497041ffe4","$90327512d8280b8d$export$4d5401161a900ce1","t","$90327512d8280b8d$export$3ff57735a52b8713","s$prime","$90327512d8280b8d$export$45b91115a89d6020","$f93520de2fa37b44$var$bindFlipped","$f93520de2fa37b44$var$map","$f93520de2fa37b44$export$550acbd06a1f5a6a","Loop","$f93520de2fa37b44$export$7fe28cb29e71bf10","Done","$f93520de2fa37b44$export$c025cfd4cc93300b","tailRecM","$f93520de2fa37b44$export$2e586eaa876dd2fd","$85","$copy_v","$tco_result","$tco_done","$tco_loop","go","$f93520de2fa37b44$export$ddd28c989be5e46c","a0","Monad0","$f93520de2fa37b44$export$c2472dc015e90d28","fromDone","r","$f93520de2fa37b44$export$61e43214bca7f031","bimap","$f11e5cd39add8df2$export$b8cb59497041ffe4","$f11e5cd39add8df2$export$aafa59e2e03f2942","$f11e5cd39add8df2$export$68d8715fc104d294","$08944f7287e2704c$var$$runtime_lazy","$08944f7287e2704c$export$4d5401161a900ce1","$08944f7287e2704c$export$a47991927f51461e","$08944f7287e2704c$export$962073314682c2c","$08944f7287e2704c$export$603d84e49041d7b2","$08944f7287e2704c$export$14049c9ff5b55fb3","$08944f7287e2704c$var$$lazy_applyST","$08944f7287e2704c$export$65915895b3a8faeb","$0dbe0c7353bd68b1$export$7c850c5af9b9983e","$0dbe0c7353bd68b1$var$copyImpl","slice","$0dbe0c7353bd68b1$export$80340c06f76ce783","$784e144d56146b5c$export$fd51609fe570ea92","$784e144d56146b5c$export$4cbf152802aa238","as","$f8fc227945eb179e$export$80bf595f9d9a1157","tt","$f8fc227945eb179e$export$6003a5f097c73977","not","$f8fc227945eb179e$export$6c53455e54f455ef","implies","$f8fc227945eb179e$export$f59495b1b7502b33","ff","$f8fc227945eb179e$export$9bd7ee00e37438db","disj","$f8fc227945eb179e$export$d7d9283ee84f4c3f","conj","b1","b2","$f8fc227945eb179e$export$fb254c661fe9c0db","$f8fc227945eb179e$export$e9ae480d80dfc592","dictHeytingAlgebra","ff1","tt1","implies1","conj1","disj1","not1","$8dd172f1ebfb42af$var$map","$8dd172f1ebfb42af$var$not","$8dd172f1ebfb42af$var$$$void","$8dd172f1ebfb42af$var$Iterator","Iterator","value1","$8dd172f1ebfb42af$export$48cfd1e771a65c4f","$08944f7287e2704c$export$3ff57735a52b8713","$8dd172f1ebfb42af$export$6f58e2338da23f4d","$8dd172f1ebfb42af$export$c1a059043cc9c119","iter","$$break","mx","$7abe8fbe97ebda87$export$6e22c362a0406a2c","$71f2e2e9476163f8$export$1908877435b1d5e9","Tuple","$71f2e2e9476163f8$export$6f71268a1666ab58","$71f2e2e9476163f8$export$19ab04734dcb0ff0","$71f2e2e9476163f8$export$9e770fa6ce19a9d6","$20615e99b278adf5$var$identity","$20615e99b278adf5$export$eb54baf0b342cb1d","$20615e99b278adf5$export$2ad466be2e2b0196","dictBifunctor","bimap1","$20615e99b278adf5$export$9b66d4861c364eff","$1242d110ab1edcd9$export$286e7113895e33ef","$1242d110ab1edcd9$export$e1c73e5b30670500","semigroupDisj1","$1242d110ab1edcd9$export$f23e3b19aa9e04ea","$57b8542ac3131c5d$export$947ca1a8eed6111","dictCategory","dictSemigroupoid","semigroupEndo1","$ac8b3532514ac019$export$401372c57776dc","$a4e6c090e9e673b6$export$8c14e57e778d3873","$4fa4836228a192cc$var$coerce","$4fa4836228a192cc$export$debb760848ca95a","$4fa4836228a192cc$export$3b98aa7d576b2b80","$4fa4836228a192cc$export$b533eaec53aab18a","$4fe7b6acfba7f29f$var$identity","$4fe7b6acfba7f29f$var$alaF","$4fe7b6acfba7f29f$export$a11cb61c36c4a4cf","$4fe7b6acfba7f29f$export$33f63ccdb08d8723","applySecond","dictFoldable","foldr2","$454","$4fe7b6acfba7f29f$export$9747ee7caa0b40b1","traverse_1","$4fe7b6acfba7f29f$export$50ae948ca12cdcbc","foldl","$4fe7b6acfba7f29f$export$739ec22334c44788","foldl2","sep","acc","$4fe7b6acfba7f29f$export$8a63f25cc62965f1","dictSemiring","$4fe7b6acfba7f29f$export$ff97dbee91e727b6","foldMap","$4fe7b6acfba7f29f$export$e97014618a7eb593","len","$4fe7b6acfba7f29f$export$b66cdc0497d8a99a","$4fe7b6acfba7f29f$export$93e2b83da34ff82a","foldMap2","$4fe7b6acfba7f29f$export$4154a199d7d90455","$e2e7171b55349aa8$export$778bf95e3da1fa51","array1","array2","array3","concat2","array","bot","pivot","$10ae0394c8c3139a$export$8ad5d15375e29446","$10ae0394c8c3139a$export$c03820c48bf31fc8","$10ae0394c8c3139a$export$38647a91a5af2717","applyConst1","$e48f2e41a907ae60$export$c38b62d29991685f","semigroupAdditive1","$e48f2e41a907ae60$export$8adb2de2291fe34","$11d1e86de605dfc6$var$identity","$11d1e86de605dfc6$export$df3f009e3d155b20","traverse","$11d1e86de605dfc6$export$417d88f64c497aed","dictTraversable","traverse2","$11d1e86de605dfc6$export$9e4a28683e28e26a","sequence","Foldable1","$6c33ca7d98a534e5$export$6368c6d238d348f0","isNothing","fromJust","fst","snd","maybe","tuple","$b1275140774187c9$export$e3753a19e82ccedc","$cf5af1199a495394$var$fromJust","$cf5af1199a495394$export$587ba9a9bf3cf8b4","unfoldr1","$cb5fedc2c4837e1c$var$fromJust","$cb5fedc2c4837e1c$export$df2b8ee1690308ae","unfoldr","$cb5fedc2c4837e1c$export$2b90ca20b4b58da5","Unfoldable10","$396c4c3d9e7fae3c$var$fromJust","$396c4c3d9e7fae3c$export$c40cf5aab899f397","$396c4c3d9e7fae3c$export$439306a4dcaafbb9","$396c4c3d9e7fae3c$export$b610b8812bbcded9","just","nothing","$396c4c3d9e7fae3c$export$5fd5031fecdacec3","$396c4c3d9e7fae3c$export$b7d5d9bb9ff52072","$396c4c3d9e7fae3c$export$de3a4d4a0d731119","$396c4c3d9e7fae3c$export$f444781b0adb7e4d","eq2","$396c4c3d9e7fae3c$export$5bf96401662340b7","elemIndex1","$396c4c3d9e7fae3c$export$90f9093465da3136","l1","splice","$396c4c3d9e7fae3c$export$9ea2b6c3fae093d8","$396c4c3d9e7fae3c$export$c28c8388be0ab31a","$396c4c3d9e7fae3c$export$e70771d2e7e590a","$187","$188","$4ab74a20512cef04$export$f601457c5ee3082f","radix","isNaN","isFinite","acos","asin","atan","ceil","cos","exp","round","sign","sin","sqrt","tan","trunc","$8d5664f12212b23e$export$3004f64547af360e","digits","pattern","RegExp","test","parseInt","$8d5664f12212b23e$export$d7a050b0311540b9","$8d5664f12212b23e$export$7bbb4164c9a77bc2","$f2c9b767d25cfbb9$export$86a2e24932ca2aa0","liftEffect","$f2c9b767d25cfbb9$export$34255e15eb56d2b3","$93c729927fdf3160$export$c106dd0671a0fc2d","$93c729927fdf3160$export$a3bc9b8ed74fc","$ad2cf6904bca3ba1$export$a3bc9b8ed74fc","msg","$ad2cf6904bca3ba1$export$a8ecead220dd38a6","$ad2cf6904bca3ba1$export$de0c4a986b439e52","$ad2cf6904bca3ba1$export$d49c1c6bf2cedce5","$4e52402d7134c8bb$var$pure","$4e52402d7134c8bb$var$map","$5dfefa023749ded0$export$8bf7aba4a9e09055","throwError","$5dfefa023749ded0$export$3dede90624df3ba9","catchError","$5dfefa023749ded0$export$410a452afcd48948","dictMonadError","catchError1","MonadThrow0","$52","$f2d5035ce6148af6$export$ca000e230c0caa3e","$f2d5035ce6148af6$export$327f7b26ebf455db","dictMonadState","state1","$f2d5035ce6148af6$export$3988ae62b71be9a3","$384c24655e07f36c$export$590e8b2c435046d9","lift","$2c4a247071255d7e$export$de3113ed932c61ab","tell","$d2284b2d3e1b6f87$var$map","$d2284b2d3e1b6f87$export$998a9a780731dd5b","$d2284b2d3e1b6f87$export$34cbd9fbda5c1fb2","$d2284b2d3e1b6f87$export$d684c62fe584fcfa","$d2284b2d3e1b6f87$export$5a198347e9244c74","$d2284b2d3e1b6f87$export$963960a96c103d2f","$d2284b2d3e1b6f87$export$a8cbc0f84e8b069b","$d2284b2d3e1b6f87$export$581feac922061bf0","functorExceptT1","$189","$d2284b2d3e1b6f87$export$75f89ba5e7a712b0","$198","monadExceptT1","$199","$d2284b2d3e1b6f87$export$4cca4d0f6dfbd781","rm","rn","$f9f243b94d1fc188$var$unwrap","$f9f243b94d1fc188$export$64f3cd24d850d401","$f9f243b94d1fc188$export$a25b8a8a37f2d1cd","$3","$c2c5bfcfd98ddabb$export$f5bbd400c2f4426f","$c2c5bfcfd98ddabb$export$348caad1e8d41c5f","isArray","$1f1c3fb67e79b37f$export$d8deaab87a4e223a","NonEmpty","$1f1c3fb67e79b37f$export$439306a4dcaafbb9","dictPlus","$1f1c3fb67e79b37f$export$ffafc93d2cc87798","dictShow","dictShow1","show1","$1f1c3fb67e79b37f$export$a6ffbf6bde05f5c0","map2","$78c799cba34fcb8d$var$identity","$78c799cba34fcb8d$export$c1bed610ade55e1c","Nil","$78c799cba34fcb8d$export$74c44e616647f5c0","$78c799cba34fcb8d$export$effcdbd76139450","$78c799cba34fcb8d$export$40b9e4330ffd17e3","$copy_v1","$tco_var_v","$copy_v2","$copy_v3","v3","$tco_var_v2","$tco_done1","$78c799cba34fcb8d$var$map","$78c799cba34fcb8d$export$3c979cc7d75b024c","$78c799cba34fcb8d$export$92659ee1fc91a075","rev","$284","$285","$copy_b","$tco_var_b","append2","$286","$287","$78c799cba34fcb8d$var$foldl","$78c799cba34fcb8d$var$foldr","$78c799cba34fcb8d$var$intercalate","$78c799cba34fcb8d$export$11cb7909a85856b","$78c799cba34fcb8d$var$append1","$78c799cba34fcb8d$export$a8cfc3dfdfca72cf","as$prime","$78c799cba34fcb8d$export$36831384a74c4427","$78c799cba34fcb8d$export$3a5290e21dfc0ad7","$78c799cba34fcb8d$export$99c2ce29c0ead637","lift2","$301","$302","$304","$305","$303","$78c799cba34fcb8d$export$7e49f2fa1ca16fbc","$78c799cba34fcb8d$var$apply","$78c799cba34fcb8d$export$18f1a42667f2921e","$78c799cba34fcb8d$export$497dcf96eb2383ec","$78c799cba34fcb8d$export$97980ce7ea95015b","$78c799cba34fcb8d$export$55d622505c452dcb","Alt0","$78c799cba34fcb8d$export$e5d0ed5dac805e10","$315","$316","$3d4fd987da5242ff$var$bimap","$3d4fd987da5242ff$var$bind","$3d4fd987da5242ff$var$identity","$3d4fd987da5242ff$export$439306a4dcaafbb9","$3d4fd987da5242ff$export$66c1ae025e96b4bc","$3d4fd987da5242ff$export$7b1b591b262c240","$3d4fd987da5242ff$export$17771a97d85ba7eb","dictMonadRec","dictAlternative","Plus1","p","aa","$3d4fd987da5242ff$export$b610b8812bbcded9","$3d4fd987da5242ff$export$5fd5031fecdacec3","$3d4fd987da5242ff$export$de3a4d4a0d731119","fn","$3d4fd987da5242ff$export$ee1b3e54f0441b22","$d8f9d43a2c2b18d5$export$b479f9f69f916b6a","$dcd3eefef707675c$export$ddf616d7646fcc8e","$8bcde8f642a64c7d$var$crashWith","$8bcde8f642a64c7d$export$cb50937af21de128","$8bcde8f642a64c7d$export$51b220bae4359b72","$ba51d599f79a6310$var$wrappedOperation","$ba51d599f79a6310$export$effcdbd76139450","$ba51d599f79a6310$export$439306a4dcaafbb9","$200","$201","$ba51d599f79a6310$export$66c1ae025e96b4bc","$ba51d599f79a6310$export$8327ebbef2a0ba76","$092fe44bc0883be6$export$f24224f1c91d8156","$092fe44bc0883be6$export$663103110d94aac9","substring","$092fe44bc0883be6$export$b0d75975ac0be0e1","before","after","$3296d29fc7ea4822$export$bbcf894add1d392c","$1a77d6934b592676$export$71c2a1babd78d286","str","$1a77d6934b592676$export$bbcf894add1d392c","$c97d2d0f578f81ad$var$show","$c97d2d0f578f81ad$var$show1","$c97d2d0f578f81ad$var$pure","$c97d2d0f578f81ad$export$f6a37cc43a8b8898","ForeignError","$c97d2d0f578f81ad$export$168e2d3b16829a","TypeMismatch","$c97d2d0f578f81ad$export$20d9a5af040a79f1","ErrorAtIndex","$c97d2d0f578f81ad$export$92e5795aa905bd26","ErrorAtProperty","$c97d2d0f578f81ad$export$9d82982d31d9d171","$c97d2d0f578f81ad$export$19df04dfac508e15","$c97d2d0f578f81ad$export$ca110433ecb89bbf","$c97d2d0f578f81ad$export$a2293656e769bd56","$c97d2d0f578f81ad$export$2b62a06a9fee979c","$153","$154","$c97d2d0f578f81ad$export$6190f2182377b437","fail1","tag","$c97d2d0f578f81ad$export$347fd215c36b10be","$c97d2d0f578f81ad$export$ac3747cb00139c63","readNumber1","$155","fromNumber","$156","$c97d2d0f578f81ad$export$dda73877cb166cd3","$50707c2041acf154$var$readString","$50707c2041acf154$export$d5b97dcb03573e55","$426T3","$50707c2041acf154$export$249033b1ea90b5e1","$e33b908fa29b9714$export$a47d25c94f569","$bf46188d6c8b331c$export$e09b5698b1daa629","$bf46188d6c8b331c$export$3b1c842301e48025","origin","pathname","$bf46188d6c8b331c$var$_setLocationString","newurl","$bf46188d6c8b331c$export$fb26b3b2bcd87ed","hash","startsWith","$bf46188d6c8b331c$var$_setFragmentString","protocol","host","search","history","pushState","$bf46188d6c8b331c$var$_setQueryString","$5b07e36f812dd04b$export$77ad94ebf1c2b9ed","s3","$5b07e36f812dd04b$export$b8b3234b4edfc4c2","$5b07e36f812dd04b$export$65980d18b75784e2","$5b07e36f812dd04b$export$b1ceac3893cbda6b","toLowerCase","$5b07e36f812dd04b$export$43df7fc17cca38a4","toUpperCase","$5b07e36f812dd04b$export$ec1dc8fbeea3467e","$90b0f96fa17fd751$var$readString","$90b0f96fa17fd751$export$3cfeaae924d7dc58","components","$90b0f96fa17fd751$export$95fd5664a53dd0c5","paramName","URLSearchParams","get","$bf46188d6c8b331c$export$c39857d5f9675860","$f1bb8ebf3e871e7b$export$6181bf2c9b131c6","$f1bb8ebf3e871e7b$export$806997222bb6c221","$f1bb8ebf3e871e7b$export$709ec6fd4facd918","dictGenericTop","$f1bb8ebf3e871e7b$export$809040532a805d25","$f1bb8ebf3e871e7b$export$e5021f221f1901dc","$f1bb8ebf3e871e7b$export$6664e36118e71716","dictGenericBottom","$f1bb8ebf3e871e7b$export$67bf323f19c93e99","$1cf1b1293ed20ecf$export$d90166409dd04e85","$f935a9866e211c00$var$top","$f935a9866e211c00$var$bottom","$f935a9866e211c00$export$45328c01562fb205","toEnum","$f935a9866e211c00$export$61d85e1612867711","succ","$f935a9866e211c00$export$c238ae40a8cccc17","pred","$f935a9866e211c00$export$b385cb642735011f","fromEnum","$f935a9866e211c00$export$11e799785deb08e4","toEnum$prime","fromEnum$prime","$f935a9866e211c00$export$dc42af8461b24233","$f935a9866e211c00$var$charToEnum","$f935a9866e211c00$export$8ff57056df5ff58e","$f935a9866e211c00$export$be1f07c3580164c","cardinality","Bounded0","Enum1","$591624f3e890e8f1$var$map","$591624f3e890e8f1$export$529bb0fc8518039b","$591624f3e890e8f1$export$21ed8930f14dbb8a","dictGeneric","dictGenericEnum","$157","$158","$591624f3e890e8f1$export$d21b74e9469cda33","$591624f3e890e8f1$export$85896d1160871410","$159","$160","$161","$591624f3e890e8f1$export$bd9e316b601eb70","genericPred$prime1","genericSucc$prime1","genericTop$prime","dictGenericEnum1","genericPred$prime2","genericSucc$prime2","genericBottom$prime","$591624f3e890e8f1$export$b96a970ca4ab7189","$591624f3e890e8f1$export$4187ba6208e60aa2","$64b04bb6c92110b4$var$alaF","$64b04bb6c92110b4$export$7999ed7bf07e0908","$64b04bb6c92110b4$export$4abec2a7e626a96e","dimap","$36","$64b04bb6c92110b4$export$babcd87d8ce55e9e","first","$37","second","$38","Profunctor0","$64b04bb6c92110b4$export$b41051971cb8cf21","left","right","$64b04bb6c92110b4$export$b8012e26804f1c03","applicativeConst","choiceForget1","wander","Strong0","Choice1","$9be1c75e3223ee2e$var$identity","$9be1c75e3223ee2e$export$e10497e40cde5fd3","a2b","c2d","b2c","$18","$9be1c75e3223ee2e$export$7c344215185fc3ac","$9be1c75e3223ee2e$export$6630987c9d273301","dictProfunctor","dimap1","$00137f617725882c$export$79ffe56a765070d2","$00137f617725882c$export$fc24090daa54e09a","$65bbf210574f301e$export$311dde6ade8133c7","$65bbf210574f301e$export$43128fadae87b74a","$48c79e0fab366ce5$var$alaF","$48c79e0fab366ce5$export$3576324867460c38","$48c79e0fab366ce5$export$cfc1ea1528b06875","$6747074e6373717a$var$coerce","$6747074e6373717a$export$1aba8f741a0eae06","pab","$6747074e6373717a$export$b0aba6e7ca90045b","$03856732e0180b78$export$96b9aa254b12a908","dictStrong","$03856732e0180b78$export$21cde5187c2605a3","set","$9e314cb25c39ecff$var$identity","$9e314cb25c39ecff$export$e469dcfea9910464","fro","dictChoice","rmap","$9e314cb25c39ecff$export$312354c024d04a0e","$c99955db0ea3513e$export$a394bbdd6c32127d","$c99955db0ea3513e$export$ef3fc4df4d6fefd5","$c99955db0ea3513e$export$f417834c5f6f1047","$c99955db0ea3513e$export$b09e0402fa7f3ff2","$98bb5646b70a5fad$var$coerced","$98bb5646b70a5fad$export$48abf2f204df1ff5","$c1ace8e72317eb41$export$afce405d63da662","$8f2697950ee155e1$export$dd8987cb9f63b77e","$8f2697950ee155e1$export$c4d34fab9eba1901","d","$15e8567e7c31ba30$export$adaa4cf7ef1b65be","dictIsSymbol","$15e8567e7c31ba30$export$3988ae62b71be9a3","$83d24b6670f65c42$export$977f3f6a9323c0f6","$e9bda291f4ec10ec$export$5e0a9e9fea50cb88","$e9bda291f4ec10ec$var$lift","$e9bda291f4ec10ec$export$d5449d946db19e3a","$e9bda291f4ec10ec$export$193956ba360b7728","$e9bda291f4ec10ec$export$345b4840c14ff10f","$e9bda291f4ec10ec$export$5cbc630d6fbe2e14","$e9bda291f4ec10ec$export$f28534bdc7259c7","$e9bda291f4ec10ec$export$2ea3d0ecd25a5eef","functorStateT1","$e9bda291f4ec10ec$export$cba9856135198781","dictMonadEffect","$197","monadStateT1","$e9bda291f4ec10ec$export$fc3b89a546fa5c5c","$5b0358e10bf152e0$export$adaa4cf7ef1b65be","$20b7e7e53aabb118$export$ce9a3b8b41ce61b6","dictWander","$1beecf5cf4a05a68$var$_Newtype","$1beecf5cf4a05a68$export$281e652f04014a17","prop","constructBarlow","$1beecf5cf4a05a68$export$2ccf07702ef4caa1","_SumLeft","_Constructor","_Argument","constructBarlowGeneric","$1beecf5cf4a05a68$export$8fd0cc604c051e60","$1beecf5cf4a05a68$export$f850042db236fa4a","_ToGeneric","$c99955db0ea3513e$export$3ba0c02c57edd549","dictConstructBarlowGeneric","constructBarlowGeneric1","_ToGeneric1","$205","$206","$1beecf5cf4a05a68$export$1f2af1e431c6fd5f","_SumRight","$211","$212","$1beecf5cf4a05a68$export$5148ff764e75a1ca","$1beecf5cf4a05a68$export$86d9364aad8c166e","dictConstructBarlow","constructBarlow2","_Newtype1","$225","$226","$1beecf5cf4a05a68$export$ee14b6210ad05a4d","$233","$234","$235","$1abdc1cddc3b0d30$export$df61b30b684217c0","$1abdc1cddc3b0d30$export$61b4289ae0638ab8","barlow","$1abdc1cddc3b0d30$export$91dc08fb815c5ffc","$544b62a378cc0091$var$append","$544b62a378cc0091$export$f7ad98836d6849e8","genericShowArgs","$544b62a378cc0091$export$13bb3b5ea79b5fe6","$544b62a378cc0091$export$186afff91b813845","dictGenericShowArgs","genericShowArgs1","separator","ctor","$544b62a378cc0091$export$c357439213aef314","$544b62a378cc0091$export$29d77e0cd7b7a3b8","dictGenericShow","genericShow$prime1","dictGenericShow1","genericShow$prime2","$544b62a378cc0091$export$dc29b8461849edae","$bfc50dc5547207b7$var$hasArrayFrom","$bfc50dc5547207b7$var$hasStringIterator","Symbol","iterator","$bfc50dc5547207b7$var$hasFromCodePoint","fromCodePoint","$bfc50dc5547207b7$var$hasCodePointAt","codePointAt","$bfc50dc5547207b7$export$81daff3801c9c982","fallback","$bfc50dc5547207b7$export$ecb7b38eca4fe9ff","$bfc50dc5547207b7$export$6d9af221d75dd06f","accum","o","next","done","$bfc50dc5547207b7$export$c61d72f8b05641be","unsafeCodePointAt0","$3ee2158c14339cc9$var$fromEnum","$3ee2158c14339cc9$var$map","$3ee2158c14339cc9$var$unfoldr","$3ee2158c14339cc9$var$div","$3ee2158c14339cc9$var$mod","$3ee2158c14339cc9$var$unsurrogate","lead","trail","$3ee2158c14339cc9$var$isTrail","cu","$3ee2158c14339cc9$var$isLead","$3ee2158c14339cc9$export$b446f6baa3bb1430","cu1","cu0","$43","$3ee2158c14339cc9$var$unconsButWithTuple","$3ee2158c14339cc9$var$toCodePointArrayFallback","$3ee2158c14339cc9$var$unsafeCodePointAt0","$3ee2158c14339cc9$export$50a427d3c041e0d2","$3ee2158c14339cc9$export$f24224f1c91d8156","$74","$3ee2158c14339cc9$var$fromCharCode","dictBoundedEnum","toEnum1","fromEnum1","bottom1","$75","high","$f935a9866e211c00$export$1e2c188a485bdeae","$76","$3ee2158c14339cc9$var$singletonFallback","$3ee2158c14339cc9$export$439306a4dcaafbb9","$3ee2158c14339cc9$var$takeFallback","$3ee2158c14339cc9$export$b7df5d561049483a","$3ee2158c14339cc9$export$663103110d94aac9","$ed6295dbdc25761e$export$e0969da9b8fb378d","lastIndex","$ed6295dbdc25761e$export$77ad94ebf1c2b9ed","$fb3071975af0bbe0$export$77e76a4721f88dfa","global","ignoreCase","multiline","dotAll","sticky","unicode","$fb3071975af0bbe0$export$2afc0c80c8dff0e7","$fb3071975af0bbe0$export$90b4d2ff6acb88af","$03be6cc86948e3c6$export$17b0f4d84dbfeedf","$ed6295dbdc25761e$export$f69e81cb42c99394","$03be6cc86948e3c6$export$4659b591c19bdf3d","match","$5c0b3c602b128ea0$var$identity","$5c0b3c602b128ea0$export$d962eb330c9c823c","$29ebf71a495a2833$export$68326237475e9a7d","searchString","$f051e3c8ff3e5c6e$export$25aeaa49aee6261e","$29ebf71a495a2833$export$76d90c956114f2c2","repeat","$f051e3c8ff3e5c6e$export$aebb0c6792549bd2","$7038ccc2f7f5bbce$var$map","$7038ccc2f7f5bbce$export$84eda9cb75492c36","$d3d065da31679be1$export$167848c32e61a4d4","$7038ccc2f7f5bbce$var$lift","$7038ccc2f7f5bbce$export$3bf77092340654e0","$7038ccc2f7f5bbce$export$63cf87c0678a1d2c","$7038ccc2f7f5bbce$export$4797150488333da1","$7038ccc2f7f5bbce$export$c4ec8f671a263573","$7038ccc2f7f5bbce$export$2fa55c29b4f8d86e","functorMaybeT1","$7038ccc2f7f5bbce$export$2f876a9cb1e407d9","$162","monadMaybeT1","$163","$7038ccc2f7f5bbce$export$99cfcc8edd025934","lift1","$7038ccc2f7f5bbce$export$907950ecc201e8fb","dictMonadTell","$166","$167","Monad1","$168","$247a018fd68c64cd$var$traverse","$247a018fd68c64cd$var$identity","$247a018fd68c64cd$var$mempty","$247a018fd68c64cd$var$discard","$247a018fd68c64cd$export$3d6620ea1c90e496","$247a018fd68c64cd$export$c2d084dc44961371","print","$247a018fd68c64cd$export$8ce3161f7f4571c9","$247a018fd68c64cd$export$6ef64ebfa0554958","$247a018fd68c64cd$export$fd03cfe3dcd76ba2","discard1","$247a018fd68c64cd$export$8802485f9deae94f","$247a018fd68c64cd$export$8eff52254bb18e16","$4a4f27a1bc1d1205$var$append","$4a4f27a1bc1d1205$var$show","$4a4f27a1bc1d1205$var$genericShowConstructor","$4a4f27a1bc1d1205$var$foldr","$4a4f27a1bc1d1205$var$map","$4a4f27a1bc1d1205$var$mapFlipped","$4a4f27a1bc1d1205$var$genericEnumConstructor","$4a4f27a1bc1d1205$var$genericEnumSum","$4a4f27a1bc1d1205$var$genericBottomConstructor","$4a4f27a1bc1d1205$var$genericBottomSum","$4a4f27a1bc1d1205$var$genericEnumSum1","$4a4f27a1bc1d1205$var$fromJust","$4a4f27a1bc1d1205$var$barlowInstance","$4a4f27a1bc1d1205$var$constructBarlowTConsRecor","$4a4f27a1bc1d1205$var$constructBarlowTConsRecor1","$4a4f27a1bc1d1205$var$constructBarlowTConsRecor2","$4a4f27a1bc1d1205$var$letterIsSymbol","$4a4f27a1bc1d1205$var$constructBarlowTConsRecor11","$4a4f27a1bc1d1205$var$constructBarlowTConsRecor3","$4a4f27a1bc1d1205$var$constructBarlowTConsRecor4","$4a4f27a1bc1d1205$var$constructBarlowTConsRecor5","$4a4f27a1bc1d1205$var$constructBarlowTConsRecor6","$4a4f27a1bc1d1205$var$constructBarlowTConsRecor7","$4a4f27a1bc1d1205$var$constructBarlowTConsRecor8","$4a4f27a1bc1d1205$var$constructBarlowTConsRecor9","$4a4f27a1bc1d1205$export$f99233281efd08a0","Title","$4a4f27a1bc1d1205$export$f51a6b42ed26721f","TitleOther","$4a4f27a1bc1d1205$export$ebd11618f299a286","A","$4a4f27a1bc1d1205$export$ef35774e6d314e91","B","$4a4f27a1bc1d1205$export$e7094788287c5e9b","C","$4a4f27a1bc1d1205$export$96f57966bedc81b4","D","$4a4f27a1bc1d1205$export$a9c23c6ac3fc3eca","E","$4a4f27a1bc1d1205$export$d66501df72047452","F","$4a4f27a1bc1d1205$export$2329c99376c9d0a4","G","$4a4f27a1bc1d1205$export$e77cfe0b08ec163","Prefix","$4a4f27a1bc1d1205$export$929ca5e5f0b1941","Tuning","$4a4f27a1bc1d1205$export$4f7489ac3ba5f304","TimelineConnection","$4a4f27a1bc1d1205$export$952c7b481c9dd0e","TimelineSep","$4a4f27a1bc1d1205$export$e27e1fe4585c6e4f","TimelineSpace","$4a4f27a1bc1d1205$export$3dd03ef127bf8609","Fret","$4a4f27a1bc1d1205$export$76dce95d1e1a78b6","Special","$4a4f27a1bc1d1205$export$6fe455b424bdaa07","Suffix","$4a4f27a1bc1d1205$export$8b251419efc915eb","Header","$4a4f27a1bc1d1205$export$c03eae707927a664","HeaderSuffix","$4a4f27a1bc1d1205$export$94d986b76bacbfd5","ChordFret","$4a4f27a1bc1d1205$export$32b078a0c5604252","ChordSpecial","$4a4f27a1bc1d1205$export$ea5bec4fe6ccf800","ChordLineChord","$4a4f27a1bc1d1205$export$46a0c326e8a3eb5a","ChordComment","$4a4f27a1bc1d1205$export$5f1af8db9871e1d6","Text","$4a4f27a1bc1d1205$export$7ee1cf0eabcbf85d","Spaces","$4a4f27a1bc1d1205$export$d3bca3c8230c3cb6","TextLineChord","$4a4f27a1bc1d1205$export$d78fd3b74d21cf1f","ChordLegend","$4a4f27a1bc1d1205$export$327ac6ab709fd275","TitleLine","$4a4f27a1bc1d1205$export$a45863d8b85e0e85","HeaderLine","$4a4f27a1bc1d1205$export$bd22cb4ede86a5b3","TablatureLine","$4a4f27a1bc1d1205$export$2fa56b298cad64d6","ChordLine","$4a4f27a1bc1d1205$export$4377c71588c2474b","TextLine","$4a4f27a1bc1d1205$export$ad8161481beb3b00","$4a4f27a1bc1d1205$export$1b013579decdc741","dictPrint","print5","elem","spaceSuffix","$4a4f27a1bc1d1205$export$927fcb0a4ea2e5f","pre","interval","post","$4a4f27a1bc1d1205$export$e60d836f92796dd1","$4a4f27a1bc1d1205$var$constructBarlow1","$4a4f27a1bc1d1205$export$70b3b68be75ba100","$4a4f27a1bc1d1205$var$genericSucc","$4a4f27a1bc1d1205$var$genericPred","$4a4f27a1bc1d1205$export$fe650aa86a9423a8","$4a4f27a1bc1d1205$var$print","$4a4f27a1bc1d1205$export$4fc159fa254817aa","uppercase","primitive","lowercase","$4a4f27a1bc1d1205$var$print1","$4a4f27a1bc1d1205$export$76f0d5f6892c2da6","letter","$4a4f27a1bc1d1205$var$print2","$4a4f27a1bc1d1205$var$print3","$4a4f27a1bc1d1205$export$70fcf3a9387362ad","mods","bass","$4a4f27a1bc1d1205$export$d2463a0634726728","$4a4f27a1bc1d1205$export$c8ad7e8127a442d1","$4a4f27a1bc1d1205$var$eq3","$4a4f27a1bc1d1205$export$e00cf9635725fdfd","$4a4f27a1bc1d1205$export$2cdb5bd419c5bd6a","$4a4f27a1bc1d1205$var$eq4","$4a4f27a1bc1d1205$export$65c3ebeb7942696c","$4a4f27a1bc1d1205$export$678b6112e3ba8f1f","$4a4f27a1bc1d1205$var$succ","$4a4f27a1bc1d1205$var$pred","$4a4f27a1bc1d1205$export$9d1e9f76d6442a33","Enum0","$4a4f27a1bc1d1205$export$1741e49665a9c8e8","$4a4f27a1bc1d1205$export$547fea080080972c","$4a4f27a1bc1d1205$export$def9db0114e95ce8","$4a4f27a1bc1d1205$export$5d3155b3808b99c0","$4a4f27a1bc1d1205$export$c707a6d65a3a9b2","$4a4f27a1bc1d1205$export$a006015c889d4c6c","$4a4f27a1bc1d1205$export$ea67c3edeec85c63","$4a4f27a1bc1d1205$export$fb9caac8a1e6fd34","$4a4f27a1bc1d1205$export$2ff84855c967f0e4","$4a4f27a1bc1d1205$export$d173351870d06ff5","$4a4f27a1bc1d1205$export$fa222c265b4c8028","$4a4f27a1bc1d1205$export$f05dab1a1612963d","$4a4f27a1bc1d1205$export$7a7c36c3589171fc","$1beecf5cf4a05a68$export$b9208f73809b4444","$4a4f27a1bc1d1205$export$1abee69c8e08161e","$4a4f27a1bc1d1205$export$270d0d9b1501647","$4a4f27a1bc1d1205$export$237c3b5aa7962c2f","$93e924a5d6afcba3$var$unwrap","$93e924a5d6afcba3$var$identity","$93e924a5d6afcba3$export$e97a7fd9e3003cfa","$93e924a5d6afcba3$export$bbc32009fb41242a","$116","$117","$119","$118","$93e924a5d6afcba3$export$7bce66fb9c2f13e","lessThan","$122","$123","$93e924a5d6afcba3$export$8082fa36f85e6b63","$148","$149","$93e924a5d6afcba3$export$b26c150f612c10f7","$150","$152","$151","$027ac699fc79e3e6$var$unwrap","$027ac699fc79e3e6$var$identity","$027ac699fc79e3e6$export$c4ddc81c7b2c8d7a","$045da9902a5efc92$var$print","$045da9902a5efc92$var$print1","$045da9902a5efc92$var$anyOf","$045da9902a5efc92$var$monoidDisj","$045da9902a5efc92$var$_TextLine","$045da9902a5efc92$var$traversed","$045da9902a5efc92$var$traversed1","$045da9902a5efc92$var$monoidAdditive","$045da9902a5efc92$var$choiceForget","$045da9902a5efc92$var$_TextLine1","$045da9902a5efc92$var$traversed2","$045da9902a5efc92$var$filtered","$045da9902a5efc92$var$_TextLine2","$045da9902a5efc92$var$traversed3","$045da9902a5efc92$var$map","$045da9902a5efc92$var$show","$045da9902a5efc92$var$_lowercase","$045da9902a5efc92$var$_mod","$045da9902a5efc92$var$_primitive","$045da9902a5efc92$var$_primitive1","$045da9902a5efc92$var$_mod1","$045da9902a5efc92$var$succ$prime","$045da9902a5efc92$var$eq1","$045da9902a5efc92$var$pred$prime","$045da9902a5efc92$var$applyUntilIdempotent","$045da9902a5efc92$var$identity","$045da9902a5efc92$var$abs","$045da9902a5efc92$var$_TablatureLine","$045da9902a5efc92$var$_Tuning","$045da9902a5efc92$var$_TextLineChord","$045da9902a5efc92$var$_ChordLine","$045da9902a5efc92$var$_ChordLineChord","$045da9902a5efc92$var$_root","$045da9902a5efc92$var$_bass","$045da9902a5efc92$var$_Just","$045da9902a5efc92$var$notEq","$045da9902a5efc92$export$d50a6d81c4480dca","Flat","$045da9902a5efc92$export$3bbd1e7d1e8f7ac4","Sharp","$045da9902a5efc92$export$39bcc3f08a9b5fa4","Default","$045da9902a5efc92$export$87220003b82a30bd","$045da9902a5efc92$export$feafc36c42842e89","isPotentiallyAmbiguousChord","patternString","text","isUnambiguousChord","rewriteElement","isChordLegend","containsAtLeastFourAmbiguousChords","line","$142","$133","$143","$134","$93","$140","containsChordLegend","$141","containsAtLeastOneUnambiguousChord","$5b0358e10bf152e0$export$fb4902fd9e525693","$045da9902a5efc92$export$fa63358cc300ea23","print2","mapping","newElem","$045da9902a5efc92$var$liftMappingSpaced1","$045da9902a5efc92$var$liftMappingSpaced2","$045da9902a5efc92$export$7988311461054c07","settings","doc","toDozenalString","dozenal","dozenalizeTabs","elems","pendingDashes","fretString","$045da9902a5efc92$export$931eff48c86e78a","note","substitute","$145","$146","$147","noteOrientation","toPreferredOrientation","$045da9902a5efc92$export$94966884eea635c4","appendSuffix","suffix","transposition","$045da9902a5efc92$export$e8ee500e2684389f","chordMapping","rewriteChordsInChordLine","rewriteChordsInTextLine","$164","$045da9902a5efc92$export$1b1a279a96075498","rewriteTablatureLine","string","normalizeTabs","$045da9902a5efc92$export$6a7629754c82496d","$175","noteMapping","normalizeChords","rewriteLine","$045da9902a5efc92$export$38dee6631fb26fde","$176","$169","$171","$172","$170","$173","$045da9902a5efc92$export$c1af354d0960a210","$177","$178","$165","dozenalize","dozenalizeChords","newType","newMods","$045da9902a5efc92$export$b59027c0b391cef0","$179","$180","rewriteTablatureLineElem","$045da9902a5efc92$export$4721d910dd661c82","$181","$9f8278347d63bad2$var$identity","$9f8278347d63bad2$var$show","$9f8278347d63bad2$var$liftEffect","$9f8278347d63bad2$var$applySecond","$9f8278347d63bad2$var$pure","$9f8278347d63bad2$export$ac694cdbd09c19df","tablatureText","$9f8278347d63bad2$export$48e7c898b0948d50","$9f8278347d63bad2$export$8e01fdf60d2905d8","compressedUrl","$9f8278347d63bad2$export$da04d5a957334270","fragment","$9f8278347d63bad2$export$cf4f83753ab6f4d7","maybeTransposition","$9f8278347d63bad2$export$99b8dc687889ba5f","maybeNoteOrientation","$9f8278347d63bad2$export$15acd728b7d25137","$e524da361046c2d7$var$genericEnumConstructor","$e524da361046c2d7$var$genericEnumSum","$e524da361046c2d7$var$genericBottomConstructor","$e524da361046c2d7$var$genericBottomSum","$e524da361046c2d7$var$genericEnumSum1","$e524da361046c2d7$export$48203a90cec700d6","Slowest","$e524da361046c2d7$export$16a733526f31d7d","Slower","$e524da361046c2d7$export$b417a3b6f3fd58ad","Slow","$e524da361046c2d7$export$90749bc64b569dd0","Normal","$e524da361046c2d7$export$664a61286bf6a8ab","Fast","$e524da361046c2d7$export$447b2be8ff88fa31","Fastest","$e524da361046c2d7$export$b03179e86ee6cfb9","$e524da361046c2d7$export$fe77ec03a9e8ef6","$e524da361046c2d7$export$455cebb639488b64","$e524da361046c2d7$export$b8556987e6ae297c","$e524da361046c2d7$export$56225b4c371bb42d","$563345a00d3dd875$var$discard","$563345a00d3dd875$export$13baec60f43ea6b3","Flush","$563345a00d3dd875$export$1e7deca84b429035","Fetch","$563345a00d3dd875$export$50a83ee0d56f8c99","Cached","$563345a00d3dd875$export$26cc3c52be8321f4","NoValue","$563345a00d3dd875$export$3f69fa9d0fdbd320","$563345a00d3dd875$export$2bced1c2e491c3f2","$563345a00d3dd875$export$eded0ee6d73046ce","mapFlipped","$563345a00d3dd875$export$4d3fb11e950abb9e","_key","$563345a00d3dd875$export$f720e260cf542dac","put","$563345a00d3dd875$export$aafa59e2e03f2942","viewEntry1","overEntry1","cache","fetch","maybeValue","default","dependants","$563345a00d3dd875$export$e076d1d319db460d","foreachM","$563345a00d3dd875$export$6d6d6ad02cee4c8f","$563345a00d3dd875$export$68d8715fc104d294","invalidateDependants1","flush","$563345a00d3dd875$export$db21654b979109ea","$$default","$563345a00d3dd875$export$ec068583843480e7","read1","addDependant1","dependency","_dependant","$563345a00d3dd875$export$d3b91e183aef8799","dependencyValue","$5d2bef8f9f5f2f4d$var$show","$5d2bef8f9f5f2f4d$export$57244b7e7c76901d","localStorage","setItem","$4c364f933938dfee$export$1f73f60bdb811cb1","$5d2bef8f9f5f2f4d$export$902fb9662526b514","getItem","$4c364f933938dfee$export$d3720feff416e85b","$c02f07bc0f38e9e9$export$c62839628b30a695","Cont","ConsCell","finalCell","consList","$e39dfcf102cdca3c$var$fromJust","$e39dfcf102cdca3c$var$adaptMaybe","$e39dfcf102cdca3c$export$5fd5031fecdacec3","$05fb1b61396adfce$var$map","$05fb1b61396adfce$var$bind","$05fb1b61396adfce$var$pure","$05fb1b61396adfce$var$tailRecM","$05fb1b61396adfce$export$3634602ee36f7fe6","$69","$70","$05fb1b61396adfce$export$2b62a06a9fee979c","pos","$05fb1b61396adfce$export$ccef557e816015a1","$05fb1b61396adfce$var$lift2","$05fb1b61396adfce$export$6a1d89187d209f74","$05fb1b61396adfce$export$61619fb136dbd525","$05fb1b61396adfce$export$4719e31b794cbea2","$05fb1b61396adfce$export$45def89472122d0b","$05fb1b61396adfce$export$43bf262accd661e9","$05fb1b61396adfce$export$5d06481b113f8de9","st","$05fb1b61396adfce$export$6b86c7f1e16b91d2","$05fb1b61396adfce$export$7fee2a9586c02cd9","$05fb1b61396adfce$export$b1f0061631f50ac9","$fb26133a5ec46bf7$var$alt","$fb26133a5ec46bf7$var$bind","$fb26133a5ec46bf7$var$pure","$fb26133a5ec46bf7$var$map","$fb26133a5ec46bf7$var$applySecond","$fb26133a5ec46bf7$var$tailRecM","$fb26133a5ec46bf7$var$pure1","$fb26133a5ec46bf7$export$410a452afcd48948","$fb26133a5ec46bf7$export$a75d1723e6bda2ec","$fb26133a5ec46bf7$export$b9803a97967f594","$fb26133a5ec46bf7$export$f6dd04063e306e74","$fb26133a5ec46bf7$export$cb5d7aa1f0b188a7","$fb26133a5ec46bf7$export$14badfee79ea396f","$fb26133a5ec46bf7$export$eddf5dbe069fa672","end","inner","ending","$$continue","$fb26133a5ec46bf7$export$cf7e1b47032e4a7c","$9da596880af1a1c5$var$map","$9da596880af1a1c5$export$22b082955e083ec3","$9da596880af1a1c5$export$17b0f4d84dbfeedf","pat","$9da596880af1a1c5$export$d83becf4b42ec59","$cf21e10794af6e34$var$$runtime_lazy","$cf21e10794af6e34$var$applyFirst","$cf21e10794af6e34$var$show","$cf21e10794af6e34$var$show1","$cf21e10794af6e34$var$pure","$cf21e10794af6e34$var$mapFlipped","$cf21e10794af6e34$var$fromJust","$cf21e10794af6e34$var$bind","$cf21e10794af6e34$var$pure1","$cf21e10794af6e34$var$alt","$cf21e10794af6e34$var$append1","$cf21e10794af6e34$var$applySecond","$cf21e10794af6e34$var$print","$cf21e10794af6e34$var$sum","$cf21e10794af6e34$var$mapFlipped1","$cf21e10794af6e34$var$fold","$cf21e10794af6e34$var$append2","$cf21e10794af6e34$var$discard","$cf21e10794af6e34$var$append3","$cf21e10794af6e34$var$tryRunParser1","parser","inputString","$cf21e10794af6e34$export$8d95e1ea22824e5c","$cf21e10794af6e34$export$e7e08cc659608eba","$cf21e10794af6e34$export$5700095d8e182e2d","$cf21e10794af6e34$export$e2ff5909d7e185b4","$cf21e10794af6e34$export$411f9941f113c38f","$cf21e10794af6e34$export$5a05da2a08bde205","$cf21e10794af6e34$export$e97e0539a8e933ed","$cf21e10794af6e34$export$ac5ad4388b0ec96f","$cf21e10794af6e34$export$9946f9bc2dddfe44","getPrimitive","rootLetter","rootMod","$cf21e10794af6e34$export$8547e95033790e38","$cf21e10794af6e34$export$5e04a2fb87f3d3c4","$cf21e10794af6e34$export$d091c223ba892396","$cf21e10794af6e34$export$32b71ee8358467a7","timeline","fretsAndSpecials","$cf21e10794af6e34$export$fcc6cef76e796738","$cf21e10794af6e34$export$398f695064e4931","header","$cf21e10794af6e34$export$48072ceac3aac428","prefix","title","$cf21e10794af6e34$export$7969daead0946657","$cf21e10794af6e34$export$88193a66dffe5aa3","$cf21e10794af6e34$export$e0fc7907576ce220","$cf21e10794af6e34$export$91a11862eef03702","$cf21e10794af6e34$export$797e6dd83585fcb7","$cf21e10794af6e34$export$4398b9a9543d4f37","$cf21e10794af6e34$export$55eb2b4b5656e878","countTimeLineSpaces","countTimeLineChars","countChars","nrSpaces","nrTimelineChars","nrTablineChars","$cf21e10794af6e34$export$e011b8dfb4397757","maybeTuning","tabLine","startsWithBracket","getTuning","$cf21e10794af6e34$var$$lazy_parseTablatureLinesWithPrefix","subsequentTabLine","$cf21e10794af6e34$export$7bc6a4ce3b5e0834","$cf21e10794af6e34$export$f42117d43ee7ac2c","$cf21e10794af6e34$export$621b8187b24d90c6","parseStackableChordMods","parseParenthesizedStackableChordMods","parseChordType","parseChordMods","chordType","maybeBass","$cf21e10794af6e34$export$a7f968c9172d9b4f","chord","$cf21e10794af6e34$export$2228e77d22ea9e5c","$cf21e10794af6e34$export$9bc545c5c527032f","$cf21e10794af6e34$export$e778eedcf51e11ef","commentLinesBeforeTitle","body","$cf21e10794af6e34$export$faef0faac333181","$cf21e10794af6e34$export$d529ba4b6bdbcf0c","$cd7e50199fab2497$var$barlowInstance","$cd7e50199fab2497$var$constructBarlowTConsRecor","$cd7e50199fab2497$var$mapFlipped","$cd7e50199fab2497$var$constructBarlowTConsRecor1","$cd7e50199fab2497$var$constructBarlowTConsRecor2","$cd7e50199fab2497$var$constructBarlowTConsRecor3","$cd7e50199fab2497$var$constructBarlowTConsRecor4","$cd7e50199fab2497$var$constructBarlowTConsRecor5","$cd7e50199fab2497$var$constructBarlowTConsRecor6","$cd7e50199fab2497$var$constructBarlowTConsRecor7","$cd7e50199fab2497$var$constructBarlowTConsRecor8","$cd7e50199fab2497$var$constructBarlowTConsRecor9","$cd7e50199fab2497$var$constructBarlowTConsRecor10","$cd7e50199fab2497$var$constructBarlowTConsRecor11","$cd7e50199fab2497$var$constructBarlowTConsRecor12","$cd7e50199fab2497$var$constructBarlowTConsRecor13","$cd7e50199fab2497$var$constructBarlowTConsRecor14","$cd7e50199fab2497$var$constructBarlowTConsRecor15","$cd7e50199fab2497$var$constructBarlowTConsRecor16","$cd7e50199fab2497$var$constructBarlowTConsRecor17","$cd7e50199fab2497$var$constructBarlowTConsRecor18","$cd7e50199fab2497$export$53ec42062883b2d4","ViewMode","$cd7e50199fab2497$export$5304145354a3bee9","EditMode","$cd7e50199fab2497$export$4661c9f89207a566","SearchMode","$cd7e50199fab2497$export$76e384672f53c8f9","NoMenu","$cd7e50199fab2497$export$6126545dd7e53973","FileMenu","$cd7e50199fab2497$export$1d7840d5cdc861d5","SettingsMenu","$cd7e50199fab2497$export$32755e4b02a9685c","$cd7e50199fab2497$export$427fcf42e4051b3d","$cd7e50199fab2497$export$a89384752a6110e3","_key1","$cd7e50199fab2497$export$42fffed799c298bb","$cd7e50199fab2497$export$e020e7cc7762bbe9","localStorageKey","dictMonadAff","MonadEffect0","$cd7e50199fab2497$export$d4c72bab9d6cc13a","mode","activeMenu","loading","scrollTop","searchPhrase","searchResults","autoscroll","autoscrollTimer","autoscrollSpeed","parseResult","rewriteResult","tablatureTitle","tabNormalizationEnabled","tabDozenalizationEnabled","chordNormalizationEnabled","chordDozenalizationEnabled","upperCaseNotes","ignoreDozenalization","urlParams","$cd7e50199fab2497$export$b8bdf4f2c6d05ca5","$cd7e50199fab2497$export$42ff60374ce35565","params","$cd7e50199fab2497$export$1b3f8b662bd21269","$cd7e50199fab2497$export$1c0b6693e946ffd9","$cd7e50199fab2497$export$5fb8e8d67ebf8c5c","$cd7e50199fab2497$export$38b0525295cf1eb1","$cd7e50199fab2497$export$cc15f2a88c429651","$cd7e50199fab2497$export$42efbe0efc25ece8","$cd7e50199fab2497$export$b9b63be2d4f248bf","$cd7e50199fab2497$export$eceddc16d7de53b6","$cd7e50199fab2497$export$841dc5d3df52e3e0","$cd7e50199fab2497$export$8387e22b3f114124","$cd7e50199fab2497$export$89080e375d1cf94c","$cd7e50199fab2497$export$47deea7b0b4f351d","tablatureTextCache1","$cd7e50199fab2497$export$64faea2db0f192b7","parseResultCache1","tablatureDocument","findElement","$4a4f27a1bc1d1205$export$70d1bf7729efff40","$cd7e50199fab2497$export$fe54a26f58202d85","$cd7e50199fab2497$export$c1978f45d5c8c1fd","$cd7e50199fab2497$export$870de2d49eb64966","$cd7e50199fab2497$export$aa271239f0d4f852","tablatureTitleCache1","$cd7e50199fab2497$export$8a5f8ed4b0639af3","$cd7e50199fab2497$export$88f8d34eff7f01a0","$cd7e50199fab2497$export$13277727d7a08436","$cd7e50199fab2497$export$5c02a49702f36796","$cd7e50199fab2497$export$c2f1cb4edc8988e8","$cd7e50199fab2497$export$edcb698fcbe14f46","$cd7e50199fab2497$export$8688c5aee334756b","$cd7e50199fab2497$export$cccd39658cbe79a8","$aa56e5edbb68560e$export$2316f0d99a99ce39","$1bb5df538ea16bd9$export$2369e6c56c47a5bd","ArrayView","$1bb5df538ea16bd9$export$3b660928c86ff55c","Blob","$1bb5df538ea16bd9$export$b34a105447964f9f","Document","$1bb5df538ea16bd9$export$89b8e0fa65f6a914","$$String","$1bb5df538ea16bd9$export$3963aa24c930693c","FormData","$1bb5df538ea16bd9$export$bcdd6637213a40ec","FormURLEncoded","$1bb5df538ea16bd9$export$48880ac635f47186","Json","$1bb5df538ea16bd9$export$64f69cdd5524ddeb","$04f1e5e12069f6d8$var$unwrap","$04f1e5e12069f6d8$export$5e41db7437457e4f","Accept","$04f1e5e12069f6d8$export$e2e108cbe2e4f865","ContentType","$04f1e5e12069f6d8$export$21640746b57e4864","RequestHeader","$04f1e5e12069f6d8$export$2ab9a8f9f1186f14","$04f1e5e12069f6d8$export$a8ff84c12d48cfa6","$c02e13aaef170b91$var$identity","$c02e13aaef170b91$export$5d43b79a1f53c8d0","$$ArrayBuffer","$c02e13aaef170b91$export$3b660928c86ff55c","$c02e13aaef170b91$export$b34a105447964f9f","$c02e13aaef170b91$export$48880ac635f47186","$c02e13aaef170b91$export$89b8e0fa65f6a914","$c02e13aaef170b91$export$e92c65af050aed9a","Ignore","$c02e13aaef170b91$export$17004af5aa52bce6","$c02e13aaef170b91$export$22b082955e083ec3","$c02e13aaef170b91$export$738b109e247a462c","$d5f2bbf513cce8c9$export$42f186449ccf2a6a","ResponseHeader","$0e031af7428ef07d$export$dbafa4424a806c15","$0e031af7428ef07d$export$fac44ee5b035f737","JSON","stringify","$0e031af7428ef07d$export$8e91e9560ac84224","isNull","isBool","isNum","isStr","isArr","isObj","$03b6b966974423fe$export$6e22c362a0406a2c","$03b6b966974423fe$export$75b750e7d0325364","$03b6b966974423fe$export$4b1360bff9337362","keys","$0061661dcaa2328e$export$b8cb59497041ffe4","$c045ea5df33bba60$export$dfc7155ac0343b8","$2a035e92dc768ac1$export$d0304b893d105187","$2a035e92dc768ac1$export$1532fd4f75be8b9c","$2a035e92dc768ac1$export$d4dde8795f959ed3","$2a035e92dc768ac1$export$ec3647fa336ee4ac","$2a035e92dc768ac1$export$d7ae7d568ec9dc3c","$44e5fdc48745e77c$export$f3a8d475da9d5fc3","fail","parse","$e2dfac74220fdf7a$export$4d9ac7ad03be5d48","$554797afd3ad4541$var$toRFC3896","$554797afd3ad4541$export$5aceb7cfc152c7a0","succeed","encodeURIComponent","$554797afd3ad4541$export$737f67b1f296a4c1","$f9a555fb76059872$export$ab54ccbe87d5558","$f9a555fb76059872$export$33ec49fcdd8b3995","$d7072b1f1f4574d6$var$apply","$d7072b1f1f4574d6$var$map","$d7072b1f1f4574d6$var$traverse","$d7072b1f1f4574d6$export$c564cdbbe6da493","$39","$0279ce8fdb6b506c$export$8eb3892b442747bd","OPTIONS","$0279ce8fdb6b506c$export$1bb358554aac31c1","GET","$0279ce8fdb6b506c$export$3cdc0b6c64b90aaa","HEAD","$0279ce8fdb6b506c$export$484f3009c2ee32ad","POST","$0279ce8fdb6b506c$export$5508c7b57250ebc6","PUT","$0279ce8fdb6b506c$export$4bd2facc4a3e6aa1","DELETE","$0279ce8fdb6b506c$export$8754b71dc67cd5d0","TRACE","$0279ce8fdb6b506c$export$df50b52b1548c0dc","CONNECT","$0279ce8fdb6b506c$export$673494e2608125f7","PROPFIND","$0279ce8fdb6b506c$export$d16982ce725f2efb","PROPPATCH","$0279ce8fdb6b506c$export$36dd893c77c0f7d8","MKCOL","$0279ce8fdb6b506c$export$92f9e1ed9114d3a6","COPY","$0279ce8fdb6b506c$export$346f08c1f0d0fe41","MOVE","$0279ce8fdb6b506c$export$9227a1a65abc0f40","LOCK","$0279ce8fdb6b506c$export$81c5e18fd95994a5","UNLOCK","$0279ce8fdb6b506c$export$54950d96c4d7b0","PATCH","$0279ce8fdb6b506c$export$7afd0cf4e939f7e8","$0279ce8fdb6b506c$export$c2d084dc44961371","$305519516124a7ff$export$7b1b591b262c240","$305519516124a7ff$export$9b7835891cf7097a","$0a5aaf95f168428e$export$b187f57ee1822bc5","$0a5aaf95f168428e$export$1ba013b88f4f21f3","$b28443a27438717a$var$Aff","EMPTY","PURE","THROW","CATCH","SYNC","ASYNC","BIND","BRACKET","FORK","SEQ","MAP","APPLY","ALT","CONS","RESUME","RELEASE","FINALIZER","FINALIZED","FORKED","Aff","_1","_2","_3","AffCtr","nonCanceler","runEff","eff","runSync","runAsync","Scheduler","limit","size","ix","queue","draining","drain","thunk","isDraining","enqueue","cb","tmp","SUSPENDED","CONTINUE","STEP_BIND","STEP_RESULT","PENDING","RETURN","COMPLETED","Fiber","util","supervisor","aff","runTick","status","step","interrupt","bhead","btail","attempts","bracketCount","joinId","joins","rethrow","run","localRunTick","attempt","isLeft","fromRight","register","sequential","fromLeft","killed","failed","completed","handler","onComplete","jid","kill","canceler","isSuspended","runPar","par","fiberId","fibers","killId","kills","early","kid","loop","lhs","rhs","fiber","fid","killError","killCb","innerKills","newKills","cancel","Pure","Throw","Catch","Sync","Async","Bind","Bracket","Fork","Seq","ParMap","ParApply","ParAlt","Supervisor","isEmpty","killAll","killCount","$b28443a27438717a$export$68c6660df485915b","$b28443a27438717a$export$520252a01094c36e","$b28443a27438717a$export$f97e7884af471963","immediate","$b28443a27438717a$export$3c6532f01a0290eb","$b28443a27438717a$export$49d5975414e0a979","$b28443a27438717a$export$9ad792f02752f447","acquire","options","$b28443a27438717a$export$389c1406f5ae6ae7","ms","timer","setImmediate","clearImmediate","clearTimeout","clearDelay","$b28443a27438717a$export$139486a45824a247","$d9ef009191ddae40$export$c950a71321ef1ffc","$d9ef009191ddae40$export$502115c714790859","$d9ef009191ddae40$export$2f46a8de9e2e0acc","functorWriterT1","v4","$d9ef009191ddae40$export$c3b0a193a5475c40","applyWriterT1","applyWriterT2","$d9ef009191ddae40$export$a45df43c41b778a","applicativeWriterT1","bindWriterT1","applicativeWriterT2","bindWriterT2","$d9ef009191ddae40$export$b022f808a9791225","monadWriterT1","$252","$253","monadWriterT2","$254","$86141680556a7436$export$3c7b24ce1c81e349","$86141680556a7436$export$451942af9381149c","parallel","$355d9520a1199e68$var$identity","$355d9520a1199e68$export$a907a2b4fd85b16b","dictParallel","parTraverse_1","traverse_","Applicative1","$48","$50","$49","$355d9520a1199e68$export$3b8cfe43eb195e1d","$edf0339512807bee$var$$runtime_lazy","$edf0339512807bee$var$pure","$edf0339512807bee$var$$$void","$edf0339512807bee$var$map","$edf0339512807bee$export$4de6f17bc3dfa03","$edf0339512807bee$export$d7f9012ed771d686","$edf0339512807bee$export$e8a7d9b8d7dc616a","$edf0339512807bee$var$map1","$edf0339512807bee$export$469c8a16c186651e","$edf0339512807bee$var$ffiUtil","$edf0339512807bee$var$makeFiber","$b28443a27438717a$export$f24188c8fd3f1234","$edf0339512807bee$export$30b347ca11a80af4","$edf0339512807bee$export$1391212d75b2ee65","$edf0339512807bee$export$df5598cc12b9c8c","$edf0339512807bee$export$83901714774e2edc","aff1","aff2","$edf0339512807bee$export$b147a380fa8fdc0e","$edf0339512807bee$export$9dc0454a98607988","$edf0339512807bee$export$f885f489dcf38a2d","$edf0339512807bee$var$$lazy_applyAff","$edf0339512807bee$var$pure2","$edf0339512807bee$var$bind1","$edf0339512807bee$var$bindFlipped","$edf0339512807bee$export$666a030cecdf96c","$edf0339512807bee$var$liftEffect","$edf0339512807bee$export$952106a975f35ae2","$edf0339512807bee$export$f3d782c2b95165ad","$edf0339512807bee$export$29466a041ff3b3e0","$edf0339512807bee$export$c65b2010df1810d","suspended","$edf0339512807bee$export$37a9b80154c7d256","$edf0339512807bee$export$9efce1646e93cba4","$edf0339512807bee$var$$$try","$edf0339512807bee$export$ef62257e6f8a5f8c","$77","$edf0339512807bee$export$60f50bfed4143f9d","$edf0339512807bee$export$cb4623454f96d5e0","$edf0339512807bee$var$$lazy_applicativeParAff","$79","$80","$edf0339512807bee$export$389e6cb252ce112f","$edf0339512807bee$export$974f8db4a62dd716","$edf0339512807bee$export$8deb6e154ce67af6","$28d793bcad7b6401$export$84baa7a1ea5377fd","$3b38984084ed8eff$var$pure","$3b38984084ed8eff$var$fail","$3b38984084ed8eff$var$unsafeReadTagged","$3b38984084ed8eff$var$alt","$3b38984084ed8eff$var$composeKleisliFlipped","$3b38984084ed8eff$var$map","$3b38984084ed8eff$var$any","$3b38984084ed8eff$var$eq","$3b38984084ed8eff$var$bindFlipped","$3b38984084ed8eff$var$map1","$3b38984084ed8eff$var$mapFlipped","$3b38984084ed8eff$var$$$try","$3b38984084ed8eff$var$pure1","$3b38984084ed8eff$export$b1b4758529f693c0","RequestContentError","$3b38984084ed8eff$export$10b74a1a57a5fea2","ResponseBodyError","$3b38984084ed8eff$export$66d311bf29d5c89c","TimeoutError","$3b38984084ed8eff$export$4e8ebf4980bdf90a","RequestFailedError","$3b38984084ed8eff$export$b4982b9cefddd7f3","XHROtherError","$3b38984084ed8eff$export$b5fe3f66a567bec0","driver","req","fromResponse","responseFormat","parseJSON","addHeader","mh","hs","headers","reqContent","$c02e13aaef170b91$export$64f69cdd5524ddeb","send","$9","$10","k2","$11","$12","$107430d2749bac15$export$2e3eef4f26ade0f7","platformSpecificDriver","timeoutErrorMessageIdent","requestFailedMessageIdent","mkHeader","method","url","h","field","responseType","username","password","withCredentials","timeout","ajaxRequest","errback","callback","xhr","newXHR","fixedUrl","fixupUrl","open","setRequestHeader","onerror","msgIdent","ontimeout","onload","statusText","getAllResponseHeaders","indexOf","response","cancelErrback","cancelCallback","abort","$ba51d599f79a6310$export$5fd5031fecdacec3","extractContent","$3b38984084ed8eff$export$de89fc8561ede42f","$3b38984084ed8eff$export$3988ae62b71be9a3","rf","u","$d615f2c6d9bee660$export$7a292f067638ecd6","XMLHttpRequest","$f13553b3f174bc1f$export$3988ae62b71be9a3","$b6d6cce78665f23d$var$lift3","$b6d6cce78665f23d$var$lift5","$b6d6cce78665f23d$export$bd75e69808ef8e57","liftAff","$b6d6cce78665f23d$export$37f61af225938e0f","$3c700eb685e345b5$var$discard","$3c700eb685e345b5$var$pure","$3c700eb685e345b5$export$67c3e767d82aec77","discard2","corsUrl","$3b38984084ed8eff$export$55ee1551a3f962e6","$c941f4d7de23e74b$export$b26131a6779b8150","$79efcffe70231542$var$unsafeReadProp","$2d783a45bb716946$export$209a9e76e7f1bdd5","$79efcffe70231542$export$d133c026d013828b","$c01d1bd93cd469bc$export$76e18363199b658c","$c01d1bd93cd469bc$export$21a5ca8aa77d35ff","$bf939f6be0e180d1$export$71caa5b83defe711","$c01d1bd93cd469bc$export$df25652d1ce0a5fa","$c01d1bd93cd469bc$export$3f8fe6489e95757d","$bf939f6be0e180d1$export$e79ed0bba11ce003","$2d113844995f4966$var$applicativeExceptT","$2d113844995f4966$var$pure","$2d113844995f4966$var$map1","$2d113844995f4966$var$map2","$2d113844995f4966$var$bindExceptT","$2d113844995f4966$var$bindFlipped","$2d113844995f4966$var$composeKleisliFlipped","$2d113844995f4966$var$identity","$2d113844995f4966$var$bind","$2d113844995f4966$var$compose1","$2d113844995f4966$var$insert","$2d113844995f4966$var$readProp","$2d113844995f4966$export$dda73877cb166cd3","readImpl","$2d113844995f4966$export$ac3747cb00139c63","$2d113844995f4966$export$f6103847fe734e8","$2d113844995f4966$export$d9e5338498903fce","getFields","$2d113844995f4966$export$27924e57e9afff7f","$208","$209","$207","action","$2d113844995f4966$export$ce30717759bc230c","dictReadForeign","$210","$2d113844995f4966$export$d5523731e7fe4ded","$2d113844995f4966$export$b400c64e22f7eb4c","dictReadForeignFields","getFields1","$2d113844995f4966$var$exceptTApply1","applyEither1","$2d113844995f4966$var$applyEither","map4","fun","$2d113844995f4966$var$exceptTApply","$2d113844995f4966$export$5b101d49c7918908","insert1","readImpl2","obj","rest","withExcept$prime","$6b83fe928d8bf01f$var$readRecord","$6b83fe928d8bf01f$var$readFieldsCons","$6b83fe928d8bf01f$var$readJSON","$6b83fe928d8bf01f$var$readJSON1","$6b83fe928d8bf01f$var$discard","$6b83fe928d8bf01f$var$show","$6b83fe928d8bf01f$var$show1","$6b83fe928d8bf01f$export$181919154f900a5b","bindMaybeT","fetchThroughProxy","createCustomShortUrl1","shortUrl","base","$6b83fe928d8bf01f$export$ab297790d8428f34","encodedUrl","shortLink","$d733414e45bad5e4$export$22b082955e083ec3","json","$d733414e45bad5e4$export$98e628dec113755e","$d733414e45bad5e4$export$f9574b70e1d95d9d","$d733414e45bad5e4$export$2f23118c22fb2630","$1e59ea7ed5d31b4e$export$7454531c76d47d27","DOMParser","$1e59ea7ed5d31b4e$export$26cfb4a895d40b24","documentType","sourceString","domParser","parseFromString","$3dd939a5ce699801$var$getEffProp","$4d89ff275c04492e$export$e3dc45f84eae905c","ty","proto","getPrototypeOf","constructorName","$6d8c9719a60f7848$export$5235d6e581ca586e","$241080e3b918bbae$export$c8b651b897da2de","$875f34aecc7bf161$var$getProp","doctype","$17a55b211df71f15$var$getEffProp","node","$77e12228cc269e35$var$map","$77e12228cc269e35$export$78fb49a702cc1f2","qs","selector","$2","$4","$6cbf6bdab8368bba$var$map","$6cbf6bdab8368bba$export$83a0de4644f1fbc4","$8a173c39583d4113$export$45b10814cc054894","$9c38b931c8b22574$var$getEffProp","$9c38b931c8b22574$export$72030ded560177b6","$9c38b931c8b22574$export$2eda4366e9b7c29f","$9c38b931c8b22574$export$e0e0794250e9118f","$9c38b931c8b22574$export$1b8e57c9ea42f1d2","parent","$43db1f7c9150eb00$var$map","$43db1f7c9150eb00$export$b54be7ce267a037b","$6","$7","$43db1f7c9150eb00$export$335219007e689d29","$15","$16","$5f6a8b11d233451c$var$map","$5f6a8b11d233451c$var$pure","$5f6a8b11d233451c$var$map1","$5f6a8b11d233451c$var$join","$5f6a8b11d233451c$var$returnIfNothing","errMay","$5f6a8b11d233451c$export$a329800cf85f316f","localName","getElementsByTagName","elMay","getText","$d2f717d4abb38e02$var$bind","$d2f717d4abb38e02$var$discard","$d2f717d4abb38e02$var$monadWriterT","$d2f717d4abb38e02$var$monadTellWriterT","$d2f717d4abb38e02$var$not","$d2f717d4abb38e02$var$elem","$d2f717d4abb38e02$var$applicativeWriterT","$d2f717d4abb38e02$var$map","$d2f717d4abb38e02$var$traverse","$d2f717d4abb38e02$export$5fdad1696241dd2b","$124","$d2f717d4abb38e02$export$18f3758fc3685a84","rating","marketingType","contentType","$d2f717d4abb38e02$export$3a6fbfe66f94581c","when","hoistMaybe$prime","mapMaybeT","traverse1","$59","maybes","values","$247a018fd68c64cd$export$d0ac118ccd5cda07","toSearchResult1","maybeResult","artist","$d2f717d4abb38e02$export$273dc1932778b351","maybeJsonSearchResults","jsonSearchResults","$d2f717d4abb38e02$export$fd10e0f8b625b54d","liftEffect1","elem1","attr","getAttribute","$8","jsonString","$d2f717d4abb38e02$export$e1b33f37a6b44b40","extractDataContent1","$d2f717d4abb38e02$export$f6414a8071b38f2e","fetchUrlDataContent1","extractTab1","applicativeMaybeT","maybeRawTab","rawTab","$d2f717d4abb38e02$export$a6bebdea174e7d43","hoistMaybe1","dataContent","$ea938bda8724ebe6$var$discard","$ea938bda8724ebe6$var$eq","$ea938bda8724ebe6$var$succ","$ea938bda8724ebe6$var$pred","$ea938bda8724ebe6$var$createShortUrl","$ea938bda8724ebe6$var$pure","$ea938bda8724ebe6$var$eq2","$ea938bda8724ebe6$export$b03b1c699c90a9b4","Initialize","$ea938bda8724ebe6$export$35f812a14e9a5158","ClickFileMenu","$ea938bda8724ebe6$export$d6fc890ff55097d7","ClickSettingsMenu","$ea938bda8724ebe6$export$badfdfe00b38d712","ClickNoMenu","$ea938bda8724ebe6$export$251885622ee422e6","ToggleEditMode","$ea938bda8724ebe6$export$b735545ae5a1b8e8","ToggleTabNormalization","$ea938bda8724ebe6$export$ae80c7d0bfbc6e39","ToggleTabDozenalization","$ea938bda8724ebe6$export$c8a780988edc3adf","ToggleChordNormalization","$ea938bda8724ebe6$export$5433064316c0f61","ToggleChordDozenalization","$ea938bda8724ebe6$export$655a5b85baed512d","CreateShortUrl","$ea938bda8724ebe6$export$7cfb23b38c55ce12","ToggleAutoscroll","$ea938bda8724ebe6$export$c3d3945d11886b90","IncreaseAutoscrollSpeed","$ea938bda8724ebe6$export$151a0f059d2f66d","DecreaseAutoscrollSpeed","$ea938bda8724ebe6$export$61815e840008f088","IncreaseTransposition","$ea938bda8724ebe6$export$95aacd352e89e3a2","DecreaseTransposition","$ea938bda8724ebe6$export$b5d3e6c6f95f292d","FlatNoteOrientation","$ea938bda8724ebe6$export$3bf254755dcec7fc","SharpNoteOrientation","$ea938bda8724ebe6$export$ad88ac49517b01f5","DefaultNoteOrientation","$ea938bda8724ebe6$export$1ef846c2801df231","ToggleSearch","$ea938bda8724ebe6$export$55d7609a8f1eccd2","SearchInput","$ea938bda8724ebe6$export$ce628a014200ddd2","ImportFromUrl","$ea938bda8724ebe6$export$e2b7efdbe9e8a76b","NoAction","$ea938bda8724ebe6$export$952af3258ed45903","execSearch","extractSearchResults1","setState","phrase","$d2f717d4abb38e02$export$5092cf9f41440f33","execSearch1","$cd7e50199fab2497$export$549427a9c45df2dd","$ea938bda8724ebe6$export$54e434bdcdaa168a","fetchTabFromUrl","tablatureTextCache","monadEffectMaybe","$b6d6cce78665f23d$export$7091efe953cca892","fetchTabFromUrl1","monadStateMaybeT","write","invalidate","$ea938bda8724ebe6$export$e07bc364a5e4f11f","longUrl","maybeShortUrl","prompt","$6bdc250f9303b68c$var$wrap","num","$6bdc250f9303b68c$export$9815865600981587","toPrecision","$6bdc250f9303b68c$export$774771fbf04a1705","toFixed","$6bdc250f9303b68c$export$f13bf1cdd2e9b9e3","toExponential","$73e6cbfd0da8b99a$var$clamp","$73e6cbfd0da8b99a$var$Precision","Precision","$73e6cbfd0da8b99a$var$Fixed","Fixed","$73e6cbfd0da8b99a$var$Exponential","Exponential","$73e6cbfd0da8b99a$export$bfa12905cd10b99c","$73e6cbfd0da8b99a$export$b70eeb0e623ceb0d","$310515a555baeaaa$export$cda6c73645970615","$310515a555baeaaa$export$5c0dc72231454d02","id","$969bbf7e7aa55092$export$f4c20fd541e0bbe4","RefUpdate","$969bbf7e7aa55092$export$e19cd5f9376f8cee","Action","$47a0a3ebf66dcc6a$export$fd55ce593607084a","Step","value2","value3","$47a0a3ebf66dcc6a$export$4f45170fb98a7886","$47a0a3ebf66dcc6a$export$35d34bc0ed591a92","$47a0a3ebf66dcc6a$export$dc52c2e07163a142","$47a0a3ebf66dcc6a$export$ba038fef9cd0a0de","$47a0a3ebf66dcc6a$export$f9380c9a627682d3","$bef4063d6d8fe507$var$map","$bef4063d6d8fe507$var$map1","$bef4063d6d8fe507$export$5f1af8db9871e1d6","$bef4063d6d8fe507$export$cc2832fafe367c5e","Elem","$bef4063d6d8fe507$export$bade370ab89110b","Keyed","$bef4063d6d8fe507$export$a829527ff4e4114a","Widget","$bef4063d6d8fe507$export$b73d5241bf90e3b6","Grafted","$bef4063d6d8fe507$export$8ac9228c788aaa24","Graft","$bef4063d6d8fe507$export$c0694dcc5ceec5fe","$61","$bef4063d6d8fe507$export$9bae923d92949c2f","$bef4063d6d8fe507$var$bimap","$63","$64","$bef4063d6d8fe507$export$355e219ccdea0aec","$39e0beec4569345c$export$e21bd765865a4e96","$39e0beec4569345c$export$eecc4ddbfda9d798","$39e0beec4569345c$export$e766566cf460084","fk","$39e0beec4569345c$export$ca7590ccd55f275f","o1","f1","f2","f3","o2","$39e0beec4569345c$export$9bc2d847a861e3d8","$39e0beec4569345c$export$c8a8987d4410bf2d","ns","createElementNS","$39e0beec4569345c$export$11c1557a40268f0f","childNodes","item","insertBefore","$39e0beec4569345c$export$7ae609f7af59e4f7","parentNode","removeChild","$39e0beec4569345c$export$b54be7ce267a037b","$39e0beec4569345c$export$9fec4d97f1922e0b","el","setAttributeNS","$39e0beec4569345c$export$6399f3bb52316b2c","removeAttributeNS","removeAttribute","$ac7bed94ac89bf37$export$7ff190aa1ea44157","$ac7bed94ac89bf37$export$7c850c5af9b9983e","$ac7bed94ac89bf37$export$fcec48ff7d1e433f","$ac7bed94ac89bf37$export$af208d62fa81d7e9","$784c06f0344d34c4$var$$runtime_lazy","$784c06f0344d34c4$var$haltWidget","widget","$784c06f0344d34c4$var$$lazy_patchWidget","vdom","build","$784c06f0344d34c4$var$patchWidget","$784c06f0344d34c4$var$haltText","$784c06f0344d34c4$var$$lazy_patchText","nextState","textContent","$784c06f0344d34c4$var$patchText","$784c06f0344d34c4$var$haltKeyed","ks","$39e0beec4569345c$export$2da2a225d7cdb301","children","attrs","$784c06f0344d34c4$var$haltElem","$39e0beec4569345c$export$b658ad92e4f7ae19","$784c06f0344d34c4$var$eqElemSpec","ns1","ns2","$784c06f0344d34c4$var$$lazy_patchElem","attrs2","children2","a3","l2","$39e0beec4569345c$export$2422518e1f611f3f","$784c06f0344d34c4$var$patchElem","$784c06f0344d34c4$var$$lazy_patchKeyed","ix$prime","$784c06f0344d34c4$var$patchKeyed","$784c06f0344d34c4$export$7d13c0f6790d0505","spec","$lazy_build","createTextNode","$39e0beec4569345c$export$b2ce9ad90858ed7a","$784c06f0344d34c4$export$97ed363902aee1ba","name1","as1","ch1","$39e0beec4569345c$export$3dfbdd78bf0090db","child","buildAttributes","$784c06f0344d34c4$export$88209766f38bf9bf","$784c06f0344d34c4$export$198573fdc68576c0","buildWidget","$784c06f0344d34c4$export$150cc32b4adaaae","$98db70b23aa8a6ea$export$f5cdf3809b4587f3","event","$f9cd20a8b77a6bf5$export$f880a2f905254b02","Created","$f9cd20a8b77a6bf5$export$bf3e0e645ed29ea3","Removed","$f9cd20a8b77a6bf5$export$ab9c25261cd8c720","Attribute","$f9cd20a8b77a6bf5$export$41b04b3a73e7216d","Property","$f9cd20a8b77a6bf5$export$a428cd33b25d5283","Handler","$f9cd20a8b77a6bf5$export$9bcc32033bdd12aa","Ref","$f9cd20a8b77a6bf5$var$unsafeGetProperty","$f9cd20a8b77a6bf5$var$setProperty","$f9cd20a8b77a6bf5$var$propToStrKey","$f9cd20a8b77a6bf5$export$681fbf510ccdea38","$f9cd20a8b77a6bf5$export$e6c76fe186213c01","$f9cd20a8b77a6bf5$export$cb9950a5a4987d69","$f9cd20a8b77a6bf5$export$ff441cf2113a23d9","emit","removeProp","prevEvents","hasAttributeNS","hasAttribute","$39e0beec4569345c$export$7895096fcdde5712","$f9cd20a8b77a6bf5$var$removeProperty","ev","listener","$39e0beec4569345c$export$8ff9f68337b520c0","mbEmit","haltProp","props","applyProp","events","$39e0beec4569345c$export$3f65cefe8380dbea","$lazy_patchProp","ps2","onThis","onThese","v11","diffProp","onThat","patchProp","ps1","ps1$prime","$c959b62ce0c19dfe$export$6f093cfa640b7166","$29","$c959b62ce0c19dfe$export$32e0d8bef35d3088","toPropValue","$c959b62ce0c19dfe$export$4c390c75bcc39428","$c959b62ce0c19dfe$export$4e3e21220a22c900","$c959b62ce0c19dfe$export$c3c52e219617878","$c959b62ce0c19dfe$export$8454457683f90105","$e5b7e89a68d9c456$export$8454457683f90105","$e5b7e89a68d9c456$export$762b01c17cd5ef84","$e5b7e89a68d9c456$export$448e4850cad7c7b0","$e5b7e89a68d9c456$export$23f2a1d2818174ef","$e5b7e89a68d9c456$export$40eb7481a9b1d565","$e5b7e89a68d9c456$export$2af2ac64526e2aa9","$e5b7e89a68d9c456$export$afc1bfabebaf28a2","$e5b7e89a68d9c456$export$727654ffe296bd78","$e5b7e89a68d9c456$export$1b578d76e1a8b229","$e5b7e89a68d9c456$export$f93b5905241a7cca","$e5b7e89a68d9c456$export$2ed99a076908dcca","$e5b7e89a68d9c456$export$abe1cd54efe9b9cd","$e5b7e89a68d9c456$export$9852986a3ec5f6a0","$e5b7e89a68d9c456$export$2beef8af2014e5c6","$e5b7e89a68d9c456$export$d657bc098992a431","$e5b7e89a68d9c456$export$72451b88a72ad9c2","$e5b7e89a68d9c456$export$159d9494db57879b","$e5b7e89a68d9c456$export$3327f90baeaa2cb3","$e5b7e89a68d9c456$export$2ba01fb71ed41cb6","$e5b7e89a68d9c456$export$407448d2b89b1813","$2829090ac282514c$export$28b27b1605aa05ad","$5","currentTarget","$98632a8bc67f7e8c$export$ead50553077ff635","$98632a8bc67f7e8c$export$d8a7b8f475ec0161","$10ae9db6658426ac$var$map","$10ae9db6658426ac$var$composeKleisli","$10ae9db6658426ac$var$composeKleisliFlipped","$10ae9db6658426ac$var$readProp","$10ae9db6658426ac$var$readString","$10ae9db6658426ac$var$mouseHandler","$10ae9db6658426ac$var$keyHandler","$10ae9db6658426ac$export$c3c52e219617878","et","$10ae9db6658426ac$export$1d5a917feb871989","$10ae9db6658426ac$export$de8e1b1372cdb41b","$23","$24","$10ae9db6658426ac$var$addForeignPropHandler","reader","$10ae9db6658426ac$export$faef864395e27f71","$94c2c7ff32ca5bd1$var$unwrap","$94c2c7ff32ca5bd1$export$eff4d24c3ff7876e","mel","$30","$94c2c7ff32ca5bd1$export$977f3f6a9323c0f6","dictIsProp","toPropValue1","$31","$32","$c959b62ce0c19dfe$export$977f3f6a9323c0f6","$94c2c7ff32ca5bd1$var$prop1","$94c2c7ff32ca5bd1$var$prop2","$94c2c7ff32ca5bd1$var$prop3","$94c2c7ff32ca5bd1$export$afbe3196582d9f14","$94c2c7ff32ca5bd1$export$9a625f9de50bf0b7","$94c2c7ff32ca5bd1$export$44271b4f0c6a3563","$94c2c7ff32ca5bd1$export$fb184b623420d9be","$94c2c7ff32ca5bd1$export$c7187bbd1a7a9244","$94c2c7ff32ca5bd1$export$8f51af5840e0602a","$94c2c7ff32ca5bd1$export$188d75d71883854a","$33","$34","$35","$dc7ffeabd143829e$var$identity","$dc7ffeabd143829e$var$Pure","$dc7ffeabd143829e$var$Lift","Lift","$dc7ffeabd143829e$var$Ap","Ap","$dc7ffeabd143829e$var$mkAp","fba","fb","$dc7ffeabd143829e$export$9f6cb61afbf051fa","$dc7ffeabd143829e$var$goLeft","fStack","valStack","nat","func","$dc7ffeabd143829e$var$goApply","vals","gVal","gRes","$dc7ffeabd143829e$export$a37c0cfb408cb5d9","$dc7ffeabd143829e$export$952b32e119338067","goApply1","goLeft1","z","nextVals","$dc7ffeabd143829e$export$ab82a8987829bde0","$dc7ffeabd143829e$export$6b0545b2ed7e7da2","$dc7ffeabd143829e$export$b8278c4ac41154ad","$dc7ffeabd143829e$var$foldFreeAp1","$dc7ffeabd143829e$export$2a17b194dc6daf5e","$54","$8cad8efed8fc4b93$export$a9e3236c55b65445","CatQueue","$8cad8efed8fc4b93$export$b446f6baa3bb1430","$8cad8efed8fc4b93$export$c40cf5aab899f397","$8cad8efed8fc4b93$export$7b1b591b262c240","$8cad8efed8fc4b93$export$6e22c362a0406a2c","$2f87b4fe4d8f7a0f$export$7475bf8196f095ad","CatNil","$2f87b4fe4d8f7a0f$export$4cc9fe8c7ead393e","CatCons","$2f87b4fe4d8f7a0f$var$link","$2f87b4fe4d8f7a0f$var$foldr","q","$copy_xs","$copy_ys","$tco_var_xs","$tco_var_v1","$2f87b4fe4d8f7a0f$export$b446f6baa3bb1430","$2f87b4fe4d8f7a0f$export$6e22c362a0406a2c","$2f87b4fe4d8f7a0f$export$10d8903dec122b9d","$2f87b4fe4d8f7a0f$export$da599a1924f5bf13","$2f87b4fe4d8f7a0f$export$c40cf5aab899f397","cat","$d0bd5a116d2d5f24$var$$runtime_lazy","$d0bd5a116d2d5f24$var$append","$d0bd5a116d2d5f24$var$Free","Free","$d0bd5a116d2d5f24$var$Return","Return","$d0bd5a116d2d5f24$var$Bind","$d0bd5a116d2d5f24$var$toView","concatF","runExpF","$d0bd5a116d2d5f24$var$fromView","$d0bd5a116d2d5f24$export$25ad06f1eebea5a0","$d0bd5a116d2d5f24$export$b9ce46e7f510eb18","$d0bd5a116d2d5f24$export$39486fc5c75854c8","$d0bd5a116d2d5f24$export$245cefec95375d9a","$190","$d0bd5a116d2d5f24$var$$lazy_freeApply","$191","$d0bd5a116d2d5f24$var$pure","$d0bd5a116d2d5f24$export$8040756fd4c77395","$192","$d0bd5a116d2d5f24$export$eb0e66a9104d4874","$ea3eb84de0acf574$export$3024f3bfb62054a3","Leaf","$ea3eb84de0acf574$export$9276dd97bf62cc8d","Two","$ea3eb84de0acf574$export$eadfa7aed248243e","Three","value4","value5","value6","$ea3eb84de0acf574$var$TwoLeft","TwoLeft","$ea3eb84de0acf574$var$TwoRight","TwoRight","$ea3eb84de0acf574$var$ThreeLeft","ThreeLeft","$ea3eb84de0acf574$var$ThreeMiddle","ThreeMiddle","$ea3eb84de0acf574$var$ThreeRight","ThreeRight","$ea3eb84de0acf574$var$KickUp","KickUp","$ea3eb84de0acf574$export$dfc7155ac0343b8","$ea3eb84de0acf574$var$fromZipper","$copy_dictOrd","$tco_var_dictOrd","$ea3eb84de0acf574$export$21a5ca8aa77d35ff","fromZipper1","up","$ea3eb84de0acf574$export$3e41007ebfff0e64","$copy_ctx","$copy_ctxs","$copy_tree","$tco_var_ctxs","ctxs","tree","removeMaxNode","$copy_m","ctx","$tco_var_ctx","maxNode","$tco_done2","$tco_done3","leaves","$ea3eb84de0acf574$export$4295a0c2ad7aa544","$ea3eb84de0acf574$export$6e22c362a0406a2c","$ea3eb84de0acf574$export$1822828d790e23ee","pop1","$ea3eb84de0acf574$export$22a7378e1d3307a4","lookup1","delete1","$0f3b7f18059106fc$export$91dbfdfb14db6990","$0f3b7f18059106fc$export$6e22c362a0406a2c","$100f96dc727fa3bb$export$183d7a788d583d00","$871d3d7bcf6be72e$export$54d9901699893a6","$8360250a454b77aa$var$$$void","$8360250a454b77aa$var$bind","$8360250a454b77aa$var$append","$8360250a454b77aa$var$traverse_","$8360250a454b77aa$var$traverse_1","$8360250a454b77aa$export$f500693cef883ffd","$8360250a454b77aa$export$ec068583843480e7","$8360250a454b77aa$export$5e14cdade93d6f7b","$8360250a454b77aa$export$185802fd694ee1f5","subscribers","emitter","$84222ab19bdc98bd$var$identity","$84222ab19bdc98bd$export$f3ce0030ce21b322","$84222ab19bdc98bd$export$77e8fa738093aa8c","$84222ab19bdc98bd$export$7254cc27399e90bd","State","$84222ab19bdc98bd$export$b5b6bb8bb5273115","Subscribe","$84222ab19bdc98bd$export$cf424b9d16eab6b0","Unsubscribe","$84222ab19bdc98bd$export$5ba9ac88cb4a4c17","$84222ab19bdc98bd$export$c9e0c97aebb96176","ChildQuery","$84222ab19bdc98bd$export$c97bcbb53b4e15e4","Raise","$84222ab19bdc98bd$export$6e7e621f508eff66","Par","$84222ab19bdc98bd$export$8cdfc2927e464854","$84222ab19bdc98bd$export$26aa7833c998c5d3","Join","$84222ab19bdc98bd$export$25e269b2a286b4be","Kill","$84222ab19bdc98bd$export$c2ea277386f73da0","GetRef","$84222ab19bdc98bd$export$2a9fc99fce80131a","$84222ab19bdc98bd$export$7e953d51c2b3343e","$84222ab19bdc98bd$export$a558113f6f2e3f2d","$84222ab19bdc98bd$export$87bf621137788b28","$84222ab19bdc98bd$export$aecceb0bc1bf10d9","$186","$84222ab19bdc98bd$export$6f4dec227404555","monadEffectHalogenM1","$84222ab19bdc98bd$export$bf09f5de576f9cf1","$84222ab19bdc98bd$export$172cc2b2b4e6467a","$84222ab19bdc98bd$export$be2318e898dcc68","$b890a9c9ccf92ae9$export$49a1dce2f81a97d6","$b890a9c9ccf92ae9$export$7488c940d035302c","$026fde5446dd624a$var$CoyonedaF","CoyonedaF","$026fde5446dd624a$export$1088317934ed5679","$026fde5446dd624a$export$cc61df270d10d232","fi","$026fde5446dd624a$export$bd40aba71422b460","$026fde5446dd624a$export$6320c031d6b6270f","$43c0c9babefbb793$export$b03b1c699c90a9b4","$43c0c9babefbb793$export$29defdae7b3f3a01","Finalize","$43c0c9babefbb793$export$fc713a64b8ca1b7a","Receive","$43c0c9babefbb793$export$e19cd5f9376f8cee","$43c0c9babefbb793$export$62297b13309008b2","Query","$ccf49930316caf57$export$b2a016fb14adc1e4","$ccf49930316caf57$export$d7ddd398f22d79ef","elt","focus","$5ae75883a0b7923c$export$83a0de4644f1fbc4","$5ae75883a0b7923c$export$8d51e3db1a844094","$5ae75883a0b7923c$export$c56654a6d0e3bd48","$2925bc950f7308d7$var$bindFlipped","$2925bc950f7308d7$export$bd6cf4e30aa8da47","$25","$0fd1915219b188c2$var$mapFlipped","$0fd1915219b188c2$export$3bebd13a688cb3c7","$0fd1915219b188c2$export$33b39dc27cb73de9","$0fd1915219b188c2$export$fd9f5e287b4883f3","glyphName","$0fd1915219b188c2$export$541e2b986e579b87","$d92fd2ed216a6b0a$var$$$void","$d92fd2ed216a6b0a$var$pure1","$d92fd2ed216a6b0a$var$apply","$d92fd2ed216a6b0a$var$map","$d92fd2ed216a6b0a$export$dbe0fd5d50f3e4cd","compact","$108","separate","ls","rs","$109","$f157a7fafda88939$var$append","$f157a7fafda88939$var$foldl","$f157a7fafda88939$export$352788f778c11933","partitionMap","partition","filterMap","Compactable0","Functor1","$f157a7fafda88939$export$a04c6c6965dd4709","$1659dc5d0b1f5de8$var$fromFoldable","$1659dc5d0b1f5de8$var$append","$1659dc5d0b1f5de8$var$map","$1659dc5d0b1f5de8$var$foldr","$1659dc5d0b1f5de8$var$append1","$1659dc5d0b1f5de8$var$print","$1659dc5d0b1f5de8$var$_elem","$1659dc5d0b1f5de8$var$_mods","$1659dc5d0b1f5de8$var$filterMap","$1659dc5d0b1f5de8$var$identity","$1659dc5d0b1f5de8$var$print1","$1659dc5d0b1f5de8$var$_root","$1659dc5d0b1f5de8$var$_letter","$1659dc5d0b1f5de8$var$_mod","$1659dc5d0b1f5de8$var$_type","$1659dc5d0b1f5de8$var$mapFlipped","$1659dc5d0b1f5de8$var$_bass","$1659dc5d0b1f5de8$var$max","$1659dc5d0b1f5de8$var$_spaceSuffix","$1659dc5d0b1f5de8$var$traversed","$1659dc5d0b1f5de8$var$minimumOf","$1659dc5d0b1f5de8$var$wanderForget","$1659dc5d0b1f5de8$export$fff1478b1e5c5711","traversed1","$89","$90","$91","renderWithClass","klass","renderTitleLineElem","renderLine$prime","lineRenderer","renderHeaderLineElem","renderChordLegendElem","createFontSizeCompensation","renderChord","chordMods","$81","$82","$83","$84","$86","$87","$88","renderChordLineElem","renderTextLineElem","minTuningSpace","$92","renderTablatureLineElem","spacedNote","$94","$95","$514f398dc6a7828b$export$f9471d229cb6cb3f","$86ce56577656a821$export$df61b30b684217c0","$b654ca6069cd1c17$var$discard","$b654ca6069cd1c17$var$_mode","$b654ca6069cd1c17$var$show","$b654ca6069cd1c17$var$eq","$b654ca6069cd1c17$var$print","$b654ca6069cd1c17$var$_autoscrollSpeed","$b654ca6069cd1c17$var$fromFoldable","$b654ca6069cd1c17$var$mapFlipped","$b654ca6069cd1c17$var$_searchResults","$b654ca6069cd1c17$var$append1","$b654ca6069cd1c17$var$mapFlipped1","$b654ca6069cd1c17$var$_loading","$b654ca6069cd1c17$var$notEq","$b654ca6069cd1c17$var$notEq1","$b654ca6069cd1c17$var$_activeMenu","$b654ca6069cd1c17$var$eq2","$b654ca6069cd1c17$var$_autoscroll","$b654ca6069cd1c17$var$mapFlipped2","$b654ca6069cd1c17$var$bind","$b654ca6069cd1c17$var$bind1","$b654ca6069cd1c17$var$applySecond","$b654ca6069cd1c17$var$pure","$b654ca6069cd1c17$var$viewState","$b654ca6069cd1c17$var$pure1","$b654ca6069cd1c17$var$map","$b654ca6069cd1c17$var$setState","$b654ca6069cd1c17$export$7439e9e337486694","bind2","viewState1","setState1","$e524da361046c2d7$export$a01e3d0d02d16b1","scrollBy","behavior","$e524da361046c2d7$export$d9a25443eba9df45","$6a6bd16a1fd934a4$export$19a39865fecdb343","intervalId","$b654ca6069cd1c17$export$275d6227a2f18cd3","$b654ca6069cd1c17$export$dffb9721b1b4939","$b654ca6069cd1c17$export$d355e67e1ac7bd38","$b654ca6069cd1c17$export$b3890eb0ae9dca99","$128","$127","$126","$125","$120","$136","toggleButtonTitle","renderViewMenu","renderTitle","renderTablature","renderSearchResult","searchResult","renderSearchResults","renderSearchBar","renderLoadingIcon","renderFileMenu","renderControls","renderHeader","clickNoMenuEvent","renderBody","es","$b654ca6069cd1c17$export$d0f39fcf72cbdb46","maybeHtmlElement","$b654ca6069cd1c17$export$9778a9b812ca9fd1","$b654ca6069cd1c17$export$7173f78ba928d40e","$b654ca6069cd1c17$export$93bc922cceb15e40","$b654ca6069cd1c17$export$931fdcd22b5abba2","maybeTablatureContainerElem","$2603425f82e959df$export$8291e5b88f90ce4","$99cfc603fe5cc0f7$export$669f6ea7d267feaf","Loading","$99cfc603fe5cc0f7$export$43d8ad7b9c99dd97","Interactive","$99cfc603fe5cc0f7$export$37474717eef9e2a4","Complete","$f6c9290a5db8f197$var$map","$f6c9290a5db8f197$export$c8b651b897da2de","$f6c9290a5db8f197$export$ce0e204f587740c3","$f6c9290a5db8f197$export$1ae2b664eea77b7e","readyState","$aa35a24624ec08d2$export$5a7bfc01df82fcd1","$6b26c9b0fa2d7b7a$export$55c9526d22b9f8e6","$deee5b6018c98796$var$bind","$deee5b6018c98796$var$liftEffect","$deee5b6018c98796$var$bindFlipped","$deee5b6018c98796$var$composeKleisliFlipped","$deee5b6018c98796$var$pure","$deee5b6018c98796$var$bindFlipped1","$deee5b6018c98796$var$pure1","$deee5b6018c98796$var$map","$deee5b6018c98796$var$discard","$deee5b6018c98796$var$throwError","$deee5b6018c98796$export$1b79e4d7fc8e4817","$deee5b6018c98796$export$11dc33decdfc25c9","useCapture","target","$98db70b23aa8a6ea$export$3f65cefe8380dbea","$98db70b23aa8a6ea$export$8ff9f68337b520c0","$deee5b6018c98796$export$f79c83a36c9670be","$17","$f1bf345cdb6c789d$export$1a6f8a190b47b840","$f1bf345cdb6c789d$export$d46b23c375182cf8","toVDom","haltThunk","$lazy_patchThunk","t2","patchThunk","$eea39ea934373596$var$voidLeft","$eea39ea934373596$var$traverse_","$eea39ea934373596$var$map","$eea39ea934373596$var$pure","$eea39ea934373596$export$bbf8b056cc92e88d","ComponentSlot","$eea39ea934373596$export$5e46cfa5e835a582","ThunkSlot","$eea39ea934373596$export$48f0293959eb16ec","$eea39ea934373596$export$802c6b8ce0f42195","$eea39ea934373596$export$3bb93a8213d3ef21","$eea39ea934373596$export$cb95887a94082d64","handleAction","handleQuery","receive","initialize","finalize","$3cc7d978c1d7ea03$export$353ec5b900391c5","suspend","fork","$3cc7d978c1d7ea03$export$7a5058c6b79333e0","$ef932f98609e5673$export$b29cd3b133bc0fa4","$ef932f98609e5673$export$b325883598264040","$ef932f98609e5673$export$dcc8908fea536646","rendering","$ef932f98609e5673$var$mkRenderStateX","$ef932f98609e5673$export$8a58ffe66c3bbb4d","$ef932f98609e5673$export$52c65da2de355775","$ef932f98609e5673$export$43ced40f2a8d1657","$6bfb10b11a80fc8b$var$traverse_","$6bfb10b11a80fc8b$var$bindFlipped","$6bfb10b11a80fc8b$var$lookup","$6bfb10b11a80fc8b$var$bind1","$6bfb10b11a80fc8b$var$liftEffect","$6bfb10b11a80fc8b$var$discard1","$6bfb10b11a80fc8b$var$discard","$6bfb10b11a80fc8b$var$traverse_1","$6bfb10b11a80fc8b$var$traverse_2","$6bfb10b11a80fc8b$var$fork","$6bfb10b11a80fc8b$var$parSequence_","$6bfb10b11a80fc8b$var$pure","$6bfb10b11a80fc8b$var$map","$6bfb10b11a80fc8b$var$parallel","$6bfb10b11a80fc8b$var$map1","$6bfb10b11a80fc8b$var$sequential","$6bfb10b11a80fc8b$var$map2","$6bfb10b11a80fc8b$var$insert","$6bfb10b11a80fc8b$var$retractFreeAp","$6bfb10b11a80fc8b$var$$$delete","$6bfb10b11a80fc8b$var$unlessM","$6bfb10b11a80fc8b$var$insert1","$6bfb10b11a80fc8b$var$traverse_3","$6bfb10b11a80fc8b$var$lookup1","$6bfb10b11a80fc8b$var$lookup2","$6bfb10b11a80fc8b$var$foldFree","$6bfb10b11a80fc8b$var$alter","$6bfb10b11a80fc8b$export$2d912d1764c6009b","au","$6bfb10b11a80fc8b$export$b7a8cef929df0d3c","lchs","initializers","finalizers","$6bfb10b11a80fc8b$export$c4c41c035efd1fb3","$6bfb10b11a80fc8b$var$fresh","fresh","$6bfb10b11a80fc8b$export$f960635a4c7f8a61","render","$6bfb10b11a80fc8b$export$b505393bc8c03d39","initRef","component","refs","childrenIn","childrenOut","selfRef","handlerRef","pendingQueries","pendingOuts","pendingHandlers","subscriptions","forks","lifecycleHandlers","sid","act","$6bfb10b11a80fc8b$export$6533955444d826a5","subs","cqb","dsx","ds","evalChildQuery","doneRef","fin","forkMap","$f469b52d7c3c8200$var$bind","$f469b52d7c3c8200$var$discard","$f469b52d7c3c8200$var$for_","$f469b52d7c3c8200$var$traverse_","$f469b52d7c3c8200$var$fork","$f469b52d7c3c8200$var$bindFlipped","$f469b52d7c3c8200$var$traverse_1","$f469b52d7c3c8200$var$traverse_2","$f469b52d7c3c8200$var$traverse_3","$f469b52d7c3c8200$var$discard2","$f469b52d7c3c8200$var$parSequence_","$f469b52d7c3c8200$var$liftEffect","$f469b52d7c3c8200$var$pure","$f469b52d7c3c8200$var$map","$f469b52d7c3c8200$var$pure1","$f469b52d7c3c8200$var$when","$f469b52d7c3c8200$var$renderStateX","$f469b52d7c3c8200$var$$$void","$f469b52d7c3c8200$var$foreachSlot","$f469b52d7c3c8200$var$renderStateX_","$f469b52d7c3c8200$var$tailRecM","$f469b52d7c3c8200$var$voidLeft","$f469b52d7c3c8200$var$bind1","$f469b52d7c3c8200$var$liftEffect1","$f469b52d7c3c8200$var$newLifecycleHandlers","$f469b52d7c3c8200$var$handlePending","$58","$f469b52d7c3c8200$export$32d31a833a940d1c","renderSpec","runComponent","$62","lchs$prime","$$var","initialState","$ef932f98609e5673$export$2999486de8d3a294","preInits","parentInitializer","handlers","squashChildInitializers","renderChild","childrenInRef","childrenOutRef","slot","pop","$65","output","$66","$67","isDuplicate","$68","shouldProcessHandlers","$72","$71","childHandler","$73","childDS","ds$prime","mmore","$60","evalDriver","disposed","dispose","sio","$78","query","messages","$80d0fbcfdca571e1$var$$runtime_lazy","$80d0fbcfdca571e1$var$$$void","$80d0fbcfdca571e1$var$pure","$80d0fbcfdca571e1$var$traverse_","$80d0fbcfdca571e1$var$unwrap","$80d0fbcfdca571e1$var$when","$80d0fbcfdca571e1$var$not","$80d0fbcfdca571e1$var$identity","$80d0fbcfdca571e1$var$bind1","$80d0fbcfdca571e1$var$liftEffect","$80d0fbcfdca571e1$var$map","$80d0fbcfdca571e1$var$bindFlipped","$80d0fbcfdca571e1$var$removeChild","npn","pn","$80d0fbcfdca571e1$var$renderSpec","container","renderChildRef","getNode","buildThunk","$lazy_patch","$lazy_renderComponentSlot","step$prime","$lazy_render","cs","rsx","$80d0fbcfdca571e1$var$mkSpec","machine","nextSib","machine$prime","newNode","node1","node2","$9c38b931c8b22574$export$86b68c7dbeb53c22","$80d0fbcfdca571e1$var$substInParent","$0c07a74dd7e350c8$var$bind","$0c07a74dd7e350c8$var$viewState","$0c07a74dd7e350c8$var$eq","$0c07a74dd7e350c8$var$pure","$0c07a74dd7e350c8$var$discard","$0c07a74dd7e350c8$var$discard1","$0c07a74dd7e350c8$var$setState","$0c07a74dd7e350c8$var$read","$0c07a74dd7e350c8$var$write","$0c07a74dd7e350c8$var$bindStateT","$0c07a74dd7e350c8$var$bind1","$0c07a74dd7e350c8$var$lift","$0c07a74dd7e350c8$var$pure1","$0c07a74dd7e350c8$var$monadStateStateT","$0c07a74dd7e350c8$var$discard2","$0c07a74dd7e350c8$var$viewState1","$0c07a74dd7e350c8$var$setState1","$0c07a74dd7e350c8$var$read1","$0c07a74dd7e350c8$var$get","$0c07a74dd7e350c8$var$execStateT","$0c07a74dd7e350c8$var$put","$0c07a74dd7e350c8$var$bind3","$0c07a74dd7e350c8$export$d70e031dcd22347d","focusTablatureContainer","loadScrollTop","$875f34aecc7bf161$export$38a81aac5c9c320d","focusSearchInput","maybeSearchInputElement","$b654ca6069cd1c17$export$e1f69f3cd9c6349a","$0c07a74dd7e350c8$export$f9025f5a7c0e7c9f","getTablatureEditorElement1","setTablatureTextInEditor","maybeTextArea","textarea","getTablatureTextFromEditor","$b654ca6069cd1c17$export$cfb41d4186420764","$0c07a74dd7e350c8$export$4cf301e6fadc2c93","pure2","startAutoscroll1","startAutoscrollOnElement","$0c07a74dd7e350c8$export$3a360c1cd4f980ec","$0c07a74dd7e350c8$export$7ee41ccc8f2fa181","bind4","tablatureTitleCache","$0e1ad3264aa8b3c4$export$420a7f2fd9cad6f6","$0c07a74dd7e350c8$export$3d44f1a75e7b389","saveScrollTop","newScrollTop","toggleEditMode1","$0c07a74dd7e350c8$export$82b07c9aa09229f9","monadAffState","monadEffectState","$b6d6cce78665f23d$export$1c14dadc45d4bfb9","$ea938bda8724ebe6$export$2a47f398eeff8b01","clickFileMenu","$ea938bda8724ebe6$export$b3aa1ca080a54b66","clickSettingsMenu","$ea938bda8724ebe6$export$574e88d14d1e7a2b","clickNoMenu","toggleTabNormalization","tabNormalizationEnabledCache","tabNormalizationEnabledCache1","$ea938bda8724ebe6$export$fa6af8a184458b91","toggleTabDozenalization","ignoreDozenalizationCache","tabDozenalizationEnabledCache","read","tabDozenalizationEnabledCache1","$ea938bda8724ebe6$export$39ac4584bb2387d0","toggleChordDozenalization","chordDozenalizationEnabledCache","chordDozenalizationEnabledCache1","$ea938bda8724ebe6$export$99f7455ff90c5402","toggleChordNormalization","chordNormalizationEnabledCache","chordNormalizationEnabledCache1","$ea938bda8724ebe6$export$687340b90ecf82fa","createAndCopyShortUrl","increaseAutoscrollSpeed","currentSpeed","$ea938bda8724ebe6$export$bd39a02c56dc964e","decreaseAutoscrollSpeed","$ea938bda8724ebe6$export$9fc75c6aa5a093f2","increaseTransposition","urlParamsCache","urlParamsCache1","$ea938bda8724ebe6$export$be0961932b479b8c","decreaseTransposition","$ea938bda8724ebe6$export$3ecd8d478a262d9","setNoteOrientation","$ea938bda8724ebe6$export$61ac83a69ccc3631","importFromUrl","searchInput","toggleSearch","currentMode","$ea938bda8724ebe6$export$2e59f49d97a9dbde","updateAutoscroll1","updateAutoscrollTimer1","currentAutoscroll","$0c07a74dd7e350c8$export$c9e95fcbe244d371","updateDocumentTitle1","rewriteResultCache","ignoreDozenalizationCache1","subscribe","tabNormalizationEnabledCache2","tabDozenalizationEnabledCache2","chordNormalizationEnabledCache2","chordDozenalizationEnabledCache2","ignoreDozenalizationCache2","urlParamsCache2","renderingOptions","$cd7e50199fab2497$export$a7b123cb33fd5e31","$0c07a74dd7e350c8$export$6c6c3f4b7541eaf1","prepareHtml1","doAction1","updateFocus1","currentState","newState","$0c07a74dd7e350c8$var$component1","eval","args","$45","$46","$0c07a74dd7e350c8$export$d8556a2a8f973135","$0c07a74dd7e350c8$export$f22da7240b7add18","$80d0fbcfdca571e1$export$32d31a833a940d1c"],"version":3,"file":"index.02f39a8f.js.map"} \ No newline at end of file diff --git a/docs/index.1719e78c.js b/docs/index.1719e78c.js deleted file mode 100644 index 4072765..0000000 --- a/docs/index.1719e78c.js +++ /dev/null @@ -1,2 +0,0 @@ -function n(n){return n&&n.__esModule?n.default:n}var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},t={},r={},u=e.parcelRequire529b;null==u&&((u=function(n){if(n in t)return t[n].exports;if(n in r){var e=r[n];delete r[n];var u={id:n,exports:{}};return t[n]=u,e.call(u.exports,u,u.exports),u.exports}var o=new Error("Cannot find module '"+n+"'");throw o.code="MODULE_NOT_FOUND",o}).register=function(n,e){r[n]=e},e.parcelRequire529b=u),u.register("426T3",(function(n,e){var t=function(){var n=String.fromCharCode,e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-$",r={};function u(n,e){if(!r[n]){r[n]={};for(var t=0;t>>8,t[2*r+1]=i%256}return t},decompressFromUint8Array:function(e){if(null==e)return o.decompress(e);for(var t=new Array(e.length/2),r=0,u=t.length;r>=1}else{for(u=1,r=0;r>=1}0==--l&&(l=Math.pow(2,s),s++),delete a[A]}else for(u=i[A],r=0;r>=1;0==--l&&(l=Math.pow(2,s),s++),i[f]=v++,A=String(c)}if(""!==A){if(Object.prototype.hasOwnProperty.call(a,A)){if(A.charCodeAt(0)<256){for(r=0;r>=1}else{for(u=1,r=0;r>=1}0==--l&&(l=Math.pow(2,s),s++),delete a[A]}else for(u=i[A],r=0;r>=1;0==--l&&(l=Math.pow(2,s),s++)}for(u=2,r=0;r>=1;for(;;){if(m<<=1,w==e-1){d.push(t(m));break}w++}return d.join("")},decompress:function(n){return null==n?"":""==n?null:o._decompress(n.length,32768,(function(e){return n.charCodeAt(e)}))},_decompress:function(e,t,r){var u,o,i,a,c,f,A,l=[],v=4,s=4,d=3,m="",w=[],p={val:r(0),position:t,index:1};for(u=0;u<3;u+=1)l[u]=u;for(i=0,c=Math.pow(2,2),f=1;f!=c;)a=p.val&p.position,p.position>>=1,0==p.position&&(p.position=t,p.val=r(p.index++)),i|=(a>0?1:0)*f,f<<=1;switch(i){case 0:for(i=0,c=Math.pow(2,8),f=1;f!=c;)a=p.val&p.position,p.position>>=1,0==p.position&&(p.position=t,p.val=r(p.index++)),i|=(a>0?1:0)*f,f<<=1;A=n(i);break;case 1:for(i=0,c=Math.pow(2,16),f=1;f!=c;)a=p.val&p.position,p.position>>=1,0==p.position&&(p.position=t,p.val=r(p.index++)),i|=(a>0?1:0)*f,f<<=1;A=n(i);break;case 2:return""}for(l[3]=A,o=A,w.push(A);;){if(p.index>e)return"";for(i=0,c=Math.pow(2,d),f=1;f!=c;)a=p.val&p.position,p.position>>=1,0==p.position&&(p.position=t,p.val=r(p.index++)),i|=(a>0?1:0)*f,f<<=1;switch(A=i){case 0:for(i=0,c=Math.pow(2,8),f=1;f!=c;)a=p.val&p.position,p.position>>=1,0==p.position&&(p.position=t,p.val=r(p.index++)),i|=(a>0?1:0)*f,f<<=1;l[s++]=n(i),A=s-1,v--;break;case 1:for(i=0,c=Math.pow(2,16),f=1;f!=c;)a=p.val&p.position,p.position>>=1,0==p.position&&(p.position=t,p.val=r(p.index++)),i|=(a>0?1:0)*f,f<<=1;l[s++]=n(i),A=s-1,v--;break;case 2:return w.join("")}if(0==v&&(v=Math.pow(2,d),d++),l[A])m=l[A];else{if(A!==s)return null;m=o+o.charAt(0)}w.push(m),l[s++]=o+m.charAt(0),o=m,0==--v&&(v=Math.pow(2,d),d++)}}};return o}();"function"==typeof define&&define.amd?define((function(){return t})):null!=n&&(n.exports=t)}));var o,i=(o={webm:"data:video/webm;base64,GkXfowEAAAAAAAAfQoaBAUL3gQFC8oEEQvOBCEKChHdlYm1Ch4EEQoWBAhhTgGcBAAAAAAAVkhFNm3RALE27i1OrhBVJqWZTrIHfTbuMU6uEFlSua1OsggEwTbuMU6uEHFO7a1OsghV17AEAAAAAAACkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVSalmAQAAAAAAAEUq17GDD0JATYCNTGF2ZjU1LjMzLjEwMFdBjUxhdmY1NS4zMy4xMDBzpJBlrrXf3DCDVB8KcgbMpcr+RImIQJBgAAAAAAAWVK5rAQAAAAAAD++uAQAAAAAAADLXgQFzxYEBnIEAIrWcg3VuZIaFVl9WUDiDgQEj44OEAmJaAOABAAAAAAAABrCBsLqBkK4BAAAAAAAPq9eBAnPFgQKcgQAitZyDdW5khohBX1ZPUkJJU4OBAuEBAAAAAAAAEZ+BArWIQOdwAAAAAABiZIEgY6JPbwIeVgF2b3JiaXMAAAAAAoC7AAAAAAAAgLUBAAAAAAC4AQN2b3JiaXMtAAAAWGlwaC5PcmcgbGliVm9yYmlzIEkgMjAxMDExMDEgKFNjaGF1ZmVudWdnZXQpAQAAABUAAABlbmNvZGVyPUxhdmM1NS41Mi4xMDIBBXZvcmJpcyVCQ1YBAEAAACRzGCpGpXMWhBAaQlAZ4xxCzmvsGUJMEYIcMkxbyyVzkCGkoEKIWyiB0JBVAABAAACHQXgUhIpBCCGEJT1YkoMnPQghhIg5eBSEaUEIIYQQQgghhBBCCCGERTlokoMnQQgdhOMwOAyD5Tj4HIRFOVgQgydB6CCED0K4moOsOQghhCQ1SFCDBjnoHITCLCiKgsQwuBaEBDUojILkMMjUgwtCiJqDSTX4GoRnQXgWhGlBCCGEJEFIkIMGQcgYhEZBWJKDBjm4FITLQagahCo5CB+EIDRkFQCQAACgoiiKoigKEBqyCgDIAAAQQFEUx3EcyZEcybEcCwgNWQUAAAEACAAAoEiKpEiO5EiSJFmSJVmSJVmS5omqLMuyLMuyLMsyEBqyCgBIAABQUQxFcRQHCA1ZBQBkAAAIoDiKpViKpWiK54iOCISGrAIAgAAABAAAEDRDUzxHlETPVFXXtm3btm3btm3btm3btm1blmUZCA1ZBQBAAAAQ0mlmqQaIMAMZBkJDVgEACAAAgBGKMMSA0JBVAABAAACAGEoOogmtOd+c46BZDppKsTkdnEi1eZKbirk555xzzsnmnDHOOeecopxZDJoJrTnnnMSgWQqaCa0555wnsXnQmiqtOeeccc7pYJwRxjnnnCateZCajbU555wFrWmOmkuxOeecSLl5UptLtTnnnHPOOeecc84555zqxekcnBPOOeecqL25lpvQxTnnnE/G6d6cEM4555xzzjnnnHPOOeecIDRkFQAABABAEIaNYdwpCNLnaCBGEWIaMulB9+gwCRqDnELq0ehopJQ6CCWVcVJKJwgNWQUAAAIAQAghhRRSSCGFFFJIIYUUYoghhhhyyimnoIJKKqmooowyyyyzzDLLLLPMOuyssw47DDHEEEMrrcRSU2011lhr7jnnmoO0VlprrbVSSimllFIKQkNWAQAgAAAEQgYZZJBRSCGFFGKIKaeccgoqqIDQkFUAACAAgAAAAABP8hzRER3RER3RER3RER3R8RzPESVREiVREi3TMjXTU0VVdWXXlnVZt31b2IVd933d933d+HVhWJZlWZZlWZZlWZZlWZZlWZYgNGQVAAACAAAghBBCSCGFFFJIKcYYc8w56CSUEAgNWQUAAAIACAAAAHAUR3EcyZEcSbIkS9IkzdIsT/M0TxM9URRF0zRV0RVdUTdtUTZl0zVdUzZdVVZtV5ZtW7Z125dl2/d93/d93/d93/d93/d9XQdCQ1YBABIAADqSIymSIimS4ziOJElAaMgqAEAGAEAAAIriKI7jOJIkSZIlaZJneZaomZrpmZ4qqkBoyCoAABAAQAAAAAAAAIqmeIqpeIqoeI7oiJJomZaoqZoryqbsuq7ruq7ruq7ruq7ruq7ruq7ruq7ruq7ruq7ruq7ruq7ruq4LhIasAgAkAAB0JEdyJEdSJEVSJEdygNCQVQCADACAAAAcwzEkRXIsy9I0T/M0TxM90RM901NFV3SB0JBVAAAgAIAAAAAAAAAMybAUy9EcTRIl1VItVVMt1VJF1VNVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVN0zRNEwgNWQkAkAEAkBBTLS3GmgmLJGLSaqugYwxS7KWxSCpntbfKMYUYtV4ah5RREHupJGOKQcwtpNApJq3WVEKFFKSYYyoVUg5SIDRkhQAQmgHgcBxAsixAsiwAAAAAAAAAkDQN0DwPsDQPAAAAAAAAACRNAyxPAzTPAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABA0jRA8zxA8zwAAAAAAAAA0DwP8DwR8EQRAAAAAAAAACzPAzTRAzxRBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABA0jRA8zxA8zwAAAAAAAAAsDwP8EQR0DwRAAAAAAAAACzPAzxRBDzRAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAEOAAABBgIRQasiIAiBMAcEgSJAmSBM0DSJYFTYOmwTQBkmVB06BpME0AAAAAAAAAAAAAJE2DpkHTIIoASdOgadA0iCIAAAAAAAAAAAAAkqZB06BpEEWApGnQNGgaRBEAAAAAAAAAAAAAzzQhihBFmCbAM02IIkQRpgkAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAGHAAAAgwoQwUGrIiAIgTAHA4imUBAIDjOJYFAACO41gWAABYliWKAABgWZooAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAYcAAACDChDBQashIAiAIAcCiKZQHHsSzgOJYFJMmyAJYF0DyApgFEEQAIAAAocAAACLBBU2JxgEJDVgIAUQAABsWxLE0TRZKkaZoniiRJ0zxPFGma53meacLzPM80IYqiaJoQRVE0TZimaaoqME1VFQAAUOAAABBgg6bE4gCFhqwEAEICAByKYlma5nmeJ4qmqZokSdM8TxRF0TRNU1VJkqZ5niiKommapqqyLE3zPFEURdNUVVWFpnmeKIqiaaqq6sLzPE8URdE0VdV14XmeJ4qiaJqq6roQRVE0TdNUTVV1XSCKpmmaqqqqrgtETxRNU1Vd13WB54miaaqqq7ouEE3TVFVVdV1ZBpimaaqq68oyQFVV1XVdV5YBqqqqruu6sgxQVdd1XVmWZQCu67qyLMsCAAAOHAAAAoygk4wqi7DRhAsPQKEhKwKAKAAAwBimFFPKMCYhpBAaxiSEFEImJaXSUqogpFJSKRWEVEoqJaOUUmopVRBSKamUCkIqJZVSAADYgQMA2IGFUGjISgAgDwCAMEYpxhhzTiKkFGPOOScRUoox55yTSjHmnHPOSSkZc8w556SUzjnnnHNSSuacc845KaVzzjnnnJRSSuecc05KKSWEzkEnpZTSOeecEwAAVOAAABBgo8jmBCNBhYasBABSAQAMjmNZmuZ5omialiRpmud5niiapiZJmuZ5nieKqsnzPE8URdE0VZXneZ4oiqJpqirXFUXTNE1VVV2yLIqmaZqq6rowTdNUVdd1XZimaaqq67oubFtVVdV1ZRm2raqq6rqyDFzXdWXZloEsu67s2rIAAPAEBwCgAhtWRzgpGgssNGQlAJABAEAYg5BCCCFlEEIKIYSUUggJAAAYcAAACDChDBQashIASAUAAIyx1lprrbXWQGettdZaa62AzFprrbXWWmuttdZaa6211lJrrbXWWmuttdZaa6211lprrbXWWmuttdZaa6211lprrbXWWmuttdZaa6211lprrbXWWmstpZRSSimllFJKKaWUUkoppZRSSgUA+lU4APg/2LA6wknRWGChISsBgHAAAMAYpRhzDEIppVQIMeacdFRai7FCiDHnJKTUWmzFc85BKCGV1mIsnnMOQikpxVZjUSmEUlJKLbZYi0qho5JSSq3VWIwxqaTWWoutxmKMSSm01FqLMRYjbE2ptdhqq7EYY2sqLbQYY4zFCF9kbC2m2moNxggjWywt1VprMMYY3VuLpbaaizE++NpSLDHWXAAAd4MDAESCjTOsJJ0VjgYXGrISAAgJACAQUooxxhhzzjnnpFKMOeaccw5CCKFUijHGnHMOQgghlIwx5pxzEEIIIYRSSsaccxBCCCGEkFLqnHMQQgghhBBKKZ1zDkIIIYQQQimlgxBCCCGEEEoopaQUQgghhBBCCKmklEIIIYRSQighlZRSCCGEEEIpJaSUUgohhFJCCKGElFJKKYUQQgillJJSSimlEkoJJYQSUikppRRKCCGUUkpKKaVUSgmhhBJKKSWllFJKIYQQSikFAAAcOAAABBhBJxlVFmGjCRcegEJDVgIAZAAAkKKUUiktRYIipRikGEtGFXNQWoqocgxSzalSziDmJJaIMYSUk1Qy5hRCDELqHHVMKQYtlRhCxhik2HJLoXMOAAAAQQCAgJAAAAMEBTMAwOAA4XMQdAIERxsAgCBEZohEw0JweFAJEBFTAUBigkIuAFRYXKRdXECXAS7o4q4DIQQhCEEsDqCABByccMMTb3jCDU7QKSp1IAAAAAAADADwAACQXAAREdHMYWRobHB0eHyAhIiMkAgAAAAAABcAfAAAJCVAREQ0cxgZGhscHR4fICEiIyQBAIAAAgAAAAAggAAEBAQAAAAAAAIAAAAEBB9DtnUBAAAAAAAEPueBAKOFggAAgACjzoEAA4BwBwCdASqwAJAAAEcIhYWIhYSIAgIABhwJ7kPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99YAD+/6tQgKOFggADgAqjhYIAD4AOo4WCACSADqOZgQArADECAAEQEAAYABhYL/QACIBDmAYAAKOFggA6gA6jhYIAT4AOo5mBAFMAMQIAARAQABgAGFgv9AAIgEOYBgAAo4WCAGSADqOFggB6gA6jmYEAewAxAgABEBAAGAAYWC/0AAiAQ5gGAACjhYIAj4AOo5mBAKMAMQIAARAQABgAGFgv9AAIgEOYBgAAo4WCAKSADqOFggC6gA6jmYEAywAxAgABEBAAGAAYWC/0AAiAQ5gGAACjhYIAz4AOo4WCAOSADqOZgQDzADECAAEQEAAYABhYL/QACIBDmAYAAKOFggD6gA6jhYIBD4AOo5iBARsAEQIAARAQFGAAYWC/0AAiAQ5gGACjhYIBJIAOo4WCATqADqOZgQFDADECAAEQEAAYABhYL/QACIBDmAYAAKOFggFPgA6jhYIBZIAOo5mBAWsAMQIAARAQABgAGFgv9AAIgEOYBgAAo4WCAXqADqOFggGPgA6jmYEBkwAxAgABEBAAGAAYWC/0AAiAQ5gGAACjhYIBpIAOo4WCAbqADqOZgQG7ADECAAEQEAAYABhYL/QACIBDmAYAAKOFggHPgA6jmYEB4wAxAgABEBAAGAAYWC/0AAiAQ5gGAACjhYIB5IAOo4WCAfqADqOZgQILADECAAEQEAAYABhYL/QACIBDmAYAAKOFggIPgA6jhYICJIAOo5mBAjMAMQIAARAQABgAGFgv9AAIgEOYBgAAo4WCAjqADqOFggJPgA6jmYECWwAxAgABEBAAGAAYWC/0AAiAQ5gGAACjhYICZIAOo4WCAnqADqOZgQKDADECAAEQEAAYABhYL/QACIBDmAYAAKOFggKPgA6jhYICpIAOo5mBAqsAMQIAARAQABgAGFgv9AAIgEOYBgAAo4WCArqADqOFggLPgA6jmIEC0wARAgABEBAUYABhYL/QACIBDmAYAKOFggLkgA6jhYIC+oAOo5mBAvsAMQIAARAQABgAGFgv9AAIgEOYBgAAo4WCAw+ADqOZgQMjADECAAEQEAAYABhYL/QACIBDmAYAAKOFggMkgA6jhYIDOoAOo5mBA0sAMQIAARAQABgAGFgv9AAIgEOYBgAAo4WCA0+ADqOFggNkgA6jmYEDcwAxAgABEBAAGAAYWC/0AAiAQ5gGAACjhYIDeoAOo4WCA4+ADqOZgQObADECAAEQEAAYABhYL/QACIBDmAYAAKOFggOkgA6jhYIDuoAOo5mBA8MAMQIAARAQABgAGFgv9AAIgEOYBgAAo4WCA8+ADqOFggPkgA6jhYID+oAOo4WCBA+ADhxTu2sBAAAAAAAAEbuPs4EDt4r3gQHxghEr8IEK",mp4:"data:video/mp4;base64,AAAAHGZ0eXBNNFYgAAACAGlzb21pc28yYXZjMQAAAAhmcmVlAAAGF21kYXTeBAAAbGliZmFhYyAxLjI4AABCAJMgBDIARwAAArEGBf//rdxF6b3m2Ui3lizYINkj7u94MjY0IC0gY29yZSAxNDIgcjIgOTU2YzhkOCAtIEguMjY0L01QRUctNCBBVkMgY29kZWMgLSBDb3B5bGVmdCAyMDAzLTIwMTQgLSBodHRwOi8vd3d3LnZpZGVvbGFuLm9yZy94MjY0Lmh0bWwgLSBvcHRpb25zOiBjYWJhYz0wIHJlZj0zIGRlYmxvY2s9MTowOjAgYW5hbHlzZT0weDE6MHgxMTEgbWU9aGV4IHN1Ym1lPTcgcHN5PTEgcHN5X3JkPTEuMDA6MC4wMCBtaXhlZF9yZWY9MSBtZV9yYW5nZT0xNiBjaHJvbWFfbWU9MSB0cmVsbGlzPTEgOHg4ZGN0PTAgY3FtPTAgZGVhZHpvbmU9MjEsMTEgZmFzdF9wc2tpcD0xIGNocm9tYV9xcF9vZmZzZXQ9LTIgdGhyZWFkcz02IGxvb2thaGVhZF90aHJlYWRzPTEgc2xpY2VkX3RocmVhZHM9MCBucj0wIGRlY2ltYXRlPTEgaW50ZXJsYWNlZD0wIGJsdXJheV9jb21wYXQ9MCBjb25zdHJhaW5lZF9pbnRyYT0wIGJmcmFtZXM9MCB3ZWlnaHRwPTAga2V5aW50PTI1MCBrZXlpbnRfbWluPTI1IHNjZW5lY3V0PTQwIGludHJhX3JlZnJlc2g9MCByY19sb29rYWhlYWQ9NDAgcmM9Y3JmIG1idHJlZT0xIGNyZj0yMy4wIHFjb21wPTAuNjAgcXBtaW49MCBxcG1heD02OSBxcHN0ZXA9NCB2YnZfbWF4cmF0ZT03NjggdmJ2X2J1ZnNpemU9MzAwMCBjcmZfbWF4PTAuMCBuYWxfaHJkPW5vbmUgZmlsbGVyPTAgaXBfcmF0aW89MS40MCBhcT0xOjEuMDAAgAAAAFZliIQL8mKAAKvMnJycnJycnJycnXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXiEASZACGQAjgCEASZACGQAjgAAAAAdBmjgX4GSAIQBJkAIZACOAAAAAB0GaVAX4GSAhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZpgL8DJIQBJkAIZACOAIQBJkAIZACOAAAAABkGagC/AySEASZACGQAjgAAAAAZBmqAvwMkhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZrAL8DJIQBJkAIZACOAAAAABkGa4C/AySEASZACGQAjgCEASZACGQAjgAAAAAZBmwAvwMkhAEmQAhkAI4AAAAAGQZsgL8DJIQBJkAIZACOAIQBJkAIZACOAAAAABkGbQC/AySEASZACGQAjgCEASZACGQAjgAAAAAZBm2AvwMkhAEmQAhkAI4AAAAAGQZuAL8DJIQBJkAIZACOAIQBJkAIZACOAAAAABkGboC/AySEASZACGQAjgAAAAAZBm8AvwMkhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZvgL8DJIQBJkAIZACOAAAAABkGaAC/AySEASZACGQAjgCEASZACGQAjgAAAAAZBmiAvwMkhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZpAL8DJIQBJkAIZACOAAAAABkGaYC/AySEASZACGQAjgCEASZACGQAjgAAAAAZBmoAvwMkhAEmQAhkAI4AAAAAGQZqgL8DJIQBJkAIZACOAIQBJkAIZACOAAAAABkGawC/AySEASZACGQAjgAAAAAZBmuAvwMkhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZsAL8DJIQBJkAIZACOAAAAABkGbIC/AySEASZACGQAjgCEASZACGQAjgAAAAAZBm0AvwMkhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZtgL8DJIQBJkAIZACOAAAAABkGbgCvAySEASZACGQAjgCEASZACGQAjgAAAAAZBm6AnwMkhAEmQAhkAI4AhAEmQAhkAI4AhAEmQAhkAI4AhAEmQAhkAI4AAAAhubW9vdgAAAGxtdmhkAAAAAAAAAAAAAAAAAAAD6AAABDcAAQAAAQAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAzB0cmFrAAAAXHRraGQAAAADAAAAAAAAAAAAAAABAAAAAAAAA+kAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAABAAAAAALAAAACQAAAAAAAkZWR0cwAAABxlbHN0AAAAAAAAAAEAAAPpAAAAAAABAAAAAAKobWRpYQAAACBtZGhkAAAAAAAAAAAAAAAAAAB1MAAAdU5VxAAAAAAALWhkbHIAAAAAAAAAAHZpZGUAAAAAAAAAAAAAAABWaWRlb0hhbmRsZXIAAAACU21pbmYAAAAUdm1oZAAAAAEAAAAAAAAAAAAAACRkaW5mAAAAHGRyZWYAAAAAAAAAAQAAAAx1cmwgAAAAAQAAAhNzdGJsAAAAr3N0c2QAAAAAAAAAAQAAAJ9hdmMxAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAALAAkABIAAAASAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGP//AAAALWF2Y0MBQsAN/+EAFWdCwA3ZAsTsBEAAAPpAADqYA8UKkgEABWjLg8sgAAAAHHV1aWRraEDyXyRPxbo5pRvPAyPzAAAAAAAAABhzdHRzAAAAAAAAAAEAAAAeAAAD6QAAABRzdHNzAAAAAAAAAAEAAAABAAAAHHN0c2MAAAAAAAAAAQAAAAEAAAABAAAAAQAAAIxzdHN6AAAAAAAAAAAAAAAeAAADDwAAAAsAAAALAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAAiHN0Y28AAAAAAAAAHgAAAEYAAANnAAADewAAA5gAAAO0AAADxwAAA+MAAAP2AAAEEgAABCUAAARBAAAEXQAABHAAAASMAAAEnwAABLsAAATOAAAE6gAABQYAAAUZAAAFNQAABUgAAAVkAAAFdwAABZMAAAWmAAAFwgAABd4AAAXxAAAGDQAABGh0cmFrAAAAXHRraGQAAAADAAAAAAAAAAAAAAACAAAAAAAABDcAAAAAAAAAAAAAAAEBAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAkZWR0cwAAABxlbHN0AAAAAAAAAAEAAAQkAAADcAABAAAAAAPgbWRpYQAAACBtZGhkAAAAAAAAAAAAAAAAAAC7gAAAykBVxAAAAAAALWhkbHIAAAAAAAAAAHNvdW4AAAAAAAAAAAAAAABTb3VuZEhhbmRsZXIAAAADi21pbmYAAAAQc21oZAAAAAAAAAAAAAAAJGRpbmYAAAAcZHJlZgAAAAAAAAABAAAADHVybCAAAAABAAADT3N0YmwAAABnc3RzZAAAAAAAAAABAAAAV21wNGEAAAAAAAAAAQAAAAAAAAAAAAIAEAAAAAC7gAAAAAAAM2VzZHMAAAAAA4CAgCIAAgAEgICAFEAVBbjYAAu4AAAADcoFgICAAhGQBoCAgAECAAAAIHN0dHMAAAAAAAAAAgAAADIAAAQAAAAAAQAAAkAAAAFUc3RzYwAAAAAAAAAbAAAAAQAAAAEAAAABAAAAAgAAAAIAAAABAAAAAwAAAAEAAAABAAAABAAAAAIAAAABAAAABgAAAAEAAAABAAAABwAAAAIAAAABAAAACAAAAAEAAAABAAAACQAAAAIAAAABAAAACgAAAAEAAAABAAAACwAAAAIAAAABAAAADQAAAAEAAAABAAAADgAAAAIAAAABAAAADwAAAAEAAAABAAAAEAAAAAIAAAABAAAAEQAAAAEAAAABAAAAEgAAAAIAAAABAAAAFAAAAAEAAAABAAAAFQAAAAIAAAABAAAAFgAAAAEAAAABAAAAFwAAAAIAAAABAAAAGAAAAAEAAAABAAAAGQAAAAIAAAABAAAAGgAAAAEAAAABAAAAGwAAAAIAAAABAAAAHQAAAAEAAAABAAAAHgAAAAIAAAABAAAAHwAAAAQAAAABAAAA4HN0c3oAAAAAAAAAAAAAADMAAAAaAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAACMc3RjbwAAAAAAAAAfAAAALAAAA1UAAANyAAADhgAAA6IAAAO+AAAD0QAAA+0AAAQAAAAEHAAABC8AAARLAAAEZwAABHoAAASWAAAEqQAABMUAAATYAAAE9AAABRAAAAUjAAAFPwAABVIAAAVuAAAFgQAABZ0AAAWwAAAFzAAABegAAAX7AAAGFwAAAGJ1ZHRhAAAAWm1ldGEAAAAAAAAAIWhkbHIAAAAAAAAAAG1kaXJhcHBsAAAAAAAAAAAAAAAALWlsc3QAAAAlqXRvbwAAAB1kYXRhAAAAAQAAAABMYXZmNTUuMzMuMTAw"}).webm,a=o.mp4;const c=()=>"undefined"!=typeof navigator&&parseFloat((""+(/CPU.*OS ([0-9_]{3,4})[0-9_]{0,1}|(CPU like).*AppleWebKit.*Mobile/i.exec(navigator.userAgent)||[0,""])[1]).replace("undefined","3_2").replace("_",".").replace("_",""))<10&&!window.MSStream,f=()=>"wakeLock"in navigator;var A=new(n(class{constructor(){if(this.enabled=!1,f()){this._wakeLock=null;const n=()=>{null!==this._wakeLock&&"visible"===document.visibilityState&&this.enable()};document.addEventListener("visibilitychange",n),document.addEventListener("fullscreenchange",n)}else c()?this.noSleepTimer=null:(this.noSleepVideo=document.createElement("video"),this.noSleepVideo.setAttribute("title","No Sleep"),this.noSleepVideo.setAttribute("playsinline",""),this._addSourceToVideo(this.noSleepVideo,"webm",i),this._addSourceToVideo(this.noSleepVideo,"mp4",a),this.noSleepVideo.addEventListener("loadedmetadata",(()=>{this.noSleepVideo.duration<=1?this.noSleepVideo.setAttribute("loop",""):this.noSleepVideo.addEventListener("timeupdate",(()=>{this.noSleepVideo.currentTime>.5&&(this.noSleepVideo.currentTime=Math.random())}))})))}_addSourceToVideo(n,e,t){var r=document.createElement("source");r.src=t,r.type=`video/${e}`,n.appendChild(r)}get isEnabled(){return this.enabled}enable(){if(f())return navigator.wakeLock.request("screen").then((n=>{this._wakeLock=n,this.enabled=!0,console.log("Wake Lock active."),this._wakeLock.addEventListener("release",(()=>{console.log("Wake Lock released.")}))})).catch((n=>{throw this.enabled=!1,console.error(`${n.name}, ${n.message}`),n}));if(c())return this.disable(),console.warn("\n NoSleep enabled for older iOS devices. This can interrupt\n active or long-running network requests from completing successfully.\n See https://github.com/richtr/NoSleep.js/issues/15 for more details.\n "),this.noSleepTimer=window.setInterval((()=>{document.hidden||(window.location.href=window.location.href.split("#")[0],window.setTimeout(window.stop,0))}),15e3),this.enabled=!0,Promise.resolve();return this.noSleepVideo.play().then((n=>(this.enabled=!0,n))).catch((n=>{throw this.enabled=!1,n}))}disable(){f()?(this._wakeLock&&this._wakeLock.release(),this._wakeLock=null):c()?this.noSleepTimer&&(console.warn("\n NoSleep now disabled for older iOS devices.\n "),window.clearInterval(this.noSleepTimer),this.noSleepTimer=null):this.noSleepVideo.pause(),this.enabled=!1}}));function l(){window.addEventListener("popstate",(()=>{window.location.reload()}));var n=document.querySelector(":root");window.addEventListener("resize",(()=>{n.style.setProperty("--app-height",Math.max(document.documentElement.clientHeight,window.innerHeight||0)-1+"px")}));const e=getComputedStyle(document.documentElement).getPropertyValue("--header-bg");var t=document.createElement("meta");t.name="theme-color",t.content=e,document.head.appendChild(t)}document.addEventListener("click",(function n(){document.removeEventListener("click",n,!1),A.enable()}),!1);var v={compose:function(n){return function(e){return function(t){return n(e(t))}}}},s=function(n){return n.compose},d=function(n){return n.identity},m={identity:function(n){return n},Semigroupoid0:function(){return v}},w=function(n){return function(e){return function(t){return function(r){return n(e(t))(e(r))}}}},p=function(n){return function(e){return function(t){return n(t)(e)}}},h=function(n){return function(e){return n}};var g=function(){function n(){}return n.value=new n,n}(),E=function(n){return n.map},b=function(n){return function(e){return function(t){return E(n)(t)(e)}}},M=function(n){return E(n)(h(undefined))},B=function(n){return function(e){return function(t){return E(n)(h(t))(e)}}},C={map:function(n){return function(e){for(var t=e.length,r=new Array(t),u=0;u>1))-o>1&&n(e,t,u,r,o,a),i-a>1&&n(e,t,u,r,a,i),c=o,f=a,A=o;c0?(r[A++]=v,++f):(r[A++]=l,++c);for(;c="0"&&n[u]<="9"?"\\&":"";return"\\"+t.charCodeAt(0).toString(10)+o}))+'"'}},xn={show:function(n){return n.toString()}},Zn={show:function(n){if(n)return"true";if(!n)return"false";throw new Error("Failed pattern match at Data.Show (line 23, column 1 - line 25, column 23): "+[n.constructor.name])}},Yn=function(n){return n.show},zn=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),Gn=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),qn=function(){function n(){}return n.value=new n,n}(),Jn=function(n){return n},Xn=function(n){return n.to},Hn=function(n){return n.from},jn=function(){function n(){}return n.value=new n,n}(),Ln=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),Wn=function(n){return function(e){return function(t){if(t instanceof jn)return n;if(t instanceof Ln)return e(t.value0);throw new Error("Failed pattern match at Data.Maybe (line 237, column 1 - line 237, column 51): "+[n.constructor.name,e.constructor.name,t.constructor.name])}}},Un=Wn(!0)(h(!1)),Nn=Wn(!1)(h(!0)),_n={map:function(n){return function(e){return e instanceof Ln?new Ln(n(e.value0)):jn.value}}},Kn=function(n){return Wn(n)(d(m))},$n=function(){return function(n){if(n instanceof Ln)return n.value0;throw new Error("Failed pattern match at Data.Maybe (line 288, column 1 - line 288, column 46): "+[n.constructor.name])}},ne=function(n){return{eq:function(e){return function(t){return e instanceof jn&&t instanceof jn||e instanceof Ln&&t instanceof Ln&&vn(n)(e.value0)(t.value0)}}}},ee={apply:function(n){return function(e){if(n instanceof Ln)return E(_n)(n.value0)(e);if(n instanceof jn)return jn.value;throw new Error("Failed pattern match at Data.Maybe (line 67, column 1 - line 69, column 30): "+[n.constructor.name,e.constructor.name])}},Functor0:function(){return _n}},te={bind:function(n){return function(e){if(n instanceof Ln)return e(n.value0);if(n instanceof jn)return jn.value;throw new Error("Failed pattern match at Data.Maybe (line 125, column 1 - line 127, column 28): "+[n.constructor.name,e.constructor.name])}},Apply0:function(){return ee}},re=function(){return{pure:Ln.create,Apply0:function(){return ee}}}(),ue=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),oe=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),ie=function(n){return Wn(new ue(n))(oe.create)},ae={map:function(n){return function(e){if(e instanceof ue)return new ue(e.value0);if(e instanceof oe)return new oe(n(e.value0));throw new Error("Failed pattern match at Data.Either (line 0, column 0 - line 0, column 0): "+[e.constructor.name])}}},ce=function(n){return function(e){return function(t){if(t instanceof ue)return n(t.value0);if(t instanceof oe)return e(t.value0);throw new Error("Failed pattern match at Data.Either (line 208, column 1 - line 208, column 64): "+[n.constructor.name,e.constructor.name,t.constructor.name])}}},fe=function(){return ce(h(jn.value))(Ln.create)}(),Ae={apply:function(n){return function(e){if(n instanceof ue)return new ue(n.value0);if(n instanceof oe)return E(ae)(n.value0)(e);throw new Error("Failed pattern match at Data.Either (line 70, column 1 - line 72, column 30): "+[n.constructor.name,e.constructor.name])}},Functor0:function(){return ae}},le={bind:ce((function(n){return function(e){return new ue(n)}}))((function(n){return function(e){return e(n)}})),Apply0:function(){return Ae}},ve=function(){return{pure:oe.create,Apply0:function(){return Ae}}}(),se={Applicative0:function(){return ve},Bind1:function(){return le}},de=function(n){return n},me={map:function(n){return function(e){return n(e)}}},we={apply:function(n){return function(e){return n(e)}},Functor0:function(){return me}},pe={bind:function(n){return function(e){return e(n)}},Apply0:function(){return we}},he={pure:de,Apply0:function(){return we}},ge={Applicative0:function(){return he},Bind1:function(){return pe}};var Ee={Ring0:function(){return bn}},be=function(n){return n.mod},Me={degree:function(n){return Math.min(Math.abs(n),2147483647)},div:function(n){return function(e){return 0===e?0:e>0?Math.floor(n/e):-Math.floor(n/-e)}},mod:function(n){return function(e){if(0===e)return 0;var t=Math.abs(e);return(n%t+t)%t}},CommutativeRing0:function(){return Ee}},Be=function(n){return n.div},Ce={mempty:"",Semigroup0:function(){return Y}},ye={mempty:[],Semigroup0:function(){return z}},Fe=function(n){return n.mempty},Se=function(n){return{mempty:function(e){return Fe(n)},Semigroup0:function(){return q(n.Semigroup0())}}};const Ie=function(n){return function(){return n}};var Qe=function(n,e,t){var r,u=0;return function(o){if(2===u)return r;if(1===u)throw new ReferenceError(n+" was needed before it finished initializing (module "+e+", line "+o+")",e,o);return u=1,r=t(),u=2,r}},De={Applicative0:function(){return Te},Bind1:function(){return ke}},ke={bind:function(n){return function(e){return function(){return e(n())()}}},Apply0:function(){return Oe(0)}},Te={pure:Ie,Apply0:function(){return Oe(0)}},Re=Qe("functorEffect","Effect",(function(){return{map:(n=Te,function(e){return function(t){return F(n.Apply0())(D(n)(e))(t)}})};var n})),Oe=Qe("applyEffect","Effect",(function(){return{apply:$(De),Functor0:function(){return Re(0)}}})),Ve=Re(20),Pe=Oe(23);const xe=function(n){return function(){return n.value}},Ze=function(n){return function(e){return function(){e.value=n}}};var Ye=function(n){return function(){return{value:n}}},ze=function(n){return function(e){return function(){var t=n(e.value);return e.value=t.state,t.value}}},Ge=function(n){return ze((function(e){var t=n(e);return{state:t,value:t}}))},qe=function(n){return function(e){return M(Ve)(Ge(n)(e))}},Je=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),Xe=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),He=function(n){return n.tailRecM},je=function(n){return function(e){return function(e){var t,r=!1;function u(t){if(!(t instanceof Je)){if(t instanceof Xe)return r=!0,t.value0;throw new Error("Failed pattern match at Control.Monad.Rec.Class (line 93, column 3 - line 93, column 25): "+[t.constructor.name])}e=n(t.value0)}for(;!r;)t=u(e);return t}(n(e))}},Le={tailRecM:function(n){return function(e){return je((function(e){if(e instanceof ue)return new Xe(new ue(e.value0));if(e instanceof oe&&e.value0 instanceof Je)return new Je(n(e.value0.value0));if(e instanceof oe&&e.value0 instanceof Xe)return new Xe(new oe(e.value0.value0));throw new Error("Failed pattern match at Control.Monad.Rec.Class (line 121, column 7 - line 121, column 33): "+[e.constructor.name])}))(n(e))}},Monad0:function(){return se}},We={tailRecM:function(n){return function(e){var t=function(n){if(n instanceof Xe)return n.value0;throw new Error("Failed pattern match at Control.Monad.Rec.Class (line 113, column 30 - line 113, column 44): "+[n.constructor.name])};return function(){var r=L(ke)(Ye)(n(e))();return function(){for(;!function(){var e=xe(r)();if(e instanceof Je){var t=n(e.value0)();return Ze(t)(r)(),!1}if(e instanceof Xe)return!0;throw new Error("Failed pattern match at Control.Monad.Rec.Class (line 104, column 22 - line 109, column 28): "+[e.constructor.name])}(););}(),E(Ve)(t)(xe(r))()}}},Monad0:function(){return De}},Ue={bimap:function(n){return function(e){return function(t){if(t instanceof Je)return new Je(n(t.value0));if(t instanceof Xe)return new Xe(e(t.value0));throw new Error("Failed pattern match at Control.Monad.Rec.Class (line 29, column 1 - line 31, column 34): "+[n.constructor.name,e.constructor.name,t.constructor.name])}}}};function Ne(n){return function(){return{value:n}}}const _e=function(n){return function(){return n.value}},Ke=function(n){return function(e){return function(){return e.value=n}}};var $e=function(n){return function(e){return function(){var t=n(e.value);return e.value=t.state,t.value}}},nt={map:function(n){return function(e){return function(){return n(e())}}}},et={Applicative0:function(){return rt},Bind1:function(){return tt}},tt={bind:function(n){return function(e){return function(){return e(n())()}}},Apply0:function(){return ut(0)}},rt={pure:function(n){return function(){return n}},Apply0:function(){return ut(0)}},ut=function(n,e,t){var r,u=0;return function(o){if(2===u)return r;if(1===u)throw new ReferenceError(n+" was needed before it finished initializing (module "+e+", line "+o+")",e,o);return u=1,r=t(),u=2,r}}("applyST","Control.Monad.ST.Internal",(function(){return{apply:$(et),Functor0:function(){return nt}}})),ot=ut(46);const it=function(n){return function(){return n}};function at(n){return function(){return n.slice()}}const ct=at;!function(){function n(e,t,r,u,o,i){var a,c,f,A,l,v;for((a=o+(i-o>>1))-o>1&&n(e,t,u,r,o,a),i-a>1&&n(e,t,u,r,a,i),c=o,f=a,A=o;c0?(r[A++]=v,++f):(r[A++]=l,++c);for(;c=0;u--)r=n(t[u])(r);return r}}},foldl:function(n){return function(e){return function(t){for(var r=e,u=t.length,o=0;o=t.length?e:n(t[r])}}})(jn.value);var n}(),vr=function(n){return lr(n)(0)},sr=function(n){return T(Yt(n))},dr=function(){return(n=Ln.create,function(e){return function(t){return function(r){for(var u=0,o=r.length;u=r.length)return e;var u=r.slice();return u.splice(t,1),n(u)}}})(jn.value);var n}(),hr=function(n){return function(e){return function(t){return 0===t.length?[]:Wn(t)((function(n){return $n()(pr(n)(t))}))(dr(n(e))(t))}}},gr=p(j(H)),Er=function(n){return gr((e=Wn([])(Ar),function(t){return e(n(t))}));var e};const br=function(n){return function(e){return e.toString(n)}};isNaN,isFinite;Math.abs,Math.acos,Math.asin,Math.atan,Math.ceil,Math.cos,Math.exp,Math.floor,Math.log,Math.round,Math.sign&&Math.sign,Math.sin,Math.sqrt,Math.tan,Math.trunc&&Math.trunc;var Mr=function(){return(n=Ln.create,function(e){return function(t){var r;r=t<11?"[0-"+(t-1).toString()+"]":11===t?"[0-9a]":"[0-9a-"+String.fromCharCode(86+t)+"]";var u=new RegExp("^[\\+\\-]?"+r+"+$","i");return function(r){if(u.test(r)){var o=parseInt(r,t);return(0|o)===o?n(o):e}return e}}})(jn.value);var n}()(10),Br=function(){return(n=Ln.create,function(e){return function(t){return(0|t)===t?n(t):e}})(jn.value);var n}(),Cr={liftEffect:d(m),Monad0:function(){return De}},yr=function(n){return n.liftEffect};const Fr=function(n){return function(){console.warn(n)}},Sr=function(n){return function(){console.error(n)}};var Ir=u("426T3");function Qr(n){return new Error(n)}function Dr(n){return n.message}function kr(n){return function(){throw n}}function Tr(n){return function(e){return function(){try{return e()}catch(e){return e instanceof Error||"[object Error]"===Object.prototype.toString.call(e)?n(e)():n(new Error(e.toString()))()}}}}var Rr=function(n){return n.throwError},Or=function(n){return n.catchError},Vr=function(n){return function(e){return Or(n)(E(n.MonadThrow0().Monad0().Bind1().Apply0().Functor0())(oe.create)(e))((t=D(n.MonadThrow0().Monad0().Applicative0()),function(n){return t(ue.create(n))}));var t}},Pr=function(n){return n.state},xr=function(n){return function(e){return Pr(n)((function(n){return new Ct(undefined,e)}))}},Zr=function(n){return Pr(n)((function(n){return new Ct(n,n)}))},Yr=function(n){return n.lift},zr=function(n){return n.tell},Gr=function(n){return function(e){return n(e)}},qr=function(n){return{map:function(e){return Gr(E(n)(E(ae)(e)))}}},Jr=function(n){return{Applicative0:function(){return jr(n)},Bind1:function(){return Xr(n)}}},Xr=function(n){return{bind:function(e){return function(t){return j(n.Bind1())(e)(ce((r=D(n.Applicative0()),function(n){return r(ue.create(n))}))((function(n){return t(n)})));var r}},Apply0:function(){return Hr(n)}}},Hr=function(n){return{apply:$(Jr(n)),Functor0:function(){return qr(n.Bind1().Apply0().Functor0())}}},jr=function(n){return{pure:(e=D(n.Applicative0()),function(n){return e(oe.create(n))}),Apply0:function(){return Hr(n)}};var e},Lr=function(n){return{throwError:(e=D(n.Applicative0()),function(n){return e(ue.create(n))}),Monad0:function(){return Jr(n)}};var e},Wr=function(n){return function(e){return{alt:function(t){return function(r){return j(e.Bind1())(t)((function(t){if(t instanceof oe)return D(e.Applicative0())(new oe(t.value0));if(t instanceof ue)return j(e.Bind1())(r)((function(r){if(r instanceof oe)return D(e.Applicative0())(new oe(r.value0));if(r instanceof ue)return D(e.Applicative0())(new ue(G(n)(t.value0)(r.value0)));throw new Error("Failed pattern match at Control.Monad.Except.Trans (line 86, column 9 - line 88, column 49): "+[r.constructor.name])}));throw new Error("Failed pattern match at Control.Monad.Except.Trans (line 82, column 5 - line 88, column 49): "+[t.constructor.name])}))}},Functor0:function(){return qr(e.Bind1().Apply0().Functor0())}}}},Ur=function(n){return function(e){return function(t){var r;return E(n)((r=e,function(n){if(n instanceof oe)return new oe(n.value0);if(n instanceof ue)return new ue(r(n.value0));throw new Error("Failed pattern match at Control.Monad.Except.Trans (line 42, column 3 - line 42, column 32): "+[r.constructor.name,n.constructor.name])}))(t)}}}(me),Nr=function(){var n=Pt();return function(e){return n(e)}}();function _r(n){return typeof n}function Kr(n){return Object.prototype.toString.call(n).slice(8,-1)}Array.isArray;var $r=function(){function n(n,e){this.value0=n,this.value1=e}return n.create=function(e){return function(t){return new n(e,t)}},n}(),nu=function(n){return function(e){return new $r(e,Bt(n))}},eu=function(n){return function(e){return{show:function(t){return"(NonEmpty "+Yn(n)(t.value0)+" "+Yn(e)(t.value1)+")"}}}},tu=function(n){return{map:function(e){return function(t){return new $r(e(t.value0),E(n)(e)(t.value1))}}}},ru=function(){function n(){}return n.value=new n,n}(),uu=function(){function n(n,e){this.value0=n,this.value1=e}return n.create=function(e){return function(t){return new n(e,t)}},n}(),ou=function(n){return new uu(n.value0,n.value1)},iu={map:function(n){var e;return e=ru.value,function(t){var r,u=e,o=!1;function i(e,r){return r instanceof uu&&r.value1 instanceof uu&&r.value1.value1 instanceof uu?(u=new uu(r,e),void(t=r.value1.value1.value1)):(o=!0,(a=e,function(e){for(var t,r,u,o=a,i=!1;!i;)u=e,t=(r=o)instanceof uu&&r.value0 instanceof uu&&r.value0.value1 instanceof uu&&r.value0.value1.value1 instanceof uu?(o=r.value1,void(e=new uu(n(r.value0.value0),new uu(n(r.value0.value1.value0),new uu(n(r.value0.value1.value1.value0),u))))):(i=!0,u);return t})((i=r)instanceof uu&&i.value1 instanceof uu&&i.value1.value1 instanceof ru?new uu(n(i.value0),new uu(n(i.value1.value0),ru.value)):i instanceof uu&&i.value1 instanceof ru?new uu(n(i.value0),ru.value):ru.value));var i,a}for(;!o;)r=i(u,t);return r}}},au=tu(iu),cu={foldr:function(n){return function(e){var t,r=(t=ru.value,function(n){var e,r=t,u=!1;function o(e,t){if(t instanceof ru)return u=!0,e;if(t instanceof uu)return r=new uu(t.value0,e),void(n=t.value1);throw new Error("Failed pattern match at Data.List.Types (line 107, column 7 - line 107, column 23): "+[e.constructor.name,t.constructor.name])}for(;!u;)e=o(r,n);return e}),u=qt(cu)(p(n))(e);return function(n){return u(r(n))}}},foldl:function(n){return function(e){return function(t){var r,u=e,o=!1;function i(e,r){if(r instanceof ru)return o=!0,e;if(r instanceof uu)return u=n(e)(r.value0),void(t=r.value1);throw new Error("Failed pattern match at Data.List.Types (line 111, column 12 - line 113, column 30): "+[r.constructor.name])}for(;!o;)r=i(u,t);return r}}},foldMap:function(n){return function(e){return qt(cu)((function(t){var r=G(n.Semigroup0())(t);return function(n){return r(e(n))}}))(Fe(n))}}},fu={append:function(n){return function(e){return Yt(cu)(uu.create)(e)(n)}}},Au={append:function(n){return function(e){return new $r(n.value0,G(fu)(n.value1)(ou(e)))}}},lu=function(n){return{show:function(e){return e instanceof ru?"Nil":"("+Jt(cu)(Ce)(" : ")(E(iu)(Yn(n))(e))+" : Nil)"}}},vu={traverse:function(n){return function(e){var t=E(n.Apply0().Functor0())(qt(cu)(p(uu.create))(ru.value)),r=qt(cu)((function(t){var r=Q(n.Apply0())(p(uu.create))(t);return function(n){return r(e(n))}}))(D(n)(ru.value));return function(n){return t(r(n))}}},sequence:function(n){return er(vu)(n)(d(m))},Functor0:function(){return iu},Foldable1:function(){return cu}},su={apply:function(n){return function(e){if(n instanceof ru)return ru.value;if(n instanceof uu)return G(fu)(E(iu)(n.value0)(e))(F(su)(n.value1)(e));throw new Error("Failed pattern match at Data.List.Types (line 157, column 1 - line 159, column 48): "+[n.constructor.name,e.constructor.name])}},Functor0:function(){return iu}},du={apply:function(n){return function(e){return new $r(n.value0(e.value0),G(fu)(F(su)(n.value1)(new uu(e.value0,ru.value)))(F(su)(new uu(n.value0,n.value1))(e.value1)))}},Functor0:function(){return au}},mu={bind:function(n){return function(e){if(n instanceof ru)return ru.value;if(n instanceof uu)return G(fu)(e(n.value0))(j(mu)(n.value1)(e));throw new Error("Failed pattern match at Data.List.Types (line 164, column 1 - line 166, column 37): "+[n.constructor.name,e.constructor.name])}},Apply0:function(){return su}},wu={alt:G(fu),Functor0:function(){return iu}},pu=function(){return{empty:ru.value,Alt0:function(){return wu}}}(),hu={pure:function(){var n=nu(pu);return function(e){return n(e)}}(),Apply0:function(){return du}},gu=function(n){return new uu(n,ru.value)},Eu=function(){var n;return n=ru.value,function(e){var t,r=n,u=!1;function o(n,t){if(t instanceof ru)return u=!0,n;if(t instanceof uu)return r=new uu(t.value0,n),void(e=t.value1);throw new Error("Failed pattern match at Data.List (line 368, column 3 - line 368, column 19): "+[n.constructor.name,t.constructor.name])}for(;!u;)t=o(r,e);return t}}(),bu=function(n){return n instanceof ru},Mu=function(n){return function(e){return function(t){return He(n)((function(r){return j(n.Monad0().Bind1())(J(e.Plus1().Alt0())(E(e.Plus1().Alt0().Functor0())(Je.create)(t))(D(e.Applicative0())(new Xe(undefined))))((function(n){return D(e.Applicative0())(It(Ue)((function(n){return new uu(n,r)}))((function(n){return Eu(r)}))(n))}))}))(ru.value)}}},Bu=function(n){return function(e){var t,r=n,u=!1;function o(n,t){if(n instanceof ru)return u=!0,jn.value;if(n instanceof uu&&0===t)return u=!0,new Ln(n.value0);if(n instanceof uu)return r=n.value1,void(e=t-1|0);throw new Error("Failed pattern match at Data.List (line 281, column 1 - line 281, column 44): "+[n.constructor.name,t.constructor.name])}for(;!u;)t=o(r,e);return t}},Cu=function(n){if(n instanceof ru)return jn.value;if(n instanceof uu)return new Ln(n.value0);throw new Error("Failed pattern match at Data.List (line 230, column 1 - line 230, column 22): "+[n.constructor.name])},yu=function(n){var e;return e=0,function(t){var r,u=e,o=!1;function i(e,r){if(r instanceof uu)return n(r.value0)?(o=!0,new Ln(e)):(u=e+1|0,void(t=r.value1));if(r instanceof ru)return o=!0,jn.value;throw new Error("Failed pattern match at Data.List (line 301, column 3 - line 301, column 35): "+[e.constructor.name,r.constructor.name])}for(;!o;)r=i(u,t);return r}},Fu=function(n){return j(mu)(n)(d(m))};const Su=function(n){throw new Error(n)};var Iu=function(){return Su},Qu=function(n){return n()},Du=function(n){return Qu((function(){return Iu()(n)}))},ku=function(n){return function(e){return function(t){var r=e(new uu(t.value0,t.value1));if(r instanceof uu)return new $r(r.value0,r.value1);if(r instanceof ru)return Du("Impossible: empty list in NonEmptyList "+n);throw new Error("Failed pattern match at Data.List.NonEmpty (line 92, column 3 - line 94, column 81): "+[r.constructor.name])}}},Tu=function(n){return new uu(n.value0,n.value1)},Ru=function(){var n=nu(pu);return function(e){return n(e)}}(),Ou=ku("reverse")(Eu),Vu=function(n){return function(e){return new $r(n,new uu(e.value0,e.value1))}};const Pu=function(n){return n.length},xu=function(n){return function(e){return e.substring(n)}},Zu=function(n){return function(e){return{before:e.substring(0,n),after:e.substring(n)}}},Yu=function(n){return function(e){if(n>=0&&n=0&&t=Vn(Rn)&&n<=Tn(Rn)?new Ln((e=n,String.fromCharCode(e))):jn.value;var e},Ro={succ:Do(To)(yo),pred:ko(To)(yo),Ord0:function(){return yn}},Oo=function(){return{cardinality:yo(Tn(On))-yo(Vn(On))|0,toEnum:To,fromEnum:yo,Bounded0:function(){return On},Enum1:function(){return Ro}}}(),Vo=function(n){return n["genericSucc'"]},Po=function(n){return function(e){var t=E(_n)(Xn(n)),r=Vo(e),u=Hn(n);return function(n){return t(r(u(n)))}}},xo=function(n){return n["genericPred'"]},Zo=function(n){return function(e){var t=E(_n)(Xn(n)),r=xo(e),u=Hn(n);return function(n){return t(r(u(n)))}}},Yo=function(n){return function(e){return function(t){return function(r){return{"genericPred'":function(r){if(r instanceof zn)return E(_n)(zn.create)(xo(n)(r.value0));if(r instanceof Gn){var u=xo(t)(r.value0);if(u instanceof jn)return new Ln(new zn(go(e)));if(u instanceof Ln)return new Ln(new Gn(u.value0));throw new Error("Failed pattern match at Data.Enum.Generic (line 30, column 14 - line 32, column 31): "+[u.constructor.name])}throw new Error("Failed pattern match at Data.Enum.Generic (line 28, column 18 - line 32, column 31): "+[r.constructor.name])},"genericSucc'":function(e){if(e instanceof zn){var u=Vo(n)(e.value0);if(u instanceof jn)return new Ln(new Gn(Mo(r)));if(u instanceof Ln)return new Ln(new zn(u.value0));throw new Error("Failed pattern match at Data.Enum.Generic (line 34, column 14 - line 36, column 31): "+[u.constructor.name])}if(e instanceof Gn)return E(_n)(Gn.create)(Vo(t)(e.value0));throw new Error("Failed pattern match at Data.Enum.Generic (line 33, column 18 - line 37, column 36): "+[e.constructor.name])}}}}}},zo={"genericPred'":function(n){return jn.value},"genericSucc'":function(n){return jn.value}},Go=function(n){return{"genericPred'":function(e){return E(_n)(Jn)(xo(n)(e))},"genericSucc'":function(e){return E(_n)(Jn)(Vo(n)(e))}}},qo=function(n){return n},Jo={dimap:function(n){return function(e){return function(e){return function(t){return e(n(t))}}}}},Xo={first:function(n){return function(e){return n(St(e))}},second:function(n){return function(e){return n(yt(e))}},Profunctor0:function(){return Jo}},Ho=function(n){return{left:function(e){return ce(e)(Fe(Se(n)))},right:function(e){return ce(Fe(Se(n)))(e)},Profunctor0:function(){return Jo}}},jo=function(n){return{wander:function(e){return function(t){return Zt()()()()(_t)(e($t(n)))(t)}},Strong0:function(){return Xo},Choice1:function(){return Ho(n)}}},Lo={dimap:function(n){return function(e){return function(t){return function(r){return e(t(n(r)))}}}}},Wo=function(n){return n.dimap},Uo=function(n){return function(e){return Wo(n)(d(m))(e)}},No=function(n){return n.right},_o={left:function(n){return function(e){if(e instanceof ue)return new ue(n(e.value0));if(e instanceof oe)return new oe(e.value0);throw new Error("Failed pattern match at Data.Profunctor.Choice (line 32, column 1 - line 35, column 16): "+[n.constructor.name,e.constructor.name])}},right:E(ae),Profunctor0:function(){return Lo}},Ko={first:function(n){return function(e){return new Ct(n(e.value0),e.value1)}},second:E(Ft),Profunctor0:function(){return Lo}},$o=function(n){return n.first},ni={wander:function(n){return Zt()()()()(de)(n(he))},Strong0:function(){return Ko},Choice1:function(){return _o}},ei=function(n){return n.wander},ti=function(n){return function(e){return function(t){return function(r){return Wo(t)(n)(e)(r)}}}},ri=function(n){return function(e){return function(t){return Wo(e.Profunctor0())(n)((function(n){return n.value1(n.value0)}))($o(e)(t))}}},ui=function(n){return function(e){return function(t){return ri((function(t){return new Ct(n(t),(function(n){return e(t)(n)}))}))(t)}}},oi=function(n){return function(e){return function(t){return function(r){return Wo(t.Profunctor0())(e)(ce(d(m))(d(m)))(No(t)(Uo(t.Profunctor0())(n)(r)))}}}},ii=function(n){return function(e){return function(t){return oi(n)((function(n){return Wn(new ue(n))(oe.create)(e(n))}))(t)}}},ai=function(n){return oi(Gn.create)((function(n){return n instanceof Gn?new oe(n.value0):new ue(n)}))(n)},ci=function(n){return oi(zn.create)((function(n){return n instanceof zn?new oe(n.value0):new ue(n)}))(n)},fi=function(n){return ti((function(n){return n}))((function(n){return n}))(n)},Ai=function(n){return ti((function(n){return n}))((function(n){return n}))(n)},li=function(){return function(){return function(n){return function(n){return ti(Vt())(Vt())(n)}(n)}}},vi=function(n){return oi(Ln.create)(Wn(new ue(jn.value))(oe.create))(n)};const si=function(n){return function(e){return function(t){return function(r){return n(e,t,r)}}}},di=function(n){return function(e){return function(t){return function(r){return function(u){return n(e,t,r,u)}}}}};var mi=function(n){return function(){return function(){return function(e){return function(t){return function(r){return Z(P(n)(e))(t)(r)}}}}}},wi=function(n){return function(){return function(e){return function(t){return x(P(n)(e))(t)}}}},pi=function(n){return function(){return function(){return function(e){return function(t){return ui(wi(n)()(e))(p(mi(n)()()(e)))(t)}}}}},hi={lift:function(n){return function(e){return function(t){return j(n.Bind1())(e)((function(e){return D(n.Applicative0())(new Ct(e,t))}))}}}},gi=function(n){return{map:function(e){return function(t){return function(r){return E(n)((function(n){return new Ct(e(n.value0),n.value1)}))(t(r))}}}}},Ei=function(n){return{Applicative0:function(){return Bi(n)},Bind1:function(){return bi(n)}}},bi=function(n){return{bind:function(e){return function(t){return function(r){return j(n.Bind1())(e(r))((function(n){return t(n.value0)(n.value1)}))}}},Apply0:function(){return Mi(n)}}},Mi=function(n){return{apply:$(Ei(n)),Functor0:function(){return gi(n.Bind1().Apply0().Functor0())}}},Bi=function(n){return{pure:function(e){return function(t){return D(n.Applicative0())(new Ct(e,t))}},Apply0:function(){return Mi(n)}}},Ci=function(n){return{liftEffect:(e=Yr(hi)(n.Monad0()),t=yr(n),function(n){return e(t(n))}),Monad0:function(){return Ei(n.Monad0())}};var e,t},yi=function(n){return{state:function(e){var t=D(n.Applicative0());return function(n){return t(e(n))}},Monad0:function(){return Ei(n)}}},Fi=function(n){return function(e){return n(h(e))}},Si=function(n){return function(e){return ei(e)((function(e){return er(n)(e)}))}},Ii=function(n){return function(){return function(){return function(e){return{constructBarlow:function(t){return pi(n)()()(g.value)(e)}}}}}},Qi=function(n){return{constructBarlowGeneric:function(e){var t=ci(n),r=fi(n.Profunctor0()),u=Ai(n.Profunctor0());return function(n){return t(r(u(n)))}}}},Di=function(n){return n.constructBarlowGeneric},ki=function(n){return function(e){return function(t){return{constructBarlow:function(r){var u=function(n){return function(e){return ti(Hn(n))(Xn(n))(e)}}(n)(t),o=Di(e)(g.value);return function(n){return u(o(n))}}}}}},Ti=function(n){return function(e){return{constructBarlowGeneric:function(t){var r=ai(e),u=Di(n)(g.value);return function(n){return r(u(n))}}}}},Ri=function(n){return n.constructBarlow},Oi=function(n){return function(){return function(e){return{constructBarlow:function(t){var r=li()()(e),u=Ri(n)(g.value);return function(n){return r(u(n))}}}}}},Vi=function(n){return function(e){return function(){return function(){return function(t){return{constructBarlow:function(r){var u=pi(n)()()(g.value)(t),o=Ri(e)(g.value);return function(n){return u(o(n))}}}}}}}},Pi=function(){return g.value}(),xi=function(){return function(n){return{barlow:function(e){return Ri(n)(g.value)}}}},Zi=function(n){return n.barlow};var Yi={genericShowArgs:function(n){return[]}},zi=function(n){return n.genericShowArgs},Gi=function(n){return function(e){return{"genericShow'":function(t){var r,u=P(e)(g.value),o=zi(n)(t);return 0===o.length?u:"("+(r=" ",function(n){return n.join(r)})(G(z)([u])(o))+")"}}}},qi=function(n){return n["genericShow'"]},Ji=function(n){return function(e){return{"genericShow'":function(t){if(t instanceof zn)return qi(n)(t.value0);if(t instanceof Gn)return qi(e)(t.value0);throw new Error("Failed pattern match at Data.Show.Generic (line 26, column 1 - line 28, column 40): "+[t.constructor.name])}}}},Xi=function(n){return function(e){return function(t){return qi(e)(Hn(n)(t))}}};var Hi="function"==typeof Array.from,ji="undefined"!=typeof Symbol&&null!=Symbol&&void 0!==Symbol.iterator&&"function"==typeof String.prototype[Symbol.iterator],Li="function"==typeof String.prototype.fromCodePoint,Wi="function"==typeof String.prototype.codePointAt;const Ui=function(n){return Li?String.fromCodePoint:n},Ni=function(n){return function(e){return ji?function(n){for(var t="",r=n[Symbol.iterator](),u=0;u1){var t=Qo(Oo)(Yu(1)(n));return $i(t)?Ki(e)(t):e}return e})),oa=_i(ra)(ua),ia=function(n){return R(oa(n))},aa=function(){var n,e=(n=Oo,function(e){return function(t){return function(r){var u=Fo(n)(r);if(u instanceof Ln)return u.value0;if(u instanceof jn)return r=0?"+"+Yn(xn)(n):Yn(xn)(n)}},wc={show:function(n){if(n instanceof xa)return n.value0;if(n instanceof Za)return n.value0;throw new Error("Failed pattern match at TablatureDocument (line 301, column 1 - line 303, column 36): "+[n.constructor.name])}},pc={show:function(n){if(n instanceof nc)return n.value0;if(n instanceof ec)return n.value0;throw new Error("Failed pattern match at TablatureDocument (line 297, column 1 - line 299, column 38): "+[n.constructor.name])}},hc=function(n){return{print:function(e){return Ta(n)(e.elem)+Kn("")(Ma(e.spaceSuffix)(" "))}}},gc={print:function(n){return n.pre+(n.interval+n.post)}},Ec={to:function(n){if(n instanceof zn)return new Ac(n.value0);if(n instanceof Gn&&n.value0 instanceof zn)return new lc(n.value0.value0);if(n instanceof Gn&&n.value0 instanceof Gn&&n.value0.value0 instanceof zn)return new vc(n.value0.value0.value0);if(n instanceof Gn&&n.value0 instanceof Gn&&n.value0.value0 instanceof Gn&&n.value0.value0.value0 instanceof zn)return new sc(n.value0.value0.value0.value0);if(n instanceof Gn&&n.value0 instanceof Gn&&n.value0.value0 instanceof Gn&&n.value0.value0.value0 instanceof Gn)return new dc(n.value0.value0.value0.value0);throw new Error("Failed pattern match at TablatureDocument (line 29, column 1 - line 29, column 48): "+[n.constructor.name])},from:function(n){if(n instanceof Ac)return new zn(n.value0);if(n instanceof lc)return new Gn(new zn(n.value0));if(n instanceof vc)return new Gn(new Gn(new zn(n.value0)));if(n instanceof sc)return new Gn(new Gn(new Gn(new zn(n.value0))));if(n instanceof dc)return new Gn(new Gn(new Gn(new Gn(n.value0))));throw new Error("Failed pattern match at TablatureDocument (line 29, column 1 - line 29, column 48): "+[n.constructor.name])}},bc={to:function(n){if(n instanceof zn)return Ya.value;if(n instanceof Gn&&n.value0 instanceof zn)return za.value;if(n instanceof Gn&&n.value0 instanceof Gn&&n.value0.value0 instanceof zn)return Ga.value;if(n instanceof Gn&&n.value0 instanceof Gn&&n.value0.value0 instanceof Gn&&n.value0.value0.value0 instanceof zn)return qa.value;if(n instanceof Gn&&n.value0 instanceof Gn&&n.value0.value0 instanceof Gn&&n.value0.value0.value0 instanceof Gn&&n.value0.value0.value0.value0 instanceof zn)return Ja.value;if(n instanceof Gn&&n.value0 instanceof Gn&&n.value0.value0 instanceof Gn&&n.value0.value0.value0 instanceof Gn&&n.value0.value0.value0.value0 instanceof Gn&&n.value0.value0.value0.value0.value0 instanceof zn)return Xa.value;if(n instanceof Gn&&n.value0 instanceof Gn&&n.value0.value0 instanceof Gn&&n.value0.value0.value0 instanceof Gn&&n.value0.value0.value0.value0 instanceof Gn&&n.value0.value0.value0.value0.value0 instanceof Gn)return Ha.value;throw new Error("Failed pattern match at TablatureDocument (line 209, column 1 - line 209, column 46): "+[n.constructor.name])},from:function(n){if(n instanceof Ya)return new zn(qn.value);if(n instanceof za)return new Gn(new zn(qn.value));if(n instanceof Ga)return new Gn(new Gn(new zn(qn.value)));if(n instanceof qa)return new Gn(new Gn(new Gn(new zn(qn.value))));if(n instanceof Ja)return new Gn(new Gn(new Gn(new Gn(new zn(qn.value)))));if(n instanceof Xa)return new Gn(new Gn(new Gn(new Gn(new Gn(new zn(qn.value))))));if(n instanceof Ha)return new Gn(new Gn(new Gn(new Gn(new Gn(new Gn(qn.value))))));throw new Error("Failed pattern match at TablatureDocument (line 209, column 1 - line 209, column 46): "+[n.constructor.name])}},Mc={print:Xi(bc)(Ji(Gi(Yi)({reflectSymbol:function(){return"A"}}))(Ji(Gi(Yi)({reflectSymbol:function(){return"B"}}))(Ji(Gi(Yi)({reflectSymbol:function(){return"C"}}))(Ji(Gi(Yi)({reflectSymbol:function(){return"D"}}))(Ji(Gi(Yi)({reflectSymbol:function(){return"E"}}))(Ji(Gi(Yi)({reflectSymbol:function(){return"F"}}))(Gi(Yi)({reflectSymbol:function(){return"G"}}))))))))},Bc={print:function(n){var e=Ta(Mc)(n.primitive);return n.lowercase?vo(e):e}},Cc={print:function(n){return Ta(Bc)(n.letter)+n.mod}},yc={print:function(n){return Ta(Cc)(n.root)+(n.type+(Yt(cu)(G(Y))("")(E(iu)((function(n){return n.pre+(n.interval+n.post)}))(n.mods))+Kn("")(b(_n)(n.bass)(Ta(Cc)))))}},Fc={show:function(n){if(n instanceof uc)return Ta(hc(yc))(n.value0);if(n instanceof oc)return n.value0;throw new Error("Failed pattern match at TablatureDocument (line 290, column 1 - line 292, column 38): "+[n.constructor.name])}},Sc={show:function(n){if(n instanceof ic)return n.value0;if(n instanceof ac)return n.value0;if(n instanceof cc)return Ta(hc(yc))(n.value0);if(n instanceof fc)return"legend";throw new Error("Failed pattern match at TablatureDocument (line 284, column 1 - line 288, column 34): "+[n.constructor.name])}},Ic={print:function(n){if(n instanceof ja)return n.value0;if(n instanceof La)return Ta(hc(Cc))(n.value0);if(n instanceof Ua)return n.value0;if(n instanceof Wa)return n.value0;if(n instanceof Na)return n.value0;if(n instanceof _a)return n.value0;if(n instanceof Ka)return n.value0;if(n instanceof $a)return n.value0;throw new Error("Failed pattern match at TablatureDocument (line 274, column 1 - line 282, column 33): "+[n.constructor.name])}},Qc={show:Ta(Ic)},Dc={show:function(n){if(n instanceof Ac)return"Title: "+Yn(lu(wc))(n.value0);if(n instanceof vc)return"Tab: "+Yn(lu(Qc))(n.value0);if(n instanceof dc)return"Text: "+Yn(lu(Sc))(n.value0);if(n instanceof sc)return"Chords: "+Yn(lu(Fc))(n.value0);if(n instanceof lc)return"Header: "+Yn(lu(pc))(n.value0);throw new Error("Failed pattern match at TablatureDocument (line 264, column 1 - line 269, column 53): "+[n.constructor.name])}},kc={eq:function(n){return function(e){return n instanceof Ya&&e instanceof Ya||(n instanceof za&&e instanceof za||(n instanceof Ga&&e instanceof Ga||(n instanceof qa&&e instanceof qa||(n instanceof Ja&&e instanceof Ja||(n instanceof Xa&&e instanceof Xa||n instanceof Ha&&e instanceof Ha)))))}}},Tc={compare:function(n){return function(e){if(n instanceof Ya&&e instanceof Ya)return wn.value;if(n instanceof Ya)return dn.value;if(e instanceof Ya)return mn.value;if(n instanceof za&&e instanceof za)return wn.value;if(n instanceof za)return dn.value;if(e instanceof za)return mn.value;if(n instanceof Ga&&e instanceof Ga)return wn.value;if(n instanceof Ga)return dn.value;if(e instanceof Ga)return mn.value;if(n instanceof qa&&e instanceof qa)return wn.value;if(n instanceof qa)return dn.value;if(e instanceof qa)return mn.value;if(n instanceof Ja&&e instanceof Ja)return wn.value;if(n instanceof Ja)return dn.value;if(e instanceof Ja)return mn.value;if(n instanceof Xa&&e instanceof Xa)return wn.value;if(n instanceof Xa)return dn.value;if(e instanceof Xa)return mn.value;if(n instanceof Ha&&e instanceof Ha)return wn.value;throw new Error("Failed pattern match at TablatureDocument (line 0, column 0 - line 0, column 0): "+[n.constructor.name,e.constructor.name])}},Eq0:function(){return kc}},Rc={eq:function(n){return function(e){return n.lowercase===e.lowercase&&vn(kc)(n.primitive)(e.primitive)}}},Oc={eq:function(n){return function(e){return vn(Rc)(n.letter)(e.letter)&&n.mod===e.mod}}},Vc={succ:function(n){return n instanceof Ha?new Ln(Ya.value):Po(bc)(Yo(Go(zo))(Eo(ho))(Yo(Go(zo))(Eo(ho))(Yo(Go(zo))(Eo(ho))(Yo(Go(zo))(Eo(ho))(Yo(Go(zo))(Eo(ho))(Yo(Go(zo))(Eo(ho))(Go(zo))(Bo(bo)))(Co(Bo(bo))))(Co(Bo(bo))))(Co(Bo(bo))))(Co(Bo(bo))))(Co(Bo(bo))))(n)},pred:function(n){return n instanceof Ya?new Ln(Ha.value):Zo(bc)(Yo(Go(zo))(Eo(ho))(Yo(Go(zo))(Eo(ho))(Yo(Go(zo))(Eo(ho))(Yo(Go(zo))(Eo(ho))(Yo(Go(zo))(Eo(ho))(Yo(Go(zo))(Eo(ho))(Go(zo))(Bo(bo)))(Co(Bo(bo))))(Co(Bo(bo))))(Co(Bo(bo))))(Co(Bo(bo))))(Co(Bo(bo))))(n)},Ord0:function(){return Tc}},Pc={"succ'":function(n){return $n()(So(Vc)(n))},"pred'":function(n){return $n()(Io(Vc)(n))},Enum0:function(){return Vc}},xc=function(n){return Zi(xi()(Oi(Ii({reflectSymbol:function(){return"spaceSuffix"}})()()(n))()(n.Profunctor0())))(Pi)},Zc=function(n){return Zi(xi()(Oi(Ii({reflectSymbol:function(){return"root"}})()()(n))()(n.Profunctor0())))(Pi)},Yc=function(n){return Zi(xi()(Oi(Vi({reflectSymbol:function(){return"letter"}})(Oi(Ii({reflectSymbol:function(){return"primitive"}})()()(n))()(n.Profunctor0()))()()(n))()(n.Profunctor0())))(Pi)},zc=function(n){return Zi(xi()(Oi(Ii({reflectSymbol:function(){return"mod"}})()()(n))()(n.Profunctor0())))(Pi)},Gc=function(n){return Zi(xi()(Oi(Ii({reflectSymbol:function(){return"letter"}})()()(n))()(n.Profunctor0())))(Pi)},qc=function(n){return Zi(xi()(Oi(Ii({reflectSymbol:function(){return"elem"}})()()(n))()(n.Profunctor0())))(Pi)},Jc=function(n){return Zi(xi()(Oi(Ii({reflectSymbol:function(){return"bass"}})()()(n))()(n.Profunctor0())))(Pi)},Xc=function(n){return ii(La.create)((function(n){return n instanceof La?new Ln(n.value0):jn.value}))(n)},Hc=function(n){return Zi(xi()(ki(Ec)(Ti(Ti(Ti(function(n){return{constructBarlowGeneric:function(e){var t=ai(n),r=fi(n.Profunctor0()),u=Ai(n.Profunctor0());return function(n){return t(r(u(n)))}}}}(n))(n))(n))(n))(n.Profunctor0())))(Pi)},jc=function(n){return Zi(xi()(ki(Ec)(Ti(Ti(Qi(n))(n))(n))(n.Profunctor0())))(Pi)},Lc=xt()()(qo),Wc=function(n){return function(e){return function(t){var r=p(Pt())(t),u=Lc(n)((function(n){return e(n)}));return function(n){return r(u(n))}}}},Uc=function(n){return function(e){return Wc(e)((function(e){var t=Wn(e)(function(e){return function(t){return In(n)(e)(t)?e:t}}(e));return function(n){return Ln.create(t(n))}}))(jn.value)}},Nc=function(n){return function(n){return function(e){var t=Pt(),r=Lc(n)((function(n){return e(n)}));return function(n){return t(r(n))}}}},_c=function(n){return Pt()(n(d(m)))},Kc=function(){function n(){}return n.value=new n,n}(),$c=function(){function n(){}return n.value=new n,n}(),nf=function(){function n(){}return n.value=new n,n}(),ef={eq:function(n){return function(e){return n instanceof Kc&&e instanceof Kc||(n instanceof $c&&e instanceof $c||n instanceof nf&&e instanceof nf)}}},tf=function(){var n=function(n){return n instanceof cc&&(e="^([Aa][Mm]?|[DdGg]o|[a-z]|Bob)$",function(n){return sa(Ea(e)(ma))(n)})(Ta(yc)(n.value0.elem));var e},e=function(e){return e instanceof cc&&!n(e)},t=function(e){return e instanceof cc&&n(e)?new ic(Ta(hc(yc))(e.value0)):e},r=function(n){return n instanceof fc},u=function(e){return(i=Hc(Ho(nr(hn))),a=Si(vu)(jo(nr(hn))),c=(o=Ho(nr(hn)),function(n){var e=Wo(o.Profunctor0())((function(e){return n(e)?new oe(e):new ue(e)}))(ce(d(m))(d(m))),t=No(o);return function(n){return e(t(n))}})(n),t=function(n){return i(a(c(n)))},r=Pt(),u=Lc(t)(h(1)),function(n){return r(u(n))})(e)>3;var t,r,u,o,i,a,c};return E(iu)((function(n){var o,i,a=function(n){return Nc()((e=Hc(Ho(Tt(wt))),t=Si(vu)(jo(Tt(wt))),function(n){return e(t(n))}))(r)(n);var e,t}(n)||u(n)||function(n){return Nc()((t=Hc(Ho(Tt(wt))),r=Si(vu)(jo(Tt(wt))),function(n){return t(r(n))}))(e)(n);var t,r}(n);return a?n:(o=Hc(_o),i=Si(vu)(ni),function(n){return o(i(n))})(t)(n)}))}(),rf=function(n){return function(e){return function(t){var r=e(t.elem);return{elem:r,spaceSuffix:(t.spaceSuffix+Pu(Ta(n)(t.elem))|0)-Pu(Ta(n)(r))|0}}}},uf=function(n){return function(e){var t=function(n){var e,t=Mr(n);if(t instanceof jn)return n;if(t instanceof Ln){var r=Kn(10)((e=12)>=2&&e<=36?new Ln(e):jn.value);return t.value0>25?Yn(xn)(t.value0):Ao("b")("↋")(Ao("a")("↊")(br(r)(t.value0)))}throw new Error("Failed pattern match at TablatureRewriter (line 259, column 5 - line 268, column 47): "+[t.constructor.name])};return!n.dozenalizeTabs?e:E(iu)((function(n){return n instanceof vc?new vc((e=n.value0,Va(0)(e)((function(n){return function(e){if(e instanceof Wa)return new Ct(0,new Wa(Kn("")(Ma(n)("-"))+e.value0));if(e instanceof _a){var r=t(e.value0);return p(Ct.create)(new _a(r))("↊"===r||"↋"===r?n+1|0:n)}return new Ct(n,e)}})))):n;var e}))(e)}},of=function(n){var e=function(n){return Fi((e=Ko,Zi(xi()(Oi(Vi({reflectSymbol:function(){return"letter"}})(Oi(Ii({reflectSymbol:function(){return"lowercase"}})()()(e))()(e.Profunctor0()))()()(e))()(e.Profunctor0())))(Pi)))(!1)(n);var e},t=Pa(Oc)((function(n){var e=function(e){var t=zu(e)(_c(zc(Xo))(n));if(t instanceof jn)return n;if(t instanceof Ln)return Yc(Ko)(Pc["pred'"])(Fi(zc(Ko))(t.value0)(n));throw new Error("Failed pattern match at TablatureRewriter (line 143, column 20 - line 145, column 68): "+[t.constructor.name])};return e(vn(kc)(_c(Yc(Xo))(n))(Ga.value)||vn(kc)(_c(Yc(Xo))(n))(Xa.value)?"b":"bb")})),r=Pa(Oc)((function(n){var e=function(e){var t=zu(e)(_c(zc(Xo))(n));if(t instanceof jn)return n;if(t instanceof Ln)return Yc(Ko)(Pc["succ'"])(Fi(zc(Ko))(t.value0)(n));throw new Error("Failed pattern match at TablatureRewriter (line 137, column 20 - line 139, column 68): "+[t.constructor.name])};return e(vn(kc)(_c(Yc(Xo))(n))(za.value)||vn(kc)(_c(Yc(Xo))(n))(Ja.value)?"#":"##")})),u=Pa(Oc)((function(n){return zc(Ko)((e=fo("b#")(""),t=fo("#b")(""),function(n){return e(t(n))}))(n);var e,t}));return function(o){return e(function(e){var t,r;if(n.noteOrientation instanceof nf)return"#"===(t=_c(zc(Xo))(e))?(r=_c(Yc(Xo))(e))instanceof Ya?Fi(Yc(Ko))(za.value)(Fi(zc(Ko))("b")(e)):r instanceof qa?Fi(Yc(Ko))(Ja.value)(Fi(zc(Ko))("b")(e)):r instanceof Ha?Fi(Yc(Ko))(Ya.value)(Fi(zc(Ko))("b")(e)):e:"b"===t?(r=_c(Yc(Xo))(e))instanceof qa?Fi(Yc(Ko))(Ga.value)(Fi(zc(Ko))("#")(e)):r instanceof Ha?Fi(Yc(Ko))(Xa.value)(Fi(zc(Ko))("#")(e)):e:e;if(n.noteOrientation instanceof Kc)return"#"===(t=_c(zc(Xo))(e))?(r=_c(Yc(Xo))(e))instanceof Ya?Fi(Yc(Ko))(za.value)(Fi(zc(Ko))("b")(e)):r instanceof Ga?Fi(Yc(Ko))(qa.value)(Fi(zc(Ko))("b")(e)):r instanceof qa?Fi(Yc(Ko))(Ja.value)(Fi(zc(Ko))("b")(e)):r instanceof Xa?Fi(Yc(Ko))(Ha.value)(Fi(zc(Ko))("b")(e)):r instanceof Ha?Fi(Yc(Ko))(Ya.value)(Fi(zc(Ko))("b")(e)):e:e;if(n.noteOrientation instanceof $c)return"b"===(t=_c(zc(Xo))(e))?(r=_c(Yc(Xo))(e))instanceof Ya?Fi(Yc(Ko))(Ha.value)(Fi(zc(Ko))("#")(e)):r instanceof za?Fi(Yc(Ko))(Ya.value)(Fi(zc(Ko))("#")(e)):r instanceof qa?Fi(Yc(Ko))(Ga.value)(Fi(zc(Ko))("#")(e)):r instanceof Ja?Fi(Yc(Ko))(qa.value)(Fi(zc(Ko))("#")(e)):r instanceof Ha?Fi(Yc(Ko))(Xa.value)(Fi(zc(Ko))("#")(e)):e:e;throw new Error("Failed pattern match at TablatureRewriter (line 147, column 5 - line 179, column 20): "+[n.noteOrientation.constructor.name])}(t(r(u(o)))))}},af=function(n){var e=function(n){return zc(Ko)((function(e){return e+n}))};if(0===n.transposition)return d(m);if(n.transposition>0){var t=of(n),r=e(Kn("")(Ma(n.transposition)("#")));return function(n){return t(r(n))}}var u,o=of(n),i=e(Kn("")(Ma((u=Cn,function(n){return function(e){return Sn(u)(e)(pn(n.Semiring0()))?e:Mn(n)(e)}})(bn)(n.transposition))("b")));return function(n){return o(i(n))}},cf=function(n){var e,t,r,u,o,i,a,c=rf(yc)(n),f=(t=Hc(_o),r=Si(vu)(ni),e=_o,u=ii(cc.create)((function(n){return n instanceof cc?new Ln(n.value0):jn.value}))(e),function(n){return t(r(u(n)))})(c),A=(o=function(n){return Zi(xi()(ki(Ec)(Ti(Ti(Ti(Qi(n))(n))(n))(n))(n.Profunctor0())))(Pi)}(_o),i=Si(vu)(ni),a=function(n){return ii(uc.create)((function(n){return n instanceof uc?new Ln(n.value0):jn.value}))(n)}(_o),function(n){return o(i(a(n)))})(c);return E(iu)((function(n){return f(A(n))}))},ff=function(n){return function(e){var t=function(n){return Eu(Va(!1)(Eu(n))((function(n){return function(e){return e instanceof Ua?new Ct(!0,e):e instanceof Wa?new Ct(!0,n?e:new Ua((t=e.value0,sn(ne(An))(Gu(Pu(t)-1|0)(t))(new Ln("|"))?t+"|":t))):new Ct(n,e);var t}})))};return!n.normalizeTabs?e:E(iu)((function(n){return n instanceof vc?new vc(t(n.value0)):n}))(e)}},Af=function(n){var e=function(n){var e,t,r,u,o,i=(e=n.normalizeChords?of(n):d(m),t=af(n),function(n){return e(t(n))}),a=(r=jc(_o),u=Si(vu)(ni),o=Xc(_o),function(n){return r(u(o(n)))})(rf(Cc)(i));return E(iu)(a)}(n),t=function(n){var e,t,r,u,o,i,a=(e=n.normalizeChords?of(n):d(m),t=af(n),function(n){return e(t(n))}),c=(o=(r=Jc(Ko),u=vi(_o),function(n){return r(u(n))})(a),i=Zc(Ko)(a),function(n){return o(i(n))});return cf(c)}(n),r=uf(n),u=function(n){return function(e){var t,r,u=(t=Ao("13")("11"),r=Ao("11")("↋"),function(n){return t(r(n))});return n.dozenalizeChords?cf((function(n){var e=u(n.type),t=E(iu)((function(n){return{pre:n.pre,interval:u(n.interval),post:n.post}}))(n.mods);return{root:n.root,type:e,mods:t,bass:n.bass}}))(e):e}}(n),o=ff(n),i=function(n){return function(e){var t=function(n){return n instanceof Wa?new Wa(Ao("—")("-")(Ao(" ")("-")(n.value0))):n instanceof Ua?new Ua(Ao("[")("|")(Ao("]")("|")(n.value0))):n};return n.normalizeTabs?E(iu)((function(n){return n instanceof vc?new vc(E(iu)(t)(n.value0)):n}))(e):e}}(n),a=d(m);return function(n){return e(t(r(u(o(i(tf(a(n))))))))}},lf=function(n){var e,t=to(n);if(t instanceof Ln)return yr(Cr)((e=t.value0,function(){ao(e)}));if(t instanceof jn)return yr(Cr)(Sr("Could not save tablature to URL"));throw new Error("Failed pattern match at AppUrl (line 23, column 3 - line 25, column 80): "+[t.constructor.name])},vf=wo([]),sf=function(){var n,e=io(),t=eo(e);return t instanceof Ln?(n=t.value0,function(){oo(n)})():I(Pe)(Sr("Could not load decompressed shortlink URL"))(D(Te)(undefined))()},df=function(){var n=yr(Cr)(io)();if(""===n||"#"===n)return"";var e=eo(n);if(e instanceof Ln)return e.value0;if(e instanceof jn)return I(Pe)(Sr("Could not load tablature from URL"))(D(Te)(""))();throw new Error("Failed pattern match at AppUrl (line 31, column 8 - line 33, column 78): "+[e.constructor.name])},mf=function(){var n=function(){var n=po("t")();if(n instanceof jn)return jn.value;if(n instanceof Ln){var e=Mr(n.value0);return e instanceof Ln?new Ln(e.value0):I(Pe)(Sr("Could not parse transposition parameter"))(D(Te)(jn.value))()}throw new Error("Failed pattern match at AppUrl (line 45, column 3 - line 50, column 87): "+[n.constructor.name])}(),e=function(){var n=po("o")();if(n instanceof jn)return jn.value;if(n instanceof Ln){var e=Mr(n.value0);return e instanceof Ln&&0===e.value0?new Ln(Kc.value):e instanceof Ln&&1===e.value0?new Ln($c.value):I(Pe)(Sr("Could not parse note orientation parameter"))(D(Te)(jn.value))()}throw new Error("Failed pattern match at AppUrl (line 55, column 3 - line 61, column 90): "+[n.constructor.name])}();return{transposition:Kn(0)(n),noteOrientation:Kn(nf.value)(e)}},wf=function(){function n(){}return n.value=new n,n}(),pf=function(){function n(){}return n.value=new n,n}(),hf=function(){function n(){}return n.value=new n,n}(),gf=function(){function n(){}return n.value=new n,n}(),Ef=function(){function n(){}return n.value=new n,n}(),bf=function(){function n(){}return n.value=new n,n}(),Mf={print:function(n){if(n instanceof wf)return"(0.2)";if(n instanceof pf)return"(0.4)";if(n instanceof hf)return"(0.6)";if(n instanceof gf)return"(1.0)";if(n instanceof Ef)return"(2.0)";if(n instanceof bf)return"(4.0)";throw new Error("Failed pattern match at AutoscrollSpeed (line 18, column 1 - line 24, column 26): "+[n.constructor.name])}},Bf={to:function(n){if(n instanceof zn)return wf.value;if(n instanceof Gn&&n.value0 instanceof zn)return pf.value;if(n instanceof Gn&&n.value0 instanceof Gn&&n.value0.value0 instanceof zn)return hf.value;if(n instanceof Gn&&n.value0 instanceof Gn&&n.value0.value0 instanceof Gn&&n.value0.value0.value0 instanceof zn)return gf.value;if(n instanceof Gn&&n.value0 instanceof Gn&&n.value0.value0 instanceof Gn&&n.value0.value0.value0 instanceof Gn&&n.value0.value0.value0.value0 instanceof zn)return Ef.value;if(n instanceof Gn&&n.value0 instanceof Gn&&n.value0.value0 instanceof Gn&&n.value0.value0.value0 instanceof Gn&&n.value0.value0.value0.value0 instanceof Gn)return bf.value;throw new Error("Failed pattern match at AutoscrollSpeed (line 28, column 1 - line 28, column 68): "+[n.constructor.name])},from:function(n){if(n instanceof wf)return new zn(qn.value);if(n instanceof pf)return new Gn(new zn(qn.value));if(n instanceof hf)return new Gn(new Gn(new zn(qn.value)));if(n instanceof gf)return new Gn(new Gn(new Gn(new zn(qn.value))));if(n instanceof Ef)return new Gn(new Gn(new Gn(new Gn(new zn(qn.value)))));if(n instanceof bf)return new Gn(new Gn(new Gn(new Gn(new Gn(qn.value)))));throw new Error("Failed pattern match at AutoscrollSpeed (line 28, column 1 - line 28, column 68): "+[n.constructor.name])}},Cf={eq:function(n){return function(e){return n instanceof wf&&e instanceof wf||(n instanceof pf&&e instanceof pf||(n instanceof hf&&e instanceof hf||(n instanceof gf&&e instanceof gf||(n instanceof Ef&&e instanceof Ef||n instanceof bf&&e instanceof bf))))}}},yf={compare:function(n){return function(e){if(n instanceof wf&&e instanceof wf)return wn.value;if(n instanceof wf)return dn.value;if(e instanceof wf)return mn.value;if(n instanceof pf&&e instanceof pf)return wn.value;if(n instanceof pf)return dn.value;if(e instanceof pf)return mn.value;if(n instanceof hf&&e instanceof hf)return wn.value;if(n instanceof hf)return dn.value;if(e instanceof hf)return mn.value;if(n instanceof gf&&e instanceof gf)return wn.value;if(n instanceof gf)return dn.value;if(e instanceof gf)return mn.value;if(n instanceof Ef&&e instanceof Ef)return wn.value;if(n instanceof Ef)return dn.value;if(e instanceof Ef)return mn.value;if(n instanceof bf&&e instanceof bf)return wn.value;throw new Error("Failed pattern match at AutoscrollSpeed (line 0, column 0 - line 0, column 0): "+[n.constructor.name,e.constructor.name])}},Eq0:function(){return Cf}},Ff={succ:Po(Bf)(Yo(Go(zo))(Eo(ho))(Yo(Go(zo))(Eo(ho))(Yo(Go(zo))(Eo(ho))(Yo(Go(zo))(Eo(ho))(Yo(Go(zo))(Eo(ho))(Go(zo))(Bo(bo)))(Co(Bo(bo))))(Co(Bo(bo))))(Co(Bo(bo))))(Co(Bo(bo)))),pred:Zo(Bf)(Yo(Go(zo))(Eo(ho))(Yo(Go(zo))(Eo(ho))(Yo(Go(zo))(Eo(ho))(Yo(Go(zo))(Eo(ho))(Yo(Go(zo))(Eo(ho))(Go(zo))(Bo(bo)))(Co(Bo(bo))))(Co(Bo(bo))))(Co(Bo(bo))))(Co(Bo(bo)))),Ord0:function(){return yf}},Sf=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),If=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),Qf=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),Df=function(){function n(){}return n.value=new n,n}(),kf=function(n){return function(e){return n(e)}},Tf=function(n){return _c(kf(n)(Xo))},Rf=function(n){return function(e){return b(n.Monad0().Bind1().Apply0().Functor0())(Zr(n))(Tf(e))}},Of=function(n){return function(e){var t=Tf(n)(e);if(t.value instanceof Df)return t.default;if(t.value instanceof Qf)return t.value.value0;throw new Error("Failed pattern match at Cache (line 86, column 3 - line 88, column 28): "+[t.value.constructor.name])}},Vf=function(n){return function(e){return function(t){return j(n.Monad0().Bind1())(b(n.Monad0().Bind1().Apply0().Functor0())(Zr(n))(kf(e)(Ko)(t)))(xr(n))}}},Pf=function(n){return function(e){return j(n.Monad0().Bind1())(Rf(n)(e.entry))((function(t){if(t.value instanceof Qf)return D(n.Monad0().Applicative0())(t.value.value0);if(t.value instanceof Df)return j(n.Monad0().Bind1())(e.fetch.value0)((function(r){return j(n.Monad0().Bind1())(D(n.Monad0().Applicative0())(Kn(t.default)(r)))((function(t){return X(N)(n.Monad0().Bind1())(Vf(n)(e.entry)((function(n){return{value:new Qf(t),default:n.default,dependants:n.dependants}})))((function(){return D(n.Monad0().Applicative0())(t)}))}))}));throw new Error("Failed pattern match at Cache (line 124, column 3 - line 130, column 17): "+[t.value.constructor.name])}))}},xf=function(n){return function(e){return Oa(n)(e.dependants)((t=Zf(n),function(n){return n(t)}));var t}},Zf=function(n){return function(e){return j(n.Monad0().Bind1())(Rf(n)(e))((function(t){if(t.value instanceof Df)return D(n.Monad0().Applicative0())(undefined);if(t.value instanceof Qf)return X(N)(n.Monad0().Bind1())(Vf(n)(e)((function(n){return{value:Df.value,default:n.default,dependants:ru.value}})))((function(){return xf(n)(t)}));throw new Error("Failed pattern match at Cache (line 95, column 3 - line 99, column 33): "+[t.value.constructor.name])}))}},Yf=function(n){return function(e){return function(t){return j(n.Monad0().Bind1())(Rf(n)(e.entry))((function(r){return X(N)(n.Monad0().Bind1())(e.flush.value0(t))((function(){return X(N)(n.Monad0().Bind1())(xf(n)(r))((function(){return Vf(n)(e.entry)((function(n){return{value:new Qf(t),default:n.default,dependants:n.dependants}}))}))}))}))}}},zf=function(n){return{value:Df.value,default:n,dependants:ru.value}},Gf=function(n){return function(e){return function(t){return j(n.Monad0().Bind1())(Pf(n)(t))((function(r){return X(N)(n.Monad0().Bind1())(function(n){return function(e){return function(t){return Vf(n)(e.entry)((function(n){return{value:n.value,default:n.default,dependants:new uu((e=t,function(n){return n(e)}),n.dependants)};var e}))}}}(n)(t)(e))((function(){return D(n.Monad0().Applicative0())(r)}))}))}}};var qf=function(n){return function(e){return function(n){return function(e){return function(){window.localStorage.setItem(n,e)}}}(n)(Yn(Zn)(e))}},Jf=function(n){return function(){var e=function(n){return function(){return window.localStorage.getItem(n)}}(n)();return"true"===e?new Ln(!0):"false"===e?new Ln(!1):jn.value}};const Xf=function(n){return n()};!function(){function n(n){this.fn=n}var e={},t=function(n,e){this.head=n,this.tail=e};function r(n){return new t(n,e)}function u(n){return function(e){return new t(n,e)}}function o(n){for(var t=[],r=n;r!==e;)t.push(r.head),r=r.tail;return t}}();var Hf=function(n){var e=$n();return function(t){return e(n(t))}},jf=Hf(vr),Lf={map:function(n){return function(e){var t=E(ae)((function(e){return{result:n(e.result),suffix:e.suffix}}));return function(n){return t(e(n))}}}},Wf=function(n){return function(e){return new ue({pos:e.position,error:n})}},Uf={apply:function(n){return function(e){return function(t){return j(le)(n(t))((function(n){return j(le)(e(n.suffix))((function(e){return D(ve)({result:n.result(e.result),suffix:e.suffix})}))}))}}},Functor0:function(){return Lf}},Nf={bind:function(n){return function(e){return function(t){return j(le)(n(t))((function(n){return e(n.result)(n.suffix)}))}}},Apply0:function(){return Uf}},_f=function(n){return{append:Q(Uf)(G(n))}},Kf={pure:function(n){return function(e){return new oe({result:n,suffix:e})}},Apply0:function(){return Uf}},$f={Applicative0:function(){return Kf},Bind1:function(){return Nf}},nA={tailRecM:function(n){return function(e){var t=function(n){if(n.result instanceof Je)return new Je({state:n.result.value0,str:n.suffix});if(n.result instanceof Xe)return new Xe({result:n.result.value0,suffix:n.suffix});throw new Error("Failed pattern match at StringParser.Parser (line 87, column 5 - line 87, column 68): "+[n.constructor.name])};return function(r){return He(Le)((function(e){return E(ae)(t)(n(e.state)(e.str))}))({state:e,str:r})}}},Monad0:function(){return $f}},eA={alt:function(n){return function(e){return function(t){var r=n(t);return r instanceof ue?t.position===r.value0.pos?e(t):new ue({error:r.value0.error,pos:r.value0.pos}):r}}},Functor0:function(){return Lf}},tA={empty:Wf("No alternative"),Alt0:function(){return eA}},rA={Applicative0:function(){return Kf},Plus1:function(){return tA}},uA=function(n){return function(e){var t=n(e);return t instanceof ue?new ue({pos:e.position,error:t.value0.error}):t}},oA=function(n){return function(e){return J(eA)(e)(D(Kf)(n))}},iA=function(n){return oA(jn.value)(E(Lf)(Ln.create)(n))},aA=function(n){return uA((e=n,function(n){var t=e(n);return t instanceof oe?new oe({result:t.value0.result,suffix:n}):t}));var e},cA=function(n){return function(e){var t=n(e);return t instanceof oe?e.position0)&&(h=1,E=Z._3(x)));break;case m:k=new g(s,new g(p,E,b),k,S),h=1,E=S&&S!==R&&0===T?Z._1.killed(n.fromLeft(S))(Z._2):b?Z._1.failed(n.fromLeft(b))(Z._2):Z._1.completed(n.fromRight(E))(Z._2),b=null,T++;break;case w:T++,k=new g(s,new g(p,E,b),k,S),h=1,E=Z._1;break;case p:T--,h=5,E=Z._1,b=Z._2}break;case 6:for(var Y in O)O.hasOwnProperty(Y)&&(V=V&&O[Y].rethrow,M(O[Y].handler(E)));return O=null,void(S&&b?setTimeout((function(){throw n.fromLeft(b)}),0):n.isLeft(E)&&V&&setTimeout((function(){if(V)throw n.fromLeft(E)}),0));case 0:h=1;break;case 4:return}}function x(n){return function(){if(6===h)return V=V&&n.rethrow,n.handler(E)(),function(){};var e=R++;return(O=O||{})[e]=n,function(){null!==O&&delete O[e]}}}return{kill:function(e,t){return function(){if(6===h)return t(n.right(void 0))(),function(){};var r=x({rethrow:!1,handler:function(){return t(n.right(void 0))}})();switch(h){case 0:S=n.left(e),h=6,E=S,P(v);break;case 4:null===S&&(S=n.left(e)),0===T&&(4===h&&(k=new g(s,new g(w,E(e)),k,S)),h=5,E=null,b=null,P(++v));break;default:null===S&&(S=n.left(e)),0===T&&(h=5,E=null,b=null)}return r}},join:function(n){return function(){var e=x({rethrow:!1,handler:n})();return 0===h&&P(v),e}},onComplete:x,isSuspended:function(){return 0===h},run:function(){0===h&&(y.isDraining()?P(v):y.enqueue((function(){P(v)})))}}}function S(e,t,r,u){var i=0,a={},c=0,f={},d=new Error("[ParAff] Early exit"),m=null,w=n;function p(t,r,u){var o,i,c=r,f=null,d=null,m=0,w={};n:for(;;)switch(o=null,c.tag){case h:if(c._3===n&&(o=a[c._1],w[m++]=o.kill(t,(function(n){return function(){0===--m&&u(n)()}}))),null===f)break n;c=f._2,null===d?f=null:(f=d._1,d=d._2);break;case A:c=c._2;break;case l:case v:f&&(d=new g(s,f,d)),f=c,c=c._1}if(0===m)u(e.right(void 0))();else for(i=0,o=m;i0})).map((function(n){var e=n.indexOf(":");return c(n.substring(0,e))(n.substring(e+2))})),body:t.response})},t.responseType=f.responseType,t.withCredentials=f.withCredentials,t.timeout=f.timeout,t.send(f.content),function(n,e,r){try{t.abort()}catch(n){return e(n)}return r()}}))))((function(n){if(n instanceof oe){var e=Nr(t(n.value0.body));if(e instanceof ue)return new ue(new Ys(function(n){return n.value0}(e.value0),n.value0));if(e instanceof oe)return new oe({body:e.value0,headers:n.value0.headers,status:n.value0.status,statusText:n.value0.statusText});throw new Error("Failed pattern match at Affjax (line 209, column 9 - line 211, column 52): "+[e.constructor.name])}if(n instanceof ue)return new ue("AffjaxTimeoutErrorMessageIdent"===(r=Dr(n.value0))?zs.value:"AffjaxRequestFailedMessageIdent"===r?Gs.value:new qs(n.value0));var r;throw new Error("Failed pattern match at Affjax (line 207, column 144 - line 219, column 28): "+[n.constructor.name])}));var o,i,a,c,f,A};if(e.content instanceof jn)return o(Jv(jn.value));if(e.content instanceof Ln){var i=function(n){if(n instanceof Vl)return new oe(n.value0(ju));if(n instanceof Pl)return new oe(ju(n.value0));if(n instanceof xl)return new oe(ju(n.value0));if(n instanceof Zl)return new oe(ju(n.value0));if(n instanceof Yl)return new oe(ju(n.value0));if(n instanceof zl)return ie("Body contains values that cannot be encoded as application/x-www-form-urlencoded")(E(_n)(ju)(Bv(n.value0)));if(n instanceof Gl)return new oe(ju(ov(n.value0)));throw new Error("Failed pattern match at Affjax (line 235, column 20 - line 250, column 69): "+[n.constructor.name])}(e.content.value0);if(i instanceof oe)return o(Jv(new Ln(i.value0)));if(i instanceof ue)return D(Ms)(new ue(new Zs(i.value0)));throw new Error("Failed pattern match at Affjax (line 199, column 7 - line 203, column 48): "+[i.constructor.name])}throw new Error("Failed pattern match at Affjax (line 195, column 3 - line 203, column 48): "+[e.content.constructor.name])}},Xs=function(){return{method:new ue(yv.value),url:"/",headers:[],content:jn.value,username:jn.value,password:jn.value,withCredentials:!1,responseFormat:tv,timeout:jn.value}}(),Hs=function(n){return function(e){return function(t){return Js(n)({method:Xs.method,url:t,headers:Xs.headers,content:Xs.content,username:Xs.username,password:Xs.password,withCredentials:Xs.withCredentials,responseFormat:e,timeout:Xs.timeout})}}};const js={newXHR:function(){return new XMLHttpRequest},fixupUrl:function(n){return n||"/"}};var Ls=Hs(js);var Ws={liftAff:d(m),MonadEffect0:function(){return Cs}},Us=function(n){return n.liftAff},Ns=function(n){return{liftAff:(e=Yr(hi)(n.MonadEffect0().Monad0()),t=Us(n),function(n){return e(t(n))}),MonadEffect0:function(){return Ci(n.MonadEffect0())}};var e,t},_s=function(n){return function(e){var t="https://api.codetabs.com/v1/proxy?quest="+e;return j(n.MonadEffect0().Monad0().Bind1())(Us(n)(Ls(ev)(t)))((function(e){return yr(n.MonadEffect0())(function(){if(e instanceof ue)return function(){return Sr("CORS Proxy response failed to decode: "+function(n){if(n instanceof Zs)return"There was a problem with the request content: "+n.value0;if(n instanceof Ys)return"There was a problem with the response body: "+Uu(n.value0);if(n instanceof zs)return"There was a problem making the request: timeout";if(n instanceof Gs)return"There was a problem making the request: request failed";if(n instanceof qs)return"There was a problem making the request: "+Dr(n.value0);throw new Error("Failed pattern match at Affjax (line 113, column 14 - line 123, column 66): "+[n.constructor.name])}(e.value0))(),jn.value};if(e instanceof oe)return D(Te)(new Ln(e.value0.body));throw new Error("Failed pattern match at CorsProxy (line 19, column 14 - line 23, column 44): "+[e.constructor.name])}())}))}};const Ks=JSON.parse;JSON.stringify;var $s=function(n){return function(e){return function(t){return function(n,e,t,r){return null==r?n:e(r[t])}(Nu(n)(new Ju("object",_r(t))),D(jr(n)),e,t)}}},nd=function(n){return $s(n)};var ed=v,td=function(){return function(){return function(n){return function(e){return function(t){return function(r){return function(n){return function(e){return function(t){return t[n]=e,t}}}(P(n)(e))(t)(r)}}}}}},rd=m,ud=function(n){return function(e){return n(function(n){var e={};for(var t in n)({}).hasOwnProperty.call(n,t)&&(e[t]=n[t]);return e}(e))}},od={readImpl:no(ge)},id={readImpl:$u(ge)},ad=function(n){return n.readImpl},cd={getFields:function(n){return function(n){return D(jr(ge))(d(rd))}}},fd=function(){var n,e=Qt(Dt)((n=D(hu),function(e){return n(qu.create(Dr(e)))})),t=xs(Ks);return function(n){return e(Xf((r=t(n),Tr((u=D(Te),function(n){return u(ue.create(n))}))(E(Ve)(oe.create)(r)))));var r,u}}(),Ad=function(n){var e=W(Xr(ge))(ad(n))(fd);return function(n){return Nr(e(n))}},ld=function(n){return n.getFields},vd=function(){return function(n){return{readImpl:function(e){return E(qr(me))(p(ud)({}))(ld(n)(g.value)(e))}}}},sd=function(n){return function(e){return function(t){return function(r){return F(e.Apply0())(E(e.Apply0().Functor0())(function(n){return function(e){return function(t){if(e instanceof ue&&t instanceof oe)return new ue(e.value0);if(e instanceof ue&&t instanceof ue)return new ue(G(n)(e.value0)(t.value0));if(e instanceof oe&&t instanceof ue)return new ue(t.value0);if(e instanceof oe&&t instanceof oe)return new oe(e.value0(t.value0));throw new Error("Failed pattern match at SimpleJSON (line 251, column 1 - line 251, column 90): "+[e.constructor.name,t.constructor.name])}}}(n))(t))(r)}}}},dd=function(n){return function(e){return function(t){return function(){return function(){return{getFields:function(r){return function(r){var u=ld(t)(g.value)(r),o=P(n)(g.value),i=Ur(E(au)(Hu.create(o))),a=j(Xr(ge))(i(L(Xr(ge))(ad(e))(nd(ge)(o)(r))))((function(e){return D(jr(ge))(td()()(n)(g.value)(e))}));return sd(Au)(he)(E(qr(me))(s(ed))(a))(u)}}}}}}}},md=function(n){return function(e){return j(Fa(n.MonadEffect0().Monad0()))(D(n.MonadEffect0().Monad0().Applicative0())(bv(e)))((function(e){return j(Fa(n.MonadEffect0().Monad0()))(_s(n)("https://cutt.ly/api/api.php?key=d27fec420c4daade4093757967023d6b70bc7&short="+e))((function(e){var t,r=Ad(vd()(dd({reflectSymbol:function(){return"url"}})(vd()(dd({reflectSymbol:function(){return"shortLink"}})(od)(cd)()()))(cd)()()))(e);if(r instanceof oe)return function(n){return function(e){return j(Fa(n.MonadEffect0().Monad0()))(yr(Qa(n.MonadEffect0()))(uo))((function(t){var r=to(e);return r instanceof Ln?D(Ia(n.MonadEffect0().Monad0()))(t+"?u#"+r.value0):I(Sa(n.MonadEffect0().Monad0()))(yr(Qa(n.MonadEffect0()))(Sr("Could not compress shortlink URI")))(D(n.MonadEffect0().Monad0().Applicative0())(jn.value))}))}}(n)(r.value0.url.shortLink);if(r instanceof ue){var u=Ad(vd()(dd({reflectSymbol:function(){return"url"}})(vd()(dd({reflectSymbol:function(){return"status"}})(id)(cd)()()))(cd)()()))(e);if(u instanceof oe)return X(N)(Fa(n.MonadEffect0().Monad0()))(yr(Qa(n.MonadEffect0()))(Sr("Received error status from cuttly API: "+Yn(xn)(u.value0.url.status))))((function(){return D(n.MonadEffect0().Monad0().Applicative0())(jn.value)}));if(u instanceof ue)return X(N)(Fa(n.MonadEffect0().Monad0()))(yr(Qa(n.MonadEffect0()))(Sr("Can't parse response JSON: "+Yn((t=Wu,{show:function(n){return"(NonEmptyList "+Yn(eu(t)(lu(t)))(n)+")"}}))(u.value0)+". Response: "+e)))((function(){return D(n.MonadEffect0().Monad0().Applicative0())(jn.value)}));throw new Error("Failed pattern match at CuttlyUrlShortener (line 29, column 7 - line 35, column 32): "+[u.constructor.name])}throw new Error("Failed pattern match at CuttlyUrlShortener (line 26, column 3 - line 35, column 32): "+[r.constructor.name])}))}))}};var wd=function(n){return sv(jn.value)(Ln.create)(n)},pd=function(n){return mv(jn.value)(Ln.create)(n)},hd=function(n){return function(e){return dv(jn.value)(lv(n))(e)}},gd=function(n){return wv(jn.value)(Ln.create)(n)};function Ed(){return new DOMParser}function bd(n){return function(e){return function(t){return function(){return t.parseFromString(e,n)}}}}var Md=function(n){return function(e){return function(){return e[n]}}};Md("URL"),Md("documentURI"),Md("origin"),Md("compatMode"),Md("characterSet"),Md("contentType");Md("documentElement");var Bd=function(n){return function(e){return function(n,e,t,r){if("undefined"!=typeof window){var u=window[t];if(null!=u&&r instanceof u)return e(r)}for(var o=r;null!=o;){var i=Object.getPrototypeOf(o),a=i.constructor.name;if(a===t)return e(r);if("Object"===a)return n;o=i}return n}(jn.value,Ln.create,n,e)}},Cd=Ot,yd=function(n){return function(e){return e[n]}};yd("namespaceURI"),yd("prefix"),yd("localName"),yd("tagName");var Fd=function(n){return function(e){return function(){return e[n]}}};Fd("children"),Fd("firstElementChild"),Fd("lastElementChild"),Fd("childElementCount");var Sd=function(n){var e,t=E(Ve)(Xv),r=(e=n,function(n){return function(){return n.querySelector(e)}});return function(n){return t(r(n))}};var Id=Ot;function Qd(n){return function(){return[].slice.call(n)}}var Dd=function(n){return function(e){return function(){return e[n]}}};Dd("baseURI"),Dd("ownerDocument");const kd=Dd("parentNode");Dd("parentElement");Dd("childNodes"),Dd("firstChild"),Dd("lastChild"),Dd("previousSibling");const Td=Dd("nextSibling");Dd("nodeValue");const Rd=Dd("textContent");function Od(n){return function(e){return function(){e.appendChild(n)}}}var Vd=function(){var n=E(Ve)(Xv);return function(e){return n(kd(e))}}(),Pd=function(){var n=E(Ve)(Xv);return function(e){return n(Td(e))}}(),xd=function(n){return function(e){if(n instanceof jn)return new oe(e);if(n instanceof Ln)return new ue(n.value0);throw new Error("Failed pattern match at Web.DOM.DOMParser (line 73, column 30 - line 75, column 21): "+[n.constructor.name])}},Zd=function(n){return function(){var e,t=_(ke)(E(Ve)(Qd)((e="parsererror",function(n){return function(){return n.getElementsByTagName(e)}})(n)))();return function(n){var e=E(_n)(Id)(n);if(e instanceof jn)return D(Te)(jn.value);if(e instanceof Ln)return E(Ve)(Ln.create)(Rd(e.value0));throw new Error("Failed pattern match at Web.DOM.DOMParser (line 65, column 23 - line 67, column 45): "+[e.constructor.name])}(vr(t))()}},Yd=function(n){var e=D(n.Applicative0());return function(n){return e(n)}},zd=function(){return O((function(n){return Nn(n.rating)&&Un(n.marketingType)&&vt(ht(ht(wt)))(wr(ne(cn)))(n.contentType)([new Ln("Pro"),new Ln("Video"),new Ln("Power")])}))}(),Gd=function(n){return function(e){var t=j(te)(j(te)(j(te)(j(te)(hd("store")(e))(hd("page")))(hd("data")))(hd("results")))(gd);return X(N)(Fa(us(ye)(n)))(k(Ia(us(ye)(n)))(Un(t))(zr(ka(os(ye)(n)))(["Could not find search results in json "+ov(e)])))((function(){return j(Fa(us(ye)(n)))(Ra(n)(t))((function(e){return b(es(n.Bind1().Apply0().Functor0()))(function(n){return function(e){return function(t){return j(n.Bind1())(er(rr)(n.Applicative0())((function(n){return e(n)}))(t))((function(e){return j(n.Bind1())(D(n.Applicative0())(Er(d(m))(e)))((function(e){return D(n.Applicative0())(e)}))}))}}}(us(ye)(n))(function(n){return function(e){var t=j(te)(j(te)(hd("tab_url")(e))(wd))((function(n){return j(te)(j(te)(hd("song_name")(e))(wd))((function(t){return j(te)(j(te)(hd("artist_name")(e))(wd))((function(r){var u=j(te)(hd("rating")(e))(pd),o=j(te)(hd("type")(e))(wd),i=j(te)(hd("marketing_type")(e))(wd);return new Ln({url:n,rating:u,name:t,artist:r,contentType:o,marketingType:i})}))}))}));return X(N)(Fa(us(ye)(n)))(k(Ia(us(ye)(n)))(Un(t))(zr(ka(os(ye)(n)))(["Could not find search results in json "+ov(e)])))((function(){return Ra(n)(t)}))}}(n))(e))(Ln.create)}))}))}},qd=function(n){return function(e){return j(Fa(n.MonadEffect0().Monad0()))(yr(Qa(n.MonadEffect0()))(Ed))((function(t){return j(Fa(n.MonadEffect0().Monad0()))(yr(n.MonadEffect0())(E(Ve)(fe)((r=e,function(n){return function(){var e=bd("text/html")(r)(n)(),t=Zd(e)();return xd(t)(e)}})(t))))((function(e){return j(Fa(n.MonadEffect0().Monad0()))(yr(n.MonadEffect0())(Sd(".js-store")(Cd(e))))((function(e){return j(Fa(n.MonadEffect0().Monad0()))(yr(n.MonadEffect0())((t="data-content",u=E(Ve)(Xv),r=t,o=function(n){return function(){return n.getAttribute(r)}},function(n){return u(o(n))})(e)))((function(e){return D(n.MonadEffect0().Monad0().Applicative0())(fe(pv(e)))}));var t,r,u,o}))}));var r}))}},Jd=function(n){return function(e){return j(Fa(n.MonadEffect0().Monad0()))(_s(n)(e))((function(e){return qd(n)(e)}))}},Xd=function(n){return function(e){return function(e){return j(Fa(n.MonadEffect0().Monad0()))(Jd(n)(e))((function(e){return j(Fa(n.MonadEffect0().Monad0()))((t=ya(n.MonadEffect0().Monad0()),function(n){var e=j(te)(j(te)(j(te)(j(te)(j(te)(j(te)(hd("store")(n))(hd("page")))(hd("data")))(hd("tab_view")))(hd("wiki_tab")))(hd("content")))(wd);return X(N)(Fa(us(ye)(t)))(k(Ia(us(ye)(t)))(Un(e))(zr(ka(os(ye)(t)))(["Could not retrieve tablature data from json "+ov(n)])))((function(){return j(Fa(us(ye)(t)))(D(rs(ye)(t.Applicative0()))(e))((function(n){return D(Ia(us(ye)(t)))(da(Ea("\\[\\/?(ch|tab)\\]")(pa))("")(n).replace(/"/g,'"').replace(/'/g,"'").replace(/</g,"<").replace(/>/g,">").replace(/&/g,"&"))}))}))})(e))((function(e){return j(Fa(n.MonadEffect0().Monad0()))(yr(Qa(n.MonadEffect0()))(er(rr)(Te)(Sr)(e.value1)))((function(){return Yd(n.MonadEffect0().Monad0())(e.value0)}))}));var t}))}}},Hd=function(){function n(){}return n.value=new n,n}(),jd=function(){function n(){}return n.value=new n,n}(),Ld=function(){function n(){}return n.value=new n,n}(),Wd=function(){function n(){}return n.value=new n,n}(),Ud=function(){function n(){}return n.value=new n,n}(),Nd=function(){function n(){}return n.value=new n,n}(),_d=function(){function n(){}return n.value=new n,n}(),Kd=function(){function n(){}return n.value=new n,n}(),$d=function(){function n(){}return n.value=new n,n}(),nm=function(){function n(){}return n.value=new n,n}(),em=function(){function n(){}return n.value=new n,n}(),tm=function(){function n(){}return n.value=new n,n}(),rm=function(){function n(){}return n.value=new n,n}(),um=function(){function n(){}return n.value=new n,n}(),om=function(){function n(){}return n.value=new n,n}(),im=function(){function n(){}return n.value=new n,n}(),am=function(){function n(){}return n.value=new n,n}(),cm=function(){function n(){}return n.value=new n,n}(),fm=function(){function n(){}return n.value=new n,n}(),Am=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),lm=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),vm=function(){function n(){}return n.value=new n,n}(),sm=function(n){return function(e){return function(t){return j(n.MonadEffect0().Monad0().Bind1())(Pf(t)(fl(n)(t)))((function(r){return Yf(t)(fl(n)(t))({transposition:r.transposition,noteOrientation:e})}))}}},dm=function(n){return function(e){return function(t){return X(N)(n.MonadEffect0().Monad0().Bind1())(ol(e)((function(n){return function(n){return Zi(xi()(Oi(Ii({reflectSymbol:function(){return"searchPhrase"}})()()(n))()(n.Profunctor0())))(Pi)}(n)}))(new Ln(t)))((function(){return function(n){return function(e){return function(t){return E(n.MonadEffect0().Monad0().Bind1().Apply0().Functor0())(h(void 0))((r="https://www.ultimate-guitar.com/search.php?search_type=title&value="+t,j(Fa(n.MonadEffect0().Monad0()))(Jd(n)(r))((function(t){return j(Fa(n.MonadEffect0().Monad0()))(Gd(ya(n.MonadEffect0().Monad0()))(t))((function(t){return j(Fa(n.MonadEffect0().Monad0()))(yr(Qa(n.MonadEffect0()))(er(rr)(Te)(Sr)(t.value1)))((function(){return j(Fa(n.MonadEffect0().Monad0()))(Yd(n.MonadEffect0().Monad0())(t.value0))((function(n){return ol(Da(e))((function(n){return pl(n)}))(new Ln(zd(n)))}))}))}))}))));var r}}}(n)(e)(t)}))}}},mm=function(n){return function(e){return function(t){return E(n.MonadEffect0().Monad0().Bind1().Apply0().Functor0())(h(undefined))(j(Fa(n.MonadEffect0().Monad0()))(Xd(n)(e)(t))((function(t){return X(N)(Fa(n.MonadEffect0().Monad0()))(Yf(Da(e))(vl(function(n){return{liftAff:(e=Yr(Ba)(n.MonadEffect0().Monad0()),t=Us(n),function(n){return e(t(n))}),MonadEffect0:function(){return Qa(n.MonadEffect0())}};var e,t}(n))(Da(e)))(t))((function(){return X(N)(Fa(n.MonadEffect0().Monad0()))(yr(Qa(n.MonadEffect0()))(vf))((function(){return X(N)(Fa(n.MonadEffect0().Monad0()))(Zf(Da(e))(cl))((function(){return ol(Da(e))((function(n){return Bl(n)}))(NA.value)}))}))}))})))}}},wm=function(n){return function(e){return j(n.MonadEffect0().Monad0().Bind1())(yr(n.MonadEffect0())(ro))((function(e){return j(n.MonadEffect0().Monad0().Bind1())(Us(n)(md(Ws)(e)))((function(e){return yr(n.MonadEffect0())(function(){if(e instanceof Ln)return n=e.value0,function(){window.prompt("Copy the following link:",n)};var n;if(e instanceof jn)return D(Te)(undefined);throw new Error("Failed pattern match at AppActions (line 111, column 16 - line 113, column 25): "+[e.constructor.name])}())}))}))}};function pm(n){return function(e){return function(t){return n.apply(t,[e])}}}const hm=pm(Number.prototype.toPrecision),gm=pm(Number.prototype.toFixed),Em=pm(Number.prototype.toExponential);var bm=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),Mm=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),Bm=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),Cm=function(n){if(n instanceof bm)return hm(n.value0);if(n instanceof Mm)return gm(n.value0);if(n instanceof Bm)return Em(n.value0);throw new Error("Failed pattern match at Data.Number.Format (line 59, column 1 - line 59, column 43): "+[n.constructor.name])},ym=function(){var n=kn(Cn)(1)(21);return function(e){return bm.create(n(e))}}();var Fm=function(n){return function(e){return function(){return setInterval(e,n)}}},Sm=function(n){return function(){clearInterval(n)}},Im=function(){function n(n,e){this.value0=n,this.value1=e}return n.create=function(e){return function(t){return new n(e,t)}},n}(),Qm=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),Dm=function(){function n(n,e,t,r){this.value0=n,this.value1=e,this.value2=t,this.value3=r}return n.create=function(e){return function(t){return function(r){return function(u){return new n(e,t,r,u)}}}},n}(),km=Ot,Tm=function(n,e){return n.value2(n.value1,e)},Rm=Ot,Om=function(n){return n.value3(n.value1)},Vm=km((function(n){return n.value0})),Pm=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),xm=function(){function n(n,e,t,r){this.value0=n,this.value1=e,this.value2=t,this.value3=r}return n.create=function(e){return function(t){return function(r){return function(u){return new n(e,t,r,u)}}}},n}(),Zm=function(){function n(n,e,t,r){this.value0=n,this.value1=e,this.value2=t,this.value3=r}return n.create=function(e){return function(t){return function(r){return function(u){return new n(e,t,r,u)}}}},n}(),Ym=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),zm=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),Gm=function(){function n(n,e,t){this.value0=n,this.value1=e,this.value2=t}return n.create=function(e){return function(t){return function(r){return new n(e,t,r)}}},n}(),qm=function(n){return function(e){return n(e)}},Jm=Ot,Xm={bimap:function(n){return function(e){return qm((function(t){return Jm(new Gm((function(e){return n(t.value0(e))}),(function(n){return e(t.value1(n))}),t.value2))}))}}},Hm=qm((function(n){var e=function(t){if(t instanceof Pm)return new Pm(t.value0);if(t instanceof xm)return new xm(t.value0,t.value1,n.value0(t.value2),E(C)(e)(t.value3));if(t instanceof Zm)return new Zm(t.value0,t.value1,n.value0(t.value2),E(C)(E(Ft)(e))(t.value3));if(t instanceof Ym)return new Ym(n.value1(t.value0));if(t instanceof zm)return new zm(It(Xm)(n.value0)(n.value1)(t.value0));throw new Error("Failed pattern match at Halogen.VDom.Types (line 86, column 7 - line 86, column 27): "+[t.constructor.name])};return e(n.value2)}));function jm(n,e){return e[n]}function Lm(n,e,t){t[n]=e}function Wm(n,e,t){for(var r={},u=0;u\n// This work is free. You can redistribute it and/or modify it\n// under the terms of the WTFPL, Version 2\n// For more information see LICENSE.txt or http://www.wtfpl.net/\n//\n// For more information, the home page:\n// http://pieroxy.net/blog/pages/lz-string/testing.html\n//\n// LZ-based compression algorithm, version 1.4.4\nvar LZString = (function() {\n\n// private property\nvar f = String.fromCharCode;\nvar keyStrBase64 = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\nvar keyStrUriSafe = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-$\";\nvar baseReverseDic = {};\n\nfunction getBaseValue(alphabet, character) {\n if (!baseReverseDic[alphabet]) {\n baseReverseDic[alphabet] = {};\n for (var i=0 ; i>> 8;\n buf[i*2+1] = current_value % 256;\n }\n return buf;\n },\n\n //decompress from uint8array (UCS-2 big endian format)\n decompressFromUint8Array:function (compressed) {\n if (compressed===null || compressed===undefined){\n return LZString.decompress(compressed);\n } else {\n var buf=new Array(compressed.length/2); // 2 bytes per character\n for (var i=0, TotalLen=buf.length; i> 1;\n }\n } else {\n value = 1;\n for (i=0 ; i> 1;\n }\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n delete context_dictionaryToCreate[context_w];\n } else {\n value = context_dictionary[context_w];\n for (i=0 ; i> 1;\n }\n\n\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n // Add wc to the dictionary.\n context_dictionary[context_wc] = context_dictSize++;\n context_w = String(context_c);\n }\n }\n\n // Output the code for w.\n if (context_w !== \"\") {\n if (Object.prototype.hasOwnProperty.call(context_dictionaryToCreate,context_w)) {\n if (context_w.charCodeAt(0)<256) {\n for (i=0 ; i> 1;\n }\n } else {\n value = 1;\n for (i=0 ; i> 1;\n }\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n delete context_dictionaryToCreate[context_w];\n } else {\n value = context_dictionary[context_w];\n for (i=0 ; i> 1;\n }\n\n\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n }\n\n // Mark the end of the stream\n value = 2;\n for (i=0 ; i> 1;\n }\n\n // Flush the last char\n while (true) {\n context_data_val = (context_data_val << 1);\n if (context_data_position == bitsPerChar-1) {\n context_data.push(getCharFromInt(context_data_val));\n break;\n }\n else context_data_position++;\n }\n return context_data.join('');\n },\n\n decompress: function (compressed) {\n if (compressed == null) return \"\";\n if (compressed == \"\") return null;\n return LZString._decompress(compressed.length, 32768, function(index) { return compressed.charCodeAt(index); });\n },\n\n _decompress: function (length, resetValue, getNextValue) {\n var dictionary = [],\n next,\n enlargeIn = 4,\n dictSize = 4,\n numBits = 3,\n entry = \"\",\n result = [],\n i,\n w,\n bits, resb, maxpower, power,\n c,\n data = {val:getNextValue(0), position:resetValue, index:1};\n\n for (i = 0; i < 3; i += 1) {\n dictionary[i] = i;\n }\n\n bits = 0;\n maxpower = Math.pow(2,2);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n\n switch (next = bits) {\n case 0:\n bits = 0;\n maxpower = Math.pow(2,8);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n c = f(bits);\n break;\n case 1:\n bits = 0;\n maxpower = Math.pow(2,16);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n c = f(bits);\n break;\n case 2:\n return \"\";\n }\n dictionary[3] = c;\n w = c;\n result.push(c);\n while (true) {\n if (data.index > length) {\n return \"\";\n }\n\n bits = 0;\n maxpower = Math.pow(2,numBits);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n\n switch (c = bits) {\n case 0:\n bits = 0;\n maxpower = Math.pow(2,8);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n\n dictionary[dictSize++] = f(bits);\n c = dictSize-1;\n enlargeIn--;\n break;\n case 1:\n bits = 0;\n maxpower = Math.pow(2,16);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n dictionary[dictSize++] = f(bits);\n c = dictSize-1;\n enlargeIn--;\n break;\n case 2:\n return result.join('');\n }\n\n if (enlargeIn == 0) {\n enlargeIn = Math.pow(2, numBits);\n numBits++;\n }\n\n if (dictionary[c]) {\n entry = dictionary[c];\n } else {\n if (c === dictSize) {\n entry = w + w.charAt(0);\n } else {\n return null;\n }\n }\n result.push(entry);\n\n // Add w+entry[0] to the dictionary.\n dictionary[dictSize++] = w + entry.charAt(0);\n enlargeIn--;\n\n w = entry;\n\n if (enlargeIn == 0) {\n enlargeIn = Math.pow(2, numBits);\n numBits++;\n }\n\n }\n }\n};\n return LZString;\n})();\n\nif (typeof define === 'function' && define.amd) {\n define(function () { return LZString; });\n} else if( typeof module !== 'undefined' && module != null ) {\n module.exports = LZString\n}\n","module.exports = {\n webm:\n \"data:video/webm;base64,GkXfowEAAAAAAAAfQoaBAUL3gQFC8oEEQvOBCEKChHdlYm1Ch4EEQoWBAhhTgGcBAAAAAAAVkhFNm3RALE27i1OrhBVJqWZTrIHfTbuMU6uEFlSua1OsggEwTbuMU6uEHFO7a1OsghV17AEAAAAAAACkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVSalmAQAAAAAAAEUq17GDD0JATYCNTGF2ZjU1LjMzLjEwMFdBjUxhdmY1NS4zMy4xMDBzpJBlrrXf3DCDVB8KcgbMpcr+RImIQJBgAAAAAAAWVK5rAQAAAAAAD++uAQAAAAAAADLXgQFzxYEBnIEAIrWcg3VuZIaFVl9WUDiDgQEj44OEAmJaAOABAAAAAAAABrCBsLqBkK4BAAAAAAAPq9eBAnPFgQKcgQAitZyDdW5khohBX1ZPUkJJU4OBAuEBAAAAAAAAEZ+BArWIQOdwAAAAAABiZIEgY6JPbwIeVgF2b3JiaXMAAAAAAoC7AAAAAAAAgLUBAAAAAAC4AQN2b3JiaXMtAAAAWGlwaC5PcmcgbGliVm9yYmlzIEkgMjAxMDExMDEgKFNjaGF1ZmVudWdnZXQpAQAAABUAAABlbmNvZGVyPUxhdmM1NS41Mi4xMDIBBXZvcmJpcyVCQ1YBAEAAACRzGCpGpXMWhBAaQlAZ4xxCzmvsGUJMEYIcMkxbyyVzkCGkoEKIWyiB0JBVAABAAACHQXgUhIpBCCGEJT1YkoMnPQghhIg5eBSEaUEIIYQQQgghhBBCCCGERTlokoMnQQgdhOMwOAyD5Tj4HIRFOVgQgydB6CCED0K4moOsOQghhCQ1SFCDBjnoHITCLCiKgsQwuBaEBDUojILkMMjUgwtCiJqDSTX4GoRnQXgWhGlBCCGEJEFIkIMGQcgYhEZBWJKDBjm4FITLQagahCo5CB+EIDRkFQCQAACgoiiKoigKEBqyCgDIAAAQQFEUx3EcyZEcybEcCwgNWQUAAAEACAAAoEiKpEiO5EiSJFmSJVmSJVmS5omqLMuyLMuyLMsyEBqyCgBIAABQUQxFcRQHCA1ZBQBkAAAIoDiKpViKpWiK54iOCISGrAIAgAAABAAAEDRDUzxHlETPVFXXtm3btm3btm3btm3btm1blmUZCA1ZBQBAAAAQ0mlmqQaIMAMZBkJDVgEACAAAgBGKMMSA0JBVAABAAACAGEoOogmtOd+c46BZDppKsTkdnEi1eZKbirk555xzzsnmnDHOOeecopxZDJoJrTnnnMSgWQqaCa0555wnsXnQmiqtOeeccc7pYJwRxjnnnCateZCajbU555wFrWmOmkuxOeecSLl5UptLtTnnnHPOOeecc84555zqxekcnBPOOeecqL25lpvQxTnnnE/G6d6cEM4555xzzjnnnHPOOeecIDRkFQAABABAEIaNYdwpCNLnaCBGEWIaMulB9+gwCRqDnELq0ehopJQ6CCWVcVJKJwgNWQUAAAIAQAghhRRSSCGFFFJIIYUUYoghhhhyyimnoIJKKqmooowyyyyzzDLLLLPMOuyssw47DDHEEEMrrcRSU2011lhr7jnnmoO0VlprrbVSSimllFIKQkNWAQAgAAAEQgYZZJBRSCGFFGKIKaeccgoqqIDQkFUAACAAgAAAAABP8hzRER3RER3RER3RER3R8RzPESVREiVREi3TMjXTU0VVdWXXlnVZt31b2IVd933d933d+HVhWJZlWZZlWZZlWZZlWZZlWZYgNGQVAAACAAAghBBCSCGFFFJIKcYYc8w56CSUEAgNWQUAAAIACAAAAHAUR3EcyZEcSbIkS9IkzdIsT/M0TxM9URRF0zRV0RVdUTdtUTZl0zVdUzZdVVZtV5ZtW7Z125dl2/d93/d93/d93/d93/d9XQdCQ1YBABIAADqSIymSIimS4ziOJElAaMgqAEAGAEAAAIriKI7jOJIkSZIlaZJneZaomZrpmZ4qqkBoyCoAABAAQAAAAAAAAIqmeIqpeIqoeI7oiJJomZaoqZoryqbsuq7ruq7ruq7ruq7ruq7ruq7ruq7ruq7ruq7ruq7ruq7ruq4LhIasAgAkAAB0JEdyJEdSJEVSJEdygNCQVQCADACAAAAcwzEkRXIsy9I0T/M0TxM90RM901NFV3SB0JBVAAAgAIAAAAAAAAAMybAUy9EcTRIl1VItVVMt1VJF1VNVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVN0zRNEwgNWQkAkAEAkBBTLS3GmgmLJGLSaqugYwxS7KWxSCpntbfKMYUYtV4ah5RREHupJGOKQcwtpNApJq3WVEKFFKSYYyoVUg5SIDRkhQAQmgHgcBxAsixAsiwAAAAAAAAAkDQN0DwPsDQPAAAAAAAAACRNAyxPAzTPAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABA0jRA8zxA8zwAAAAAAAAA0DwP8DwR8EQRAAAAAAAAACzPAzTRAzxRBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABA0jRA8zxA8zwAAAAAAAAAsDwP8EQR0DwRAAAAAAAAACzPAzxRBDzRAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAEOAAABBgIRQasiIAiBMAcEgSJAmSBM0DSJYFTYOmwTQBkmVB06BpME0AAAAAAAAAAAAAJE2DpkHTIIoASdOgadA0iCIAAAAAAAAAAAAAkqZB06BpEEWApGnQNGgaRBEAAAAAAAAAAAAAzzQhihBFmCbAM02IIkQRpgkAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAGHAAAAgwoQwUGrIiAIgTAHA4imUBAIDjOJYFAACO41gWAABYliWKAABgWZooAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAYcAAACDChDBQashIAiAIAcCiKZQHHsSzgOJYFJMmyAJYF0DyApgFEEQAIAAAocAAACLBBU2JxgEJDVgIAUQAABsWxLE0TRZKkaZoniiRJ0zxPFGma53meacLzPM80IYqiaJoQRVE0TZimaaoqME1VFQAAUOAAABBgg6bE4gCFhqwEAEICAByKYlma5nmeJ4qmqZokSdM8TxRF0TRNU1VJkqZ5niiKommapqqyLE3zPFEURdNUVVWFpnmeKIqiaaqq6sLzPE8URdE0VdV14XmeJ4qiaJqq6roQRVE0TdNUTVV1XSCKpmmaqqqqrgtETxRNU1Vd13WB54miaaqqq7ouEE3TVFVVdV1ZBpimaaqq68oyQFVV1XVdV5YBqqqqruu6sgxQVdd1XVmWZQCu67qyLMsCAAAOHAAAAoygk4wqi7DRhAsPQKEhKwKAKAAAwBimFFPKMCYhpBAaxiSEFEImJaXSUqogpFJSKRWEVEoqJaOUUmopVRBSKamUCkIqJZVSAADYgQMA2IGFUGjISgAgDwCAMEYpxhhzTiKkFGPOOScRUoox55yTSjHmnHPOSSkZc8w556SUzjnnnHNSSuacc845KaVzzjnnnJRSSuecc05KKSWEzkEnpZTSOeecEwAAVOAAABBgo8jmBCNBhYasBABSAQAMjmNZmuZ5omialiRpmud5niiapiZJmuZ5nieKqsnzPE8URdE0VZXneZ4oiqJpqirXFUXTNE1VVV2yLIqmaZqq6rowTdNUVdd1XZimaaqq67oubFtVVdV1ZRm2raqq6rqyDFzXdWXZloEsu67s2rIAAPAEBwCgAhtWRzgpGgssNGQlAJABAEAYg5BCCCFlEEIKIYSUUggJAAAYcAAACDChDBQashIASAUAAIyx1lprrbXWQGettdZaa62AzFprrbXWWmuttdZaa6211lJrrbXWWmuttdZaa6211lprrbXWWmuttdZaa6211lprrbXWWmuttdZaa6211lprrbXWWmstpZRSSimllFJKKaWUUkoppZRSSgUA+lU4APg/2LA6wknRWGChISsBgHAAAMAYpRhzDEIppVQIMeacdFRai7FCiDHnJKTUWmzFc85BKCGV1mIsnnMOQikpxVZjUSmEUlJKLbZYi0qho5JSSq3VWIwxqaTWWoutxmKMSSm01FqLMRYjbE2ptdhqq7EYY2sqLbQYY4zFCF9kbC2m2moNxggjWywt1VprMMYY3VuLpbaaizE++NpSLDHWXAAAd4MDAESCjTOsJJ0VjgYXGrISAAgJACAQUooxxhhzzjnnpFKMOeaccw5CCKFUijHGnHMOQgghlIwx5pxzEEIIIYRSSsaccxBCCCGEkFLqnHMQQgghhBBKKZ1zDkIIIYQQQimlgxBCCCGEEEoopaQUQgghhBBCCKmklEIIIYRSQighlZRSCCGEEEIpJaSUUgohhFJCCKGElFJKKYUQQgillJJSSimlEkoJJYQSUikppRRKCCGUUkpKKaVUSgmhhBJKKSWllFJKIYQQSikFAAAcOAAABBhBJxlVFmGjCRcegEJDVgIAZAAAkKKUUiktRYIipRikGEtGFXNQWoqocgxSzalSziDmJJaIMYSUk1Qy5hRCDELqHHVMKQYtlRhCxhik2HJLoXMOAAAAQQCAgJAAAAMEBTMAwOAA4XMQdAIERxsAgCBEZohEw0JweFAJEBFTAUBigkIuAFRYXKRdXECXAS7o4q4DIQQhCEEsDqCABByccMMTb3jCDU7QKSp1IAAAAAAADADwAACQXAAREdHMYWRobHB0eHyAhIiMkAgAAAAAABcAfAAAJCVAREQ0cxgZGhscHR4fICEiIyQBAIAAAgAAAAAggAAEBAQAAAAAAAIAAAAEBB9DtnUBAAAAAAAEPueBAKOFggAAgACjzoEAA4BwBwCdASqwAJAAAEcIhYWIhYSIAgIABhwJ7kPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99YAD+/6tQgKOFggADgAqjhYIAD4AOo4WCACSADqOZgQArADECAAEQEAAYABhYL/QACIBDmAYAAKOFggA6gA6jhYIAT4AOo5mBAFMAMQIAARAQABgAGFgv9AAIgEOYBgAAo4WCAGSADqOFggB6gA6jmYEAewAxAgABEBAAGAAYWC/0AAiAQ5gGAACjhYIAj4AOo5mBAKMAMQIAARAQABgAGFgv9AAIgEOYBgAAo4WCAKSADqOFggC6gA6jmYEAywAxAgABEBAAGAAYWC/0AAiAQ5gGAACjhYIAz4AOo4WCAOSADqOZgQDzADECAAEQEAAYABhYL/QACIBDmAYAAKOFggD6gA6jhYIBD4AOo5iBARsAEQIAARAQFGAAYWC/0AAiAQ5gGACjhYIBJIAOo4WCATqADqOZgQFDADECAAEQEAAYABhYL/QACIBDmAYAAKOFggFPgA6jhYIBZIAOo5mBAWsAMQIAARAQABgAGFgv9AAIgEOYBgAAo4WCAXqADqOFggGPgA6jmYEBkwAxAgABEBAAGAAYWC/0AAiAQ5gGAACjhYIBpIAOo4WCAbqADqOZgQG7ADECAAEQEAAYABhYL/QACIBDmAYAAKOFggHPgA6jmYEB4wAxAgABEBAAGAAYWC/0AAiAQ5gGAACjhYIB5IAOo4WCAfqADqOZgQILADECAAEQEAAYABhYL/QACIBDmAYAAKOFggIPgA6jhYICJIAOo5mBAjMAMQIAARAQABgAGFgv9AAIgEOYBgAAo4WCAjqADqOFggJPgA6jmYECWwAxAgABEBAAGAAYWC/0AAiAQ5gGAACjhYICZIAOo4WCAnqADqOZgQKDADECAAEQEAAYABhYL/QACIBDmAYAAKOFggKPgA6jhYICpIAOo5mBAqsAMQIAARAQABgAGFgv9AAIgEOYBgAAo4WCArqADqOFggLPgA6jmIEC0wARAgABEBAUYABhYL/QACIBDmAYAKOFggLkgA6jhYIC+oAOo5mBAvsAMQIAARAQABgAGFgv9AAIgEOYBgAAo4WCAw+ADqOZgQMjADECAAEQEAAYABhYL/QACIBDmAYAAKOFggMkgA6jhYIDOoAOo5mBA0sAMQIAARAQABgAGFgv9AAIgEOYBgAAo4WCA0+ADqOFggNkgA6jmYEDcwAxAgABEBAAGAAYWC/0AAiAQ5gGAACjhYIDeoAOo4WCA4+ADqOZgQObADECAAEQEAAYABhYL/QACIBDmAYAAKOFggOkgA6jhYIDuoAOo5mBA8MAMQIAARAQABgAGFgv9AAIgEOYBgAAo4WCA8+ADqOFggPkgA6jhYID+oAOo4WCBA+ADhxTu2sBAAAAAAAAEbuPs4EDt4r3gQHxghEr8IEK\",\n mp4:\n \"data:video/mp4;base64,AAAAHGZ0eXBNNFYgAAACAGlzb21pc28yYXZjMQAAAAhmcmVlAAAGF21kYXTeBAAAbGliZmFhYyAxLjI4AABCAJMgBDIARwAAArEGBf//rdxF6b3m2Ui3lizYINkj7u94MjY0IC0gY29yZSAxNDIgcjIgOTU2YzhkOCAtIEguMjY0L01QRUctNCBBVkMgY29kZWMgLSBDb3B5bGVmdCAyMDAzLTIwMTQgLSBodHRwOi8vd3d3LnZpZGVvbGFuLm9yZy94MjY0Lmh0bWwgLSBvcHRpb25zOiBjYWJhYz0wIHJlZj0zIGRlYmxvY2s9MTowOjAgYW5hbHlzZT0weDE6MHgxMTEgbWU9aGV4IHN1Ym1lPTcgcHN5PTEgcHN5X3JkPTEuMDA6MC4wMCBtaXhlZF9yZWY9MSBtZV9yYW5nZT0xNiBjaHJvbWFfbWU9MSB0cmVsbGlzPTEgOHg4ZGN0PTAgY3FtPTAgZGVhZHpvbmU9MjEsMTEgZmFzdF9wc2tpcD0xIGNocm9tYV9xcF9vZmZzZXQ9LTIgdGhyZWFkcz02IGxvb2thaGVhZF90aHJlYWRzPTEgc2xpY2VkX3RocmVhZHM9MCBucj0wIGRlY2ltYXRlPTEgaW50ZXJsYWNlZD0wIGJsdXJheV9jb21wYXQ9MCBjb25zdHJhaW5lZF9pbnRyYT0wIGJmcmFtZXM9MCB3ZWlnaHRwPTAga2V5aW50PTI1MCBrZXlpbnRfbWluPTI1IHNjZW5lY3V0PTQwIGludHJhX3JlZnJlc2g9MCByY19sb29rYWhlYWQ9NDAgcmM9Y3JmIG1idHJlZT0xIGNyZj0yMy4wIHFjb21wPTAuNjAgcXBtaW49MCBxcG1heD02OSBxcHN0ZXA9NCB2YnZfbWF4cmF0ZT03NjggdmJ2X2J1ZnNpemU9MzAwMCBjcmZfbWF4PTAuMCBuYWxfaHJkPW5vbmUgZmlsbGVyPTAgaXBfcmF0aW89MS40MCBhcT0xOjEuMDAAgAAAAFZliIQL8mKAAKvMnJycnJycnJycnXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXiEASZACGQAjgCEASZACGQAjgAAAAAdBmjgX4GSAIQBJkAIZACOAAAAAB0GaVAX4GSAhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZpgL8DJIQBJkAIZACOAIQBJkAIZACOAAAAABkGagC/AySEASZACGQAjgAAAAAZBmqAvwMkhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZrAL8DJIQBJkAIZACOAAAAABkGa4C/AySEASZACGQAjgCEASZACGQAjgAAAAAZBmwAvwMkhAEmQAhkAI4AAAAAGQZsgL8DJIQBJkAIZACOAIQBJkAIZACOAAAAABkGbQC/AySEASZACGQAjgCEASZACGQAjgAAAAAZBm2AvwMkhAEmQAhkAI4AAAAAGQZuAL8DJIQBJkAIZACOAIQBJkAIZACOAAAAABkGboC/AySEASZACGQAjgAAAAAZBm8AvwMkhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZvgL8DJIQBJkAIZACOAAAAABkGaAC/AySEASZACGQAjgCEASZACGQAjgAAAAAZBmiAvwMkhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZpAL8DJIQBJkAIZACOAAAAABkGaYC/AySEASZACGQAjgCEASZACGQAjgAAAAAZBmoAvwMkhAEmQAhkAI4AAAAAGQZqgL8DJIQBJkAIZACOAIQBJkAIZACOAAAAABkGawC/AySEASZACGQAjgAAAAAZBmuAvwMkhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZsAL8DJIQBJkAIZACOAAAAABkGbIC/AySEASZACGQAjgCEASZACGQAjgAAAAAZBm0AvwMkhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZtgL8DJIQBJkAIZACOAAAAABkGbgCvAySEASZACGQAjgCEASZACGQAjgAAAAAZBm6AnwMkhAEmQAhkAI4AhAEmQAhkAI4AhAEmQAhkAI4AhAEmQAhkAI4AAAAhubW9vdgAAAGxtdmhkAAAAAAAAAAAAAAAAAAAD6AAABDcAAQAAAQAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAzB0cmFrAAAAXHRraGQAAAADAAAAAAAAAAAAAAABAAAAAAAAA+kAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAABAAAAAALAAAACQAAAAAAAkZWR0cwAAABxlbHN0AAAAAAAAAAEAAAPpAAAAAAABAAAAAAKobWRpYQAAACBtZGhkAAAAAAAAAAAAAAAAAAB1MAAAdU5VxAAAAAAALWhkbHIAAAAAAAAAAHZpZGUAAAAAAAAAAAAAAABWaWRlb0hhbmRsZXIAAAACU21pbmYAAAAUdm1oZAAAAAEAAAAAAAAAAAAAACRkaW5mAAAAHGRyZWYAAAAAAAAAAQAAAAx1cmwgAAAAAQAAAhNzdGJsAAAAr3N0c2QAAAAAAAAAAQAAAJ9hdmMxAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAALAAkABIAAAASAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGP//AAAALWF2Y0MBQsAN/+EAFWdCwA3ZAsTsBEAAAPpAADqYA8UKkgEABWjLg8sgAAAAHHV1aWRraEDyXyRPxbo5pRvPAyPzAAAAAAAAABhzdHRzAAAAAAAAAAEAAAAeAAAD6QAAABRzdHNzAAAAAAAAAAEAAAABAAAAHHN0c2MAAAAAAAAAAQAAAAEAAAABAAAAAQAAAIxzdHN6AAAAAAAAAAAAAAAeAAADDwAAAAsAAAALAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAAiHN0Y28AAAAAAAAAHgAAAEYAAANnAAADewAAA5gAAAO0AAADxwAAA+MAAAP2AAAEEgAABCUAAARBAAAEXQAABHAAAASMAAAEnwAABLsAAATOAAAE6gAABQYAAAUZAAAFNQAABUgAAAVkAAAFdwAABZMAAAWmAAAFwgAABd4AAAXxAAAGDQAABGh0cmFrAAAAXHRraGQAAAADAAAAAAAAAAAAAAACAAAAAAAABDcAAAAAAAAAAAAAAAEBAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAkZWR0cwAAABxlbHN0AAAAAAAAAAEAAAQkAAADcAABAAAAAAPgbWRpYQAAACBtZGhkAAAAAAAAAAAAAAAAAAC7gAAAykBVxAAAAAAALWhkbHIAAAAAAAAAAHNvdW4AAAAAAAAAAAAAAABTb3VuZEhhbmRsZXIAAAADi21pbmYAAAAQc21oZAAAAAAAAAAAAAAAJGRpbmYAAAAcZHJlZgAAAAAAAAABAAAADHVybCAAAAABAAADT3N0YmwAAABnc3RzZAAAAAAAAAABAAAAV21wNGEAAAAAAAAAAQAAAAAAAAAAAAIAEAAAAAC7gAAAAAAAM2VzZHMAAAAAA4CAgCIAAgAEgICAFEAVBbjYAAu4AAAADcoFgICAAhGQBoCAgAECAAAAIHN0dHMAAAAAAAAAAgAAADIAAAQAAAAAAQAAAkAAAAFUc3RzYwAAAAAAAAAbAAAAAQAAAAEAAAABAAAAAgAAAAIAAAABAAAAAwAAAAEAAAABAAAABAAAAAIAAAABAAAABgAAAAEAAAABAAAABwAAAAIAAAABAAAACAAAAAEAAAABAAAACQAAAAIAAAABAAAACgAAAAEAAAABAAAACwAAAAIAAAABAAAADQAAAAEAAAABAAAADgAAAAIAAAABAAAADwAAAAEAAAABAAAAEAAAAAIAAAABAAAAEQAAAAEAAAABAAAAEgAAAAIAAAABAAAAFAAAAAEAAAABAAAAFQAAAAIAAAABAAAAFgAAAAEAAAABAAAAFwAAAAIAAAABAAAAGAAAAAEAAAABAAAAGQAAAAIAAAABAAAAGgAAAAEAAAABAAAAGwAAAAIAAAABAAAAHQAAAAEAAAABAAAAHgAAAAIAAAABAAAAHwAAAAQAAAABAAAA4HN0c3oAAAAAAAAAAAAAADMAAAAaAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAACMc3RjbwAAAAAAAAAfAAAALAAAA1UAAANyAAADhgAAA6IAAAO+AAAD0QAAA+0AAAQAAAAEHAAABC8AAARLAAAEZwAABHoAAASWAAAEqQAABMUAAATYAAAE9AAABRAAAAUjAAAFPwAABVIAAAVuAAAFgQAABZ0AAAWwAAAFzAAABegAAAX7AAAGFwAAAGJ1ZHRhAAAAWm1ldGEAAAAAAAAAIWhkbHIAAAAAAAAAAG1kaXJhcHBsAAAAAAAAAAAAAAAALWlsc3QAAAAlqXRvbwAAAB1kYXRhAAAAAQAAAABMYXZmNTUuMzMuMTAw\",\n};\n","const { webm, mp4 } = require(\"./media.js\");\n\n// Detect iOS browsers < version 10\nconst oldIOS = () =>\n typeof navigator !== \"undefined\" &&\n parseFloat(\n (\n \"\" +\n (/CPU.*OS ([0-9_]{3,4})[0-9_]{0,1}|(CPU like).*AppleWebKit.*Mobile/i.exec(\n navigator.userAgent\n ) || [0, \"\"])[1]\n )\n .replace(\"undefined\", \"3_2\")\n .replace(\"_\", \".\")\n .replace(\"_\", \"\")\n ) < 10 &&\n !window.MSStream;\n\n// Detect native Wake Lock API support\nconst nativeWakeLock = () => \"wakeLock\" in navigator;\n\nclass NoSleep {\n constructor() {\n this.enabled = false;\n if (nativeWakeLock()) {\n this._wakeLock = null;\n const handleVisibilityChange = () => {\n if (this._wakeLock !== null && document.visibilityState === \"visible\") {\n this.enable();\n }\n };\n document.addEventListener(\"visibilitychange\", handleVisibilityChange);\n document.addEventListener(\"fullscreenchange\", handleVisibilityChange);\n } else if (oldIOS()) {\n this.noSleepTimer = null;\n } else {\n // Set up no sleep video element\n this.noSleepVideo = document.createElement(\"video\");\n\n this.noSleepVideo.setAttribute(\"title\", \"No Sleep\");\n this.noSleepVideo.setAttribute(\"playsinline\", \"\");\n\n this._addSourceToVideo(this.noSleepVideo, \"webm\", webm);\n this._addSourceToVideo(this.noSleepVideo, \"mp4\", mp4);\n\n this.noSleepVideo.addEventListener(\"loadedmetadata\", () => {\n if (this.noSleepVideo.duration <= 1) {\n // webm source\n this.noSleepVideo.setAttribute(\"loop\", \"\");\n } else {\n // mp4 source\n this.noSleepVideo.addEventListener(\"timeupdate\", () => {\n if (this.noSleepVideo.currentTime > 0.5) {\n this.noSleepVideo.currentTime = Math.random();\n }\n });\n }\n });\n }\n }\n\n _addSourceToVideo(element, type, dataURI) {\n var source = document.createElement(\"source\");\n source.src = dataURI;\n source.type = `video/${type}`;\n element.appendChild(source);\n }\n\n get isEnabled() {\n return this.enabled;\n }\n\n enable() {\n if (nativeWakeLock()) {\n return navigator.wakeLock\n .request(\"screen\")\n .then((wakeLock) => {\n this._wakeLock = wakeLock;\n this.enabled = true;\n console.log(\"Wake Lock active.\");\n this._wakeLock.addEventListener(\"release\", () => {\n // ToDo: Potentially emit an event for the page to observe since\n // Wake Lock releases happen when page visibility changes.\n // (https://web.dev/wakelock/#wake-lock-lifecycle)\n console.log(\"Wake Lock released.\");\n });\n })\n .catch((err) => {\n this.enabled = false;\n console.error(`${err.name}, ${err.message}`);\n throw err;\n });\n } else if (oldIOS()) {\n this.disable();\n console.warn(`\n NoSleep enabled for older iOS devices. This can interrupt\n active or long-running network requests from completing successfully.\n See https://github.com/richtr/NoSleep.js/issues/15 for more details.\n `);\n this.noSleepTimer = window.setInterval(() => {\n if (!document.hidden) {\n window.location.href = window.location.href.split(\"#\")[0];\n window.setTimeout(window.stop, 0);\n }\n }, 15000);\n this.enabled = true;\n return Promise.resolve();\n } else {\n let playPromise = this.noSleepVideo.play();\n return playPromise\n .then((res) => {\n this.enabled = true;\n return res;\n })\n .catch((err) => {\n this.enabled = false;\n throw err;\n });\n }\n }\n\n disable() {\n if (nativeWakeLock()) {\n if (this._wakeLock) {\n this._wakeLock.release();\n }\n this._wakeLock = null;\n } else if (oldIOS()) {\n if (this.noSleepTimer) {\n console.warn(`\n NoSleep now disabled for older iOS devices.\n `);\n window.clearInterval(this.noSleepTimer);\n this.noSleepTimer = null;\n }\n } else {\n this.noSleepVideo.pause();\n }\n this.enabled = false;\n }\n}\n\nmodule.exports = NoSleep;\n","\"use strict\";\n\nimport NoSleep from 'nosleep.js';\nvar noSleep = new NoSleep();\n\n// Enable wake lock.\n// (must be wrapped in a user input event handler e.g. a mouse or touch handler)\ndocument.addEventListener('click', function enableNoSleep() {\n document.removeEventListener('click', enableNoSleep, false);\n noSleep.enable();\n}, false);\n\nfunction executeJavascriptHacks() {\n // The popstate event of the Window interface is fired when the active history entry changes while the user navigates the session history. \n // Hack for making sure hashchanges trigger a reload when nagivating history\n // TODO: handle this event properly without a reload by executing the Initialize action on this event\n window.addEventListener('popstate', () => {\n window.location.reload();\n });\n\n // Hack to be able to use the right viewport height in the CSS, because the CSS vh value doesn't behave well on mobile.\n var root = document.querySelector(':root');\n window.addEventListener('resize', () => {\n root.style.setProperty('--app-height', vh() + 'px');\n });\n function vh() {\n // - 1 because sometimes the innerHeight doesn't seem to be rounded correctly or something\n return Math.max(document.documentElement.clientHeight, window.innerHeight || 0) - 1;\n }\n\n // Set browser color for mobile devices\n const styles = getComputedStyle(document.documentElement);\n const bgColor = styles.getPropertyValue('--header-bg');\n var m = document.createElement('meta');\n m.name = 'theme-color';\n m.content = bgColor;\n document.head.appendChild(m);\n};\n\nexport { executeJavascriptHacks }\n","// Generated by purs version 0.15.2\nvar semigroupoidFn = {\n compose: function (f) {\n return function (g) {\n return function (x) {\n return f(g(x));\n };\n };\n }\n};\nvar compose = function (dict) {\n return dict.compose;\n};\nvar composeFlipped = function (dictSemigroupoid) {\n return function (f) {\n return function (g) {\n return compose(dictSemigroupoid)(g)(f);\n };\n };\n};\nexport {\n compose,\n composeFlipped,\n semigroupoidFn\n};\n","// Generated by purs version 0.15.2\nimport * as Control_Semigroupoid from \"../Control.Semigroupoid/index.js\";\nvar identity = function (dict) {\n return dict.identity;\n};\nvar categoryFn = {\n identity: function (x) {\n return x;\n },\n Semigroupoid0: function () {\n return Control_Semigroupoid.semigroupoidFn;\n }\n};\nexport {\n identity,\n categoryFn\n};\nexport {\n compose\n} from \"../Control.Semigroupoid/index.js\";\n","// Generated by purs version 0.15.2\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Data_Boolean from \"../Data.Boolean/index.js\";\nvar on = function (f) {\n return function (g) {\n return function (x) {\n return function (y) {\n return f(g(x))(g(y));\n };\n };\n };\n};\nvar flip = function (f) {\n return function (b) {\n return function (a) {\n return f(a)(b);\n };\n };\n};\nvar $$const = function (a) {\n return function (v) {\n return a;\n };\n};\nvar applyN = function (f) {\n var go = function ($copy_n) {\n return function ($copy_acc) {\n var $tco_var_n = $copy_n;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(n, acc) {\n if (n <= 0) {\n $tco_done = true;\n return acc;\n };\n if (Data_Boolean.otherwise) {\n $tco_var_n = n - 1 | 0;\n $copy_acc = f(acc);\n return;\n };\n throw new Error(\"Failed pattern match at Data.Function (line 107, column 3 - line 109, column 37): \" + [ n.constructor.name, acc.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_n, $copy_acc);\n };\n return $tco_result;\n };\n };\n return go;\n};\nvar applyFlipped = function (x) {\n return function (f) {\n return f(x);\n };\n};\nvar apply = function (f) {\n return function (x) {\n return f(x);\n };\n};\nexport {\n flip,\n $$const as const,\n apply,\n applyFlipped,\n applyN,\n on\n};\nexport {\n compose,\n identity\n} from \"../Control.Category/index.js\";\n","// Generated by purs version 0.15.2\nimport * as $foreign from \"./foreign.js\";\nvar showUnit = {\n show: function (v) {\n return \"unit\";\n }\n};\nexport {\n unit\n} from \"./foreign.js\";\nexport {\n showUnit\n};\n","// Generated by purs version 0.15.2\nvar $$Proxy = /* #__PURE__ */ (function () {\n function $$Proxy() {\n\n };\n $$Proxy.value = new $$Proxy();\n return $$Proxy;\n})();\nexport {\n $$Proxy as Proxy\n};\n","// Generated by purs version 0.15.2\nimport * as $foreign from \"./foreign.js\";\nimport * as Control_Semigroupoid from \"../Control.Semigroupoid/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nimport * as Type_Proxy from \"../Type.Proxy/index.js\";\nvar map = function (dict) {\n return dict.map;\n};\nvar mapFlipped = function (dictFunctor) {\n return function (fa) {\n return function (f) {\n return map(dictFunctor)(f)(fa);\n };\n };\n};\nvar $$void = function (dictFunctor) {\n return map(dictFunctor)(Data_Function[\"const\"](Data_Unit.unit));\n};\nvar voidLeft = function (dictFunctor) {\n return function (f) {\n return function (x) {\n return map(dictFunctor)(Data_Function[\"const\"](x))(f);\n };\n };\n};\nvar voidRight = function (dictFunctor) {\n return function (x) {\n return map(dictFunctor)(Data_Function[\"const\"](x));\n };\n};\nvar functorProxy = {\n map: function (v) {\n return function (v1) {\n return Type_Proxy[\"Proxy\"].value;\n };\n }\n};\nvar functorFn = {\n map: /* #__PURE__ */ Control_Semigroupoid.compose(Control_Semigroupoid.semigroupoidFn)\n};\nvar functorArray = {\n map: $foreign.arrayMap\n};\nvar flap = function (dictFunctor) {\n return function (ff) {\n return function (x) {\n return map(dictFunctor)(function (f) {\n return f(x);\n })(ff);\n };\n };\n};\nexport {\n map,\n mapFlipped,\n $$void as void,\n voidRight,\n voidLeft,\n flap,\n functorFn,\n functorArray,\n functorProxy\n};\n","export const unit = undefined;\n","export const arrayMap = function (f) {\n return function (arr) {\n var l = arr.length;\n var result = new Array(l);\n for (var i = 0; i < l; i++) {\n result[i] = f(arr[i]);\n }\n return result;\n };\n};\n","// Generated by purs version 0.15.2\nimport * as $foreign from \"./foreign.js\";\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Type_Proxy from \"../Type.Proxy/index.js\";\nvar applyProxy = {\n apply: function (v) {\n return function (v1) {\n return Type_Proxy[\"Proxy\"].value;\n };\n },\n Functor0: function () {\n return Data_Functor.functorProxy;\n }\n};\nvar applyFn = {\n apply: function (f) {\n return function (g) {\n return function (x) {\n return f(x)(g(x));\n };\n };\n },\n Functor0: function () {\n return Data_Functor.functorFn;\n }\n};\nvar applyArray = {\n apply: $foreign.arrayApply,\n Functor0: function () {\n return Data_Functor.functorArray;\n }\n};\nvar apply = function (dict) {\n return dict.apply;\n};\nvar applyFirst = function (dictApply) {\n return function (a) {\n return function (b) {\n return apply(dictApply)(Data_Functor.map(dictApply.Functor0())(Data_Function[\"const\"])(a))(b);\n };\n };\n};\nvar applySecond = function (dictApply) {\n return function (a) {\n return function (b) {\n return apply(dictApply)(Data_Functor.map(dictApply.Functor0())(Data_Function[\"const\"](Control_Category.identity(Control_Category.categoryFn)))(a))(b);\n };\n };\n};\nvar lift2 = function (dictApply) {\n return function (f) {\n return function (a) {\n return function (b) {\n return apply(dictApply)(Data_Functor.map(dictApply.Functor0())(f)(a))(b);\n };\n };\n };\n};\nvar lift3 = function (dictApply) {\n return function (f) {\n return function (a) {\n return function (b) {\n return function (c) {\n return apply(dictApply)(apply(dictApply)(Data_Functor.map(dictApply.Functor0())(f)(a))(b))(c);\n };\n };\n };\n };\n};\nvar lift4 = function (dictApply) {\n return function (f) {\n return function (a) {\n return function (b) {\n return function (c) {\n return function (d) {\n return apply(dictApply)(apply(dictApply)(apply(dictApply)(Data_Functor.map(dictApply.Functor0())(f)(a))(b))(c))(d);\n };\n };\n };\n };\n };\n};\nvar lift5 = function (dictApply) {\n return function (f) {\n return function (a) {\n return function (b) {\n return function (c) {\n return function (d) {\n return function (e) {\n return apply(dictApply)(apply(dictApply)(apply(dictApply)(apply(dictApply)(Data_Functor.map(dictApply.Functor0())(f)(a))(b))(c))(d))(e);\n };\n };\n };\n };\n };\n };\n};\nexport {\n apply,\n applyFirst,\n applySecond,\n lift2,\n lift3,\n lift4,\n lift5,\n applyFn,\n applyArray,\n applyProxy\n};\nexport {\n map,\n void\n} from \"../Data.Functor/index.js\";\n","export const arrayApply = function (fs) {\n return function (xs) {\n var l = fs.length;\n var k = xs.length;\n var result = new Array(l*k);\n var n = 0;\n for (var i = 0; i < l; i++) {\n var f = fs[i];\n for (var j = 0; j < k; j++) {\n result[n++] = f(xs[j]);\n }\n }\n return result;\n };\n};\n","// Generated by purs version 0.15.2\nimport * as Control_Apply from \"../Control.Apply/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nimport * as Type_Proxy from \"../Type.Proxy/index.js\";\nvar pure = function (dict) {\n return dict.pure;\n};\nvar unless = function (dictApplicative) {\n return function (v) {\n return function (v1) {\n if (!v) {\n return v1;\n };\n if (v) {\n return pure(dictApplicative)(Data_Unit.unit);\n };\n throw new Error(\"Failed pattern match at Control.Applicative (line 68, column 1 - line 68, column 65): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n };\n};\nvar when = function (dictApplicative) {\n return function (v) {\n return function (v1) {\n if (v) {\n return v1;\n };\n if (!v) {\n return pure(dictApplicative)(Data_Unit.unit);\n };\n throw new Error(\"Failed pattern match at Control.Applicative (line 63, column 1 - line 63, column 63): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n };\n};\nvar liftA1 = function (dictApplicative) {\n return function (f) {\n return function (a) {\n return Control_Apply.apply(dictApplicative.Apply0())(pure(dictApplicative)(f))(a);\n };\n };\n};\nvar applicativeProxy = {\n pure: function (v) {\n return Type_Proxy[\"Proxy\"].value;\n },\n Apply0: function () {\n return Control_Apply.applyProxy;\n }\n};\nvar applicativeFn = {\n pure: function (x) {\n return function (v) {\n return x;\n };\n },\n Apply0: function () {\n return Control_Apply.applyFn;\n }\n};\nvar applicativeArray = {\n pure: function (x) {\n return [ x ];\n },\n Apply0: function () {\n return Control_Apply.applyArray;\n }\n};\nexport {\n pure,\n liftA1,\n unless,\n when,\n applicativeFn,\n applicativeArray,\n applicativeProxy\n};\nexport {\n apply\n} from \"../Control.Apply/index.js\";\nexport {\n map,\n void\n} from \"../Data.Functor/index.js\";\n","//------------------------------------------------------------------------------\n// Array creation --------------------------------------------------------------\n//------------------------------------------------------------------------------\n\nexport const range = function (start) {\n return function (end) {\n var step = start > end ? -1 : 1;\n var result = new Array(step * (end - start) + 1);\n var i = start, n = 0;\n while (i !== end) {\n result[n++] = i;\n i += step;\n }\n result[n] = i;\n return result;\n };\n};\n\nvar replicateFill = function (count) {\n return function (value) {\n if (count < 1) {\n return [];\n }\n var result = new Array(count);\n return result.fill(value);\n };\n};\n\nvar replicatePolyfill = function (count) {\n return function (value) {\n var result = [];\n var n = 0;\n for (var i = 0; i < count; i++) {\n result[n++] = value;\n }\n return result;\n };\n};\n\n// In browsers that have Array.prototype.fill we use it, as it's faster.\nexport const replicate = typeof Array.prototype.fill === \"function\" ? replicateFill : replicatePolyfill;\n\nexport const fromFoldableImpl = (function () {\n function Cons(head, tail) {\n this.head = head;\n this.tail = tail;\n }\n var emptyList = {};\n\n function curryCons(head) {\n return function (tail) {\n return new Cons(head, tail);\n };\n }\n\n function listToArray(list) {\n var result = [];\n var count = 0;\n var xs = list;\n while (xs !== emptyList) {\n result[count++] = xs.head;\n xs = xs.tail;\n }\n return result;\n }\n\n return function (foldr) {\n return function (xs) {\n return listToArray(foldr(curryCons)(emptyList)(xs));\n };\n };\n})();\n\n//------------------------------------------------------------------------------\n// Array size ------------------------------------------------------------------\n//------------------------------------------------------------------------------\n\nexport const length = function (xs) {\n return xs.length;\n};\n\n//------------------------------------------------------------------------------\n// Non-indexed reads -----------------------------------------------------------\n//------------------------------------------------------------------------------\n\nexport const unconsImpl = function (empty) {\n return function (next) {\n return function (xs) {\n return xs.length === 0 ? empty({}) : next(xs[0])(xs.slice(1));\n };\n };\n};\n\n//------------------------------------------------------------------------------\n// Indexed operations ----------------------------------------------------------\n//------------------------------------------------------------------------------\n\nexport const indexImpl = function (just) {\n return function (nothing) {\n return function (xs) {\n return function (i) {\n return i < 0 || i >= xs.length ? nothing : just(xs[i]);\n };\n };\n };\n};\n\nexport const findMapImpl = function (nothing) {\n return function (isJust) {\n return function (f) {\n return function (xs) {\n for (var i = 0; i < xs.length; i++) {\n var result = f(xs[i]);\n if (isJust(result)) return result;\n }\n return nothing;\n };\n };\n };\n};\n\nexport const findIndexImpl = function (just) {\n return function (nothing) {\n return function (f) {\n return function (xs) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (f(xs[i])) return just(i);\n }\n return nothing;\n };\n };\n };\n};\n\nexport const findLastIndexImpl = function (just) {\n return function (nothing) {\n return function (f) {\n return function (xs) {\n for (var i = xs.length - 1; i >= 0; i--) {\n if (f(xs[i])) return just(i);\n }\n return nothing;\n };\n };\n };\n};\n\nexport const _insertAt = function (just) {\n return function (nothing) {\n return function (i) {\n return function (a) {\n return function (l) {\n if (i < 0 || i > l.length) return nothing;\n var l1 = l.slice();\n l1.splice(i, 0, a);\n return just(l1);\n };\n };\n };\n };\n};\n\nexport const _deleteAt = function (just) {\n return function (nothing) {\n return function (i) {\n return function (l) {\n if (i < 0 || i >= l.length) return nothing;\n var l1 = l.slice();\n l1.splice(i, 1);\n return just(l1);\n };\n };\n };\n};\n\nexport const _updateAt = function (just) {\n return function (nothing) {\n return function (i) {\n return function (a) {\n return function (l) {\n if (i < 0 || i >= l.length) return nothing;\n var l1 = l.slice();\n l1[i] = a;\n return just(l1);\n };\n };\n };\n };\n};\n\n//------------------------------------------------------------------------------\n// Transformations -------------------------------------------------------------\n//------------------------------------------------------------------------------\n\nexport const reverse = function (l) {\n return l.slice().reverse();\n};\n\nexport const concat = function (xss) {\n if (xss.length <= 10000) {\n // This method is faster, but it crashes on big arrays.\n // So we use it when can and fallback to simple variant otherwise.\n return Array.prototype.concat.apply([], xss);\n }\n\n var result = [];\n for (var i = 0, l = xss.length; i < l; i++) {\n var xs = xss[i];\n for (var j = 0, m = xs.length; j < m; j++) {\n result.push(xs[j]);\n }\n }\n return result;\n};\n\nexport const filter = function (f) {\n return function (xs) {\n return xs.filter(f);\n };\n};\n\nexport const partition = function (f) {\n return function (xs) {\n var yes = [];\n var no = [];\n for (var i = 0; i < xs.length; i++) {\n var x = xs[i];\n if (f(x))\n yes.push(x);\n else\n no.push(x);\n }\n return { yes: yes, no: no };\n };\n};\n\nexport const scanl = function (f) {\n return function (b) {\n return function (xs) {\n var len = xs.length;\n var acc = b;\n var out = new Array(len);\n for (var i = 0; i < len; i++) {\n acc = f(acc)(xs[i]);\n out[i] = acc;\n }\n return out;\n };\n };\n};\n\nexport const scanr = function (f) {\n return function (b) {\n return function (xs) {\n var len = xs.length;\n var acc = b;\n var out = new Array(len);\n for (var i = len - 1; i >= 0; i--) {\n acc = f(xs[i])(acc);\n out[i] = acc;\n }\n return out;\n };\n };\n};\n\n//------------------------------------------------------------------------------\n// Sorting ---------------------------------------------------------------------\n//------------------------------------------------------------------------------\n\nexport const sortByImpl = (function () {\n function mergeFromTo(compare, fromOrdering, xs1, xs2, from, to) {\n var mid;\n var i;\n var j;\n var k;\n var x;\n var y;\n var c;\n\n mid = from + ((to - from) >> 1);\n if (mid - from > 1) mergeFromTo(compare, fromOrdering, xs2, xs1, from, mid);\n if (to - mid > 1) mergeFromTo(compare, fromOrdering, xs2, xs1, mid, to);\n\n i = from;\n j = mid;\n k = from;\n while (i < mid && j < to) {\n x = xs2[i];\n y = xs2[j];\n c = fromOrdering(compare(x)(y));\n if (c > 0) {\n xs1[k++] = y;\n ++j;\n }\n else {\n xs1[k++] = x;\n ++i;\n }\n }\n while (i < mid) {\n xs1[k++] = xs2[i++];\n }\n while (j < to) {\n xs1[k++] = xs2[j++];\n }\n }\n\n return function (compare) {\n return function (fromOrdering) {\n return function (xs) {\n var out;\n\n if (xs.length < 2) return xs;\n\n out = xs.slice(0);\n mergeFromTo(compare, fromOrdering, out, xs.slice(0), 0, xs.length);\n\n return out;\n };\n };\n };\n})();\n\n//------------------------------------------------------------------------------\n// Subarrays -------------------------------------------------------------------\n//------------------------------------------------------------------------------\n\nexport const slice = function (s) {\n return function (e) {\n return function (l) {\n return l.slice(s, e);\n };\n };\n};\n\n//------------------------------------------------------------------------------\n// Zipping ---------------------------------------------------------------------\n//------------------------------------------------------------------------------\n\nexport const zipWith = function (f) {\n return function (xs) {\n return function (ys) {\n var l = xs.length < ys.length ? xs.length : ys.length;\n var result = new Array(l);\n for (var i = 0; i < l; i++) {\n result[i] = f(xs[i])(ys[i]);\n }\n return result;\n };\n };\n};\n\n//------------------------------------------------------------------------------\n// Folding ---------------------------------------------------------------------\n//------------------------------------------------------------------------------\n\nexport const any = function (p) {\n return function (xs) {\n var len = xs.length;\n for (var i = 0; i < len; i++) {\n if (p(xs[i])) return true;\n }\n return false;\n };\n};\n\nexport const all = function (p) {\n return function (xs) {\n var len = xs.length;\n for (var i = 0; i < len; i++) {\n if (!p(xs[i])) return false;\n }\n return true;\n };\n};\n\n//------------------------------------------------------------------------------\n// Partial ---------------------------------------------------------------------\n//------------------------------------------------------------------------------\n\nexport const unsafeIndexImpl = function (xs) {\n return function (n) {\n return xs[n];\n };\n};\n","// Generated by purs version 0.15.2\nimport * as $foreign from \"./foreign.js\";\nimport * as Type_Proxy from \"../Type.Proxy/index.js\";\nvar reifySymbol = function (s) {\n return function (f) {\n return $foreign.unsafeCoerce(function (dictIsSymbol) {\n return f(dictIsSymbol);\n })({\n reflectSymbol: function (v) {\n return s;\n }\n })(Type_Proxy[\"Proxy\"].value);\n };\n};\nvar reflectSymbol = function (dict) {\n return dict.reflectSymbol;\n};\nexport {\n reflectSymbol,\n reifySymbol\n};\n","export const unsafeHas = function (label) {\n return function (rec) {\n return {}.hasOwnProperty.call(rec, label);\n };\n};\n\nexport const unsafeGet = function (label) {\n return function (rec) {\n return rec[label];\n };\n};\n\nexport const unsafeSet = function (label) {\n return function (value) {\n return function (rec) {\n var copy = {};\n for (var key in rec) {\n if ({}.hasOwnProperty.call(rec, key)) {\n copy[key] = rec[key];\n }\n }\n copy[label] = value;\n return copy;\n };\n };\n};\n\nexport const unsafeDelete = function (label) {\n return function (rec) {\n var copy = {};\n for (var key in rec) {\n if (key !== label && {}.hasOwnProperty.call(rec, key)) {\n copy[key] = rec[key];\n }\n }\n return copy;\n };\n};\n","// Generated by purs version 0.15.2\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Symbol from \"../Data.Symbol/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nimport * as Data_Void from \"../Data.Void/index.js\";\nimport * as Record_Unsafe from \"../Record.Unsafe/index.js\";\nimport * as Type_Proxy from \"../Type.Proxy/index.js\";\nvar semigroupVoid = {\n append: function (v) {\n return Data_Void.absurd;\n }\n};\nvar semigroupUnit = {\n append: function (v) {\n return function (v1) {\n return Data_Unit.unit;\n };\n }\n};\nvar semigroupString = {\n append: $foreign.concatString\n};\nvar semigroupRecordNil = {\n appendRecord: function (v) {\n return function (v1) {\n return function (v2) {\n return {};\n };\n };\n }\n};\nvar semigroupProxy = {\n append: function (v) {\n return function (v1) {\n return Type_Proxy[\"Proxy\"].value;\n };\n }\n};\nvar semigroupArray = {\n append: $foreign.concatArray\n};\nvar appendRecord = function (dict) {\n return dict.appendRecord;\n};\nvar semigroupRecord = function () {\n return function (dictSemigroupRecord) {\n return {\n append: appendRecord(dictSemigroupRecord)(Type_Proxy[\"Proxy\"].value)\n };\n };\n};\nvar append = function (dict) {\n return dict.append;\n};\nvar semigroupFn = function (dictSemigroup) {\n return {\n append: function (f) {\n return function (g) {\n return function (x) {\n return append(dictSemigroup)(f(x))(g(x));\n };\n };\n }\n };\n};\nvar semigroupRecordCons = function (dictIsSymbol) {\n return function () {\n return function (dictSemigroupRecord) {\n return function (dictSemigroup) {\n return {\n appendRecord: function (v) {\n return function (ra) {\n return function (rb) {\n var tail = appendRecord(dictSemigroupRecord)(Type_Proxy[\"Proxy\"].value)(ra)(rb);\n var key = Data_Symbol.reflectSymbol(dictIsSymbol)(Type_Proxy[\"Proxy\"].value);\n var insert = Record_Unsafe.unsafeSet(key);\n var get = Record_Unsafe.unsafeGet(key);\n return insert(append(dictSemigroup)(get(ra))(get(rb)))(tail);\n };\n };\n }\n };\n };\n };\n };\n};\nexport {\n append,\n appendRecord,\n semigroupString,\n semigroupUnit,\n semigroupVoid,\n semigroupFn,\n semigroupArray,\n semigroupProxy,\n semigroupRecord,\n semigroupRecordNil,\n semigroupRecordCons\n};\n","export const concatString = function (s1) {\n return function (s2) {\n return s1 + s2;\n };\n};\n\nexport const concatArray = function (xs) {\n return function (ys) {\n if (xs.length === 0) return ys;\n if (ys.length === 0) return xs;\n return xs.concat(ys);\n };\n};\n","// Generated by purs version 0.15.2\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nvar altArray = {\n alt: /* #__PURE__ */ Data_Semigroup.append(Data_Semigroup.semigroupArray),\n Functor0: function () {\n return Data_Functor.functorArray;\n }\n};\nvar alt = function (dict) {\n return dict.alt;\n};\nexport {\n alt,\n altArray\n};\nexport {\n map,\n void\n} from \"../Data.Functor/index.js\";\n","// Generated by purs version 0.15.2\nimport * as $foreign from \"./foreign.js\";\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Apply from \"../Control.Apply/index.js\";\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Type_Proxy from \"../Type.Proxy/index.js\";\nvar discard = function (dict) {\n return dict.discard;\n};\nvar bindProxy = {\n bind: function (v) {\n return function (v1) {\n return Type_Proxy[\"Proxy\"].value;\n };\n },\n Apply0: function () {\n return Control_Apply.applyProxy;\n }\n};\nvar bindFn = {\n bind: function (m) {\n return function (f) {\n return function (x) {\n return f(m(x))(x);\n };\n };\n },\n Apply0: function () {\n return Control_Apply.applyFn;\n }\n};\nvar bindArray = {\n bind: $foreign.arrayBind,\n Apply0: function () {\n return Control_Apply.applyArray;\n }\n};\nvar bind = function (dict) {\n return dict.bind;\n};\nvar bindFlipped = function (dictBind) {\n return Data_Function.flip(bind(dictBind));\n};\nvar composeKleisliFlipped = function (dictBind) {\n return function (f) {\n return function (g) {\n return function (a) {\n return bindFlipped(dictBind)(f)(g(a));\n };\n };\n };\n};\nvar composeKleisli = function (dictBind) {\n return function (f) {\n return function (g) {\n return function (a) {\n return bind(dictBind)(f(a))(g);\n };\n };\n };\n};\nvar discardProxy = {\n discard: function (dictBind) {\n return bind(dictBind);\n }\n};\nvar discardUnit = {\n discard: function (dictBind) {\n return bind(dictBind);\n }\n};\nvar ifM = function (dictBind) {\n return function (cond) {\n return function (t) {\n return function (f) {\n return bind(dictBind)(cond)(function (cond$prime) {\n if (cond$prime) {\n return t;\n };\n return f;\n });\n };\n };\n };\n};\nvar join = function (dictBind) {\n return function (m) {\n return bind(dictBind)(m)(Control_Category.identity(Control_Category.categoryFn));\n };\n};\nexport {\n bind,\n bindFlipped,\n discard,\n join,\n composeKleisli,\n composeKleisliFlipped,\n ifM,\n bindFn,\n bindArray,\n bindProxy,\n discardUnit,\n discardProxy\n};\nexport {\n liftA1,\n pure,\n unless,\n when\n} from \"../Control.Applicative/index.js\";\nexport {\n apply\n} from \"../Control.Apply/index.js\";\nexport {\n map,\n void\n} from \"../Data.Functor/index.js\";\n","export const arrayBind = function (arr) {\n return function (f) {\n var result = [];\n for (var i = 0, l = arr.length; i < l; i++) {\n Array.prototype.push.apply(result, f(arr[i]));\n }\n return result;\n };\n};\n","// Generated by purs version 0.15.2\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Apply from \"../Control.Apply/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nvar whenM = function (dictMonad) {\n return function (mb) {\n return function (m) {\n return Control_Bind.bind(dictMonad.Bind1())(mb)(function (b) {\n return Control_Applicative.when(dictMonad.Applicative0())(b)(m);\n });\n };\n };\n};\nvar unlessM = function (dictMonad) {\n return function (mb) {\n return function (m) {\n return Control_Bind.bind(dictMonad.Bind1())(mb)(function (b) {\n return Control_Applicative.unless(dictMonad.Applicative0())(b)(m);\n });\n };\n };\n};\nvar monadProxy = {\n Applicative0: function () {\n return Control_Applicative.applicativeProxy;\n },\n Bind1: function () {\n return Control_Bind.bindProxy;\n }\n};\nvar monadFn = {\n Applicative0: function () {\n return Control_Applicative.applicativeFn;\n },\n Bind1: function () {\n return Control_Bind.bindFn;\n }\n};\nvar monadArray = {\n Applicative0: function () {\n return Control_Applicative.applicativeArray;\n },\n Bind1: function () {\n return Control_Bind.bindArray;\n }\n};\nvar liftM1 = function (dictMonad) {\n return function (f) {\n return function (a) {\n return Control_Bind.bind(dictMonad.Bind1())(a)(function (a$prime) {\n return Control_Applicative.pure(dictMonad.Applicative0())(f(a$prime));\n });\n };\n };\n};\nvar ap = function (dictMonad) {\n return function (f) {\n return function (a) {\n return Control_Bind.bind(dictMonad.Bind1())(f)(function (f$prime) {\n return Control_Bind.bind(dictMonad.Bind1())(a)(function (a$prime) {\n return Control_Applicative.pure(dictMonad.Applicative0())(f$prime(a$prime));\n });\n });\n };\n };\n};\nexport {\n liftM1,\n whenM,\n unlessM,\n ap,\n monadFn,\n monadArray,\n monadProxy\n};\nexport {\n liftA1,\n pure,\n unless,\n when\n} from \"../Control.Applicative/index.js\";\nexport {\n apply\n} from \"../Control.Apply/index.js\";\nexport {\n bind,\n ifM,\n join\n} from \"../Control.Bind/index.js\";\nexport {\n map,\n void\n} from \"../Data.Functor/index.js\";\n","export const topInt = 2147483647;\nexport const bottomInt = -2147483648;\n\nexport const topChar = String.fromCharCode(65535);\nexport const bottomChar = String.fromCharCode(0);\n\nexport const topNumber = Number.POSITIVE_INFINITY;\nexport const bottomNumber = Number.NEGATIVE_INFINITY;\n","var unsafeCompareImpl = function (lt) {\n return function (eq) {\n return function (gt) {\n return function (x) {\n return function (y) {\n return x < y ? lt : x === y ? eq : gt;\n };\n };\n };\n };\n};\n\nexport const ordBooleanImpl = unsafeCompareImpl;\nexport const ordIntImpl = unsafeCompareImpl;\nexport const ordNumberImpl = unsafeCompareImpl;\nexport const ordStringImpl = unsafeCompareImpl;\nexport const ordCharImpl = unsafeCompareImpl;\n\nexport const ordArrayImpl = function (f) {\n return function (xs) {\n return function (ys) {\n var i = 0;\n var xlen = xs.length;\n var ylen = ys.length;\n while (i < xlen && i < ylen) {\n var x = xs[i];\n var y = ys[i];\n var o = f(x)(y);\n if (o !== 0) {\n return o;\n }\n i++;\n }\n if (xlen === ylen) {\n return 0;\n } else if (xlen > ylen) {\n return -1;\n } else {\n return 1;\n }\n };\n };\n};\n","var refEq = function (r1) {\n return function (r2) {\n return r1 === r2;\n };\n};\n\nexport const eqBooleanImpl = refEq;\nexport const eqIntImpl = refEq;\nexport const eqNumberImpl = refEq;\nexport const eqCharImpl = refEq;\nexport const eqStringImpl = refEq;\n\nexport const eqArrayImpl = function (f) {\n return function (xs) {\n return function (ys) {\n if (xs.length !== ys.length) return false;\n for (var i = 0; i < xs.length; i++) {\n if (!f(xs[i])(ys[i])) return false;\n }\n return true;\n };\n };\n};\n","// Generated by purs version 0.15.2\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Symbol from \"../Data.Symbol/index.js\";\nimport * as Record_Unsafe from \"../Record.Unsafe/index.js\";\nimport * as Type_Proxy from \"../Type.Proxy/index.js\";\nvar eqVoid = {\n eq: function (v) {\n return function (v1) {\n return true;\n };\n }\n};\nvar eqUnit = {\n eq: function (v) {\n return function (v1) {\n return true;\n };\n }\n};\nvar eqString = {\n eq: $foreign.eqStringImpl\n};\nvar eqRowNil = {\n eqRecord: function (v) {\n return function (v1) {\n return function (v2) {\n return true;\n };\n };\n }\n};\nvar eqRecord = function (dict) {\n return dict.eqRecord;\n};\nvar eqRec = function () {\n return function (dictEqRecord) {\n return {\n eq: eqRecord(dictEqRecord)(Type_Proxy[\"Proxy\"].value)\n };\n };\n};\nvar eqProxy = {\n eq: function (v) {\n return function (v1) {\n return true;\n };\n }\n};\nvar eqNumber = {\n eq: $foreign.eqNumberImpl\n};\nvar eqInt = {\n eq: $foreign.eqIntImpl\n};\nvar eqChar = {\n eq: $foreign.eqCharImpl\n};\nvar eqBoolean = {\n eq: $foreign.eqBooleanImpl\n};\nvar eq1 = function (dict) {\n return dict.eq1;\n};\nvar eq = function (dict) {\n return dict.eq;\n};\nvar eqArray = function (dictEq) {\n return {\n eq: $foreign.eqArrayImpl(eq(dictEq))\n };\n};\nvar eq1Array = {\n eq1: function (dictEq) {\n return eq(eqArray(dictEq));\n }\n};\nvar eqRowCons = function (dictEqRecord) {\n return function () {\n return function (dictIsSymbol) {\n return function (dictEq) {\n return {\n eqRecord: function (v) {\n return function (ra) {\n return function (rb) {\n var tail = eqRecord(dictEqRecord)(Type_Proxy[\"Proxy\"].value)(ra)(rb);\n var key = Data_Symbol.reflectSymbol(dictIsSymbol)(Type_Proxy[\"Proxy\"].value);\n var get = Record_Unsafe.unsafeGet(key);\n return eq(dictEq)(get(ra))(get(rb)) && tail;\n };\n };\n }\n };\n };\n };\n };\n};\nvar notEq = function (dictEq) {\n return function (x) {\n return function (y) {\n return eq(eqBoolean)(eq(dictEq)(x)(y))(false);\n };\n };\n};\nvar notEq1 = function (dictEq1) {\n return function (dictEq) {\n return function (x) {\n return function (y) {\n return eq(eqBoolean)(eq1(dictEq1)(dictEq)(x)(y))(false);\n };\n };\n };\n};\nexport {\n eq,\n notEq,\n eq1,\n notEq1,\n eqRecord,\n eqBoolean,\n eqInt,\n eqNumber,\n eqChar,\n eqString,\n eqUnit,\n eqVoid,\n eqArray,\n eqRec,\n eqProxy,\n eq1Array,\n eqRowNil,\n eqRowCons\n};\n","// Generated by purs version 0.15.2\nvar LT = /* #__PURE__ */ (function () {\n function LT() {\n\n };\n LT.value = new LT();\n return LT;\n})();\nvar GT = /* #__PURE__ */ (function () {\n function GT() {\n\n };\n GT.value = new GT();\n return GT;\n})();\nvar EQ = /* #__PURE__ */ (function () {\n function EQ() {\n\n };\n EQ.value = new EQ();\n return EQ;\n})();\nvar showOrdering = {\n show: function (v) {\n if (v instanceof LT) {\n return \"LT\";\n };\n if (v instanceof GT) {\n return \"GT\";\n };\n if (v instanceof EQ) {\n return \"EQ\";\n };\n throw new Error(\"Failed pattern match at Data.Ordering (line 26, column 1 - line 29, column 17): \" + [ v.constructor.name ]);\n }\n};\nvar semigroupOrdering = {\n append: function (v) {\n return function (v1) {\n if (v instanceof LT) {\n return LT.value;\n };\n if (v instanceof GT) {\n return GT.value;\n };\n if (v instanceof EQ) {\n return v1;\n };\n throw new Error(\"Failed pattern match at Data.Ordering (line 21, column 1 - line 24, column 18): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n }\n};\nvar invert = function (v) {\n if (v instanceof GT) {\n return LT.value;\n };\n if (v instanceof EQ) {\n return EQ.value;\n };\n if (v instanceof LT) {\n return GT.value;\n };\n throw new Error(\"Failed pattern match at Data.Ordering (line 33, column 1 - line 33, column 31): \" + [ v.constructor.name ]);\n};\nvar eqOrdering = {\n eq: function (v) {\n return function (v1) {\n if (v instanceof LT && v1 instanceof LT) {\n return true;\n };\n if (v instanceof GT && v1 instanceof GT) {\n return true;\n };\n if (v instanceof EQ && v1 instanceof EQ) {\n return true;\n };\n return false;\n };\n }\n};\nexport {\n LT,\n GT,\n EQ,\n invert,\n eqOrdering,\n semigroupOrdering,\n showOrdering\n};\n","// Generated by purs version 0.15.2\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Symbol from \"../Data.Symbol/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nimport * as Record_Unsafe from \"../Record.Unsafe/index.js\";\nimport * as Type_Proxy from \"../Type.Proxy/index.js\";\nvar zeroRecord = function (dict) {\n return dict.zeroRecord;\n};\nvar zero = function (dict) {\n return dict.zero;\n};\nvar semiringUnit = {\n add: function (v) {\n return function (v1) {\n return Data_Unit.unit;\n };\n },\n zero: Data_Unit.unit,\n mul: function (v) {\n return function (v1) {\n return Data_Unit.unit;\n };\n },\n one: Data_Unit.unit\n};\nvar semiringRecordNil = {\n addRecord: function (v) {\n return function (v1) {\n return function (v2) {\n return {};\n };\n };\n },\n mulRecord: function (v) {\n return function (v1) {\n return function (v2) {\n return {};\n };\n };\n },\n oneRecord: function (v) {\n return function (v1) {\n return {};\n };\n },\n zeroRecord: function (v) {\n return function (v1) {\n return {};\n };\n }\n};\nvar semiringProxy = /* #__PURE__ */ (function () {\n return {\n add: function (v) {\n return function (v1) {\n return Type_Proxy[\"Proxy\"].value;\n };\n },\n mul: function (v) {\n return function (v1) {\n return Type_Proxy[\"Proxy\"].value;\n };\n },\n one: Type_Proxy[\"Proxy\"].value,\n zero: Type_Proxy[\"Proxy\"].value\n };\n})();\nvar semiringNumber = {\n add: $foreign.numAdd,\n zero: 0.0,\n mul: $foreign.numMul,\n one: 1.0\n};\nvar semiringInt = {\n add: $foreign.intAdd,\n zero: 0,\n mul: $foreign.intMul,\n one: 1\n};\nvar oneRecord = function (dict) {\n return dict.oneRecord;\n};\nvar one = function (dict) {\n return dict.one;\n};\nvar mulRecord = function (dict) {\n return dict.mulRecord;\n};\nvar mul = function (dict) {\n return dict.mul;\n};\nvar addRecord = function (dict) {\n return dict.addRecord;\n};\nvar semiringRecord = function () {\n return function (dictSemiringRecord) {\n return {\n add: addRecord(dictSemiringRecord)(Type_Proxy[\"Proxy\"].value),\n mul: mulRecord(dictSemiringRecord)(Type_Proxy[\"Proxy\"].value),\n one: oneRecord(dictSemiringRecord)(Type_Proxy[\"Proxy\"].value)(Type_Proxy[\"Proxy\"].value),\n zero: zeroRecord(dictSemiringRecord)(Type_Proxy[\"Proxy\"].value)(Type_Proxy[\"Proxy\"].value)\n };\n };\n};\nvar add = function (dict) {\n return dict.add;\n};\nvar semiringFn = function (dictSemiring) {\n return {\n add: function (f) {\n return function (g) {\n return function (x) {\n return add(dictSemiring)(f(x))(g(x));\n };\n };\n },\n zero: function (v) {\n return zero(dictSemiring);\n },\n mul: function (f) {\n return function (g) {\n return function (x) {\n return mul(dictSemiring)(f(x))(g(x));\n };\n };\n },\n one: function (v) {\n return one(dictSemiring);\n }\n };\n};\nvar semiringRecordCons = function (dictIsSymbol) {\n return function () {\n return function (dictSemiringRecord) {\n return function (dictSemiring) {\n return {\n addRecord: function (v) {\n return function (ra) {\n return function (rb) {\n var tail = addRecord(dictSemiringRecord)(Type_Proxy[\"Proxy\"].value)(ra)(rb);\n var key = Data_Symbol.reflectSymbol(dictIsSymbol)(Type_Proxy[\"Proxy\"].value);\n var insert = Record_Unsafe.unsafeSet(key);\n var get = Record_Unsafe.unsafeGet(key);\n return insert(add(dictSemiring)(get(ra))(get(rb)))(tail);\n };\n };\n },\n mulRecord: function (v) {\n return function (ra) {\n return function (rb) {\n var tail = mulRecord(dictSemiringRecord)(Type_Proxy[\"Proxy\"].value)(ra)(rb);\n var key = Data_Symbol.reflectSymbol(dictIsSymbol)(Type_Proxy[\"Proxy\"].value);\n var insert = Record_Unsafe.unsafeSet(key);\n var get = Record_Unsafe.unsafeGet(key);\n return insert(mul(dictSemiring)(get(ra))(get(rb)))(tail);\n };\n };\n },\n oneRecord: function (v) {\n return function (v1) {\n var tail = oneRecord(dictSemiringRecord)(Type_Proxy[\"Proxy\"].value)(Type_Proxy[\"Proxy\"].value);\n var key = Data_Symbol.reflectSymbol(dictIsSymbol)(Type_Proxy[\"Proxy\"].value);\n var insert = Record_Unsafe.unsafeSet(key);\n return insert(one(dictSemiring))(tail);\n };\n },\n zeroRecord: function (v) {\n return function (v1) {\n var tail = zeroRecord(dictSemiringRecord)(Type_Proxy[\"Proxy\"].value)(Type_Proxy[\"Proxy\"].value);\n var key = Data_Symbol.reflectSymbol(dictIsSymbol)(Type_Proxy[\"Proxy\"].value);\n var insert = Record_Unsafe.unsafeSet(key);\n return insert(zero(dictSemiring))(tail);\n };\n }\n };\n };\n };\n };\n};\nexport {\n add,\n zero,\n mul,\n one,\n addRecord,\n mulRecord,\n oneRecord,\n zeroRecord,\n semiringInt,\n semiringNumber,\n semiringFn,\n semiringUnit,\n semiringProxy,\n semiringRecord,\n semiringRecordNil,\n semiringRecordCons\n};\n","export const intAdd = function (x) {\n return function (y) {\n /* jshint bitwise: false */\n return x + y | 0;\n };\n};\n\nexport const intMul = function (x) {\n return function (y) {\n /* jshint bitwise: false */\n return x * y | 0;\n };\n};\n\nexport const numAdd = function (n1) {\n return function (n2) {\n return n1 + n2;\n };\n};\n\nexport const numMul = function (n1) {\n return function (n2) {\n return n1 * n2;\n };\n};\n","// Generated by purs version 0.15.2\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Semiring from \"../Data.Semiring/index.js\";\nimport * as Data_Symbol from \"../Data.Symbol/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nimport * as Record_Unsafe from \"../Record.Unsafe/index.js\";\nimport * as Type_Proxy from \"../Type.Proxy/index.js\";\nvar subRecord = function (dict) {\n return dict.subRecord;\n};\nvar sub = function (dict) {\n return dict.sub;\n};\nvar ringUnit = {\n sub: function (v) {\n return function (v1) {\n return Data_Unit.unit;\n };\n },\n Semiring0: function () {\n return Data_Semiring.semiringUnit;\n }\n};\nvar ringRecordNil = {\n subRecord: function (v) {\n return function (v1) {\n return function (v2) {\n return {};\n };\n };\n },\n SemiringRecord0: function () {\n return Data_Semiring.semiringRecordNil;\n }\n};\nvar ringRecordCons = function (dictIsSymbol) {\n return function () {\n return function (dictRingRecord) {\n return function (dictRing) {\n return {\n subRecord: function (v) {\n return function (ra) {\n return function (rb) {\n var tail = subRecord(dictRingRecord)(Type_Proxy[\"Proxy\"].value)(ra)(rb);\n var key = Data_Symbol.reflectSymbol(dictIsSymbol)(Type_Proxy[\"Proxy\"].value);\n var insert = Record_Unsafe.unsafeSet(key);\n var get = Record_Unsafe.unsafeGet(key);\n return insert(sub(dictRing)(get(ra))(get(rb)))(tail);\n };\n };\n },\n SemiringRecord0: function () {\n return Data_Semiring.semiringRecordCons(dictIsSymbol)()(dictRingRecord.SemiringRecord0())(dictRing.Semiring0());\n }\n };\n };\n };\n };\n};\nvar ringRecord = function () {\n return function (dictRingRecord) {\n return {\n sub: subRecord(dictRingRecord)(Type_Proxy[\"Proxy\"].value),\n Semiring0: function () {\n return Data_Semiring.semiringRecord()(dictRingRecord.SemiringRecord0());\n }\n };\n };\n};\nvar ringProxy = {\n sub: function (v) {\n return function (v1) {\n return Type_Proxy[\"Proxy\"].value;\n };\n },\n Semiring0: function () {\n return Data_Semiring.semiringProxy;\n }\n};\nvar ringNumber = {\n sub: $foreign.numSub,\n Semiring0: function () {\n return Data_Semiring.semiringNumber;\n }\n};\nvar ringInt = {\n sub: $foreign.intSub,\n Semiring0: function () {\n return Data_Semiring.semiringInt;\n }\n};\nvar ringFn = function (dictRing) {\n return {\n sub: function (f) {\n return function (g) {\n return function (x) {\n return sub(dictRing)(f(x))(g(x));\n };\n };\n },\n Semiring0: function () {\n return Data_Semiring.semiringFn(dictRing.Semiring0());\n }\n };\n};\nvar negate = function (dictRing) {\n return function (a) {\n return sub(dictRing)(Data_Semiring.zero(dictRing.Semiring0()))(a);\n };\n};\nexport {\n sub,\n negate,\n subRecord,\n ringInt,\n ringNumber,\n ringUnit,\n ringFn,\n ringProxy,\n ringRecord,\n ringRecordNil,\n ringRecordCons\n};\nexport {\n add,\n mul,\n one,\n zero\n} from \"../Data.Semiring/index.js\";\n","export const intSub = function (x) {\n return function (y) {\n /* jshint bitwise: false */\n return x - y | 0;\n };\n};\n\nexport const numSub = function (n1) {\n return function (n2) {\n return n1 - n2;\n };\n};\n","// Generated by purs version 0.15.2\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Ordering from \"../Data.Ordering/index.js\";\nimport * as Data_Ring from \"../Data.Ring/index.js\";\nimport * as Data_Semiring from \"../Data.Semiring/index.js\";\nimport * as Data_Symbol from \"../Data.Symbol/index.js\";\nimport * as Record_Unsafe from \"../Record.Unsafe/index.js\";\nimport * as Type_Proxy from \"../Type.Proxy/index.js\";\nvar ordVoid = {\n compare: function (v) {\n return function (v1) {\n return Data_Ordering.EQ.value;\n };\n },\n Eq0: function () {\n return Data_Eq.eqVoid;\n }\n};\nvar ordUnit = {\n compare: function (v) {\n return function (v1) {\n return Data_Ordering.EQ.value;\n };\n },\n Eq0: function () {\n return Data_Eq.eqUnit;\n }\n};\nvar ordString = /* #__PURE__ */ (function () {\n return {\n compare: $foreign.ordStringImpl(Data_Ordering.LT.value)(Data_Ordering.EQ.value)(Data_Ordering.GT.value),\n Eq0: function () {\n return Data_Eq.eqString;\n }\n };\n})();\nvar ordRecordNil = {\n compareRecord: function (v) {\n return function (v1) {\n return function (v2) {\n return Data_Ordering.EQ.value;\n };\n };\n },\n EqRecord0: function () {\n return Data_Eq.eqRowNil;\n }\n};\nvar ordProxy = {\n compare: function (v) {\n return function (v1) {\n return Data_Ordering.EQ.value;\n };\n },\n Eq0: function () {\n return Data_Eq.eqProxy;\n }\n};\nvar ordOrdering = {\n compare: function (v) {\n return function (v1) {\n if (v instanceof Data_Ordering.LT && v1 instanceof Data_Ordering.LT) {\n return Data_Ordering.EQ.value;\n };\n if (v instanceof Data_Ordering.EQ && v1 instanceof Data_Ordering.EQ) {\n return Data_Ordering.EQ.value;\n };\n if (v instanceof Data_Ordering.GT && v1 instanceof Data_Ordering.GT) {\n return Data_Ordering.EQ.value;\n };\n if (v instanceof Data_Ordering.LT) {\n return Data_Ordering.LT.value;\n };\n if (v instanceof Data_Ordering.EQ && v1 instanceof Data_Ordering.LT) {\n return Data_Ordering.GT.value;\n };\n if (v instanceof Data_Ordering.EQ && v1 instanceof Data_Ordering.GT) {\n return Data_Ordering.LT.value;\n };\n if (v instanceof Data_Ordering.GT) {\n return Data_Ordering.GT.value;\n };\n throw new Error(\"Failed pattern match at Data.Ord (line 126, column 1 - line 133, column 20): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n },\n Eq0: function () {\n return Data_Ordering.eqOrdering;\n }\n};\nvar ordNumber = /* #__PURE__ */ (function () {\n return {\n compare: $foreign.ordNumberImpl(Data_Ordering.LT.value)(Data_Ordering.EQ.value)(Data_Ordering.GT.value),\n Eq0: function () {\n return Data_Eq.eqNumber;\n }\n };\n})();\nvar ordInt = /* #__PURE__ */ (function () {\n return {\n compare: $foreign.ordIntImpl(Data_Ordering.LT.value)(Data_Ordering.EQ.value)(Data_Ordering.GT.value),\n Eq0: function () {\n return Data_Eq.eqInt;\n }\n };\n})();\nvar ordChar = /* #__PURE__ */ (function () {\n return {\n compare: $foreign.ordCharImpl(Data_Ordering.LT.value)(Data_Ordering.EQ.value)(Data_Ordering.GT.value),\n Eq0: function () {\n return Data_Eq.eqChar;\n }\n };\n})();\nvar ordBoolean = /* #__PURE__ */ (function () {\n return {\n compare: $foreign.ordBooleanImpl(Data_Ordering.LT.value)(Data_Ordering.EQ.value)(Data_Ordering.GT.value),\n Eq0: function () {\n return Data_Eq.eqBoolean;\n }\n };\n})();\nvar compareRecord = function (dict) {\n return dict.compareRecord;\n};\nvar ordRecord = function () {\n return function (dictOrdRecord) {\n return {\n compare: compareRecord(dictOrdRecord)(Type_Proxy[\"Proxy\"].value),\n Eq0: function () {\n return Data_Eq.eqRec()(dictOrdRecord.EqRecord0());\n }\n };\n };\n};\nvar compare1 = function (dict) {\n return dict.compare1;\n};\nvar compare = function (dict) {\n return dict.compare;\n};\nvar comparing = function (dictOrd) {\n return function (f) {\n return function (x) {\n return function (y) {\n return compare(dictOrd)(f(x))(f(y));\n };\n };\n };\n};\nvar greaterThan = function (dictOrd) {\n return function (a1) {\n return function (a2) {\n var v = compare(dictOrd)(a1)(a2);\n if (v instanceof Data_Ordering.GT) {\n return true;\n };\n return false;\n };\n };\n};\nvar greaterThanOrEq = function (dictOrd) {\n return function (a1) {\n return function (a2) {\n var v = compare(dictOrd)(a1)(a2);\n if (v instanceof Data_Ordering.LT) {\n return false;\n };\n return true;\n };\n };\n};\nvar lessThan = function (dictOrd) {\n return function (a1) {\n return function (a2) {\n var v = compare(dictOrd)(a1)(a2);\n if (v instanceof Data_Ordering.LT) {\n return true;\n };\n return false;\n };\n };\n};\nvar signum = function (dictOrd) {\n return function (dictRing) {\n return function (x) {\n var $47 = lessThan(dictOrd)(x)(Data_Semiring.zero(dictRing.Semiring0()));\n if ($47) {\n return Data_Ring.negate(dictRing)(Data_Semiring.one(dictRing.Semiring0()));\n };\n var $48 = greaterThan(dictOrd)(x)(Data_Semiring.zero(dictRing.Semiring0()));\n if ($48) {\n return Data_Semiring.one(dictRing.Semiring0());\n };\n return x;\n };\n };\n};\nvar lessThanOrEq = function (dictOrd) {\n return function (a1) {\n return function (a2) {\n var v = compare(dictOrd)(a1)(a2);\n if (v instanceof Data_Ordering.GT) {\n return false;\n };\n return true;\n };\n };\n};\nvar max = function (dictOrd) {\n return function (x) {\n return function (y) {\n var v = compare(dictOrd)(x)(y);\n if (v instanceof Data_Ordering.LT) {\n return y;\n };\n if (v instanceof Data_Ordering.EQ) {\n return x;\n };\n if (v instanceof Data_Ordering.GT) {\n return x;\n };\n throw new Error(\"Failed pattern match at Data.Ord (line 181, column 3 - line 184, column 12): \" + [ v.constructor.name ]);\n };\n };\n};\nvar min = function (dictOrd) {\n return function (x) {\n return function (y) {\n var v = compare(dictOrd)(x)(y);\n if (v instanceof Data_Ordering.LT) {\n return x;\n };\n if (v instanceof Data_Ordering.EQ) {\n return x;\n };\n if (v instanceof Data_Ordering.GT) {\n return y;\n };\n throw new Error(\"Failed pattern match at Data.Ord (line 172, column 3 - line 175, column 12): \" + [ v.constructor.name ]);\n };\n };\n};\nvar ordArray = function (dictOrd) {\n return {\n compare: (function () {\n var toDelta = function (x) {\n return function (y) {\n var v = compare(dictOrd)(x)(y);\n if (v instanceof Data_Ordering.EQ) {\n return 0;\n };\n if (v instanceof Data_Ordering.LT) {\n return 1;\n };\n if (v instanceof Data_Ordering.GT) {\n return -1 | 0;\n };\n throw new Error(\"Failed pattern match at Data.Ord (line 79, column 7 - line 82, column 17): \" + [ v.constructor.name ]);\n };\n };\n return function (xs) {\n return function (ys) {\n return compare(ordInt)(0)($foreign.ordArrayImpl(toDelta)(xs)(ys));\n };\n };\n })(),\n Eq0: function () {\n return Data_Eq.eqArray(dictOrd.Eq0());\n }\n };\n};\nvar ord1Array = {\n compare1: function (dictOrd) {\n return compare(ordArray(dictOrd));\n },\n Eq10: function () {\n return Data_Eq.eq1Array;\n }\n};\nvar ordRecordCons = function (dictOrdRecord) {\n return function () {\n return function (dictIsSymbol) {\n return function (dictOrd) {\n return {\n compareRecord: function (v) {\n return function (ra) {\n return function (rb) {\n var key = Data_Symbol.reflectSymbol(dictIsSymbol)(Type_Proxy[\"Proxy\"].value);\n var left = compare(dictOrd)(Record_Unsafe.unsafeGet(key)(ra))(Record_Unsafe.unsafeGet(key)(rb));\n var $53 = Data_Eq.notEq(Data_Ordering.eqOrdering)(left)(Data_Ordering.EQ.value);\n if ($53) {\n return left;\n };\n return compareRecord(dictOrdRecord)(Type_Proxy[\"Proxy\"].value)(ra)(rb);\n };\n };\n },\n EqRecord0: function () {\n return Data_Eq.eqRowCons(dictOrdRecord.EqRecord0())()(dictIsSymbol)(dictOrd.Eq0());\n }\n };\n };\n };\n };\n};\nvar clamp = function (dictOrd) {\n return function (low) {\n return function (hi) {\n return function (x) {\n return min(dictOrd)(hi)(max(dictOrd)(low)(x));\n };\n };\n };\n};\nvar between = function (dictOrd) {\n return function (low) {\n return function (hi) {\n return function (x) {\n if (lessThan(dictOrd)(x)(low)) {\n return false;\n };\n if (greaterThan(dictOrd)(x)(hi)) {\n return false;\n };\n return true;\n };\n };\n };\n};\nvar abs = function (dictOrd) {\n return function (dictRing) {\n return function (x) {\n var $57 = greaterThanOrEq(dictOrd)(x)(Data_Semiring.zero(dictRing.Semiring0()));\n if ($57) {\n return x;\n };\n return Data_Ring.negate(dictRing)(x);\n };\n };\n};\nexport {\n compare,\n compare1,\n lessThan,\n lessThanOrEq,\n greaterThan,\n greaterThanOrEq,\n comparing,\n min,\n max,\n clamp,\n between,\n abs,\n signum,\n compareRecord,\n ordBoolean,\n ordInt,\n ordNumber,\n ordString,\n ordChar,\n ordUnit,\n ordVoid,\n ordProxy,\n ordArray,\n ordOrdering,\n ord1Array,\n ordRecordNil,\n ordRecordCons,\n ordRecord\n};\nexport {\n EQ,\n GT,\n LT\n} from \"../Data.Ordering/index.js\";\n","// Generated by purs version 0.15.2\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Data_Ordering from \"../Data.Ordering/index.js\";\nimport * as Data_Symbol from \"../Data.Symbol/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nimport * as Record_Unsafe from \"../Record.Unsafe/index.js\";\nimport * as Type_Proxy from \"../Type.Proxy/index.js\";\nvar topRecord = function (dict) {\n return dict.topRecord;\n};\nvar top = function (dict) {\n return dict.top;\n};\nvar boundedUnit = {\n top: Data_Unit.unit,\n bottom: Data_Unit.unit,\n Ord0: function () {\n return Data_Ord.ordUnit;\n }\n};\nvar boundedRecordNil = {\n topRecord: function (v) {\n return function (v1) {\n return {};\n };\n },\n bottomRecord: function (v) {\n return function (v1) {\n return {};\n };\n },\n OrdRecord0: function () {\n return Data_Ord.ordRecordNil;\n }\n};\nvar boundedProxy = /* #__PURE__ */ (function () {\n return {\n bottom: Type_Proxy[\"Proxy\"].value,\n top: Type_Proxy[\"Proxy\"].value,\n Ord0: function () {\n return Data_Ord.ordProxy;\n }\n };\n})();\nvar boundedOrdering = /* #__PURE__ */ (function () {\n return {\n top: Data_Ordering.GT.value,\n bottom: Data_Ordering.LT.value,\n Ord0: function () {\n return Data_Ord.ordOrdering;\n }\n };\n})();\nvar boundedNumber = {\n top: $foreign.topNumber,\n bottom: $foreign.bottomNumber,\n Ord0: function () {\n return Data_Ord.ordNumber;\n }\n};\nvar boundedInt = {\n top: $foreign.topInt,\n bottom: $foreign.bottomInt,\n Ord0: function () {\n return Data_Ord.ordInt;\n }\n};\nvar boundedChar = {\n top: $foreign.topChar,\n bottom: $foreign.bottomChar,\n Ord0: function () {\n return Data_Ord.ordChar;\n }\n};\nvar boundedBoolean = {\n top: true,\n bottom: false,\n Ord0: function () {\n return Data_Ord.ordBoolean;\n }\n};\nvar bottomRecord = function (dict) {\n return dict.bottomRecord;\n};\nvar boundedRecord = function () {\n return function (dictBoundedRecord) {\n return {\n top: topRecord(dictBoundedRecord)(Type_Proxy[\"Proxy\"].value)(Type_Proxy[\"Proxy\"].value),\n bottom: bottomRecord(dictBoundedRecord)(Type_Proxy[\"Proxy\"].value)(Type_Proxy[\"Proxy\"].value),\n Ord0: function () {\n return Data_Ord.ordRecord()(dictBoundedRecord.OrdRecord0());\n }\n };\n };\n};\nvar bottom = function (dict) {\n return dict.bottom;\n};\nvar boundedRecordCons = function (dictIsSymbol) {\n return function (dictBounded) {\n return function () {\n return function () {\n return function (dictBoundedRecord) {\n return {\n topRecord: function (v) {\n return function (rowProxy) {\n var tail = topRecord(dictBoundedRecord)(Type_Proxy[\"Proxy\"].value)(rowProxy);\n var key = Data_Symbol.reflectSymbol(dictIsSymbol)(Type_Proxy[\"Proxy\"].value);\n var insert = Record_Unsafe.unsafeSet(key);\n return insert(top(dictBounded))(tail);\n };\n },\n bottomRecord: function (v) {\n return function (rowProxy) {\n var tail = bottomRecord(dictBoundedRecord)(Type_Proxy[\"Proxy\"].value)(rowProxy);\n var key = Data_Symbol.reflectSymbol(dictIsSymbol)(Type_Proxy[\"Proxy\"].value);\n var insert = Record_Unsafe.unsafeSet(key);\n return insert(bottom(dictBounded))(tail);\n };\n },\n OrdRecord0: function () {\n return Data_Ord.ordRecordCons(dictBoundedRecord.OrdRecord0())()(dictIsSymbol)(dictBounded.Ord0());\n }\n };\n };\n };\n };\n };\n};\nexport {\n bottom,\n top,\n bottomRecord,\n topRecord,\n boundedBoolean,\n boundedInt,\n boundedChar,\n boundedOrdering,\n boundedUnit,\n boundedNumber,\n boundedProxy,\n boundedRecordNil,\n boundedRecordCons,\n boundedRecord\n};\nexport {\n EQ,\n GT,\n LT,\n compare\n} from \"../Data.Ord/index.js\";\n","// Generated by purs version 0.15.2\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Symbol from \"../Data.Symbol/index.js\";\nimport * as Record_Unsafe from \"../Record.Unsafe/index.js\";\nimport * as Type_Proxy from \"../Type.Proxy/index.js\";\nvar showString = {\n show: $foreign.showStringImpl\n};\nvar showRecordFieldsNil = {\n showRecordFields: function (v) {\n return function (v1) {\n return [ ];\n };\n }\n};\nvar showRecordFields = function (dict) {\n return dict.showRecordFields;\n};\nvar showRecord = function () {\n return function () {\n return function (dictShowRecordFields) {\n return {\n show: function (record) {\n var v = showRecordFields(dictShowRecordFields)(Type_Proxy[\"Proxy\"].value)(record);\n if (v.length === 0) {\n return \"{}\";\n };\n return $foreign.intercalate(\" \")([ \"{\", $foreign.intercalate(\", \")(v), \"}\" ]);\n }\n };\n };\n };\n};\nvar showProxy = {\n show: function (v) {\n return \"Proxy\";\n }\n};\nvar showNumber = {\n show: $foreign.showNumberImpl\n};\nvar showInt = {\n show: $foreign.showIntImpl\n};\nvar showChar = {\n show: $foreign.showCharImpl\n};\nvar showBoolean = {\n show: function (v) {\n if (v) {\n return \"true\";\n };\n if (!v) {\n return \"false\";\n };\n throw new Error(\"Failed pattern match at Data.Show (line 23, column 1 - line 25, column 23): \" + [ v.constructor.name ]);\n }\n};\nvar show = function (dict) {\n return dict.show;\n};\nvar showArray = function (dictShow) {\n return {\n show: $foreign.showArrayImpl(show(dictShow))\n };\n};\nvar showRecordFieldsCons = function (dictIsSymbol) {\n return function (dictShowRecordFields) {\n return function (dictShow) {\n return {\n showRecordFields: function (v) {\n return function (record) {\n var tail = showRecordFields(dictShowRecordFields)(Type_Proxy[\"Proxy\"].value)(record);\n var key = Data_Symbol.reflectSymbol(dictIsSymbol)(Type_Proxy[\"Proxy\"].value);\n var focus = Record_Unsafe.unsafeGet(key)(record);\n return $foreign.cons($foreign.intercalate(\": \")([ key, show(dictShow)(focus) ]))(tail);\n };\n }\n };\n };\n };\n};\nexport {\n show,\n showRecordFields,\n showBoolean,\n showInt,\n showNumber,\n showChar,\n showString,\n showArray,\n showProxy,\n showRecord,\n showRecordFieldsNil,\n showRecordFieldsCons\n};\n","export const showIntImpl = function (n) {\n return n.toString();\n};\n\nexport const showNumberImpl = function (n) {\n var str = n.toString();\n return isNaN(str + \".0\") ? str : str + \".0\";\n};\n\nexport const showCharImpl = function (c) {\n var code = c.charCodeAt(0);\n if (code < 0x20 || code === 0x7F) {\n switch (c) {\n case \"\\x07\": return \"'\\\\a'\";\n case \"\\b\": return \"'\\\\b'\";\n case \"\\f\": return \"'\\\\f'\";\n case \"\\n\": return \"'\\\\n'\";\n case \"\\r\": return \"'\\\\r'\";\n case \"\\t\": return \"'\\\\t'\";\n case \"\\v\": return \"'\\\\v'\";\n }\n return \"'\\\\\" + code.toString(10) + \"'\";\n }\n return c === \"'\" || c === \"\\\\\" ? \"'\\\\\" + c + \"'\" : \"'\" + c + \"'\";\n};\n\nexport const showStringImpl = function (s) {\n var l = s.length;\n return \"\\\"\" + s.replace(\n /[\\0-\\x1F\\x7F\"\\\\]/g, // eslint-disable-line no-control-regex\n function (c, i) {\n switch (c) {\n case \"\\\"\":\n case \"\\\\\":\n return \"\\\\\" + c;\n case \"\\x07\": return \"\\\\a\";\n case \"\\b\": return \"\\\\b\";\n case \"\\f\": return \"\\\\f\";\n case \"\\n\": return \"\\\\n\";\n case \"\\r\": return \"\\\\r\";\n case \"\\t\": return \"\\\\t\";\n case \"\\v\": return \"\\\\v\";\n }\n var k = i + 1;\n var empty = k < l && s[k] >= \"0\" && s[k] <= \"9\" ? \"\\\\&\" : \"\";\n return \"\\\\\" + c.charCodeAt(0).toString(10) + empty;\n }\n ) + \"\\\"\";\n};\n\nexport const showArrayImpl = function (f) {\n return function (xs) {\n var ss = [];\n for (var i = 0, l = xs.length; i < l; i++) {\n ss[i] = f(xs[i]);\n }\n return \"[\" + ss.join(\",\") + \"]\";\n };\n};\n\nexport const cons = function (head) {\n return function (tail) {\n return [head].concat(tail);\n };\n};\n\nexport const intercalate = function (separator) {\n return function (xs) {\n return xs.join(separator);\n };\n};\n","// Generated by purs version 0.15.2\nimport * as Data_Show from \"../Data.Show/index.js\";\nimport * as Data_Symbol from \"../Data.Symbol/index.js\";\nimport * as Type_Proxy from \"../Type.Proxy/index.js\";\nvar Inl = /* #__PURE__ */ (function () {\n function Inl(value0) {\n this.value0 = value0;\n };\n Inl.create = function (value0) {\n return new Inl(value0);\n };\n return Inl;\n})();\nvar Inr = /* #__PURE__ */ (function () {\n function Inr(value0) {\n this.value0 = value0;\n };\n Inr.create = function (value0) {\n return new Inr(value0);\n };\n return Inr;\n})();\nvar Product = /* #__PURE__ */ (function () {\n function Product(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n Product.create = function (value0) {\n return function (value1) {\n return new Product(value0, value1);\n };\n };\n return Product;\n})();\nvar NoConstructors = function (x) {\n return x;\n};\nvar NoArguments = /* #__PURE__ */ (function () {\n function NoArguments() {\n\n };\n NoArguments.value = new NoArguments();\n return NoArguments;\n})();\nvar Constructor = function (x) {\n return x;\n};\nvar Argument = function (x) {\n return x;\n};\nvar to = function (dict) {\n return dict.to;\n};\nvar showSum = function (dictShow) {\n return function (dictShow1) {\n return {\n show: function (v) {\n if (v instanceof Inl) {\n return \"(Inl \" + (Data_Show.show(dictShow)(v.value0) + \")\");\n };\n if (v instanceof Inr) {\n return \"(Inr \" + (Data_Show.show(dictShow1)(v.value0) + \")\");\n };\n throw new Error(\"Failed pattern match at Data.Generic.Rep (line 32, column 1 - line 34, column 42): \" + [ v.constructor.name ]);\n }\n };\n };\n};\nvar showProduct = function (dictShow) {\n return function (dictShow1) {\n return {\n show: function (v) {\n return \"(Product \" + (Data_Show.show(dictShow)(v.value0) + (\" \" + (Data_Show.show(dictShow1)(v.value1) + \")\")));\n }\n };\n };\n};\nvar showNoArguments = {\n show: function (v) {\n return \"NoArguments\";\n }\n};\nvar showConstructor = function (dictIsSymbol) {\n return function (dictShow) {\n return {\n show: function (v) {\n return \"(Constructor @\" + (Data_Show.show(Data_Show.showString)(Data_Symbol.reflectSymbol(dictIsSymbol)(Type_Proxy[\"Proxy\"].value)) + (\" \" + (Data_Show.show(dictShow)(v) + \")\")));\n }\n };\n };\n};\nvar showArgument = function (dictShow) {\n return {\n show: function (v) {\n return \"(Argument \" + (Data_Show.show(dictShow)(v) + \")\");\n }\n };\n};\nvar repOf = function (dictGeneric) {\n return function (v) {\n return Type_Proxy[\"Proxy\"].value;\n };\n};\nvar from = function (dict) {\n return dict.from;\n};\nexport {\n to,\n from,\n repOf,\n NoArguments,\n Inl,\n Inr,\n Product,\n Constructor,\n Argument,\n showNoArguments,\n showSum,\n showProduct,\n showConstructor,\n showArgument\n};\n","// Generated by purs version 0.15.2\nimport * as Control_Alt from \"../Control.Alt/index.js\";\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Apply from \"../Control.Apply/index.js\";\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Data_Bounded from \"../Data.Bounded/index.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Functor_Invariant from \"../Data.Functor.Invariant/index.js\";\nimport * as Data_Generic_Rep from \"../Data.Generic.Rep/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Data_Ordering from \"../Data.Ordering/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nimport * as Data_Semiring from \"../Data.Semiring/index.js\";\nimport * as Data_Show from \"../Data.Show/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nvar Nothing = /* #__PURE__ */ (function () {\n function Nothing() {\n\n };\n Nothing.value = new Nothing();\n return Nothing;\n})();\nvar Just = /* #__PURE__ */ (function () {\n function Just(value0) {\n this.value0 = value0;\n };\n Just.create = function (value0) {\n return new Just(value0);\n };\n return Just;\n})();\nvar showMaybe = function (dictShow) {\n return {\n show: function (v) {\n if (v instanceof Just) {\n return \"(Just \" + (Data_Show.show(dictShow)(v.value0) + \")\");\n };\n if (v instanceof Nothing) {\n return \"Nothing\";\n };\n throw new Error(\"Failed pattern match at Data.Maybe (line 223, column 1 - line 225, column 28): \" + [ v.constructor.name ]);\n }\n };\n};\nvar semigroupMaybe = function (dictSemigroup) {\n return {\n append: function (v) {\n return function (v1) {\n if (v instanceof Nothing) {\n return v1;\n };\n if (v1 instanceof Nothing) {\n return v;\n };\n if (v instanceof Just && v1 instanceof Just) {\n return new Just(Data_Semigroup.append(dictSemigroup)(v.value0)(v1.value0));\n };\n throw new Error(\"Failed pattern match at Data.Maybe (line 182, column 1 - line 185, column 43): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n }\n };\n};\nvar optional = function (dictAlt) {\n return function (dictApplicative) {\n return function (a) {\n return Control_Alt.alt(dictAlt)(Data_Functor.map(dictAlt.Functor0())(Just.create)(a))(Control_Applicative.pure(dictApplicative)(Nothing.value));\n };\n };\n};\nvar monoidMaybe = function (dictSemigroup) {\n return {\n mempty: Nothing.value,\n Semigroup0: function () {\n return semigroupMaybe(dictSemigroup);\n }\n };\n};\nvar maybe$prime = function (v) {\n return function (v1) {\n return function (v2) {\n if (v2 instanceof Nothing) {\n return v(Data_Unit.unit);\n };\n if (v2 instanceof Just) {\n return v1(v2.value0);\n };\n throw new Error(\"Failed pattern match at Data.Maybe (line 250, column 1 - line 250, column 62): \" + [ v.constructor.name, v1.constructor.name, v2.constructor.name ]);\n };\n };\n};\nvar maybe = function (v) {\n return function (v1) {\n return function (v2) {\n if (v2 instanceof Nothing) {\n return v;\n };\n if (v2 instanceof Just) {\n return v1(v2.value0);\n };\n throw new Error(\"Failed pattern match at Data.Maybe (line 237, column 1 - line 237, column 51): \" + [ v.constructor.name, v1.constructor.name, v2.constructor.name ]);\n };\n };\n};\nvar isNothing = /* #__PURE__ */ maybe(true)(/* #__PURE__ */ Data_Function[\"const\"](false));\nvar isJust = /* #__PURE__ */ maybe(false)(/* #__PURE__ */ Data_Function[\"const\"](true));\nvar genericMaybe = {\n to: function (x) {\n if (x instanceof Data_Generic_Rep.Inl) {\n return Nothing.value;\n };\n if (x instanceof Data_Generic_Rep.Inr) {\n return new Just(x.value0);\n };\n throw new Error(\"Failed pattern match at Data.Maybe (line 227, column 1 - line 227, column 52): \" + [ x.constructor.name ]);\n },\n from: function (x) {\n if (x instanceof Nothing) {\n return new Data_Generic_Rep.Inl(Data_Generic_Rep.NoArguments.value);\n };\n if (x instanceof Just) {\n return new Data_Generic_Rep.Inr(x.value0);\n };\n throw new Error(\"Failed pattern match at Data.Maybe (line 227, column 1 - line 227, column 52): \" + [ x.constructor.name ]);\n }\n};\nvar functorMaybe = {\n map: function (v) {\n return function (v1) {\n if (v1 instanceof Just) {\n return new Just(v(v1.value0));\n };\n return Nothing.value;\n };\n }\n};\nvar invariantMaybe = {\n imap: /* #__PURE__ */ Data_Functor_Invariant.imapF(functorMaybe)\n};\nvar fromMaybe$prime = function (a) {\n return maybe$prime(a)(Control_Category.identity(Control_Category.categoryFn));\n};\nvar fromMaybe = function (a) {\n return maybe(a)(Control_Category.identity(Control_Category.categoryFn));\n};\nvar fromJust = function () {\n return function (v) {\n if (v instanceof Just) {\n return v.value0;\n };\n throw new Error(\"Failed pattern match at Data.Maybe (line 288, column 1 - line 288, column 46): \" + [ v.constructor.name ]);\n };\n};\nvar extendMaybe = {\n extend: function (v) {\n return function (v1) {\n if (v1 instanceof Nothing) {\n return Nothing.value;\n };\n return new Just(v(v1));\n };\n },\n Functor0: function () {\n return functorMaybe;\n }\n};\nvar eqMaybe = function (dictEq) {\n return {\n eq: function (x) {\n return function (y) {\n if (x instanceof Nothing && y instanceof Nothing) {\n return true;\n };\n if (x instanceof Just && y instanceof Just) {\n return Data_Eq.eq(dictEq)(x.value0)(y.value0);\n };\n return false;\n };\n }\n };\n};\nvar ordMaybe = function (dictOrd) {\n return {\n compare: function (x) {\n return function (y) {\n if (x instanceof Nothing && y instanceof Nothing) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof Nothing) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof Nothing) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof Just && y instanceof Just) {\n return Data_Ord.compare(dictOrd)(x.value0)(y.value0);\n };\n throw new Error(\"Failed pattern match at Data.Maybe (line 0, column 0 - line 0, column 0): \" + [ x.constructor.name, y.constructor.name ]);\n };\n },\n Eq0: function () {\n return eqMaybe(dictOrd.Eq0());\n }\n };\n};\nvar eq1Maybe = {\n eq1: function (dictEq) {\n return Data_Eq.eq(eqMaybe(dictEq));\n }\n};\nvar ord1Maybe = {\n compare1: function (dictOrd) {\n return Data_Ord.compare(ordMaybe(dictOrd));\n },\n Eq10: function () {\n return eq1Maybe;\n }\n};\nvar boundedMaybe = function (dictBounded) {\n return {\n top: new Just(Data_Bounded.top(dictBounded)),\n bottom: Nothing.value,\n Ord0: function () {\n return ordMaybe(dictBounded.Ord0());\n }\n };\n};\nvar applyMaybe = {\n apply: function (v) {\n return function (v1) {\n if (v instanceof Just) {\n return Data_Functor.map(functorMaybe)(v.value0)(v1);\n };\n if (v instanceof Nothing) {\n return Nothing.value;\n };\n throw new Error(\"Failed pattern match at Data.Maybe (line 67, column 1 - line 69, column 30): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n },\n Functor0: function () {\n return functorMaybe;\n }\n};\nvar bindMaybe = {\n bind: function (v) {\n return function (v1) {\n if (v instanceof Just) {\n return v1(v.value0);\n };\n if (v instanceof Nothing) {\n return Nothing.value;\n };\n throw new Error(\"Failed pattern match at Data.Maybe (line 125, column 1 - line 127, column 28): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n },\n Apply0: function () {\n return applyMaybe;\n }\n};\nvar semiringMaybe = function (dictSemiring) {\n return {\n zero: Nothing.value,\n one: new Just(Data_Semiring.one(dictSemiring)),\n add: function (v) {\n return function (v1) {\n if (v instanceof Nothing) {\n return v1;\n };\n if (v1 instanceof Nothing) {\n return v;\n };\n if (v instanceof Just && v1 instanceof Just) {\n return new Just(Data_Semiring.add(dictSemiring)(v.value0)(v1.value0));\n };\n throw new Error(\"Failed pattern match at Data.Maybe (line 190, column 1 - line 198, column 28): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n },\n mul: function (x) {\n return function (y) {\n return Control_Apply.apply(applyMaybe)(Data_Functor.map(functorMaybe)(Data_Semiring.mul(dictSemiring))(x))(y);\n };\n }\n };\n};\nvar applicativeMaybe = /* #__PURE__ */ (function () {\n return {\n pure: Just.create,\n Apply0: function () {\n return applyMaybe;\n }\n };\n})();\nvar monadMaybe = {\n Applicative0: function () {\n return applicativeMaybe;\n },\n Bind1: function () {\n return bindMaybe;\n }\n};\nvar altMaybe = {\n alt: function (v) {\n return function (v1) {\n if (v instanceof Nothing) {\n return v1;\n };\n return v;\n };\n },\n Functor0: function () {\n return functorMaybe;\n }\n};\nvar plusMaybe = /* #__PURE__ */ (function () {\n return {\n empty: Nothing.value,\n Alt0: function () {\n return altMaybe;\n }\n };\n})();\nvar alternativeMaybe = {\n Applicative0: function () {\n return applicativeMaybe;\n },\n Plus1: function () {\n return plusMaybe;\n }\n};\nexport {\n Nothing,\n Just,\n maybe,\n maybe$prime,\n fromMaybe,\n fromMaybe$prime,\n isJust,\n isNothing,\n fromJust,\n optional,\n functorMaybe,\n applyMaybe,\n applicativeMaybe,\n altMaybe,\n plusMaybe,\n alternativeMaybe,\n bindMaybe,\n monadMaybe,\n extendMaybe,\n invariantMaybe,\n semigroupMaybe,\n monoidMaybe,\n semiringMaybe,\n eqMaybe,\n eq1Maybe,\n ordMaybe,\n ord1Maybe,\n boundedMaybe,\n showMaybe,\n genericMaybe\n};\n","// Generated by purs version 0.15.2\nimport * as Control_Alt from \"../Control.Alt/index.js\";\nimport * as Control_Apply from \"../Control.Apply/index.js\";\nimport * as Data_Bounded from \"../Data.Bounded/index.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Functor_Invariant from \"../Data.Functor.Invariant/index.js\";\nimport * as Data_Generic_Rep from \"../Data.Generic.Rep/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Data_Ordering from \"../Data.Ordering/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nimport * as Data_Show from \"../Data.Show/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nvar Left = /* #__PURE__ */ (function () {\n function Left(value0) {\n this.value0 = value0;\n };\n Left.create = function (value0) {\n return new Left(value0);\n };\n return Left;\n})();\nvar Right = /* #__PURE__ */ (function () {\n function Right(value0) {\n this.value0 = value0;\n };\n Right.create = function (value0) {\n return new Right(value0);\n };\n return Right;\n})();\nvar showEither = function (dictShow) {\n return function (dictShow1) {\n return {\n show: function (v) {\n if (v instanceof Left) {\n return \"(Left \" + (Data_Show.show(dictShow)(v.value0) + \")\");\n };\n if (v instanceof Right) {\n return \"(Right \" + (Data_Show.show(dictShow1)(v.value0) + \")\");\n };\n throw new Error(\"Failed pattern match at Data.Either (line 173, column 1 - line 175, column 46): \" + [ v.constructor.name ]);\n }\n };\n };\n};\nvar note$prime = function (f) {\n return Data_Maybe[\"maybe$prime\"](function ($105) {\n return Left.create(f($105));\n })(Right.create);\n};\nvar note = function (a) {\n return Data_Maybe.maybe(new Left(a))(Right.create);\n};\nvar genericEither = {\n to: function (x) {\n if (x instanceof Data_Generic_Rep.Inl) {\n return new Left(x.value0);\n };\n if (x instanceof Data_Generic_Rep.Inr) {\n return new Right(x.value0);\n };\n throw new Error(\"Failed pattern match at Data.Either (line 33, column 1 - line 33, column 56): \" + [ x.constructor.name ]);\n },\n from: function (x) {\n if (x instanceof Left) {\n return new Data_Generic_Rep.Inl(x.value0);\n };\n if (x instanceof Right) {\n return new Data_Generic_Rep.Inr(x.value0);\n };\n throw new Error(\"Failed pattern match at Data.Either (line 33, column 1 - line 33, column 56): \" + [ x.constructor.name ]);\n }\n};\nvar functorEither = {\n map: function (f) {\n return function (m) {\n if (m instanceof Left) {\n return new Left(m.value0);\n };\n if (m instanceof Right) {\n return new Right(f(m.value0));\n };\n throw new Error(\"Failed pattern match at Data.Either (line 0, column 0 - line 0, column 0): \" + [ m.constructor.name ]);\n };\n }\n};\nvar invariantEither = {\n imap: /* #__PURE__ */ Data_Functor_Invariant.imapF(functorEither)\n};\nvar fromRight$prime = function (v) {\n return function (v1) {\n if (v1 instanceof Right) {\n return v1.value0;\n };\n return v(Data_Unit.unit);\n };\n};\nvar fromRight = function (v) {\n return function (v1) {\n if (v1 instanceof Right) {\n return v1.value0;\n };\n return v;\n };\n};\nvar fromLeft$prime = function (v) {\n return function (v1) {\n if (v1 instanceof Left) {\n return v1.value0;\n };\n return v(Data_Unit.unit);\n };\n};\nvar fromLeft = function (v) {\n return function (v1) {\n if (v1 instanceof Left) {\n return v1.value0;\n };\n return v;\n };\n};\nvar extendEither = {\n extend: function (v) {\n return function (v1) {\n if (v1 instanceof Left) {\n return new Left(v1.value0);\n };\n return new Right(v(v1));\n };\n },\n Functor0: function () {\n return functorEither;\n }\n};\nvar eqEither = function (dictEq) {\n return function (dictEq1) {\n return {\n eq: function (x) {\n return function (y) {\n if (x instanceof Left && y instanceof Left) {\n return Data_Eq.eq(dictEq)(x.value0)(y.value0);\n };\n if (x instanceof Right && y instanceof Right) {\n return Data_Eq.eq(dictEq1)(x.value0)(y.value0);\n };\n return false;\n };\n }\n };\n };\n};\nvar ordEither = function (dictOrd) {\n return function (dictOrd1) {\n return {\n compare: function (x) {\n return function (y) {\n if (x instanceof Left && y instanceof Left) {\n return Data_Ord.compare(dictOrd)(x.value0)(y.value0);\n };\n if (x instanceof Left) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof Left) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof Right && y instanceof Right) {\n return Data_Ord.compare(dictOrd1)(x.value0)(y.value0);\n };\n throw new Error(\"Failed pattern match at Data.Either (line 0, column 0 - line 0, column 0): \" + [ x.constructor.name, y.constructor.name ]);\n };\n },\n Eq0: function () {\n return eqEither(dictOrd.Eq0())(dictOrd1.Eq0());\n }\n };\n };\n};\nvar eq1Either = function (dictEq) {\n return {\n eq1: function (dictEq1) {\n return Data_Eq.eq(eqEither(dictEq)(dictEq1));\n }\n };\n};\nvar ord1Either = function (dictOrd) {\n return {\n compare1: function (dictOrd1) {\n return Data_Ord.compare(ordEither(dictOrd)(dictOrd1));\n },\n Eq10: function () {\n return eq1Either(dictOrd.Eq0());\n }\n };\n};\nvar either = function (v) {\n return function (v1) {\n return function (v2) {\n if (v2 instanceof Left) {\n return v(v2.value0);\n };\n if (v2 instanceof Right) {\n return v1(v2.value0);\n };\n throw new Error(\"Failed pattern match at Data.Either (line 208, column 1 - line 208, column 64): \" + [ v.constructor.name, v1.constructor.name, v2.constructor.name ]);\n };\n };\n};\nvar hush = /* #__PURE__ */ (function () {\n return either(Data_Function[\"const\"](Data_Maybe.Nothing.value))(Data_Maybe.Just.create);\n})();\nvar isLeft = /* #__PURE__ */ either(/* #__PURE__ */ Data_Function[\"const\"](true))(/* #__PURE__ */ Data_Function[\"const\"](false));\nvar isRight = /* #__PURE__ */ either(/* #__PURE__ */ Data_Function[\"const\"](false))(/* #__PURE__ */ Data_Function[\"const\"](true));\nvar choose = function (dictAlt) {\n return function (a) {\n return function (b) {\n return Control_Alt.alt(dictAlt)(Data_Functor.map(dictAlt.Functor0())(Left.create)(a))(Data_Functor.map(dictAlt.Functor0())(Right.create)(b));\n };\n };\n};\nvar boundedEither = function (dictBounded) {\n return function (dictBounded1) {\n return {\n top: new Right(Data_Bounded.top(dictBounded1)),\n bottom: new Left(Data_Bounded.bottom(dictBounded)),\n Ord0: function () {\n return ordEither(dictBounded.Ord0())(dictBounded1.Ord0());\n }\n };\n };\n};\nvar blush = /* #__PURE__ */ (function () {\n return either(Data_Maybe.Just.create)(Data_Function[\"const\"](Data_Maybe.Nothing.value));\n})();\nvar applyEither = {\n apply: function (v) {\n return function (v1) {\n if (v instanceof Left) {\n return new Left(v.value0);\n };\n if (v instanceof Right) {\n return Data_Functor.map(functorEither)(v.value0)(v1);\n };\n throw new Error(\"Failed pattern match at Data.Either (line 70, column 1 - line 72, column 30): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n },\n Functor0: function () {\n return functorEither;\n }\n};\nvar bindEither = {\n bind: /* #__PURE__ */ either(function (e) {\n return function (v) {\n return new Left(e);\n };\n })(function (a) {\n return function (f) {\n return f(a);\n };\n }),\n Apply0: function () {\n return applyEither;\n }\n};\nvar semigroupEither = function (dictSemigroup) {\n return {\n append: function (x) {\n return function (y) {\n return Control_Apply.apply(applyEither)(Data_Functor.map(functorEither)(Data_Semigroup.append(dictSemigroup))(x))(y);\n };\n }\n };\n};\nvar applicativeEither = /* #__PURE__ */ (function () {\n return {\n pure: Right.create,\n Apply0: function () {\n return applyEither;\n }\n };\n})();\nvar monadEither = {\n Applicative0: function () {\n return applicativeEither;\n },\n Bind1: function () {\n return bindEither;\n }\n};\nvar altEither = {\n alt: function (v) {\n return function (v1) {\n if (v instanceof Left) {\n return v1;\n };\n return v;\n };\n },\n Functor0: function () {\n return functorEither;\n }\n};\nexport {\n Left,\n Right,\n either,\n choose,\n isLeft,\n isRight,\n fromLeft,\n fromLeft$prime,\n fromRight,\n fromRight$prime,\n note,\n note$prime,\n hush,\n blush,\n functorEither,\n genericEither,\n invariantEither,\n applyEither,\n applicativeEither,\n altEither,\n bindEither,\n monadEither,\n extendEither,\n showEither,\n eqEither,\n eq1Either,\n ordEither,\n ord1Either,\n boundedEither,\n semigroupEither\n};\n","// Generated by purs version 0.15.2\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Functor_Invariant from \"../Data.Functor.Invariant/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Data_Show from \"../Data.Show/index.js\";\nvar Identity = function (x) {\n return x;\n};\nvar showIdentity = function (dictShow) {\n return {\n show: function (v) {\n return \"(Identity \" + (Data_Show.show(dictShow)(v) + \")\");\n }\n };\n};\nvar semiringIdentity = function (dictSemiring) {\n return dictSemiring;\n};\nvar semigroupIdentity = function (dictSemigroup) {\n return dictSemigroup;\n};\nvar ringIdentity = function (dictRing) {\n return dictRing;\n};\nvar ordIdentity = function (dictOrd) {\n return dictOrd;\n};\nvar newtypeIdentity = {\n Coercible0: function () {\n return undefined;\n }\n};\nvar monoidIdentity = function (dictMonoid) {\n return dictMonoid;\n};\nvar lazyIdentity = function (dictLazy) {\n return dictLazy;\n};\nvar heytingAlgebraIdentity = function (dictHeytingAlgebra) {\n return dictHeytingAlgebra;\n};\nvar functorIdentity = {\n map: function (f) {\n return function (m) {\n return f(m);\n };\n }\n};\nvar invariantIdentity = {\n imap: /* #__PURE__ */ Data_Functor_Invariant.imapF(functorIdentity)\n};\nvar extendIdentity = {\n extend: function (f) {\n return function (m) {\n return f(m);\n };\n },\n Functor0: function () {\n return functorIdentity;\n }\n};\nvar euclideanRingIdentity = function (dictEuclideanRing) {\n return dictEuclideanRing;\n};\nvar eqIdentity = function (dictEq) {\n return dictEq;\n};\nvar eq1Identity = {\n eq1: function (dictEq) {\n return Data_Eq.eq(eqIdentity(dictEq));\n }\n};\nvar ord1Identity = {\n compare1: function (dictOrd) {\n return Data_Ord.compare(ordIdentity(dictOrd));\n },\n Eq10: function () {\n return eq1Identity;\n }\n};\nvar comonadIdentity = {\n extract: function (v) {\n return v;\n },\n Extend0: function () {\n return extendIdentity;\n }\n};\nvar commutativeRingIdentity = function (dictCommutativeRing) {\n return dictCommutativeRing;\n};\nvar boundedIdentity = function (dictBounded) {\n return dictBounded;\n};\nvar booleanAlgebraIdentity = function (dictBooleanAlgebra) {\n return dictBooleanAlgebra;\n};\nvar applyIdentity = {\n apply: function (v) {\n return function (v1) {\n return v(v1);\n };\n },\n Functor0: function () {\n return functorIdentity;\n }\n};\nvar bindIdentity = {\n bind: function (v) {\n return function (f) {\n return f(v);\n };\n },\n Apply0: function () {\n return applyIdentity;\n }\n};\nvar applicativeIdentity = {\n pure: Identity,\n Apply0: function () {\n return applyIdentity;\n }\n};\nvar monadIdentity = {\n Applicative0: function () {\n return applicativeIdentity;\n },\n Bind1: function () {\n return bindIdentity;\n }\n};\nvar altIdentity = {\n alt: function (x) {\n return function (v) {\n return x;\n };\n },\n Functor0: function () {\n return functorIdentity;\n }\n};\nexport {\n Identity,\n newtypeIdentity,\n eqIdentity,\n ordIdentity,\n boundedIdentity,\n heytingAlgebraIdentity,\n booleanAlgebraIdentity,\n semigroupIdentity,\n monoidIdentity,\n semiringIdentity,\n euclideanRingIdentity,\n ringIdentity,\n commutativeRingIdentity,\n lazyIdentity,\n showIdentity,\n eq1Identity,\n ord1Identity,\n functorIdentity,\n invariantIdentity,\n altIdentity,\n applyIdentity,\n applicativeIdentity,\n bindIdentity,\n monadIdentity,\n extendIdentity,\n comonadIdentity\n};\n","// Generated by purs version 0.15.2\nimport * as Data_Ring from \"../Data.Ring/index.js\";\nimport * as Data_Semiring from \"../Data.Semiring/index.js\";\nvar commutativeRingUnit = {\n Ring0: function () {\n return Data_Ring.ringUnit;\n }\n};\nvar commutativeRingRecordNil = {\n RingRecord0: function () {\n return Data_Ring.ringRecordNil;\n }\n};\nvar commutativeRingRecordCons = function (dictIsSymbol) {\n return function () {\n return function (dictCommutativeRingRecord) {\n return function (dictCommutativeRing) {\n return {\n RingRecord0: function () {\n return Data_Ring.ringRecordCons(dictIsSymbol)()(dictCommutativeRingRecord.RingRecord0())(dictCommutativeRing.Ring0());\n }\n };\n };\n };\n };\n};\nvar commutativeRingRecord = function () {\n return function (dictCommutativeRingRecord) {\n return {\n Ring0: function () {\n return Data_Ring.ringRecord()(dictCommutativeRingRecord.RingRecord0());\n }\n };\n };\n};\nvar commutativeRingProxy = {\n Ring0: function () {\n return Data_Ring.ringProxy;\n }\n};\nvar commutativeRingNumber = {\n Ring0: function () {\n return Data_Ring.ringNumber;\n }\n};\nvar commutativeRingInt = {\n Ring0: function () {\n return Data_Ring.ringInt;\n }\n};\nvar commutativeRingFn = function (dictCommutativeRing) {\n return {\n Ring0: function () {\n return Data_Ring.ringFn(dictCommutativeRing.Ring0());\n }\n };\n};\nexport {\n commutativeRingInt,\n commutativeRingNumber,\n commutativeRingUnit,\n commutativeRingFn,\n commutativeRingRecord,\n commutativeRingProxy,\n commutativeRingRecordNil,\n commutativeRingRecordCons\n};\nexport {\n add,\n mul,\n one,\n zero\n} from \"../Data.Semiring/index.js\";\n","// Generated by purs version 0.15.2\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_CommutativeRing from \"../Data.CommutativeRing/index.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Ring from \"../Data.Ring/index.js\";\nimport * as Data_Semiring from \"../Data.Semiring/index.js\";\nvar mod = function (dict) {\n return dict.mod;\n};\nvar gcd = function ($copy_dictEq) {\n return function ($copy_dictEuclideanRing) {\n return function ($copy_a) {\n return function ($copy_b) {\n var $tco_var_dictEq = $copy_dictEq;\n var $tco_var_dictEuclideanRing = $copy_dictEuclideanRing;\n var $tco_var_a = $copy_a;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(dictEq, dictEuclideanRing, a, b) {\n var $8 = Data_Eq.eq(dictEq)(b)(Data_Semiring.zero(((dictEuclideanRing.CommutativeRing0()).Ring0()).Semiring0()));\n if ($8) {\n $tco_done = true;\n return a;\n };\n $tco_var_dictEq = dictEq;\n $tco_var_dictEuclideanRing = dictEuclideanRing;\n $tco_var_a = b;\n $copy_b = mod(dictEuclideanRing)(a)(b);\n return;\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_dictEq, $tco_var_dictEuclideanRing, $tco_var_a, $copy_b);\n };\n return $tco_result;\n };\n };\n };\n};\nvar euclideanRingNumber = {\n degree: function (v) {\n return 1;\n },\n div: $foreign.numDiv,\n mod: function (v) {\n return function (v1) {\n return 0.0;\n };\n },\n CommutativeRing0: function () {\n return Data_CommutativeRing.commutativeRingNumber;\n }\n};\nvar euclideanRingInt = {\n degree: $foreign.intDegree,\n div: $foreign.intDiv,\n mod: $foreign.intMod,\n CommutativeRing0: function () {\n return Data_CommutativeRing.commutativeRingInt;\n }\n};\nvar div = function (dict) {\n return dict.div;\n};\nvar lcm = function (dictEq) {\n return function (dictEuclideanRing) {\n return function (a) {\n return function (b) {\n var $10 = Data_Eq.eq(dictEq)(a)(Data_Semiring.zero(((dictEuclideanRing.CommutativeRing0()).Ring0()).Semiring0())) || Data_Eq.eq(dictEq)(b)(Data_Semiring.zero(((dictEuclideanRing.CommutativeRing0()).Ring0()).Semiring0()));\n if ($10) {\n return Data_Semiring.zero(((dictEuclideanRing.CommutativeRing0()).Ring0()).Semiring0());\n };\n return div(dictEuclideanRing)(Data_Semiring.mul(((dictEuclideanRing.CommutativeRing0()).Ring0()).Semiring0())(a)(b))(gcd(dictEq)(dictEuclideanRing)(a)(b));\n };\n };\n };\n};\nvar degree = function (dict) {\n return dict.degree;\n};\nexport {\n degree,\n div,\n mod,\n gcd,\n lcm,\n euclideanRingInt,\n euclideanRingNumber\n};\nexport {\n sub\n} from \"../Data.Ring/index.js\";\nexport {\n add,\n mul,\n one,\n zero\n} from \"../Data.Semiring/index.js\";\n","export const intDegree = function (x) {\n return Math.min(Math.abs(x), 2147483647);\n};\n\n// See the Euclidean definition in\n// https://en.m.wikipedia.org/wiki/Modulo_operation.\nexport const intDiv = function (x) {\n return function (y) {\n if (y === 0) return 0;\n return y > 0 ? Math.floor(x / y) : -Math.floor(x / -y);\n };\n};\n\nexport const intMod = function (x) {\n return function (y) {\n if (y === 0) return 0;\n var yy = Math.abs(y);\n return ((x % yy) + yy) % yy;\n };\n};\n\nexport const numDiv = function (n1) {\n return function (n2) {\n return n1 / n2;\n };\n};\n","// Generated by purs version 0.15.2\nimport * as Data_Boolean from \"../Data.Boolean/index.js\";\nimport * as Data_EuclideanRing from \"../Data.EuclideanRing/index.js\";\nimport * as Data_Ordering from \"../Data.Ordering/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nimport * as Data_Symbol from \"../Data.Symbol/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nimport * as Record_Unsafe from \"../Record.Unsafe/index.js\";\nimport * as Type_Proxy from \"../Type.Proxy/index.js\";\nvar monoidUnit = {\n mempty: Data_Unit.unit,\n Semigroup0: function () {\n return Data_Semigroup.semigroupUnit;\n }\n};\nvar monoidString = {\n mempty: \"\",\n Semigroup0: function () {\n return Data_Semigroup.semigroupString;\n }\n};\nvar monoidRecordNil = {\n memptyRecord: function (v) {\n return {};\n },\n SemigroupRecord0: function () {\n return Data_Semigroup.semigroupRecordNil;\n }\n};\nvar monoidOrdering = /* #__PURE__ */ (function () {\n return {\n mempty: Data_Ordering.EQ.value,\n Semigroup0: function () {\n return Data_Ordering.semigroupOrdering;\n }\n };\n})();\nvar monoidArray = {\n mempty: [ ],\n Semigroup0: function () {\n return Data_Semigroup.semigroupArray;\n }\n};\nvar memptyRecord = function (dict) {\n return dict.memptyRecord;\n};\nvar monoidRecord = function () {\n return function (dictMonoidRecord) {\n return {\n mempty: memptyRecord(dictMonoidRecord)(Type_Proxy[\"Proxy\"].value),\n Semigroup0: function () {\n return Data_Semigroup.semigroupRecord()(dictMonoidRecord.SemigroupRecord0());\n }\n };\n };\n};\nvar mempty = function (dict) {\n return dict.mempty;\n};\nvar monoidFn = function (dictMonoid) {\n return {\n mempty: function (v) {\n return mempty(dictMonoid);\n },\n Semigroup0: function () {\n return Data_Semigroup.semigroupFn(dictMonoid.Semigroup0());\n }\n };\n};\nvar monoidRecordCons = function (dictIsSymbol) {\n return function (dictMonoid) {\n return function () {\n return function (dictMonoidRecord) {\n return {\n memptyRecord: function (v) {\n var tail = memptyRecord(dictMonoidRecord)(Type_Proxy[\"Proxy\"].value);\n var key = Data_Symbol.reflectSymbol(dictIsSymbol)(Type_Proxy[\"Proxy\"].value);\n var insert = Record_Unsafe.unsafeSet(key);\n return insert(mempty(dictMonoid))(tail);\n },\n SemigroupRecord0: function () {\n return Data_Semigroup.semigroupRecordCons(dictIsSymbol)()(dictMonoidRecord.SemigroupRecord0())(dictMonoid.Semigroup0());\n }\n };\n };\n };\n };\n};\nvar power = function (dictMonoid) {\n return function (x) {\n var go = function (p) {\n if (p <= 0) {\n return mempty(dictMonoid);\n };\n if (p === 1) {\n return x;\n };\n if (Data_EuclideanRing.mod(Data_EuclideanRing.euclideanRingInt)(p)(2) === 0) {\n var x$prime = go(Data_EuclideanRing.div(Data_EuclideanRing.euclideanRingInt)(p)(2));\n return Data_Semigroup.append(dictMonoid.Semigroup0())(x$prime)(x$prime);\n };\n if (Data_Boolean.otherwise) {\n var x$prime = go(Data_EuclideanRing.div(Data_EuclideanRing.euclideanRingInt)(p)(2));\n return Data_Semigroup.append(dictMonoid.Semigroup0())(x$prime)(Data_Semigroup.append(dictMonoid.Semigroup0())(x$prime)(x));\n };\n throw new Error(\"Failed pattern match at Data.Monoid (line 88, column 3 - line 88, column 17): \" + [ p.constructor.name ]);\n };\n return go;\n };\n};\nvar guard = function (dictMonoid) {\n return function (v) {\n return function (v1) {\n if (v) {\n return v1;\n };\n if (!v) {\n return mempty(dictMonoid);\n };\n throw new Error(\"Failed pattern match at Data.Monoid (line 96, column 1 - line 96, column 49): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n };\n};\nexport {\n mempty,\n power,\n guard,\n memptyRecord,\n monoidUnit,\n monoidOrdering,\n monoidFn,\n monoidString,\n monoidArray,\n monoidRecord,\n monoidRecordNil,\n monoidRecordCons\n};\n","export const pureE = function (a) {\n return function () {\n return a;\n };\n};\n\nexport const bindE = function (a) {\n return function (f) {\n return function () {\n return f(a())();\n };\n };\n};\n\nexport const untilE = function (f) {\n return function () {\n while (!f());\n };\n};\n\nexport const whileE = function (f) {\n return function (a) {\n return function () {\n while (f()) {\n a();\n }\n };\n };\n};\n\nexport const forE = function (lo) {\n return function (hi) {\n return function (f) {\n return function () {\n for (var i = lo; i < hi; i++) {\n f(i)();\n }\n };\n };\n };\n};\n\nexport const foreachE = function (as) {\n return function (f) {\n return function () {\n for (var i = 0, l = as.length; i < l; i++) {\n f(as[i])();\n }\n };\n };\n};\n","// Generated by purs version 0.15.2\nimport * as $foreign from \"./foreign.js\";\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Apply from \"../Control.Apply/index.js\";\nimport * as Control_Monad from \"../Control.Monad/index.js\";\nimport * as Data_Monoid from \"../Data.Monoid/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nvar $runtime_lazy = function (name, moduleName, init) {\n var state = 0;\n var val;\n return function (lineNumber) {\n if (state === 2) return val;\n if (state === 1) throw new ReferenceError(name + \" was needed before it finished initializing (module \" + moduleName + \", line \" + lineNumber + \")\", moduleName, lineNumber);\n state = 1;\n val = init();\n state = 2;\n return val;\n };\n};\nvar monadEffect = {\n Applicative0: function () {\n return applicativeEffect;\n },\n Bind1: function () {\n return bindEffect;\n }\n};\nvar bindEffect = {\n bind: $foreign.bindE,\n Apply0: function () {\n return $lazy_applyEffect(0);\n }\n};\nvar applicativeEffect = {\n pure: $foreign.pureE,\n Apply0: function () {\n return $lazy_applyEffect(0);\n }\n};\nvar $lazy_functorEffect = /* #__PURE__ */ $runtime_lazy(\"functorEffect\", \"Effect\", function () {\n return {\n map: Control_Applicative.liftA1(applicativeEffect)\n };\n});\nvar $lazy_applyEffect = /* #__PURE__ */ $runtime_lazy(\"applyEffect\", \"Effect\", function () {\n return {\n apply: Control_Monad.ap(monadEffect),\n Functor0: function () {\n return $lazy_functorEffect(0);\n }\n };\n});\nvar functorEffect = /* #__PURE__ */ $lazy_functorEffect(20);\nvar applyEffect = /* #__PURE__ */ $lazy_applyEffect(23);\nvar semigroupEffect = function (dictSemigroup) {\n return {\n append: Control_Apply.lift2(applyEffect)(Data_Semigroup.append(dictSemigroup))\n };\n};\nvar monoidEffect = function (dictMonoid) {\n return {\n mempty: $foreign.pureE(Data_Monoid.mempty(dictMonoid)),\n Semigroup0: function () {\n return semigroupEffect(dictMonoid.Semigroup0());\n }\n };\n};\nexport {\n untilE,\n whileE,\n forE,\n foreachE\n} from \"./foreign.js\";\nexport {\n functorEffect,\n applyEffect,\n applicativeEffect,\n bindEffect,\n monadEffect,\n semigroupEffect,\n monoidEffect\n};\n","export const _new = function (val) {\n return function () {\n return { value: val };\n };\n};\n\nexport const newWithSelf = function (f) {\n return function () {\n var ref = { value: null };\n ref.value = f(ref);\n return ref;\n };\n};\n\nexport const read = function (ref) {\n return function () {\n return ref.value;\n };\n};\n\nexport const modifyImpl = function (f) {\n return function (ref) {\n return function () {\n var t = f(ref.value);\n ref.value = t.state;\n return t.value;\n };\n };\n};\n\nexport const write = function (val) {\n return function (ref) {\n return function () {\n ref.value = val;\n };\n };\n};\n","// Generated by purs version 0.15.2\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Effect from \"../Effect/index.js\";\nvar $$new = $foreign[\"_new\"];\nvar modify$prime = $foreign.modifyImpl;\nvar modify = function (f) {\n return modify$prime(function (s) {\n var s$prime = f(s);\n return {\n state: s$prime,\n value: s$prime\n };\n });\n};\nvar modify_ = function (f) {\n return function (s) {\n return Data_Functor[\"void\"](Effect.functorEffect)(modify(f)(s));\n };\n};\nexport {\n newWithSelf,\n read,\n write\n} from \"./foreign.js\";\nexport {\n $$new as new,\n modify$prime,\n modify,\n modify_\n};\n","// Generated by purs version 0.15.2\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Control_Monad from \"../Control.Monad/index.js\";\nimport * as Data_Either from \"../Data.Either/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Identity from \"../Data.Identity/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Monoid from \"../Data.Monoid/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nimport * as Effect from \"../Effect/index.js\";\nimport * as Effect_Ref from \"../Effect.Ref/index.js\";\nvar Loop = /* #__PURE__ */ (function () {\n function Loop(value0) {\n this.value0 = value0;\n };\n Loop.create = function (value0) {\n return new Loop(value0);\n };\n return Loop;\n})();\nvar Done = /* #__PURE__ */ (function () {\n function Done(value0) {\n this.value0 = value0;\n };\n Done.create = function (value0) {\n return new Done(value0);\n };\n return Done;\n})();\nvar tailRecM = function (dict) {\n return dict.tailRecM;\n};\nvar tailRecM2 = function (dictMonadRec) {\n return function (f) {\n return function (a) {\n return function (b) {\n return tailRecM(dictMonadRec)(function (o) {\n return f(o.a)(o.b);\n })({\n a: a,\n b: b\n });\n };\n };\n };\n};\nvar tailRecM3 = function (dictMonadRec) {\n return function (f) {\n return function (a) {\n return function (b) {\n return function (c) {\n return tailRecM(dictMonadRec)(function (o) {\n return f(o.a)(o.b)(o.c);\n })({\n a: a,\n b: b,\n c: c\n });\n };\n };\n };\n };\n};\nvar untilJust = function (dictMonadRec) {\n return function (m) {\n return tailRecM(dictMonadRec)(function (v) {\n return Data_Functor.mapFlipped((((dictMonadRec.Monad0()).Bind1()).Apply0()).Functor0())(m)(function (v1) {\n if (v1 instanceof Data_Maybe.Nothing) {\n return new Loop(Data_Unit.unit);\n };\n if (v1 instanceof Data_Maybe.Just) {\n return new Done(v1.value0);\n };\n throw new Error(\"Failed pattern match at Control.Monad.Rec.Class (line 155, column 43 - line 157, column 19): \" + [ v1.constructor.name ]);\n });\n })(Data_Unit.unit);\n };\n};\nvar whileJust = function (dictMonoid) {\n return function (dictMonadRec) {\n return function (m) {\n return tailRecM(dictMonadRec)(function (v) {\n return Data_Functor.mapFlipped((((dictMonadRec.Monad0()).Bind1()).Apply0()).Functor0())(m)(function (v1) {\n if (v1 instanceof Data_Maybe.Nothing) {\n return new Done(v);\n };\n if (v1 instanceof Data_Maybe.Just) {\n return new Loop(Data_Semigroup.append(dictMonoid.Semigroup0())(v)(v1.value0));\n };\n throw new Error(\"Failed pattern match at Control.Monad.Rec.Class (line 148, column 45 - line 150, column 26): \" + [ v1.constructor.name ]);\n });\n })(Data_Monoid.mempty(dictMonoid));\n };\n };\n};\nvar tailRec = function (f) {\n var go = function ($copy_v) {\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(v) {\n if (v instanceof Loop) {\n $copy_v = f(v.value0);\n return;\n };\n if (v instanceof Done) {\n $tco_done = true;\n return v.value0;\n };\n throw new Error(\"Failed pattern match at Control.Monad.Rec.Class (line 93, column 3 - line 93, column 25): \" + [ v.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($copy_v);\n };\n return $tco_result;\n };\n return function ($55) {\n return go(f($55));\n };\n};\nvar monadRecMaybe = {\n tailRecM: function (f) {\n return function (a0) {\n var g = function (v) {\n if (v instanceof Data_Maybe.Nothing) {\n return new Done(Data_Maybe.Nothing.value);\n };\n if (v instanceof Data_Maybe.Just && v.value0 instanceof Loop) {\n return new Loop(f(v.value0.value0));\n };\n if (v instanceof Data_Maybe.Just && v.value0 instanceof Done) {\n return new Done(new Data_Maybe.Just(v.value0.value0));\n };\n throw new Error(\"Failed pattern match at Control.Monad.Rec.Class (line 129, column 7 - line 129, column 31): \" + [ v.constructor.name ]);\n };\n return tailRec(g)(f(a0));\n };\n },\n Monad0: function () {\n return Data_Maybe.monadMaybe;\n }\n};\nvar monadRecIdentity = {\n tailRecM: function (f) {\n var runIdentity = function (v) {\n return v;\n };\n var $56 = tailRec(function ($58) {\n return runIdentity(f($58));\n });\n return function ($57) {\n return Data_Identity.Identity($56($57));\n };\n },\n Monad0: function () {\n return Data_Identity.monadIdentity;\n }\n};\nvar monadRecFunction = {\n tailRecM: function (f) {\n return function (a0) {\n return function (e) {\n return tailRec(function (a) {\n return f(a)(e);\n })(a0);\n };\n };\n },\n Monad0: function () {\n return Control_Monad.monadFn;\n }\n};\nvar monadRecEither = {\n tailRecM: function (f) {\n return function (a0) {\n var g = function (v) {\n if (v instanceof Data_Either.Left) {\n return new Done(new Data_Either.Left(v.value0));\n };\n if (v instanceof Data_Either.Right && v.value0 instanceof Loop) {\n return new Loop(f(v.value0.value0));\n };\n if (v instanceof Data_Either.Right && v.value0 instanceof Done) {\n return new Done(new Data_Either.Right(v.value0.value0));\n };\n throw new Error(\"Failed pattern match at Control.Monad.Rec.Class (line 121, column 7 - line 121, column 33): \" + [ v.constructor.name ]);\n };\n return tailRec(g)(f(a0));\n };\n },\n Monad0: function () {\n return Data_Either.monadEither;\n }\n};\nvar monadRecEffect = {\n tailRecM: function (f) {\n return function (a) {\n var fromDone = function (v) {\n if (v instanceof Done) {\n return v.value0;\n };\n throw new Error(\"Failed pattern match at Control.Monad.Rec.Class (line 113, column 30 - line 113, column 44): \" + [ v.constructor.name ]);\n };\n return function __do() {\n var r = Control_Bind.bindFlipped(Effect.bindEffect)(Effect_Ref[\"new\"])(f(a))();\n (function () {\n while (!(function __do() {\n var v = Effect_Ref.read(r)();\n if (v instanceof Loop) {\n var e = f(v.value0)();\n Effect_Ref.write(e)(r)();\n return false;\n };\n if (v instanceof Done) {\n return true;\n };\n throw new Error(\"Failed pattern match at Control.Monad.Rec.Class (line 104, column 22 - line 109, column 28): \" + [ v.constructor.name ]);\n })()) {\n\n };\n return {};\n })();\n return Data_Functor.map(Effect.functorEffect)(fromDone)(Effect_Ref.read(r))();\n };\n };\n },\n Monad0: function () {\n return Effect.monadEffect;\n }\n};\nvar functorStep = {\n map: function (f) {\n return function (m) {\n if (m instanceof Loop) {\n return new Loop(m.value0);\n };\n if (m instanceof Done) {\n return new Done(f(m.value0));\n };\n throw new Error(\"Failed pattern match at Control.Monad.Rec.Class (line 0, column 0 - line 0, column 0): \" + [ m.constructor.name ]);\n };\n }\n};\nvar forever = function (dictMonadRec) {\n return function (ma) {\n return tailRecM(dictMonadRec)(function (u) {\n return Data_Functor.voidRight((((dictMonadRec.Monad0()).Bind1()).Apply0()).Functor0())(new Loop(u))(ma);\n })(Data_Unit.unit);\n };\n};\nvar bifunctorStep = {\n bimap: function (v) {\n return function (v1) {\n return function (v2) {\n if (v2 instanceof Loop) {\n return new Loop(v(v2.value0));\n };\n if (v2 instanceof Done) {\n return new Done(v1(v2.value0));\n };\n throw new Error(\"Failed pattern match at Control.Monad.Rec.Class (line 29, column 1 - line 31, column 34): \" + [ v.constructor.name, v1.constructor.name, v2.constructor.name ]);\n };\n };\n }\n};\nexport {\n Loop,\n Done,\n tailRec,\n tailRecM,\n tailRecM2,\n tailRecM3,\n forever,\n whileJust,\n untilJust,\n functorStep,\n bifunctorStep,\n monadRecIdentity,\n monadRecEffect,\n monadRecFunction,\n monadRecEither,\n monadRecMaybe\n};\n","export const map_ = function (f) {\n return function (a) {\n return function () {\n return f(a());\n };\n };\n};\n\nexport const pure_ = function (a) {\n return function () {\n return a;\n };\n};\n\nexport const bind_ = function (a) {\n return function (f) {\n return function () {\n return f(a())();\n };\n };\n};\n\nexport const run = function (f) {\n return f();\n};\n\nfunction whileST(f) {\n return function (a) {\n return function () {\n while (f()) {\n a();\n }\n };\n };\n}\nexport { whileST as while };\n\nfunction forST(lo) {\n return function (hi) {\n return function (f) {\n return function () {\n for (var i = lo; i < hi; i++) {\n f(i)();\n }\n };\n };\n };\n}\nexport { forST as for };\n\nexport const foreach = function (as) {\n return function (f) {\n return function () {\n for (var i = 0, l = as.length; i < l; i++) {\n f(as[i])();\n }\n };\n };\n};\n\nfunction newSTRef(val) {\n return function () {\n return { value: val };\n };\n}\nexport { newSTRef as new };\n\nexport const read = function (ref) {\n return function () {\n return ref.value;\n };\n};\n\nexport const modifyImpl = function (f) {\n return function (ref) {\n return function () {\n var t = f(ref.value);\n ref.value = t.state;\n return t.value;\n };\n };\n};\n\nexport const write = function (a) {\n return function (ref) {\n return function () {\n return ref.value = a; // eslint-disable-line no-return-assign\n };\n };\n};\n","// Generated by purs version 0.15.2\nimport * as $foreign from \"./foreign.js\";\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Control_Monad from \"../Control.Monad/index.js\";\nimport * as Control_Monad_Rec_Class from \"../Control.Monad.Rec.Class/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nvar $runtime_lazy = function (name, moduleName, init) {\n var state = 0;\n var val;\n return function (lineNumber) {\n if (state === 2) return val;\n if (state === 1) throw new ReferenceError(name + \" was needed before it finished initializing (module \" + moduleName + \", line \" + lineNumber + \")\", moduleName, lineNumber);\n state = 1;\n val = init();\n state = 2;\n return val;\n };\n};\nvar modify$prime = $foreign.modifyImpl;\nvar modify = function (f) {\n return modify$prime(function (s) {\n var s$prime = f(s);\n return {\n state: s$prime,\n value: s$prime\n };\n });\n};\nvar functorST = {\n map: $foreign.map_\n};\nvar monadST = {\n Applicative0: function () {\n return applicativeST;\n },\n Bind1: function () {\n return bindST;\n }\n};\nvar bindST = {\n bind: $foreign.bind_,\n Apply0: function () {\n return $lazy_applyST(0);\n }\n};\nvar applicativeST = {\n pure: $foreign.pure_,\n Apply0: function () {\n return $lazy_applyST(0);\n }\n};\nvar $lazy_applyST = /* #__PURE__ */ $runtime_lazy(\"applyST\", \"Control.Monad.ST.Internal\", function () {\n return {\n apply: Control_Monad.ap(monadST),\n Functor0: function () {\n return functorST;\n }\n };\n});\nvar applyST = /* #__PURE__ */ $lazy_applyST(46);\nvar monadRecST = {\n tailRecM: function (f) {\n return function (a) {\n var isLooping = function (v) {\n if (v instanceof Control_Monad_Rec_Class.Loop) {\n return true;\n };\n return false;\n };\n var fromDone = function (v) {\n if (v instanceof Control_Monad_Rec_Class.Done) {\n return v.value0;\n };\n throw new Error(\"Failed pattern match at Control.Monad.ST.Internal (line 69, column 32 - line 69, column 46): \" + [ v.constructor.name ]);\n };\n return Control_Bind.bind(bindST)(Control_Bind.bindFlipped(bindST)($foreign[\"new\"])(f(a)))(function (r) {\n return Control_Bind.discard(Control_Bind.discardUnit)(bindST)($foreign[\"while\"](Data_Functor.map(functorST)(isLooping)($foreign.read(r)))(Control_Bind.bind(bindST)($foreign.read(r))(function (v) {\n if (v instanceof Control_Monad_Rec_Class.Loop) {\n return Control_Bind.bind(bindST)(f(v.value0))(function (e) {\n return Data_Functor[\"void\"](functorST)($foreign.write(e)(r));\n });\n };\n if (v instanceof Control_Monad_Rec_Class.Done) {\n return Control_Applicative.pure(applicativeST)(Data_Unit.unit);\n };\n throw new Error(\"Failed pattern match at Control.Monad.ST.Internal (line 61, column 18 - line 65, column 28): \" + [ v.constructor.name ]);\n })))(function () {\n return Data_Functor.map(functorST)(fromDone)($foreign.read(r));\n });\n });\n };\n },\n Monad0: function () {\n return monadST;\n }\n};\nexport {\n run,\n while,\n for,\n foreach,\n new,\n read,\n write\n} from \"./foreign.js\";\nexport {\n modify$prime,\n modify,\n functorST,\n applyST,\n applicativeST,\n bindST,\n monadST,\n monadRecST\n};\n","function newSTArray () {\n return [];\n}\nexport { newSTArray as new };\n\nexport const peekImpl = function (just) {\n return function (nothing) {\n return function (i) {\n return function (xs) {\n return function () {\n return i >= 0 && i < xs.length ? just(xs[i]) : nothing;\n };\n };\n };\n };\n};\n\nexport const poke = function (i) {\n return function (a) {\n return function (xs) {\n return function () {\n var ret = i >= 0 && i < xs.length;\n if (ret) xs[i] = a;\n return ret;\n };\n };\n };\n};\n\nexport const popImpl = function (just) {\n return function (nothing) {\n return function (xs) {\n return function () {\n return xs.length > 0 ? just(xs.pop()) : nothing;\n };\n };\n };\n};\n\nexport const pushAll = function (as) {\n return function (xs) {\n return function () {\n return xs.push.apply(xs, as);\n };\n };\n};\n\nexport const shiftImpl = function (just) {\n return function (nothing) {\n return function (xs) {\n return function () {\n return xs.length > 0 ? just(xs.shift()) : nothing;\n };\n };\n };\n};\n\nexport const unshiftAll = function (as) {\n return function (xs) {\n return function () {\n return xs.unshift.apply(xs, as);\n };\n };\n};\n\nexport const splice = function (i) {\n return function (howMany) {\n return function (bs) {\n return function (xs) {\n return function () {\n return xs.splice.apply(xs, [i, howMany].concat(bs));\n };\n };\n };\n };\n};\n\nexport const unsafeFreeze = function (xs) {\n return function () {\n return xs;\n };\n};\n\nexport const unsafeThaw = function (xs) {\n return function () {\n return xs;\n };\n};\n\nfunction copyImpl(xs) {\n return function () {\n return xs.slice();\n };\n}\n\nexport const freeze = copyImpl;\n\nexport const thaw = copyImpl;\n\nexport const sortByImpl = (function () {\n function mergeFromTo(compare, fromOrdering, xs1, xs2, from, to) {\n var mid;\n var i;\n var j;\n var k;\n var x;\n var y;\n var c;\n\n mid = from + ((to - from) >> 1);\n if (mid - from > 1) mergeFromTo(compare, fromOrdering, xs2, xs1, from, mid);\n if (to - mid > 1) mergeFromTo(compare, fromOrdering, xs2, xs1, mid, to);\n\n i = from;\n j = mid;\n k = from;\n while (i < mid && j < to) {\n x = xs2[i];\n y = xs2[j];\n c = fromOrdering(compare(x)(y));\n if (c > 0) {\n xs1[k++] = y;\n ++j;\n }\n else {\n xs1[k++] = x;\n ++i;\n }\n }\n while (i < mid) {\n xs1[k++] = xs2[i++];\n }\n while (j < to) {\n xs1[k++] = xs2[j++];\n }\n }\n\n return function (compare) {\n return function (fromOrdering) {\n return function (xs) {\n return function () {\n if (xs.length < 2) return xs;\n\n mergeFromTo(compare, fromOrdering, xs, xs.slice(0), 0, xs.length);\n\n return xs;\n };\n };\n };\n };\n})();\n\nexport const toAssocArray = function (xs) {\n return function () {\n var n = xs.length;\n var as = new Array(n);\n for (var i = 0; i < n; i++) as[i] = { value: xs[i], index: i };\n return as;\n };\n};\n","// Generated by purs version 0.15.2\nimport * as $foreign from \"./foreign.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Control_Monad_ST_Internal from \"../Control.Monad.ST.Internal/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Data_Ordering from \"../Data.Ordering/index.js\";\nvar withArray = function (f) {\n return function (xs) {\n return function __do() {\n var result = $foreign.thaw(xs)();\n f(result)();\n return $foreign.unsafeFreeze(result)();\n };\n };\n};\nvar unshift = function (a) {\n return $foreign.unshiftAll([ a ]);\n};\nvar sortBy = function (comp) {\n return $foreign.sortByImpl(comp)(function (v) {\n if (v instanceof Data_Ordering.GT) {\n return 1;\n };\n if (v instanceof Data_Ordering.EQ) {\n return 0;\n };\n if (v instanceof Data_Ordering.LT) {\n return -1 | 0;\n };\n throw new Error(\"Failed pattern match at Data.Array.ST (line 108, column 31 - line 111, column 11): \" + [ v.constructor.name ]);\n });\n};\nvar sortWith = function (dictOrd) {\n return function (f) {\n return sortBy(Data_Ord.comparing(dictOrd)(f));\n };\n};\nvar sort = function (dictOrd) {\n return sortBy(Data_Ord.compare(dictOrd));\n};\nvar shift = /* #__PURE__ */ (function () {\n return $foreign.shiftImpl(Data_Maybe.Just.create)(Data_Maybe.Nothing.value);\n})();\nvar run = function (st) {\n return Control_Bind.bind(Control_Monad_ST_Internal.bindST)(st)($foreign.unsafeFreeze)();\n};\nvar push = function (a) {\n return $foreign.pushAll([ a ]);\n};\nvar pop = /* #__PURE__ */ (function () {\n return $foreign.popImpl(Data_Maybe.Just.create)(Data_Maybe.Nothing.value);\n})();\nvar peek = /* #__PURE__ */ (function () {\n return $foreign.peekImpl(Data_Maybe.Just.create)(Data_Maybe.Nothing.value);\n})();\nvar modify = function (i) {\n return function (f) {\n return function (xs) {\n return function __do() {\n var entry = peek(i)(xs)();\n if (entry instanceof Data_Maybe.Just) {\n return $foreign.poke(i)(f(entry.value0))(xs)();\n };\n if (entry instanceof Data_Maybe.Nothing) {\n return false;\n };\n throw new Error(\"Failed pattern match at Data.Array.ST (line 193, column 3 - line 195, column 26): \" + [ entry.constructor.name ]);\n };\n };\n };\n};\nexport {\n new,\n poke,\n pushAll,\n unshiftAll,\n splice,\n freeze,\n thaw,\n unsafeFreeze,\n unsafeThaw,\n toAssocArray\n} from \"./foreign.js\";\nexport {\n run,\n withArray,\n peek,\n modify,\n pop,\n push,\n shift,\n unshift,\n sort,\n sortBy,\n sortWith\n};\n","// Generated by purs version 0.15.2\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Symbol from \"../Data.Symbol/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nimport * as Record_Unsafe from \"../Record.Unsafe/index.js\";\nimport * as Type_Proxy from \"../Type.Proxy/index.js\";\nvar ttRecord = function (dict) {\n return dict.ttRecord;\n};\nvar tt = function (dict) {\n return dict.tt;\n};\nvar notRecord = function (dict) {\n return dict.notRecord;\n};\nvar not = function (dict) {\n return dict.not;\n};\nvar impliesRecord = function (dict) {\n return dict.impliesRecord;\n};\nvar implies = function (dict) {\n return dict.implies;\n};\nvar heytingAlgebraUnit = {\n ff: Data_Unit.unit,\n tt: Data_Unit.unit,\n implies: function (v) {\n return function (v1) {\n return Data_Unit.unit;\n };\n },\n conj: function (v) {\n return function (v1) {\n return Data_Unit.unit;\n };\n },\n disj: function (v) {\n return function (v1) {\n return Data_Unit.unit;\n };\n },\n not: function (v) {\n return Data_Unit.unit;\n }\n};\nvar heytingAlgebraRecordNil = {\n conjRecord: function (v) {\n return function (v1) {\n return function (v2) {\n return {};\n };\n };\n },\n disjRecord: function (v) {\n return function (v1) {\n return function (v2) {\n return {};\n };\n };\n },\n ffRecord: function (v) {\n return function (v1) {\n return {};\n };\n },\n impliesRecord: function (v) {\n return function (v1) {\n return function (v2) {\n return {};\n };\n };\n },\n notRecord: function (v) {\n return function (v1) {\n return {};\n };\n },\n ttRecord: function (v) {\n return function (v1) {\n return {};\n };\n }\n};\nvar heytingAlgebraProxy = /* #__PURE__ */ (function () {\n return {\n conj: function (v) {\n return function (v1) {\n return Type_Proxy[\"Proxy\"].value;\n };\n },\n disj: function (v) {\n return function (v1) {\n return Type_Proxy[\"Proxy\"].value;\n };\n },\n implies: function (v) {\n return function (v1) {\n return Type_Proxy[\"Proxy\"].value;\n };\n },\n ff: Type_Proxy[\"Proxy\"].value,\n not: function (v) {\n return Type_Proxy[\"Proxy\"].value;\n },\n tt: Type_Proxy[\"Proxy\"].value\n };\n})();\nvar ffRecord = function (dict) {\n return dict.ffRecord;\n};\nvar ff = function (dict) {\n return dict.ff;\n};\nvar disjRecord = function (dict) {\n return dict.disjRecord;\n};\nvar disj = function (dict) {\n return dict.disj;\n};\nvar heytingAlgebraBoolean = {\n ff: false,\n tt: true,\n implies: function (a) {\n return function (b) {\n return disj(heytingAlgebraBoolean)(not(heytingAlgebraBoolean)(a))(b);\n };\n },\n conj: $foreign.boolConj,\n disj: $foreign.boolDisj,\n not: $foreign.boolNot\n};\nvar conjRecord = function (dict) {\n return dict.conjRecord;\n};\nvar heytingAlgebraRecord = function () {\n return function (dictHeytingAlgebraRecord) {\n return {\n ff: ffRecord(dictHeytingAlgebraRecord)(Type_Proxy[\"Proxy\"].value)(Type_Proxy[\"Proxy\"].value),\n tt: ttRecord(dictHeytingAlgebraRecord)(Type_Proxy[\"Proxy\"].value)(Type_Proxy[\"Proxy\"].value),\n conj: conjRecord(dictHeytingAlgebraRecord)(Type_Proxy[\"Proxy\"].value),\n disj: disjRecord(dictHeytingAlgebraRecord)(Type_Proxy[\"Proxy\"].value),\n implies: impliesRecord(dictHeytingAlgebraRecord)(Type_Proxy[\"Proxy\"].value),\n not: notRecord(dictHeytingAlgebraRecord)(Type_Proxy[\"Proxy\"].value)\n };\n };\n};\nvar conj = function (dict) {\n return dict.conj;\n};\nvar heytingAlgebraFunction = function (dictHeytingAlgebra) {\n return {\n ff: function (v) {\n return ff(dictHeytingAlgebra);\n },\n tt: function (v) {\n return tt(dictHeytingAlgebra);\n },\n implies: function (f) {\n return function (g) {\n return function (a) {\n return implies(dictHeytingAlgebra)(f(a))(g(a));\n };\n };\n },\n conj: function (f) {\n return function (g) {\n return function (a) {\n return conj(dictHeytingAlgebra)(f(a))(g(a));\n };\n };\n },\n disj: function (f) {\n return function (g) {\n return function (a) {\n return disj(dictHeytingAlgebra)(f(a))(g(a));\n };\n };\n },\n not: function (f) {\n return function (a) {\n return not(dictHeytingAlgebra)(f(a));\n };\n }\n };\n};\nvar heytingAlgebraRecordCons = function (dictIsSymbol) {\n return function () {\n return function (dictHeytingAlgebraRecord) {\n return function (dictHeytingAlgebra) {\n return {\n conjRecord: function (v) {\n return function (ra) {\n return function (rb) {\n var tail = conjRecord(dictHeytingAlgebraRecord)(Type_Proxy[\"Proxy\"].value)(ra)(rb);\n var key = Data_Symbol.reflectSymbol(dictIsSymbol)(Type_Proxy[\"Proxy\"].value);\n var insert = Record_Unsafe.unsafeSet(key);\n var get = Record_Unsafe.unsafeGet(key);\n return insert(conj(dictHeytingAlgebra)(get(ra))(get(rb)))(tail);\n };\n };\n },\n disjRecord: function (v) {\n return function (ra) {\n return function (rb) {\n var tail = disjRecord(dictHeytingAlgebraRecord)(Type_Proxy[\"Proxy\"].value)(ra)(rb);\n var key = Data_Symbol.reflectSymbol(dictIsSymbol)(Type_Proxy[\"Proxy\"].value);\n var insert = Record_Unsafe.unsafeSet(key);\n var get = Record_Unsafe.unsafeGet(key);\n return insert(disj(dictHeytingAlgebra)(get(ra))(get(rb)))(tail);\n };\n };\n },\n impliesRecord: function (v) {\n return function (ra) {\n return function (rb) {\n var tail = impliesRecord(dictHeytingAlgebraRecord)(Type_Proxy[\"Proxy\"].value)(ra)(rb);\n var key = Data_Symbol.reflectSymbol(dictIsSymbol)(Type_Proxy[\"Proxy\"].value);\n var insert = Record_Unsafe.unsafeSet(key);\n var get = Record_Unsafe.unsafeGet(key);\n return insert(implies(dictHeytingAlgebra)(get(ra))(get(rb)))(tail);\n };\n };\n },\n ffRecord: function (v) {\n return function (row) {\n var tail = ffRecord(dictHeytingAlgebraRecord)(Type_Proxy[\"Proxy\"].value)(row);\n var key = Data_Symbol.reflectSymbol(dictIsSymbol)(Type_Proxy[\"Proxy\"].value);\n var insert = Record_Unsafe.unsafeSet(key);\n return insert(ff(dictHeytingAlgebra))(tail);\n };\n },\n notRecord: function (v) {\n return function (row) {\n var tail = notRecord(dictHeytingAlgebraRecord)(Type_Proxy[\"Proxy\"].value)(row);\n var key = Data_Symbol.reflectSymbol(dictIsSymbol)(Type_Proxy[\"Proxy\"].value);\n var insert = Record_Unsafe.unsafeSet(key);\n var get = Record_Unsafe.unsafeGet(key);\n return insert(not(dictHeytingAlgebra)(get(row)))(tail);\n };\n },\n ttRecord: function (v) {\n return function (row) {\n var tail = ttRecord(dictHeytingAlgebraRecord)(Type_Proxy[\"Proxy\"].value)(row);\n var key = Data_Symbol.reflectSymbol(dictIsSymbol)(Type_Proxy[\"Proxy\"].value);\n var insert = Record_Unsafe.unsafeSet(key);\n return insert(tt(dictHeytingAlgebra))(tail);\n };\n }\n };\n };\n };\n };\n};\nexport {\n tt,\n ff,\n implies,\n conj,\n disj,\n not,\n ffRecord,\n ttRecord,\n impliesRecord,\n conjRecord,\n disjRecord,\n notRecord,\n heytingAlgebraBoolean,\n heytingAlgebraUnit,\n heytingAlgebraFunction,\n heytingAlgebraProxy,\n heytingAlgebraRecord,\n heytingAlgebraRecordNil,\n heytingAlgebraRecordCons\n};\n","export const boolConj = function (b1) {\n return function (b2) {\n return b1 && b2;\n };\n};\n\nexport const boolDisj = function (b1) {\n return function (b2) {\n return b1 || b2;\n };\n};\n\nexport const boolNot = function (b) {\n return !b;\n};\n","// Generated by purs version 0.15.2\nimport * as Control_Monad_ST_Internal from \"../Control.Monad.ST.Internal/index.js\";\nimport * as Data_Array_ST from \"../Data.Array.ST/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_HeytingAlgebra from \"../Data.HeytingAlgebra/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nvar Iterator = /* #__PURE__ */ (function () {\n function Iterator(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n Iterator.create = function (value0) {\n return function (value1) {\n return new Iterator(value0, value1);\n };\n };\n return Iterator;\n})();\nvar peek = function (v) {\n return function __do() {\n var i = Control_Monad_ST_Internal.read(v.value1)();\n return v.value0(i);\n };\n};\nvar next = function (v) {\n return function __do() {\n var i = Control_Monad_ST_Internal.read(v.value1)();\n Control_Monad_ST_Internal.modify(function (v1) {\n return v1 + 1 | 0;\n })(v.value1)();\n return v.value0(i);\n };\n};\nvar pushWhile = function (p) {\n return function (iter) {\n return function (array) {\n return function __do() {\n var $$break = Control_Monad_ST_Internal[\"new\"](false)();\n while (Data_Functor.map(Control_Monad_ST_Internal.functorST)(Data_HeytingAlgebra.not(Data_HeytingAlgebra.heytingAlgebraBoolean))(Control_Monad_ST_Internal.read($$break))()) {\n (function __do() {\n var mx = peek(iter)();\n if (mx instanceof Data_Maybe.Just && p(mx.value0)) {\n Data_Array_ST.push(mx.value0)(array)();\n return Data_Functor[\"void\"](Control_Monad_ST_Internal.functorST)(next(iter))();\n };\n return Data_Functor[\"void\"](Control_Monad_ST_Internal.functorST)(Control_Monad_ST_Internal.write(true)($$break))();\n })();\n };\n return {};\n };\n };\n };\n};\nvar pushAll = /* #__PURE__ */ pushWhile(/* #__PURE__ */ Data_Function[\"const\"](true));\nvar iterator = function (f) {\n return Data_Functor.map(Control_Monad_ST_Internal.functorST)(Iterator.create(f))(Control_Monad_ST_Internal[\"new\"](0));\n};\nvar iterate = function (iter) {\n return function (f) {\n return function __do() {\n var $$break = Control_Monad_ST_Internal[\"new\"](false)();\n while (Data_Functor.map(Control_Monad_ST_Internal.functorST)(Data_HeytingAlgebra.not(Data_HeytingAlgebra.heytingAlgebraBoolean))(Control_Monad_ST_Internal.read($$break))()) {\n (function __do() {\n var mx = next(iter)();\n if (mx instanceof Data_Maybe.Just) {\n return f(mx.value0)();\n };\n if (mx instanceof Data_Maybe.Nothing) {\n return Data_Functor[\"void\"](Control_Monad_ST_Internal.functorST)(Control_Monad_ST_Internal.write(true)($$break))();\n };\n throw new Error(\"Failed pattern match at Data.Array.ST.Iterator (line 42, column 5 - line 44, column 47): \" + [ mx.constructor.name ]);\n })();\n };\n return {};\n };\n };\n};\nvar exhausted = /* #__PURE__ */ (function () {\n var $13 = Data_Functor.map(Control_Monad_ST_Internal.functorST)(Data_Maybe.isNothing);\n return function ($14) {\n return $13(peek($14));\n };\n})();\nexport {\n iterator,\n iterate,\n next,\n peek,\n exhausted,\n pushWhile,\n pushAll\n};\n","// Generated by purs version 0.15.2\nimport * as Control_Alt from \"../Control.Alt/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nvar plusArray = {\n empty: [ ],\n Alt0: function () {\n return Control_Alt.altArray;\n }\n};\nvar empty = function (dict) {\n return dict.empty;\n};\nexport {\n empty,\n plusArray\n};\nexport {\n alt\n} from \"../Control.Alt/index.js\";\nexport {\n map,\n void\n} from \"../Data.Functor/index.js\";\n","// Generated by purs version 0.15.2\nimport * as $foreign from \"./foreign.js\";\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nvar extendFn = function (dictSemigroup) {\n return {\n extend: function (f) {\n return function (g) {\n return function (w) {\n return f(function (w$prime) {\n return g(Data_Semigroup.append(dictSemigroup)(w)(w$prime));\n });\n };\n };\n },\n Functor0: function () {\n return Data_Functor.functorFn;\n }\n };\n};\nvar extendArray = {\n extend: $foreign.arrayExtend,\n Functor0: function () {\n return Data_Functor.functorArray;\n }\n};\nvar extend = function (dict) {\n return dict.extend;\n};\nvar extendFlipped = function (dictExtend) {\n return function (w) {\n return function (f) {\n return extend(dictExtend)(f)(w);\n };\n };\n};\nvar duplicate = function (dictExtend) {\n return extend(dictExtend)(Control_Category.identity(Control_Category.categoryFn));\n};\nvar composeCoKleisliFlipped = function (dictExtend) {\n return function (f) {\n return function (g) {\n return function (w) {\n return f(extend(dictExtend)(g)(w));\n };\n };\n };\n};\nvar composeCoKleisli = function (dictExtend) {\n return function (f) {\n return function (g) {\n return function (w) {\n return g(extend(dictExtend)(f)(w));\n };\n };\n };\n};\nexport {\n extend,\n extendFlipped,\n composeCoKleisli,\n composeCoKleisliFlipped,\n duplicate,\n extendFn,\n extendArray\n};\nexport {\n map,\n void\n} from \"../Data.Functor/index.js\";\n","// Generated by purs version 0.15.2\nimport * as Control_Lazy from \"../Control.Lazy/index.js\";\nimport * as Data_Bounded from \"../Data.Bounded/index.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Functor_Invariant from \"../Data.Functor.Invariant/index.js\";\nimport * as Data_Generic_Rep from \"../Data.Generic.Rep/index.js\";\nimport * as Data_HeytingAlgebra from \"../Data.HeytingAlgebra/index.js\";\nimport * as Data_Monoid from \"../Data.Monoid/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Data_Ordering from \"../Data.Ordering/index.js\";\nimport * as Data_Ring from \"../Data.Ring/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nimport * as Data_Semiring from \"../Data.Semiring/index.js\";\nimport * as Data_Show from \"../Data.Show/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nvar Tuple = /* #__PURE__ */ (function () {\n function Tuple(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n Tuple.create = function (value0) {\n return function (value1) {\n return new Tuple(value0, value1);\n };\n };\n return Tuple;\n})();\nvar uncurry = function (f) {\n return function (v) {\n return f(v.value0)(v.value1);\n };\n};\nvar swap = function (v) {\n return new Tuple(v.value1, v.value0);\n};\nvar snd = function (v) {\n return v.value1;\n};\nvar showTuple = function (dictShow) {\n return function (dictShow1) {\n return {\n show: function (v) {\n return \"(Tuple \" + (Data_Show.show(dictShow)(v.value0) + (\" \" + (Data_Show.show(dictShow1)(v.value1) + \")\")));\n }\n };\n };\n};\nvar semiringTuple = function (dictSemiring) {\n return function (dictSemiring1) {\n return {\n add: function (v) {\n return function (v1) {\n return new Tuple(Data_Semiring.add(dictSemiring)(v.value0)(v1.value0), Data_Semiring.add(dictSemiring1)(v.value1)(v1.value1));\n };\n },\n one: new Tuple(Data_Semiring.one(dictSemiring), Data_Semiring.one(dictSemiring1)),\n mul: function (v) {\n return function (v1) {\n return new Tuple(Data_Semiring.mul(dictSemiring)(v.value0)(v1.value0), Data_Semiring.mul(dictSemiring1)(v.value1)(v1.value1));\n };\n },\n zero: new Tuple(Data_Semiring.zero(dictSemiring), Data_Semiring.zero(dictSemiring1))\n };\n };\n};\nvar semigroupoidTuple = {\n compose: function (v) {\n return function (v1) {\n return new Tuple(v1.value0, v.value1);\n };\n }\n};\nvar semigroupTuple = function (dictSemigroup) {\n return function (dictSemigroup1) {\n return {\n append: function (v) {\n return function (v1) {\n return new Tuple(Data_Semigroup.append(dictSemigroup)(v.value0)(v1.value0), Data_Semigroup.append(dictSemigroup1)(v.value1)(v1.value1));\n };\n }\n };\n };\n};\nvar ringTuple = function (dictRing) {\n return function (dictRing1) {\n return {\n sub: function (v) {\n return function (v1) {\n return new Tuple(Data_Ring.sub(dictRing)(v.value0)(v1.value0), Data_Ring.sub(dictRing1)(v.value1)(v1.value1));\n };\n },\n Semiring0: function () {\n return semiringTuple(dictRing.Semiring0())(dictRing1.Semiring0());\n }\n };\n };\n};\nvar monoidTuple = function (dictMonoid) {\n return function (dictMonoid1) {\n return {\n mempty: new Tuple(Data_Monoid.mempty(dictMonoid), Data_Monoid.mempty(dictMonoid1)),\n Semigroup0: function () {\n return semigroupTuple(dictMonoid.Semigroup0())(dictMonoid1.Semigroup0());\n }\n };\n };\n};\nvar heytingAlgebraTuple = function (dictHeytingAlgebra) {\n return function (dictHeytingAlgebra1) {\n return {\n tt: new Tuple(Data_HeytingAlgebra.tt(dictHeytingAlgebra), Data_HeytingAlgebra.tt(dictHeytingAlgebra1)),\n ff: new Tuple(Data_HeytingAlgebra.ff(dictHeytingAlgebra), Data_HeytingAlgebra.ff(dictHeytingAlgebra1)),\n implies: function (v) {\n return function (v1) {\n return new Tuple(Data_HeytingAlgebra.implies(dictHeytingAlgebra)(v.value0)(v1.value0), Data_HeytingAlgebra.implies(dictHeytingAlgebra1)(v.value1)(v1.value1));\n };\n },\n conj: function (v) {\n return function (v1) {\n return new Tuple(Data_HeytingAlgebra.conj(dictHeytingAlgebra)(v.value0)(v1.value0), Data_HeytingAlgebra.conj(dictHeytingAlgebra1)(v.value1)(v1.value1));\n };\n },\n disj: function (v) {\n return function (v1) {\n return new Tuple(Data_HeytingAlgebra.disj(dictHeytingAlgebra)(v.value0)(v1.value0), Data_HeytingAlgebra.disj(dictHeytingAlgebra1)(v.value1)(v1.value1));\n };\n },\n not: function (v) {\n return new Tuple(Data_HeytingAlgebra.not(dictHeytingAlgebra)(v.value0), Data_HeytingAlgebra.not(dictHeytingAlgebra1)(v.value1));\n }\n };\n };\n};\nvar genericTuple = {\n to: function (x) {\n return new Tuple(x.value0, x.value1);\n },\n from: function (x) {\n return new Data_Generic_Rep.Product(x.value0, x.value1);\n }\n};\nvar functorTuple = {\n map: function (f) {\n return function (m) {\n return new Tuple(m.value0, f(m.value1));\n };\n }\n};\nvar invariantTuple = {\n imap: /* #__PURE__ */ Data_Functor_Invariant.imapF(functorTuple)\n};\nvar fst = function (v) {\n return v.value0;\n};\nvar lazyTuple = function (dictLazy) {\n return function (dictLazy1) {\n return {\n defer: function (f) {\n return new Tuple(Control_Lazy.defer(dictLazy)(function (v) {\n return fst(f(Data_Unit.unit));\n }), Control_Lazy.defer(dictLazy1)(function (v) {\n return snd(f(Data_Unit.unit));\n }));\n }\n };\n };\n};\nvar extendTuple = {\n extend: function (f) {\n return function (v) {\n return new Tuple(v.value0, f(v));\n };\n },\n Functor0: function () {\n return functorTuple;\n }\n};\nvar eqTuple = function (dictEq) {\n return function (dictEq1) {\n return {\n eq: function (x) {\n return function (y) {\n return Data_Eq.eq(dictEq)(x.value0)(y.value0) && Data_Eq.eq(dictEq1)(x.value1)(y.value1);\n };\n }\n };\n };\n};\nvar ordTuple = function (dictOrd) {\n return function (dictOrd1) {\n return {\n compare: function (x) {\n return function (y) {\n var v = Data_Ord.compare(dictOrd)(x.value0)(y.value0);\n if (v instanceof Data_Ordering.LT) {\n return Data_Ordering.LT.value;\n };\n if (v instanceof Data_Ordering.GT) {\n return Data_Ordering.GT.value;\n };\n return Data_Ord.compare(dictOrd1)(x.value1)(y.value1);\n };\n },\n Eq0: function () {\n return eqTuple(dictOrd.Eq0())(dictOrd1.Eq0());\n }\n };\n };\n};\nvar eq1Tuple = function (dictEq) {\n return {\n eq1: function (dictEq1) {\n return Data_Eq.eq(eqTuple(dictEq)(dictEq1));\n }\n };\n};\nvar ord1Tuple = function (dictOrd) {\n return {\n compare1: function (dictOrd1) {\n return Data_Ord.compare(ordTuple(dictOrd)(dictOrd1));\n },\n Eq10: function () {\n return eq1Tuple(dictOrd.Eq0());\n }\n };\n};\nvar curry = function (f) {\n return function (a) {\n return function (b) {\n return f(new Tuple(a, b));\n };\n };\n};\nvar comonadTuple = {\n extract: snd,\n Extend0: function () {\n return extendTuple;\n }\n};\nvar commutativeRingTuple = function (dictCommutativeRing) {\n return function (dictCommutativeRing1) {\n return {\n Ring0: function () {\n return ringTuple(dictCommutativeRing.Ring0())(dictCommutativeRing1.Ring0());\n }\n };\n };\n};\nvar boundedTuple = function (dictBounded) {\n return function (dictBounded1) {\n return {\n top: new Tuple(Data_Bounded.top(dictBounded), Data_Bounded.top(dictBounded1)),\n bottom: new Tuple(Data_Bounded.bottom(dictBounded), Data_Bounded.bottom(dictBounded1)),\n Ord0: function () {\n return ordTuple(dictBounded.Ord0())(dictBounded1.Ord0());\n }\n };\n };\n};\nvar booleanAlgebraTuple = function (dictBooleanAlgebra) {\n return function (dictBooleanAlgebra1) {\n return {\n HeytingAlgebra0: function () {\n return heytingAlgebraTuple(dictBooleanAlgebra.HeytingAlgebra0())(dictBooleanAlgebra1.HeytingAlgebra0());\n }\n };\n };\n};\nvar applyTuple = function (dictSemigroup) {\n return {\n apply: function (v) {\n return function (v1) {\n return new Tuple(Data_Semigroup.append(dictSemigroup)(v.value0)(v1.value0), v.value1(v1.value1));\n };\n },\n Functor0: function () {\n return functorTuple;\n }\n };\n};\nvar bindTuple = function (dictSemigroup) {\n return {\n bind: function (v) {\n return function (f) {\n var v1 = f(v.value1);\n return new Tuple(Data_Semigroup.append(dictSemigroup)(v.value0)(v1.value0), v1.value1);\n };\n },\n Apply0: function () {\n return applyTuple(dictSemigroup);\n }\n };\n};\nvar applicativeTuple = function (dictMonoid) {\n return {\n pure: Tuple.create(Data_Monoid.mempty(dictMonoid)),\n Apply0: function () {\n return applyTuple(dictMonoid.Semigroup0());\n }\n };\n};\nvar monadTuple = function (dictMonoid) {\n return {\n Applicative0: function () {\n return applicativeTuple(dictMonoid);\n },\n Bind1: function () {\n return bindTuple(dictMonoid.Semigroup0());\n }\n };\n};\nexport {\n Tuple,\n fst,\n snd,\n curry,\n uncurry,\n swap,\n showTuple,\n eqTuple,\n eq1Tuple,\n ordTuple,\n ord1Tuple,\n boundedTuple,\n semigroupoidTuple,\n semigroupTuple,\n monoidTuple,\n semiringTuple,\n ringTuple,\n commutativeRingTuple,\n heytingAlgebraTuple,\n booleanAlgebraTuple,\n functorTuple,\n genericTuple,\n invariantTuple,\n applyTuple,\n applicativeTuple,\n bindTuple,\n monadTuple,\n extendTuple,\n comonadTuple,\n lazyTuple\n};\n","// Generated by purs version 0.15.2\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Data_Either from \"../Data.Either/index.js\";\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nvar bimap = function (dict) {\n return dict.bimap;\n};\nvar lmap = function (dictBifunctor) {\n return function (f) {\n return bimap(dictBifunctor)(f)(Control_Category.identity(Control_Category.categoryFn));\n };\n};\nvar rmap = function (dictBifunctor) {\n return bimap(dictBifunctor)(Control_Category.identity(Control_Category.categoryFn));\n};\nvar bifunctorTuple = {\n bimap: function (f) {\n return function (g) {\n return function (v) {\n return new Data_Tuple.Tuple(f(v.value0), g(v.value1));\n };\n };\n }\n};\nvar bifunctorEither = {\n bimap: function (v) {\n return function (v1) {\n return function (v2) {\n if (v2 instanceof Data_Either.Left) {\n return new Data_Either.Left(v(v2.value0));\n };\n if (v2 instanceof Data_Either.Right) {\n return new Data_Either.Right(v1(v2.value0));\n };\n throw new Error(\"Failed pattern match at Data.Bifunctor (line 32, column 1 - line 34, column 36): \" + [ v.constructor.name, v1.constructor.name, v2.constructor.name ]);\n };\n };\n }\n};\nvar bifunctorConst = {\n bimap: function (f) {\n return function (v) {\n return function (v1) {\n return f(v1);\n };\n };\n }\n};\nexport {\n bimap,\n lmap,\n rmap,\n bifunctorEither,\n bifunctorTuple,\n bifunctorConst\n};\n","// Generated by purs version 0.15.2\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_HeytingAlgebra from \"../Data.HeytingAlgebra/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Data_Show from \"../Data.Show/index.js\";\nvar Disj = function (x) {\n return x;\n};\nvar showDisj = function (dictShow) {\n return {\n show: function (v) {\n return \"(Disj \" + (Data_Show.show(dictShow)(v) + \")\");\n }\n };\n};\nvar semiringDisj = function (dictHeytingAlgebra) {\n return {\n zero: Data_HeytingAlgebra.ff(dictHeytingAlgebra),\n one: Data_HeytingAlgebra.tt(dictHeytingAlgebra),\n add: function (v) {\n return function (v1) {\n return Data_HeytingAlgebra.disj(dictHeytingAlgebra)(v)(v1);\n };\n },\n mul: function (v) {\n return function (v1) {\n return Data_HeytingAlgebra.conj(dictHeytingAlgebra)(v)(v1);\n };\n }\n };\n};\nvar semigroupDisj = function (dictHeytingAlgebra) {\n return {\n append: function (v) {\n return function (v1) {\n return Data_HeytingAlgebra.disj(dictHeytingAlgebra)(v)(v1);\n };\n }\n };\n};\nvar ordDisj = function (dictOrd) {\n return dictOrd;\n};\nvar monoidDisj = function (dictHeytingAlgebra) {\n return {\n mempty: Data_HeytingAlgebra.ff(dictHeytingAlgebra),\n Semigroup0: function () {\n return semigroupDisj(dictHeytingAlgebra);\n }\n };\n};\nvar functorDisj = {\n map: function (f) {\n return function (m) {\n return f(m);\n };\n }\n};\nvar eqDisj = function (dictEq) {\n return dictEq;\n};\nvar eq1Disj = {\n eq1: function (dictEq) {\n return Data_Eq.eq(eqDisj(dictEq));\n }\n};\nvar ord1Disj = {\n compare1: function (dictOrd) {\n return Data_Ord.compare(ordDisj(dictOrd));\n },\n Eq10: function () {\n return eq1Disj;\n }\n};\nvar boundedDisj = function (dictBounded) {\n return dictBounded;\n};\nvar applyDisj = {\n apply: function (v) {\n return function (v1) {\n return v(v1);\n };\n },\n Functor0: function () {\n return functorDisj;\n }\n};\nvar bindDisj = {\n bind: function (v) {\n return function (f) {\n return f(v);\n };\n },\n Apply0: function () {\n return applyDisj;\n }\n};\nvar applicativeDisj = {\n pure: Disj,\n Apply0: function () {\n return applyDisj;\n }\n};\nvar monadDisj = {\n Applicative0: function () {\n return applicativeDisj;\n },\n Bind1: function () {\n return bindDisj;\n }\n};\nexport {\n Disj,\n eqDisj,\n eq1Disj,\n ordDisj,\n ord1Disj,\n boundedDisj,\n showDisj,\n functorDisj,\n applyDisj,\n applicativeDisj,\n bindDisj,\n monadDisj,\n semigroupDisj,\n monoidDisj,\n semiringDisj\n};\n","// Generated by purs version 0.15.2\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Control_Semigroupoid from \"../Control.Semigroupoid/index.js\";\nimport * as Data_Show from \"../Data.Show/index.js\";\nvar Endo = function (x) {\n return x;\n};\nvar showEndo = function (dictShow) {\n return {\n show: function (v) {\n return \"(Endo \" + (Data_Show.show(dictShow)(v) + \")\");\n }\n };\n};\nvar semigroupEndo = function (dictSemigroupoid) {\n return {\n append: function (v) {\n return function (v1) {\n return Control_Semigroupoid.compose(dictSemigroupoid)(v)(v1);\n };\n }\n };\n};\nvar ordEndo = function (dictOrd) {\n return dictOrd;\n};\nvar monoidEndo = function (dictCategory) {\n return {\n mempty: Control_Category.identity(dictCategory),\n Semigroup0: function () {\n return semigroupEndo(dictCategory.Semigroupoid0());\n }\n };\n};\nvar eqEndo = function (dictEq) {\n return dictEq;\n};\nvar boundedEndo = function (dictBounded) {\n return dictBounded;\n};\nexport {\n Endo,\n eqEndo,\n ordEndo,\n boundedEndo,\n showEndo,\n semigroupEndo,\n monoidEndo\n};\n","// module Unsafe.Coerce\n\nexport const unsafeCoerce = function (x) {\n return x;\n};\n","// Generated by purs version 0.15.2\nimport * as Unsafe_Coerce from \"../Unsafe.Coerce/index.js\";\nvar coerce = function () {\n return Unsafe_Coerce.unsafeCoerce;\n};\nexport {\n coerce\n};\n","// Generated by purs version 0.15.2\nimport * as Safe_Coerce from \"../Safe.Coerce/index.js\";\nvar wrap = Safe_Coerce.coerce;\nvar unwrap = Safe_Coerce.coerce;\nvar underF2 = function () {\n return function () {\n return function () {\n return function () {\n return function (v) {\n return Safe_Coerce.coerce();\n };\n };\n };\n };\n};\nvar underF = function () {\n return function () {\n return function () {\n return function () {\n return function (v) {\n return Safe_Coerce.coerce();\n };\n };\n };\n };\n};\nvar under2 = function () {\n return function () {\n return function (v) {\n return Safe_Coerce.coerce();\n };\n };\n};\nvar under = function () {\n return function () {\n return function (v) {\n return Safe_Coerce.coerce();\n };\n };\n};\nvar un = function () {\n return function (v) {\n return unwrap();\n };\n};\nvar traverse = function () {\n return function () {\n return function (v) {\n return Safe_Coerce.coerce();\n };\n };\n};\nvar overF2 = function () {\n return function () {\n return function () {\n return function () {\n return function (v) {\n return Safe_Coerce.coerce();\n };\n };\n };\n };\n};\nvar overF = function () {\n return function () {\n return function () {\n return function () {\n return function (v) {\n return Safe_Coerce.coerce();\n };\n };\n };\n };\n};\nvar over2 = function () {\n return function () {\n return function (v) {\n return Safe_Coerce.coerce();\n };\n };\n};\nvar over = function () {\n return function () {\n return function (v) {\n return Safe_Coerce.coerce();\n };\n };\n};\nvar newtypeMultiplicative = {\n Coercible0: function () {\n return undefined;\n }\n};\nvar newtypeLast = {\n Coercible0: function () {\n return undefined;\n }\n};\nvar newtypeFirst = {\n Coercible0: function () {\n return undefined;\n }\n};\nvar newtypeEndo = {\n Coercible0: function () {\n return undefined;\n }\n};\nvar newtypeDual = {\n Coercible0: function () {\n return undefined;\n }\n};\nvar newtypeDisj = {\n Coercible0: function () {\n return undefined;\n }\n};\nvar newtypeConj = {\n Coercible0: function () {\n return undefined;\n }\n};\nvar newtypeAdditive = {\n Coercible0: function () {\n return undefined;\n }\n};\nvar modify = function () {\n return function (fn) {\n return function (t) {\n return wrap()(fn(unwrap()(t)));\n };\n };\n};\nvar collect = function () {\n return function () {\n return function (v) {\n return Safe_Coerce.coerce();\n };\n };\n};\nvar alaF = function () {\n return function () {\n return function () {\n return function () {\n return function (v) {\n return Safe_Coerce.coerce();\n };\n };\n };\n };\n};\nvar ala = function () {\n return function () {\n return function () {\n return function (v) {\n return function (f) {\n return Safe_Coerce.coerce()(f(wrap()));\n };\n };\n };\n };\n};\nexport {\n wrap,\n unwrap,\n un,\n modify,\n ala,\n alaF,\n over,\n overF,\n under,\n underF,\n over2,\n overF2,\n under2,\n underF2,\n traverse,\n collect,\n newtypeAdditive,\n newtypeMultiplicative,\n newtypeConj,\n newtypeDisj,\n newtypeDual,\n newtypeEndo,\n newtypeFirst,\n newtypeLast\n};\n","// Generated by purs version 0.15.2\nimport * as $foreign from \"./foreign.js\";\nimport * as Control_Alt from \"../Control.Alt/index.js\";\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Apply from \"../Control.Apply/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Control_Plus from \"../Control.Plus/index.js\";\nimport * as Data_Either from \"../Data.Either/index.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor_Coproduct from \"../Data.Functor.Coproduct/index.js\";\nimport * as Data_HeytingAlgebra from \"../Data.HeytingAlgebra/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Maybe_First from \"../Data.Maybe.First/index.js\";\nimport * as Data_Monoid from \"../Data.Monoid/index.js\";\nimport * as Data_Monoid_Conj from \"../Data.Monoid.Conj/index.js\";\nimport * as Data_Monoid_Disj from \"../Data.Monoid.Disj/index.js\";\nimport * as Data_Monoid_Dual from \"../Data.Monoid.Dual/index.js\";\nimport * as Data_Monoid_Endo from \"../Data.Monoid.Endo/index.js\";\nimport * as Data_Newtype from \"../Data.Newtype/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Data_Ordering from \"../Data.Ordering/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nimport * as Data_Semiring from \"../Data.Semiring/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nvar foldr = function (dict) {\n return dict.foldr;\n};\nvar indexr = function (dictFoldable) {\n return function (idx) {\n var go = function (a) {\n return function (cursor) {\n if (cursor.elem instanceof Data_Maybe.Just) {\n return cursor;\n };\n var $153 = cursor.pos === idx;\n if ($153) {\n return {\n elem: new Data_Maybe.Just(a),\n pos: cursor.pos\n };\n };\n return {\n pos: cursor.pos + 1 | 0,\n elem: cursor.elem\n };\n };\n };\n var $312 = foldr(dictFoldable)(go)({\n elem: Data_Maybe.Nothing.value,\n pos: 0\n });\n return function ($313) {\n return (function (v) {\n return v.elem;\n })($312($313));\n };\n };\n};\nvar $$null = function (dictFoldable) {\n return foldr(dictFoldable)(function (v) {\n return function (v1) {\n return false;\n };\n })(true);\n};\nvar oneOf = function (dictFoldable) {\n return function (dictPlus) {\n return foldr(dictFoldable)(Control_Alt.alt(dictPlus.Alt0()))(Control_Plus.empty(dictPlus));\n };\n};\nvar oneOfMap = function (dictFoldable) {\n return function (dictPlus) {\n return function (f) {\n return foldr(dictFoldable)((function () {\n var $314 = Control_Alt.alt(dictPlus.Alt0());\n return function ($315) {\n return $314(f($315));\n };\n })())(Control_Plus.empty(dictPlus));\n };\n };\n};\nvar traverse_ = function (dictApplicative) {\n return function (dictFoldable) {\n return function (f) {\n return foldr(dictFoldable)((function () {\n var $316 = Control_Apply.applySecond(dictApplicative.Apply0());\n return function ($317) {\n return $316(f($317));\n };\n })())(Control_Applicative.pure(dictApplicative)(Data_Unit.unit));\n };\n };\n};\nvar for_ = function (dictApplicative) {\n return function (dictFoldable) {\n return Data_Function.flip(traverse_(dictApplicative)(dictFoldable));\n };\n};\nvar sequence_ = function (dictApplicative) {\n return function (dictFoldable) {\n return traverse_(dictApplicative)(dictFoldable)(Control_Category.identity(Control_Category.categoryFn));\n };\n};\nvar foldl = function (dict) {\n return dict.foldl;\n};\nvar indexl = function (dictFoldable) {\n return function (idx) {\n var go = function (cursor) {\n return function (a) {\n if (cursor.elem instanceof Data_Maybe.Just) {\n return cursor;\n };\n var $157 = cursor.pos === idx;\n if ($157) {\n return {\n elem: new Data_Maybe.Just(a),\n pos: cursor.pos\n };\n };\n return {\n pos: cursor.pos + 1 | 0,\n elem: cursor.elem\n };\n };\n };\n var $318 = foldl(dictFoldable)(go)({\n elem: Data_Maybe.Nothing.value,\n pos: 0\n });\n return function ($319) {\n return (function (v) {\n return v.elem;\n })($318($319));\n };\n };\n};\nvar intercalate = function (dictFoldable) {\n return function (dictMonoid) {\n return function (sep) {\n return function (xs) {\n var go = function (v) {\n return function (x) {\n if (v.init) {\n return {\n init: false,\n acc: x\n };\n };\n return {\n init: false,\n acc: Data_Semigroup.append(dictMonoid.Semigroup0())(v.acc)(Data_Semigroup.append(dictMonoid.Semigroup0())(sep)(x))\n };\n };\n };\n return (foldl(dictFoldable)(go)({\n init: true,\n acc: Data_Monoid.mempty(dictMonoid)\n })(xs)).acc;\n };\n };\n };\n};\nvar length = function (dictFoldable) {\n return function (dictSemiring) {\n return foldl(dictFoldable)(function (c) {\n return function (v) {\n return Data_Semiring.add(dictSemiring)(Data_Semiring.one(dictSemiring))(c);\n };\n })(Data_Semiring.zero(dictSemiring));\n };\n};\nvar maximumBy = function (dictFoldable) {\n return function (cmp) {\n var max$prime = function (v) {\n return function (v1) {\n if (v instanceof Data_Maybe.Nothing) {\n return new Data_Maybe.Just(v1);\n };\n if (v instanceof Data_Maybe.Just) {\n return new Data_Maybe.Just((function () {\n var $164 = Data_Eq.eq(Data_Ordering.eqOrdering)(cmp(v.value0)(v1))(Data_Ordering.GT.value);\n if ($164) {\n return v.value0;\n };\n return v1;\n })());\n };\n throw new Error(\"Failed pattern match at Data.Foldable (line 441, column 3 - line 441, column 27): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n };\n return foldl(dictFoldable)(max$prime)(Data_Maybe.Nothing.value);\n };\n};\nvar maximum = function (dictOrd) {\n return function (dictFoldable) {\n return maximumBy(dictFoldable)(Data_Ord.compare(dictOrd));\n };\n};\nvar minimumBy = function (dictFoldable) {\n return function (cmp) {\n var min$prime = function (v) {\n return function (v1) {\n if (v instanceof Data_Maybe.Nothing) {\n return new Data_Maybe.Just(v1);\n };\n if (v instanceof Data_Maybe.Just) {\n return new Data_Maybe.Just((function () {\n var $168 = Data_Eq.eq(Data_Ordering.eqOrdering)(cmp(v.value0)(v1))(Data_Ordering.LT.value);\n if ($168) {\n return v.value0;\n };\n return v1;\n })());\n };\n throw new Error(\"Failed pattern match at Data.Foldable (line 454, column 3 - line 454, column 27): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n };\n return foldl(dictFoldable)(min$prime)(Data_Maybe.Nothing.value);\n };\n};\nvar minimum = function (dictOrd) {\n return function (dictFoldable) {\n return minimumBy(dictFoldable)(Data_Ord.compare(dictOrd));\n };\n};\nvar product = function (dictFoldable) {\n return function (dictSemiring) {\n return foldl(dictFoldable)(Data_Semiring.mul(dictSemiring))(Data_Semiring.one(dictSemiring));\n };\n};\nvar sum = function (dictFoldable) {\n return function (dictSemiring) {\n return foldl(dictFoldable)(Data_Semiring.add(dictSemiring))(Data_Semiring.zero(dictSemiring));\n };\n};\nvar foldableTuple = {\n foldr: function (f) {\n return function (z) {\n return function (v) {\n return f(v.value1)(z);\n };\n };\n },\n foldl: function (f) {\n return function (z) {\n return function (v) {\n return f(z)(v.value1);\n };\n };\n },\n foldMap: function (dictMonoid) {\n return function (f) {\n return function (v) {\n return f(v.value1);\n };\n };\n }\n};\nvar foldableMultiplicative = {\n foldr: function (f) {\n return function (z) {\n return function (v) {\n return f(v)(z);\n };\n };\n },\n foldl: function (f) {\n return function (z) {\n return function (v) {\n return f(z)(v);\n };\n };\n },\n foldMap: function (dictMonoid) {\n return function (f) {\n return function (v) {\n return f(v);\n };\n };\n }\n};\nvar foldableMaybe = {\n foldr: function (v) {\n return function (z) {\n return function (v1) {\n if (v1 instanceof Data_Maybe.Nothing) {\n return z;\n };\n if (v1 instanceof Data_Maybe.Just) {\n return v(v1.value0)(z);\n };\n throw new Error(\"Failed pattern match at Data.Foldable (line 138, column 1 - line 144, column 27): \" + [ v.constructor.name, z.constructor.name, v1.constructor.name ]);\n };\n };\n },\n foldl: function (v) {\n return function (z) {\n return function (v1) {\n if (v1 instanceof Data_Maybe.Nothing) {\n return z;\n };\n if (v1 instanceof Data_Maybe.Just) {\n return v(z)(v1.value0);\n };\n throw new Error(\"Failed pattern match at Data.Foldable (line 138, column 1 - line 144, column 27): \" + [ v.constructor.name, z.constructor.name, v1.constructor.name ]);\n };\n };\n },\n foldMap: function (dictMonoid) {\n return function (v) {\n return function (v1) {\n if (v1 instanceof Data_Maybe.Nothing) {\n return Data_Monoid.mempty(dictMonoid);\n };\n if (v1 instanceof Data_Maybe.Just) {\n return v(v1.value0);\n };\n throw new Error(\"Failed pattern match at Data.Foldable (line 138, column 1 - line 144, column 27): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n };\n }\n};\nvar foldableIdentity = {\n foldr: function (f) {\n return function (z) {\n return function (v) {\n return f(v)(z);\n };\n };\n },\n foldl: function (f) {\n return function (z) {\n return function (v) {\n return f(z)(v);\n };\n };\n },\n foldMap: function (dictMonoid) {\n return function (f) {\n return function (v) {\n return f(v);\n };\n };\n }\n};\nvar foldableEither = {\n foldr: function (v) {\n return function (z) {\n return function (v1) {\n if (v1 instanceof Data_Either.Left) {\n return z;\n };\n if (v1 instanceof Data_Either.Right) {\n return v(v1.value0)(z);\n };\n throw new Error(\"Failed pattern match at Data.Foldable (line 181, column 1 - line 187, column 28): \" + [ v.constructor.name, z.constructor.name, v1.constructor.name ]);\n };\n };\n },\n foldl: function (v) {\n return function (z) {\n return function (v1) {\n if (v1 instanceof Data_Either.Left) {\n return z;\n };\n if (v1 instanceof Data_Either.Right) {\n return v(z)(v1.value0);\n };\n throw new Error(\"Failed pattern match at Data.Foldable (line 181, column 1 - line 187, column 28): \" + [ v.constructor.name, z.constructor.name, v1.constructor.name ]);\n };\n };\n },\n foldMap: function (dictMonoid) {\n return function (v) {\n return function (v1) {\n if (v1 instanceof Data_Either.Left) {\n return Data_Monoid.mempty(dictMonoid);\n };\n if (v1 instanceof Data_Either.Right) {\n return v(v1.value0);\n };\n throw new Error(\"Failed pattern match at Data.Foldable (line 181, column 1 - line 187, column 28): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n };\n }\n};\nvar foldableDual = {\n foldr: function (f) {\n return function (z) {\n return function (v) {\n return f(v)(z);\n };\n };\n },\n foldl: function (f) {\n return function (z) {\n return function (v) {\n return f(z)(v);\n };\n };\n },\n foldMap: function (dictMonoid) {\n return function (f) {\n return function (v) {\n return f(v);\n };\n };\n }\n};\nvar foldableDisj = {\n foldr: function (f) {\n return function (z) {\n return function (v) {\n return f(v)(z);\n };\n };\n },\n foldl: function (f) {\n return function (z) {\n return function (v) {\n return f(z)(v);\n };\n };\n },\n foldMap: function (dictMonoid) {\n return function (f) {\n return function (v) {\n return f(v);\n };\n };\n }\n};\nvar foldableConst = {\n foldr: function (v) {\n return function (z) {\n return function (v1) {\n return z;\n };\n };\n },\n foldl: function (v) {\n return function (z) {\n return function (v1) {\n return z;\n };\n };\n },\n foldMap: function (dictMonoid) {\n return function (v) {\n return function (v1) {\n return Data_Monoid.mempty(dictMonoid);\n };\n };\n }\n};\nvar foldableConj = {\n foldr: function (f) {\n return function (z) {\n return function (v) {\n return f(v)(z);\n };\n };\n },\n foldl: function (f) {\n return function (z) {\n return function (v) {\n return f(z)(v);\n };\n };\n },\n foldMap: function (dictMonoid) {\n return function (f) {\n return function (v) {\n return f(v);\n };\n };\n }\n};\nvar foldableAdditive = {\n foldr: function (f) {\n return function (z) {\n return function (v) {\n return f(v)(z);\n };\n };\n },\n foldl: function (f) {\n return function (z) {\n return function (v) {\n return f(z)(v);\n };\n };\n },\n foldMap: function (dictMonoid) {\n return function (f) {\n return function (v) {\n return f(v);\n };\n };\n }\n};\nvar foldMapDefaultR = function (dictFoldable) {\n return function (dictMonoid) {\n return function (f) {\n return foldr(dictFoldable)(function (x) {\n return function (acc) {\n return Data_Semigroup.append(dictMonoid.Semigroup0())(f(x))(acc);\n };\n })(Data_Monoid.mempty(dictMonoid));\n };\n };\n};\nvar foldableArray = {\n foldr: $foreign.foldrArray,\n foldl: $foreign.foldlArray,\n foldMap: function (dictMonoid) {\n return foldMapDefaultR(foldableArray)(dictMonoid);\n }\n};\nvar foldMapDefaultL = function (dictFoldable) {\n return function (dictMonoid) {\n return function (f) {\n return foldl(dictFoldable)(function (acc) {\n return function (x) {\n return Data_Semigroup.append(dictMonoid.Semigroup0())(acc)(f(x));\n };\n })(Data_Monoid.mempty(dictMonoid));\n };\n };\n};\nvar foldMap = function (dict) {\n return dict.foldMap;\n};\nvar foldableApp = function (dictFoldable) {\n return {\n foldr: function (f) {\n return function (i) {\n return function (v) {\n return foldr(dictFoldable)(f)(i)(v);\n };\n };\n },\n foldl: function (f) {\n return function (i) {\n return function (v) {\n return foldl(dictFoldable)(f)(i)(v);\n };\n };\n },\n foldMap: function (dictMonoid) {\n return function (f) {\n return function (v) {\n return foldMap(dictFoldable)(dictMonoid)(f)(v);\n };\n };\n }\n };\n};\nvar foldableCompose = function (dictFoldable) {\n return function (dictFoldable1) {\n return {\n foldr: function (f) {\n return function (i) {\n return function (v) {\n return foldr(dictFoldable)(Data_Function.flip(foldr(dictFoldable1)(f)))(i)(v);\n };\n };\n },\n foldl: function (f) {\n return function (i) {\n return function (v) {\n return foldl(dictFoldable)(foldl(dictFoldable1)(f))(i)(v);\n };\n };\n },\n foldMap: function (dictMonoid) {\n return function (f) {\n return function (v) {\n return foldMap(dictFoldable)(dictMonoid)(foldMap(dictFoldable1)(dictMonoid)(f))(v);\n };\n };\n }\n };\n };\n};\nvar foldableCoproduct = function (dictFoldable) {\n return function (dictFoldable1) {\n return {\n foldr: function (f) {\n return function (z) {\n return Data_Functor_Coproduct.coproduct(foldr(dictFoldable)(f)(z))(foldr(dictFoldable1)(f)(z));\n };\n },\n foldl: function (f) {\n return function (z) {\n return Data_Functor_Coproduct.coproduct(foldl(dictFoldable)(f)(z))(foldl(dictFoldable1)(f)(z));\n };\n },\n foldMap: function (dictMonoid) {\n return function (f) {\n return Data_Functor_Coproduct.coproduct(foldMap(dictFoldable)(dictMonoid)(f))(foldMap(dictFoldable1)(dictMonoid)(f));\n };\n }\n };\n };\n};\nvar foldableFirst = {\n foldr: function (f) {\n return function (z) {\n return function (v) {\n return foldr(foldableMaybe)(f)(z)(v);\n };\n };\n },\n foldl: function (f) {\n return function (z) {\n return function (v) {\n return foldl(foldableMaybe)(f)(z)(v);\n };\n };\n },\n foldMap: function (dictMonoid) {\n return function (f) {\n return function (v) {\n return foldMap(foldableMaybe)(dictMonoid)(f)(v);\n };\n };\n }\n};\nvar foldableLast = {\n foldr: function (f) {\n return function (z) {\n return function (v) {\n return foldr(foldableMaybe)(f)(z)(v);\n };\n };\n },\n foldl: function (f) {\n return function (z) {\n return function (v) {\n return foldl(foldableMaybe)(f)(z)(v);\n };\n };\n },\n foldMap: function (dictMonoid) {\n return function (f) {\n return function (v) {\n return foldMap(foldableMaybe)(dictMonoid)(f)(v);\n };\n };\n }\n};\nvar foldableProduct = function (dictFoldable) {\n return function (dictFoldable1) {\n return {\n foldr: function (f) {\n return function (z) {\n return function (v) {\n return foldr(dictFoldable)(f)(foldr(dictFoldable1)(f)(z)(v.value1))(v.value0);\n };\n };\n },\n foldl: function (f) {\n return function (z) {\n return function (v) {\n return foldl(dictFoldable1)(f)(foldl(dictFoldable)(f)(z)(v.value0))(v.value1);\n };\n };\n },\n foldMap: function (dictMonoid) {\n return function (f) {\n return function (v) {\n return Data_Semigroup.append(dictMonoid.Semigroup0())(foldMap(dictFoldable)(dictMonoid)(f)(v.value0))(foldMap(dictFoldable1)(dictMonoid)(f)(v.value1));\n };\n };\n }\n };\n };\n};\nvar foldlDefault = function (dictFoldable) {\n return function (c) {\n return function (u) {\n return function (xs) {\n return Data_Newtype.unwrap()(Data_Newtype.unwrap()(foldMap(dictFoldable)(Data_Monoid_Dual.monoidDual(Data_Monoid_Endo.monoidEndo(Control_Category.categoryFn)))((function () {\n var $320 = Data_Function.flip(c);\n return function ($321) {\n return Data_Monoid_Dual.Dual(Data_Monoid_Endo.Endo($320($321)));\n };\n })())(xs)))(u);\n };\n };\n };\n};\nvar foldrDefault = function (dictFoldable) {\n return function (c) {\n return function (u) {\n return function (xs) {\n return Data_Newtype.unwrap()(foldMap(dictFoldable)(Data_Monoid_Endo.monoidEndo(Control_Category.categoryFn))(function ($322) {\n return Data_Monoid_Endo.Endo(c($322));\n })(xs))(u);\n };\n };\n };\n};\nvar lookup = function (dictFoldable) {\n return function (dictEq) {\n return function (a) {\n var $323 = Data_Newtype.unwrap();\n var $324 = foldMap(dictFoldable)(Data_Maybe_First.monoidFirst)(function (v) {\n var $305 = Data_Eq.eq(dictEq)(a)(v.value0);\n if ($305) {\n return new Data_Maybe.Just(v.value1);\n };\n return Data_Maybe.Nothing.value;\n });\n return function ($325) {\n return $323($324($325));\n };\n };\n };\n};\nvar surroundMap = function (dictFoldable) {\n return function (dictSemigroup) {\n return function (d) {\n return function (t) {\n return function (f) {\n var joined = function (a) {\n return function (m) {\n return Data_Semigroup.append(dictSemigroup)(d)(Data_Semigroup.append(dictSemigroup)(t(a))(m));\n };\n };\n return Data_Newtype.unwrap()(foldMap(dictFoldable)(Data_Monoid_Endo.monoidEndo(Control_Category.categoryFn))(joined)(f))(d);\n };\n };\n };\n };\n};\nvar surround = function (dictFoldable) {\n return function (dictSemigroup) {\n return function (d) {\n return surroundMap(dictFoldable)(dictSemigroup)(d)(Control_Category.identity(Control_Category.categoryFn));\n };\n };\n};\nvar foldM = function (dictFoldable) {\n return function (dictMonad) {\n return function (f) {\n return function (b0) {\n return foldl(dictFoldable)(function (b) {\n return function (a) {\n return Control_Bind.bind(dictMonad.Bind1())(b)(Data_Function.flip(f)(a));\n };\n })(Control_Applicative.pure(dictMonad.Applicative0())(b0));\n };\n };\n };\n};\nvar fold = function (dictFoldable) {\n return function (dictMonoid) {\n return foldMap(dictFoldable)(dictMonoid)(Control_Category.identity(Control_Category.categoryFn));\n };\n};\nvar findMap = function (dictFoldable) {\n return function (p) {\n var go = function (v) {\n return function (v1) {\n if (v instanceof Data_Maybe.Nothing) {\n return p(v1);\n };\n return v;\n };\n };\n return foldl(dictFoldable)(go)(Data_Maybe.Nothing.value);\n };\n};\nvar find = function (dictFoldable) {\n return function (p) {\n var go = function (v) {\n return function (v1) {\n if (v instanceof Data_Maybe.Nothing && p(v1)) {\n return new Data_Maybe.Just(v1);\n };\n return v;\n };\n };\n return foldl(dictFoldable)(go)(Data_Maybe.Nothing.value);\n };\n};\nvar any = function (dictFoldable) {\n return function (dictHeytingAlgebra) {\n return Data_Newtype.alaF()()()()(Data_Monoid_Disj.Disj)(foldMap(dictFoldable)(Data_Monoid_Disj.monoidDisj(dictHeytingAlgebra)));\n };\n};\nvar elem = function (dictFoldable) {\n return function (dictEq) {\n var $326 = any(dictFoldable)(Data_HeytingAlgebra.heytingAlgebraBoolean);\n var $327 = Data_Eq.eq(dictEq);\n return function ($328) {\n return $326($327($328));\n };\n };\n};\nvar notElem = function (dictFoldable) {\n return function (dictEq) {\n return function (x) {\n var $329 = Data_HeytingAlgebra.not(Data_HeytingAlgebra.heytingAlgebraBoolean);\n var $330 = elem(dictFoldable)(dictEq)(x);\n return function ($331) {\n return $329($330($331));\n };\n };\n };\n};\nvar or = function (dictFoldable) {\n return function (dictHeytingAlgebra) {\n return any(dictFoldable)(dictHeytingAlgebra)(Control_Category.identity(Control_Category.categoryFn));\n };\n};\nvar all = function (dictFoldable) {\n return function (dictHeytingAlgebra) {\n return Data_Newtype.alaF()()()()(Data_Monoid_Conj.Conj)(foldMap(dictFoldable)(Data_Monoid_Conj.monoidConj(dictHeytingAlgebra)));\n };\n};\nvar and = function (dictFoldable) {\n return function (dictHeytingAlgebra) {\n return all(dictFoldable)(dictHeytingAlgebra)(Control_Category.identity(Control_Category.categoryFn));\n };\n};\nexport {\n foldr,\n foldl,\n foldMap,\n foldrDefault,\n foldlDefault,\n foldMapDefaultL,\n foldMapDefaultR,\n fold,\n foldM,\n traverse_,\n for_,\n sequence_,\n oneOf,\n oneOfMap,\n intercalate,\n surroundMap,\n surround,\n and,\n or,\n all,\n any,\n sum,\n product,\n elem,\n notElem,\n indexl,\n indexr,\n find,\n findMap,\n maximum,\n maximumBy,\n minimum,\n minimumBy,\n $$null as null,\n length,\n lookup,\n foldableArray,\n foldableMaybe,\n foldableFirst,\n foldableLast,\n foldableAdditive,\n foldableDual,\n foldableDisj,\n foldableConj,\n foldableMultiplicative,\n foldableEither,\n foldableTuple,\n foldableIdentity,\n foldableConst,\n foldableProduct,\n foldableCoproduct,\n foldableCompose,\n foldableApp\n};\n","export const foldrArray = function (f) {\n return function (init) {\n return function (xs) {\n var acc = init;\n var len = xs.length;\n for (var i = len - 1; i >= 0; i--) {\n acc = f(xs[i])(acc);\n }\n return acc;\n };\n };\n};\n\nexport const foldlArray = function (f) {\n return function (init) {\n return function (xs) {\n var acc = init;\n var len = xs.length;\n for (var i = 0; i < len; i++) {\n acc = f(acc)(xs[i]);\n }\n return acc;\n };\n };\n};\n","// jshint maxparams: 3\n\nexport const traverseArrayImpl = (function () {\n function array1(a) {\n return [a];\n }\n\n function array2(a) {\n return function (b) {\n return [a, b];\n };\n }\n\n function array3(a) {\n return function (b) {\n return function (c) {\n return [a, b, c];\n };\n };\n }\n\n function concat2(xs) {\n return function (ys) {\n return xs.concat(ys);\n };\n }\n\n return function (apply) {\n return function (map) {\n return function (pure) {\n return function (f) {\n return function (array) {\n function go(bot, top) {\n switch (top - bot) {\n case 0: return pure([]);\n case 1: return map(array1)(f(array[bot]));\n case 2: return apply(map(array2)(f(array[bot])))(f(array[bot + 1]));\n case 3: return apply(apply(map(array3)(f(array[bot])))(f(array[bot + 1])))(f(array[bot + 2]));\n default:\n // This slightly tricky pivot selection aims to produce two\n // even-length partitions where possible.\n var pivot = bot + Math.floor((top - bot) / 4) * 2;\n return apply(map(concat2)(go(bot, pivot)))(go(pivot, top));\n }\n }\n return go(0, array.length);\n };\n };\n };\n };\n };\n})();\n","// Generated by purs version 0.15.2\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Functor_Invariant from \"../Data.Functor.Invariant/index.js\";\nimport * as Data_Monoid from \"../Data.Monoid/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nimport * as Data_Show from \"../Data.Show/index.js\";\nvar Const = function (x) {\n return x;\n};\nvar showConst = function (dictShow) {\n return {\n show: function (v) {\n return \"(Const \" + (Data_Show.show(dictShow)(v) + \")\");\n }\n };\n};\nvar semiringConst = function (dictSemiring) {\n return dictSemiring;\n};\nvar semigroupoidConst = {\n compose: function (v) {\n return function (v1) {\n return v1;\n };\n }\n};\nvar semigroupConst = function (dictSemigroup) {\n return dictSemigroup;\n};\nvar ringConst = function (dictRing) {\n return dictRing;\n};\nvar ordConst = function (dictOrd) {\n return dictOrd;\n};\nvar newtypeConst = {\n Coercible0: function () {\n return undefined;\n }\n};\nvar monoidConst = function (dictMonoid) {\n return dictMonoid;\n};\nvar heytingAlgebraConst = function (dictHeytingAlgebra) {\n return dictHeytingAlgebra;\n};\nvar functorConst = {\n map: function (f) {\n return function (m) {\n return m;\n };\n }\n};\nvar invariantConst = {\n imap: /* #__PURE__ */ Data_Functor_Invariant.imapF(functorConst)\n};\nvar euclideanRingConst = function (dictEuclideanRing) {\n return dictEuclideanRing;\n};\nvar eqConst = function (dictEq) {\n return dictEq;\n};\nvar eq1Const = function (dictEq) {\n return {\n eq1: function (dictEq1) {\n return Data_Eq.eq(eqConst(dictEq));\n }\n };\n};\nvar ord1Const = function (dictOrd) {\n return {\n compare1: function (dictOrd1) {\n return Data_Ord.compare(ordConst(dictOrd));\n },\n Eq10: function () {\n return eq1Const(dictOrd.Eq0());\n }\n };\n};\nvar commutativeRingConst = function (dictCommutativeRing) {\n return dictCommutativeRing;\n};\nvar boundedConst = function (dictBounded) {\n return dictBounded;\n};\nvar booleanAlgebraConst = function (dictBooleanAlgebra) {\n return dictBooleanAlgebra;\n};\nvar applyConst = function (dictSemigroup) {\n return {\n apply: function (v) {\n return function (v1) {\n return Data_Semigroup.append(dictSemigroup)(v)(v1);\n };\n },\n Functor0: function () {\n return functorConst;\n }\n };\n};\nvar applicativeConst = function (dictMonoid) {\n return {\n pure: function (v) {\n return Data_Monoid.mempty(dictMonoid);\n },\n Apply0: function () {\n return applyConst(dictMonoid.Semigroup0());\n }\n };\n};\nexport {\n Const,\n newtypeConst,\n eqConst,\n eq1Const,\n ordConst,\n ord1Const,\n boundedConst,\n showConst,\n semigroupoidConst,\n semigroupConst,\n monoidConst,\n semiringConst,\n ringConst,\n euclideanRingConst,\n commutativeRingConst,\n heytingAlgebraConst,\n booleanAlgebraConst,\n functorConst,\n invariantConst,\n applyConst,\n applicativeConst\n};\n","// Generated by purs version 0.15.2\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Data_Semiring from \"../Data.Semiring/index.js\";\nimport * as Data_Show from \"../Data.Show/index.js\";\nvar Additive = function (x) {\n return x;\n};\nvar showAdditive = function (dictShow) {\n return {\n show: function (v) {\n return \"(Additive \" + (Data_Show.show(dictShow)(v) + \")\");\n }\n };\n};\nvar semigroupAdditive = function (dictSemiring) {\n return {\n append: function (v) {\n return function (v1) {\n return Data_Semiring.add(dictSemiring)(v)(v1);\n };\n }\n };\n};\nvar ordAdditive = function (dictOrd) {\n return dictOrd;\n};\nvar monoidAdditive = function (dictSemiring) {\n return {\n mempty: Data_Semiring.zero(dictSemiring),\n Semigroup0: function () {\n return semigroupAdditive(dictSemiring);\n }\n };\n};\nvar functorAdditive = {\n map: function (f) {\n return function (m) {\n return f(m);\n };\n }\n};\nvar eqAdditive = function (dictEq) {\n return dictEq;\n};\nvar eq1Additive = {\n eq1: function (dictEq) {\n return Data_Eq.eq(eqAdditive(dictEq));\n }\n};\nvar ord1Additive = {\n compare1: function (dictOrd) {\n return Data_Ord.compare(ordAdditive(dictOrd));\n },\n Eq10: function () {\n return eq1Additive;\n }\n};\nvar boundedAdditive = function (dictBounded) {\n return dictBounded;\n};\nvar applyAdditive = {\n apply: function (v) {\n return function (v1) {\n return v(v1);\n };\n },\n Functor0: function () {\n return functorAdditive;\n }\n};\nvar bindAdditive = {\n bind: function (v) {\n return function (f) {\n return f(v);\n };\n },\n Apply0: function () {\n return applyAdditive;\n }\n};\nvar applicativeAdditive = {\n pure: Additive,\n Apply0: function () {\n return applyAdditive;\n }\n};\nvar monadAdditive = {\n Applicative0: function () {\n return applicativeAdditive;\n },\n Bind1: function () {\n return bindAdditive;\n }\n};\nexport {\n Additive,\n eqAdditive,\n eq1Additive,\n ordAdditive,\n ord1Additive,\n boundedAdditive,\n showAdditive,\n functorAdditive,\n applyAdditive,\n applicativeAdditive,\n bindAdditive,\n monadAdditive,\n semigroupAdditive,\n monoidAdditive\n};\n","// Generated by purs version 0.15.2\nimport * as $foreign from \"./foreign.js\";\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Apply from \"../Control.Apply/index.js\";\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Data_Const from \"../Data.Const/index.js\";\nimport * as Data_Either from \"../Data.Either/index.js\";\nimport * as Data_Foldable from \"../Data.Foldable/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Functor_App from \"../Data.Functor.App/index.js\";\nimport * as Data_Functor_Compose from \"../Data.Functor.Compose/index.js\";\nimport * as Data_Functor_Coproduct from \"../Data.Functor.Coproduct/index.js\";\nimport * as Data_Functor_Product from \"../Data.Functor.Product/index.js\";\nimport * as Data_Identity from \"../Data.Identity/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Maybe_First from \"../Data.Maybe.First/index.js\";\nimport * as Data_Maybe_Last from \"../Data.Maybe.Last/index.js\";\nimport * as Data_Monoid_Additive from \"../Data.Monoid.Additive/index.js\";\nimport * as Data_Monoid_Conj from \"../Data.Monoid.Conj/index.js\";\nimport * as Data_Monoid_Disj from \"../Data.Monoid.Disj/index.js\";\nimport * as Data_Monoid_Dual from \"../Data.Monoid.Dual/index.js\";\nimport * as Data_Monoid_Multiplicative from \"../Data.Monoid.Multiplicative/index.js\";\nimport * as Data_Traversable_Accum from \"../Data.Traversable.Accum/index.js\";\nimport * as Data_Traversable_Accum_Internal from \"../Data.Traversable.Accum.Internal/index.js\";\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nvar traverse = function (dict) {\n return dict.traverse;\n};\nvar traversableTuple = {\n traverse: function (dictApplicative) {\n return function (f) {\n return function (v) {\n return Data_Functor.map((dictApplicative.Apply0()).Functor0())(Data_Tuple.Tuple.create(v.value0))(f(v.value1));\n };\n };\n },\n sequence: function (dictApplicative) {\n return function (v) {\n return Data_Functor.map((dictApplicative.Apply0()).Functor0())(Data_Tuple.Tuple.create(v.value0))(v.value1);\n };\n },\n Functor0: function () {\n return Data_Tuple.functorTuple;\n },\n Foldable1: function () {\n return Data_Foldable.foldableTuple;\n }\n};\nvar traversableMultiplicative = {\n traverse: function (dictApplicative) {\n return function (f) {\n return function (v) {\n return Data_Functor.map((dictApplicative.Apply0()).Functor0())(Data_Monoid_Multiplicative.Multiplicative)(f(v));\n };\n };\n },\n sequence: function (dictApplicative) {\n return function (v) {\n return Data_Functor.map((dictApplicative.Apply0()).Functor0())(Data_Monoid_Multiplicative.Multiplicative)(v);\n };\n },\n Functor0: function () {\n return Data_Monoid_Multiplicative.functorMultiplicative;\n },\n Foldable1: function () {\n return Data_Foldable.foldableMultiplicative;\n }\n};\nvar traversableMaybe = {\n traverse: function (dictApplicative) {\n return function (v) {\n return function (v1) {\n if (v1 instanceof Data_Maybe.Nothing) {\n return Control_Applicative.pure(dictApplicative)(Data_Maybe.Nothing.value);\n };\n if (v1 instanceof Data_Maybe.Just) {\n return Data_Functor.map((dictApplicative.Apply0()).Functor0())(Data_Maybe.Just.create)(v(v1.value0));\n };\n throw new Error(\"Failed pattern match at Data.Traversable (line 115, column 1 - line 119, column 33): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n };\n },\n sequence: function (dictApplicative) {\n return function (v) {\n if (v instanceof Data_Maybe.Nothing) {\n return Control_Applicative.pure(dictApplicative)(Data_Maybe.Nothing.value);\n };\n if (v instanceof Data_Maybe.Just) {\n return Data_Functor.map((dictApplicative.Apply0()).Functor0())(Data_Maybe.Just.create)(v.value0);\n };\n throw new Error(\"Failed pattern match at Data.Traversable (line 115, column 1 - line 119, column 33): \" + [ v.constructor.name ]);\n };\n },\n Functor0: function () {\n return Data_Maybe.functorMaybe;\n },\n Foldable1: function () {\n return Data_Foldable.foldableMaybe;\n }\n};\nvar traversableIdentity = {\n traverse: function (dictApplicative) {\n return function (f) {\n return function (v) {\n return Data_Functor.map((dictApplicative.Apply0()).Functor0())(Data_Identity.Identity)(f(v));\n };\n };\n },\n sequence: function (dictApplicative) {\n return function (v) {\n return Data_Functor.map((dictApplicative.Apply0()).Functor0())(Data_Identity.Identity)(v);\n };\n },\n Functor0: function () {\n return Data_Identity.functorIdentity;\n },\n Foldable1: function () {\n return Data_Foldable.foldableIdentity;\n }\n};\nvar traversableEither = {\n traverse: function (dictApplicative) {\n return function (v) {\n return function (v1) {\n if (v1 instanceof Data_Either.Left) {\n return Control_Applicative.pure(dictApplicative)(new Data_Either.Left(v1.value0));\n };\n if (v1 instanceof Data_Either.Right) {\n return Data_Functor.map((dictApplicative.Apply0()).Functor0())(Data_Either.Right.create)(v(v1.value0));\n };\n throw new Error(\"Failed pattern match at Data.Traversable (line 149, column 1 - line 153, column 36): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n };\n },\n sequence: function (dictApplicative) {\n return function (v) {\n if (v instanceof Data_Either.Left) {\n return Control_Applicative.pure(dictApplicative)(new Data_Either.Left(v.value0));\n };\n if (v instanceof Data_Either.Right) {\n return Data_Functor.map((dictApplicative.Apply0()).Functor0())(Data_Either.Right.create)(v.value0);\n };\n throw new Error(\"Failed pattern match at Data.Traversable (line 149, column 1 - line 153, column 36): \" + [ v.constructor.name ]);\n };\n },\n Functor0: function () {\n return Data_Either.functorEither;\n },\n Foldable1: function () {\n return Data_Foldable.foldableEither;\n }\n};\nvar traversableDual = {\n traverse: function (dictApplicative) {\n return function (f) {\n return function (v) {\n return Data_Functor.map((dictApplicative.Apply0()).Functor0())(Data_Monoid_Dual.Dual)(f(v));\n };\n };\n },\n sequence: function (dictApplicative) {\n return function (v) {\n return Data_Functor.map((dictApplicative.Apply0()).Functor0())(Data_Monoid_Dual.Dual)(v);\n };\n },\n Functor0: function () {\n return Data_Monoid_Dual.functorDual;\n },\n Foldable1: function () {\n return Data_Foldable.foldableDual;\n }\n};\nvar traversableDisj = {\n traverse: function (dictApplicative) {\n return function (f) {\n return function (v) {\n return Data_Functor.map((dictApplicative.Apply0()).Functor0())(Data_Monoid_Disj.Disj)(f(v));\n };\n };\n },\n sequence: function (dictApplicative) {\n return function (v) {\n return Data_Functor.map((dictApplicative.Apply0()).Functor0())(Data_Monoid_Disj.Disj)(v);\n };\n },\n Functor0: function () {\n return Data_Monoid_Disj.functorDisj;\n },\n Foldable1: function () {\n return Data_Foldable.foldableDisj;\n }\n};\nvar traversableConst = {\n traverse: function (dictApplicative) {\n return function (v) {\n return function (v1) {\n return Control_Applicative.pure(dictApplicative)(v1);\n };\n };\n },\n sequence: function (dictApplicative) {\n return function (v) {\n return Control_Applicative.pure(dictApplicative)(v);\n };\n },\n Functor0: function () {\n return Data_Const.functorConst;\n },\n Foldable1: function () {\n return Data_Foldable.foldableConst;\n }\n};\nvar traversableConj = {\n traverse: function (dictApplicative) {\n return function (f) {\n return function (v) {\n return Data_Functor.map((dictApplicative.Apply0()).Functor0())(Data_Monoid_Conj.Conj)(f(v));\n };\n };\n },\n sequence: function (dictApplicative) {\n return function (v) {\n return Data_Functor.map((dictApplicative.Apply0()).Functor0())(Data_Monoid_Conj.Conj)(v);\n };\n },\n Functor0: function () {\n return Data_Monoid_Conj.functorConj;\n },\n Foldable1: function () {\n return Data_Foldable.foldableConj;\n }\n};\nvar traversableCompose = function (dictTraversable) {\n return function (dictTraversable1) {\n return {\n traverse: function (dictApplicative) {\n return function (f) {\n return function (v) {\n return Data_Functor.map((dictApplicative.Apply0()).Functor0())(Data_Functor_Compose.Compose)(traverse(dictTraversable)(dictApplicative)(traverse(dictTraversable1)(dictApplicative)(f))(v));\n };\n };\n },\n sequence: function (dictApplicative) {\n return traverse(traversableCompose(dictTraversable)(dictTraversable1))(dictApplicative)(Control_Category.identity(Control_Category.categoryFn));\n },\n Functor0: function () {\n return Data_Functor_Compose.functorCompose(dictTraversable.Functor0())(dictTraversable1.Functor0());\n },\n Foldable1: function () {\n return Data_Foldable.foldableCompose(dictTraversable.Foldable1())(dictTraversable1.Foldable1());\n }\n };\n };\n};\nvar traversableAdditive = {\n traverse: function (dictApplicative) {\n return function (f) {\n return function (v) {\n return Data_Functor.map((dictApplicative.Apply0()).Functor0())(Data_Monoid_Additive.Additive)(f(v));\n };\n };\n },\n sequence: function (dictApplicative) {\n return function (v) {\n return Data_Functor.map((dictApplicative.Apply0()).Functor0())(Data_Monoid_Additive.Additive)(v);\n };\n },\n Functor0: function () {\n return Data_Monoid_Additive.functorAdditive;\n },\n Foldable1: function () {\n return Data_Foldable.foldableAdditive;\n }\n};\nvar sequenceDefault = function (dictTraversable) {\n return function (dictApplicative) {\n return traverse(dictTraversable)(dictApplicative)(Control_Category.identity(Control_Category.categoryFn));\n };\n};\nvar traversableArray = {\n traverse: function (dictApplicative) {\n return $foreign.traverseArrayImpl(Control_Apply.apply(dictApplicative.Apply0()))(Data_Functor.map((dictApplicative.Apply0()).Functor0()))(Control_Applicative.pure(dictApplicative));\n },\n sequence: function (dictApplicative) {\n return sequenceDefault(traversableArray)(dictApplicative);\n },\n Functor0: function () {\n return Data_Functor.functorArray;\n },\n Foldable1: function () {\n return Data_Foldable.foldableArray;\n }\n};\nvar sequence = function (dict) {\n return dict.sequence;\n};\nvar traversableApp = function (dictTraversable) {\n return {\n traverse: function (dictApplicative) {\n return function (f) {\n return function (v) {\n return Data_Functor.map((dictApplicative.Apply0()).Functor0())(Data_Functor_App.App)(traverse(dictTraversable)(dictApplicative)(f)(v));\n };\n };\n },\n sequence: function (dictApplicative) {\n return function (v) {\n return Data_Functor.map((dictApplicative.Apply0()).Functor0())(Data_Functor_App.App)(sequence(dictTraversable)(dictApplicative)(v));\n };\n },\n Functor0: function () {\n return Data_Functor_App.functorApp(dictTraversable.Functor0());\n },\n Foldable1: function () {\n return Data_Foldable.foldableApp(dictTraversable.Foldable1());\n }\n };\n};\nvar traversableCoproduct = function (dictTraversable) {\n return function (dictTraversable1) {\n return {\n traverse: function (dictApplicative) {\n return function (f) {\n return Data_Functor_Coproduct.coproduct((function () {\n var $143 = Data_Functor.map((dictApplicative.Apply0()).Functor0())(function ($146) {\n return Data_Functor_Coproduct.Coproduct(Data_Either.Left.create($146));\n });\n var $144 = traverse(dictTraversable)(dictApplicative)(f);\n return function ($145) {\n return $143($144($145));\n };\n })())((function () {\n var $147 = Data_Functor.map((dictApplicative.Apply0()).Functor0())(function ($150) {\n return Data_Functor_Coproduct.Coproduct(Data_Either.Right.create($150));\n });\n var $148 = traverse(dictTraversable1)(dictApplicative)(f);\n return function ($149) {\n return $147($148($149));\n };\n })());\n };\n },\n sequence: function (dictApplicative) {\n return Data_Functor_Coproduct.coproduct((function () {\n var $151 = Data_Functor.map((dictApplicative.Apply0()).Functor0())(function ($154) {\n return Data_Functor_Coproduct.Coproduct(Data_Either.Left.create($154));\n });\n var $152 = sequence(dictTraversable)(dictApplicative);\n return function ($153) {\n return $151($152($153));\n };\n })())((function () {\n var $155 = Data_Functor.map((dictApplicative.Apply0()).Functor0())(function ($158) {\n return Data_Functor_Coproduct.Coproduct(Data_Either.Right.create($158));\n });\n var $156 = sequence(dictTraversable1)(dictApplicative);\n return function ($157) {\n return $155($156($157));\n };\n })());\n },\n Functor0: function () {\n return Data_Functor_Coproduct.functorCoproduct(dictTraversable.Functor0())(dictTraversable1.Functor0());\n },\n Foldable1: function () {\n return Data_Foldable.foldableCoproduct(dictTraversable.Foldable1())(dictTraversable1.Foldable1());\n }\n };\n };\n};\nvar traversableFirst = {\n traverse: function (dictApplicative) {\n return function (f) {\n return function (v) {\n return Data_Functor.map((dictApplicative.Apply0()).Functor0())(Data_Maybe_First.First)(traverse(traversableMaybe)(dictApplicative)(f)(v));\n };\n };\n },\n sequence: function (dictApplicative) {\n return function (v) {\n return Data_Functor.map((dictApplicative.Apply0()).Functor0())(Data_Maybe_First.First)(sequence(traversableMaybe)(dictApplicative)(v));\n };\n },\n Functor0: function () {\n return Data_Maybe_First.functorFirst;\n },\n Foldable1: function () {\n return Data_Foldable.foldableFirst;\n }\n};\nvar traversableLast = {\n traverse: function (dictApplicative) {\n return function (f) {\n return function (v) {\n return Data_Functor.map((dictApplicative.Apply0()).Functor0())(Data_Maybe_Last.Last)(traverse(traversableMaybe)(dictApplicative)(f)(v));\n };\n };\n },\n sequence: function (dictApplicative) {\n return function (v) {\n return Data_Functor.map((dictApplicative.Apply0()).Functor0())(Data_Maybe_Last.Last)(sequence(traversableMaybe)(dictApplicative)(v));\n };\n },\n Functor0: function () {\n return Data_Maybe_Last.functorLast;\n },\n Foldable1: function () {\n return Data_Foldable.foldableLast;\n }\n};\nvar traversableProduct = function (dictTraversable) {\n return function (dictTraversable1) {\n return {\n traverse: function (dictApplicative) {\n return function (f) {\n return function (v) {\n return Control_Apply.lift2(dictApplicative.Apply0())(Data_Functor_Product.product)(traverse(dictTraversable)(dictApplicative)(f)(v.value0))(traverse(dictTraversable1)(dictApplicative)(f)(v.value1));\n };\n };\n },\n sequence: function (dictApplicative) {\n return function (v) {\n return Control_Apply.lift2(dictApplicative.Apply0())(Data_Functor_Product.product)(sequence(dictTraversable)(dictApplicative)(v.value0))(sequence(dictTraversable1)(dictApplicative)(v.value1));\n };\n },\n Functor0: function () {\n return Data_Functor_Product.functorProduct(dictTraversable.Functor0())(dictTraversable1.Functor0());\n },\n Foldable1: function () {\n return Data_Foldable.foldableProduct(dictTraversable.Foldable1())(dictTraversable1.Foldable1());\n }\n };\n };\n};\nvar traverseDefault = function (dictTraversable) {\n return function (dictApplicative) {\n return function (f) {\n return function (ta) {\n return sequence(dictTraversable)(dictApplicative)(Data_Functor.map(dictTraversable.Functor0())(f)(ta));\n };\n };\n };\n};\nvar mapAccumR = function (dictTraversable) {\n return function (f) {\n return function (s0) {\n return function (xs) {\n return Data_Traversable_Accum_Internal.stateR(traverse(dictTraversable)(Data_Traversable_Accum_Internal.applicativeStateR)(function (a) {\n return function (s) {\n return f(s)(a);\n };\n })(xs))(s0);\n };\n };\n };\n};\nvar scanr = function (dictTraversable) {\n return function (f) {\n return function (b0) {\n return function (xs) {\n return (mapAccumR(dictTraversable)(function (b) {\n return function (a) {\n var b$prime = f(a)(b);\n return {\n accum: b$prime,\n value: b$prime\n };\n };\n })(b0)(xs)).value;\n };\n };\n };\n};\nvar mapAccumL = function (dictTraversable) {\n return function (f) {\n return function (s0) {\n return function (xs) {\n return Data_Traversable_Accum_Internal.stateL(traverse(dictTraversable)(Data_Traversable_Accum_Internal.applicativeStateL)(function (a) {\n return function (s) {\n return f(s)(a);\n };\n })(xs))(s0);\n };\n };\n };\n};\nvar scanl = function (dictTraversable) {\n return function (f) {\n return function (b0) {\n return function (xs) {\n return (mapAccumL(dictTraversable)(function (b) {\n return function (a) {\n var b$prime = f(b)(a);\n return {\n accum: b$prime,\n value: b$prime\n };\n };\n })(b0)(xs)).value;\n };\n };\n };\n};\nvar $$for = function (dictApplicative) {\n return function (dictTraversable) {\n return function (x) {\n return function (f) {\n return traverse(dictTraversable)(dictApplicative)(f)(x);\n };\n };\n };\n};\nexport {\n traverse,\n sequence,\n traverseDefault,\n sequenceDefault,\n $$for as for,\n scanl,\n scanr,\n mapAccumL,\n mapAccumR,\n traversableArray,\n traversableMaybe,\n traversableFirst,\n traversableLast,\n traversableAdditive,\n traversableDual,\n traversableConj,\n traversableDisj,\n traversableMultiplicative,\n traversableEither,\n traversableTuple,\n traversableIdentity,\n traversableConst,\n traversableProduct,\n traversableCoproduct,\n traversableCompose,\n traversableApp\n};\nexport {\n all,\n and,\n any,\n elem,\n find,\n fold,\n foldMap,\n foldMapDefaultL,\n foldMapDefaultR,\n foldl,\n foldlDefault,\n foldr,\n foldrDefault,\n for_,\n intercalate,\n maximum,\n maximumBy,\n minimum,\n minimumBy,\n notElem,\n oneOf,\n or,\n sequence_,\n sum,\n traverse_\n} from \"../Data.Foldable/index.js\";\n","export const unfoldrArrayImpl = function (isNothing) {\n return function (fromJust) {\n return function (fst) {\n return function (snd) {\n return function (f) {\n return function (b) {\n var result = [];\n var value = b;\n while (true) { // eslint-disable-line no-constant-condition\n var maybe = f(value);\n if (isNothing(maybe)) return result;\n var tuple = fromJust(maybe);\n result.push(fst(tuple));\n value = snd(tuple);\n }\n };\n };\n };\n };\n };\n};\n","export const unfoldr1ArrayImpl = function (isNothing) {\n return function (fromJust) {\n return function (fst) {\n return function (snd) {\n return function (f) {\n return function (b) {\n var result = [];\n var value = b;\n while (true) { // eslint-disable-line no-constant-condition\n var tuple = f(value);\n result.push(fst(tuple));\n var maybe = snd(tuple);\n if (isNothing(maybe)) return result;\n value = fromJust(maybe);\n }\n };\n };\n };\n };\n };\n};\n","// Generated by purs version 0.15.2\nimport * as Data_Bounded from \"../Data.Bounded/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Data_Show from \"../Data.Show/index.js\";\nvar Max = function (x) {\n return x;\n};\nvar showMax = function (dictShow) {\n return {\n show: function (v) {\n return \"(Max \" + (Data_Show.show(dictShow)(v) + \")\");\n }\n };\n};\nvar semigroupMax = function (dictOrd) {\n return {\n append: function (v) {\n return function (v1) {\n return Data_Ord.max(dictOrd)(v)(v1);\n };\n }\n };\n};\nvar newtypeMax = {\n Coercible0: function () {\n return undefined;\n }\n};\nvar monoidMax = function (dictBounded) {\n return {\n mempty: Data_Bounded.bottom(dictBounded),\n Semigroup0: function () {\n return semigroupMax(dictBounded.Ord0());\n }\n };\n};\nvar eqMax = function (dictEq) {\n return dictEq;\n};\nvar ordMax = function (dictOrd) {\n return {\n compare: function (v) {\n return function (v1) {\n return Data_Ord.compare(dictOrd)(v)(v1);\n };\n },\n Eq0: function () {\n return eqMax(dictOrd.Eq0());\n }\n };\n};\nexport {\n Max,\n newtypeMax,\n eqMax,\n ordMax,\n semigroupMax,\n monoidMax,\n showMax\n};\n","// Generated by purs version 0.15.2\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Boolean from \"../Data.Boolean/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Semigroup_Traversable from \"../Data.Semigroup.Traversable/index.js\";\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nvar unfoldr1 = function (dict) {\n return dict.unfoldr1;\n};\nvar unfoldable1Maybe = {\n unfoldr1: function (f) {\n return function (b) {\n return new Data_Maybe.Just(Data_Tuple.fst(f(b)));\n };\n }\n};\nvar unfoldable1Array = {\n unfoldr1: /* #__PURE__ */ $foreign.unfoldr1ArrayImpl(Data_Maybe.isNothing)(/* #__PURE__ */ Data_Maybe.fromJust())(Data_Tuple.fst)(Data_Tuple.snd)\n};\nvar replicate1 = function (dictUnfoldable1) {\n return function (n) {\n return function (v) {\n var step = function (i) {\n if (i <= 0) {\n return new Data_Tuple.Tuple(v, Data_Maybe.Nothing.value);\n };\n if (Data_Boolean.otherwise) {\n return new Data_Tuple.Tuple(v, new Data_Maybe.Just(i - 1 | 0));\n };\n throw new Error(\"Failed pattern match at Data.Unfoldable1 (line 68, column 5 - line 68, column 39): \" + [ i.constructor.name ]);\n };\n return unfoldr1(dictUnfoldable1)(step)(n - 1 | 0);\n };\n };\n};\nvar replicate1A = function (dictApply) {\n return function (dictUnfoldable1) {\n return function (dictTraversable1) {\n return function (n) {\n return function (m) {\n return Data_Semigroup_Traversable.sequence1(dictTraversable1)(dictApply)(replicate1(dictUnfoldable1)(n)(m));\n };\n };\n };\n };\n};\nvar singleton = function (dictUnfoldable1) {\n return replicate1(dictUnfoldable1)(1);\n};\nvar range = function (dictUnfoldable1) {\n return function (start) {\n return function (end) {\n var go = function (delta) {\n return function (i) {\n var i$prime = i + delta | 0;\n return new Data_Tuple.Tuple(i, (function () {\n var $10 = i === end;\n if ($10) {\n return Data_Maybe.Nothing.value;\n };\n return new Data_Maybe.Just(i$prime);\n })());\n };\n };\n var delta = (function () {\n var $11 = end >= start;\n if ($11) {\n return 1;\n };\n return -1 | 0;\n })();\n return unfoldr1(dictUnfoldable1)(go(delta))(start);\n };\n };\n};\nvar iterateN = function (dictUnfoldable1) {\n return function (n) {\n return function (f) {\n return function (s) {\n var go = function (v) {\n return new Data_Tuple.Tuple(v.value0, (function () {\n var $13 = v.value1 > 0;\n if ($13) {\n return new Data_Maybe.Just(new Data_Tuple.Tuple(f(v.value0), v.value1 - 1 | 0));\n };\n return Data_Maybe.Nothing.value;\n })());\n };\n return unfoldr1(dictUnfoldable1)(go)(new Data_Tuple.Tuple(s, n - 1 | 0));\n };\n };\n };\n};\nexport {\n unfoldr1,\n replicate1,\n replicate1A,\n singleton,\n range,\n iterateN,\n unfoldable1Array,\n unfoldable1Maybe\n};\n","// Generated by purs version 0.15.2\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Traversable from \"../Data.Traversable/index.js\";\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nimport * as Data_Unfoldable1 from \"../Data.Unfoldable1/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nvar unfoldr = function (dict) {\n return dict.unfoldr;\n};\nvar unfoldableMaybe = {\n unfoldr: function (f) {\n return function (b) {\n return Data_Functor.map(Data_Maybe.functorMaybe)(Data_Tuple.fst)(f(b));\n };\n },\n Unfoldable10: function () {\n return Data_Unfoldable1.unfoldable1Maybe;\n }\n};\nvar unfoldableArray = {\n unfoldr: /* #__PURE__ */ $foreign.unfoldrArrayImpl(Data_Maybe.isNothing)(/* #__PURE__ */ Data_Maybe.fromJust())(Data_Tuple.fst)(Data_Tuple.snd),\n Unfoldable10: function () {\n return Data_Unfoldable1.unfoldable1Array;\n }\n};\nvar replicate = function (dictUnfoldable) {\n return function (n) {\n return function (v) {\n var step = function (i) {\n var $7 = i <= 0;\n if ($7) {\n return Data_Maybe.Nothing.value;\n };\n return new Data_Maybe.Just(new Data_Tuple.Tuple(v, i - 1 | 0));\n };\n return unfoldr(dictUnfoldable)(step)(n);\n };\n };\n};\nvar replicateA = function (dictApplicative) {\n return function (dictUnfoldable) {\n return function (dictTraversable) {\n return function (n) {\n return function (m) {\n return Data_Traversable.sequence(dictTraversable)(dictApplicative)(replicate(dictUnfoldable)(n)(m));\n };\n };\n };\n };\n};\nvar none = function (dictUnfoldable) {\n return unfoldr(dictUnfoldable)(Data_Function[\"const\"](Data_Maybe.Nothing.value))(Data_Unit.unit);\n};\nvar fromMaybe = function (dictUnfoldable) {\n return unfoldr(dictUnfoldable)(function (b) {\n return Data_Functor.map(Data_Maybe.functorMaybe)(Data_Function.flip(Data_Tuple.Tuple.create)(Data_Maybe.Nothing.value))(b);\n });\n};\nexport {\n unfoldr,\n replicate,\n replicateA,\n none,\n fromMaybe,\n unfoldableArray,\n unfoldableMaybe\n};\nexport {\n iterateN,\n range,\n replicate1,\n replicate1A,\n singleton,\n unfoldr1\n} from \"../Data.Unfoldable1/index.js\";\n","// Generated by purs version 0.15.2\nimport * as $foreign from \"./foreign.js\";\nimport * as Control_Alt from \"../Control.Alt/index.js\";\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Apply from \"../Control.Apply/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Control_Lazy from \"../Control.Lazy/index.js\";\nimport * as Control_Monad_Rec_Class from \"../Control.Monad.Rec.Class/index.js\";\nimport * as Control_Monad_ST_Internal from \"../Control.Monad.ST.Internal/index.js\";\nimport * as Data_Array_ST from \"../Data.Array.ST/index.js\";\nimport * as Data_Array_ST_Iterator from \"../Data.Array.ST.Iterator/index.js\";\nimport * as Data_Boolean from \"../Data.Boolean/index.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Foldable from \"../Data.Foldable/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_HeytingAlgebra from \"../Data.HeytingAlgebra/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Data_Ordering from \"../Data.Ordering/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nimport * as Data_Traversable from \"../Data.Traversable/index.js\";\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nimport * as Data_Unfoldable from \"../Data.Unfoldable/index.js\";\nvar zipWithA = function (dictApplicative) {\n return function (f) {\n return function (xs) {\n return function (ys) {\n return Data_Traversable.sequence(Data_Traversable.traversableArray)(dictApplicative)($foreign.zipWith(f)(xs)(ys));\n };\n };\n };\n};\nvar zip = /* #__PURE__ */ (function () {\n return $foreign.zipWith(Data_Tuple.Tuple.create);\n})();\nvar updateAtIndices = function (dictFoldable) {\n return function (us) {\n return function (xs) {\n return Data_Array_ST.withArray(function (res) {\n return Data_Foldable.traverse_(Control_Monad_ST_Internal.applicativeST)(dictFoldable)(function (v) {\n return Data_Array_ST.poke(v.value0)(v.value1)(res);\n })(us);\n })(xs)();\n };\n };\n};\nvar updateAt = /* #__PURE__ */ (function () {\n return $foreign[\"_updateAt\"](Data_Maybe.Just.create)(Data_Maybe.Nothing.value);\n})();\nvar unsafeIndex = function () {\n return $foreign.unsafeIndexImpl;\n};\nvar uncons = /* #__PURE__ */ (function () {\n return $foreign.unconsImpl(Data_Function[\"const\"](Data_Maybe.Nothing.value))(function (x) {\n return function (xs) {\n return new Data_Maybe.Just({\n head: x,\n tail: xs\n });\n };\n });\n})();\nvar toUnfoldable = function (dictUnfoldable) {\n return function (xs) {\n var len = $foreign.length(xs);\n var f = function (i) {\n if (i < len) {\n return new Data_Maybe.Just(new Data_Tuple.Tuple(unsafeIndex()(xs)(i), i + 1 | 0));\n };\n if (Data_Boolean.otherwise) {\n return Data_Maybe.Nothing.value;\n };\n throw new Error(\"Failed pattern match at Data.Array (line 156, column 3 - line 158, column 26): \" + [ i.constructor.name ]);\n };\n return Data_Unfoldable.unfoldr(dictUnfoldable)(f)(0);\n };\n};\nvar take = function (n) {\n return function (xs) {\n var $57 = n < 1;\n if ($57) {\n return [ ];\n };\n return $foreign.slice(0)(n)(xs);\n };\n};\nvar tail = /* #__PURE__ */ (function () {\n return $foreign.unconsImpl(Data_Function[\"const\"](Data_Maybe.Nothing.value))(function (v) {\n return function (xs) {\n return new Data_Maybe.Just(xs);\n };\n });\n})();\nvar splitAt = function (i) {\n return function (xs) {\n if (i <= 0) {\n return {\n before: [ ],\n after: xs\n };\n };\n return {\n before: $foreign.slice(0)(i)(xs),\n after: $foreign.slice(i)($foreign.length(xs))(xs)\n };\n };\n};\nvar sortBy = function (comp) {\n return $foreign.sortByImpl(comp)(function (v) {\n if (v instanceof Data_Ordering.GT) {\n return 1;\n };\n if (v instanceof Data_Ordering.EQ) {\n return 0;\n };\n if (v instanceof Data_Ordering.LT) {\n return -1 | 0;\n };\n throw new Error(\"Failed pattern match at Data.Array (line 829, column 31 - line 832, column 11): \" + [ v.constructor.name ]);\n });\n};\nvar sortWith = function (dictOrd) {\n return function (f) {\n return sortBy(Data_Ord.comparing(dictOrd)(f));\n };\n};\nvar sort = function (dictOrd) {\n return function (xs) {\n return sortBy(Data_Ord.compare(dictOrd))(xs);\n };\n};\nvar snoc = function (xs) {\n return function (x) {\n return Data_Array_ST.withArray(Data_Array_ST.push(x))(xs)();\n };\n};\nvar singleton = function (a) {\n return [ a ];\n};\nvar $$null = function (xs) {\n return $foreign.length(xs) === 0;\n};\nvar nubByEq = function (eq) {\n return function (xs) {\n return (function __do() {\n var arr = Data_Array_ST[\"new\"]();\n Control_Monad_ST_Internal.foreach(xs)(function (x) {\n return function __do() {\n var e = Data_Functor.map(Control_Monad_ST_Internal.functorST)((function () {\n var $89 = Data_HeytingAlgebra.not(Data_HeytingAlgebra.heytingAlgebraBoolean);\n var $90 = $foreign.any(function (v) {\n return eq(v)(x);\n });\n return function ($91) {\n return $89($90($91));\n };\n })())(Data_Array_ST.unsafeFreeze(arr))();\n return Control_Applicative.when(Control_Monad_ST_Internal.applicativeST)(e)(Data_Functor[\"void\"](Control_Monad_ST_Internal.functorST)(Data_Array_ST.push(x)(arr)))();\n };\n })();\n return Data_Array_ST.unsafeFreeze(arr)();\n })();\n };\n};\nvar nubEq = function (dictEq) {\n return nubByEq(Data_Eq.eq(dictEq));\n};\nvar modifyAtIndices = function (dictFoldable) {\n return function (is) {\n return function (f) {\n return function (xs) {\n return Data_Array_ST.withArray(function (res) {\n return Data_Foldable.traverse_(Control_Monad_ST_Internal.applicativeST)(dictFoldable)(function (i) {\n return Data_Array_ST.modify(i)(f)(res);\n })(is);\n })(xs)();\n };\n };\n };\n};\nvar mapWithIndex = function (f) {\n return function (xs) {\n return $foreign.zipWith(f)($foreign.range(0)($foreign.length(xs) - 1 | 0))(xs);\n };\n};\nvar intersperse = function (a) {\n return function (arr) {\n var v = $foreign.length(arr);\n if (v < 2) {\n return arr;\n };\n if (Data_Boolean.otherwise) {\n return Data_Array_ST.run((function () {\n var unsafeGetElem = function (idx) {\n return unsafeIndex()(arr)(idx);\n };\n return function __do() {\n var out = Data_Array_ST[\"new\"]();\n Data_Array_ST.push(unsafeGetElem(0))(out)();\n Control_Monad_ST_Internal[\"for\"](1)(v)(function (idx) {\n return function __do() {\n Data_Array_ST.push(a)(out)();\n return Data_Functor[\"void\"](Control_Monad_ST_Internal.functorST)(Data_Array_ST.push(unsafeGetElem(idx))(out))();\n };\n })();\n return out;\n };\n })());\n };\n throw new Error(\"Failed pattern match at Data.Array (line 611, column 21 - line 620, column 19): \" + [ v.constructor.name ]);\n };\n};\nvar intercalate = function (dictMonoid) {\n return Data_Foldable.intercalate(Data_Foldable.foldableArray)(dictMonoid);\n};\nvar insertAt = /* #__PURE__ */ (function () {\n return $foreign[\"_insertAt\"](Data_Maybe.Just.create)(Data_Maybe.Nothing.value);\n})();\nvar init = function (xs) {\n if ($$null(xs)) {\n return Data_Maybe.Nothing.value;\n };\n if (Data_Boolean.otherwise) {\n return new Data_Maybe.Just($foreign.slice(0)($foreign.length(xs) - 1 | 0)(xs));\n };\n throw new Error(\"Failed pattern match at Data.Array (line 338, column 1 - line 338, column 45): \" + [ xs.constructor.name ]);\n};\nvar index = /* #__PURE__ */ (function () {\n return $foreign.indexImpl(Data_Maybe.Just.create)(Data_Maybe.Nothing.value);\n})();\nvar last = function (xs) {\n return index(xs)($foreign.length(xs) - 1 | 0);\n};\nvar unsnoc = function (xs) {\n return Control_Apply.apply(Data_Maybe.applyMaybe)(Data_Functor.map(Data_Maybe.functorMaybe)(function (v) {\n return function (v1) {\n return {\n init: v,\n last: v1\n };\n };\n })(init(xs)))(last(xs));\n};\nvar modifyAt = function (i) {\n return function (f) {\n return function (xs) {\n var go = function (x) {\n return updateAt(i)(f(x))(xs);\n };\n return Data_Maybe.maybe(Data_Maybe.Nothing.value)(go)(index(xs)(i));\n };\n };\n};\nvar span = function (p) {\n return function (arr) {\n var go = function ($copy_i) {\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(i) {\n var v = index(arr)(i);\n if (v instanceof Data_Maybe.Just) {\n var $64 = p(v.value0);\n if ($64) {\n $copy_i = i + 1 | 0;\n return;\n };\n $tco_done = true;\n return new Data_Maybe.Just(i);\n };\n if (v instanceof Data_Maybe.Nothing) {\n $tco_done = true;\n return Data_Maybe.Nothing.value;\n };\n throw new Error(\"Failed pattern match at Data.Array (line 964, column 5 - line 966, column 25): \" + [ v.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($copy_i);\n };\n return $tco_result;\n };\n var breakIndex = go(0);\n if (breakIndex instanceof Data_Maybe.Just && breakIndex.value0 === 0) {\n return {\n init: [ ],\n rest: arr\n };\n };\n if (breakIndex instanceof Data_Maybe.Just) {\n return {\n init: $foreign.slice(0)(breakIndex.value0)(arr),\n rest: $foreign.slice(breakIndex.value0)($foreign.length(arr))(arr)\n };\n };\n if (breakIndex instanceof Data_Maybe.Nothing) {\n return {\n init: arr,\n rest: [ ]\n };\n };\n throw new Error(\"Failed pattern match at Data.Array (line 951, column 3 - line 957, column 30): \" + [ breakIndex.constructor.name ]);\n };\n};\nvar takeWhile = function (p) {\n return function (xs) {\n return (span(p)(xs)).init;\n };\n};\nvar unzip = function (xs) {\n return (function __do() {\n var fsts = Data_Array_ST[\"new\"]();\n var snds = Data_Array_ST[\"new\"]();\n var iter = Data_Array_ST_Iterator.iterator(function (v) {\n return index(xs)(v);\n })();\n Data_Array_ST_Iterator.iterate(iter)(function (v) {\n return function __do() {\n Data_Functor[\"void\"](Control_Monad_ST_Internal.functorST)(Data_Array_ST.push(v.value0)(fsts))();\n return Data_Functor[\"void\"](Control_Monad_ST_Internal.functorST)(Data_Array_ST.push(v.value1)(snds))();\n };\n })();\n var fsts$prime = Data_Array_ST.unsafeFreeze(fsts)();\n var snds$prime = Data_Array_ST.unsafeFreeze(snds)();\n return new Data_Tuple.Tuple(fsts$prime, snds$prime);\n })();\n};\nvar head = function (xs) {\n return index(xs)(0);\n};\nvar nubBy = function (comp) {\n return function (xs) {\n var indexedAndSorted = sortBy(function (x) {\n return function (y) {\n return comp(Data_Tuple.snd(x))(Data_Tuple.snd(y));\n };\n })(mapWithIndex(Data_Tuple.Tuple.create)(xs));\n var v = head(indexedAndSorted);\n if (v instanceof Data_Maybe.Nothing) {\n return [ ];\n };\n if (v instanceof Data_Maybe.Just) {\n return Data_Functor.map(Data_Functor.functorArray)(Data_Tuple.snd)(sortWith(Data_Ord.ordInt)(Data_Tuple.fst)((function __do() {\n var result = Data_Array_ST.unsafeThaw(singleton(v.value0))();\n Control_Monad_ST_Internal.foreach(indexedAndSorted)(function (v1) {\n return function __do() {\n var lst = Data_Functor.map(Control_Monad_ST_Internal.functorST)((function () {\n var $92 = (function () {\n var $94 = Data_Maybe.fromJust();\n return function ($95) {\n return $94(last($95));\n };\n })();\n return function ($93) {\n return Data_Tuple.snd($92($93));\n };\n })())(Data_Array_ST.unsafeFreeze(result))();\n return Control_Applicative.when(Control_Monad_ST_Internal.applicativeST)(Data_Eq.notEq(Data_Ordering.eqOrdering)(comp(lst)(v1.value1))(Data_Ordering.EQ.value))(Data_Functor[\"void\"](Control_Monad_ST_Internal.functorST)(Data_Array_ST.push(v1)(result)))();\n };\n })();\n return Data_Array_ST.unsafeFreeze(result)();\n })()));\n };\n throw new Error(\"Failed pattern match at Data.Array (line 1044, column 17 - line 1052, column 29): \" + [ v.constructor.name ]);\n };\n};\nvar nub = function (dictOrd) {\n return nubBy(Data_Ord.compare(dictOrd));\n};\nvar groupBy = function (op) {\n return function (xs) {\n return (function __do() {\n var result = Data_Array_ST[\"new\"]();\n var iter = Data_Array_ST_Iterator.iterator(function (v) {\n return index(xs)(v);\n })();\n Data_Array_ST_Iterator.iterate(iter)(function (x) {\n return Data_Functor[\"void\"](Control_Monad_ST_Internal.functorST)(function __do() {\n var sub = Data_Array_ST[\"new\"]();\n Data_Array_ST.push(x)(sub)();\n Data_Array_ST_Iterator.pushWhile(op(x))(iter)(sub)();\n var grp = Data_Array_ST.unsafeFreeze(sub)();\n return Data_Array_ST.push(grp)(result)();\n });\n })();\n return Data_Array_ST.unsafeFreeze(result)();\n })();\n };\n};\nvar groupAllBy = function (cmp) {\n var $96 = groupBy(function (x) {\n return function (y) {\n return Data_Eq.eq(Data_Ordering.eqOrdering)(cmp(x)(y))(Data_Ordering.EQ.value);\n };\n });\n var $97 = sortBy(cmp);\n return function ($98) {\n return $96($97($98));\n };\n};\nvar groupAll = function (dictOrd) {\n return groupAllBy(Data_Ord.compare(dictOrd));\n};\nvar group = function (dictEq) {\n return function (xs) {\n return groupBy(Data_Eq.eq(dictEq))(xs);\n };\n};\nvar fromFoldable = function (dictFoldable) {\n return $foreign.fromFoldableImpl(Data_Foldable.foldr(dictFoldable));\n};\nvar foldr = /* #__PURE__ */ Data_Foldable.foldr(Data_Foldable.foldableArray);\nvar foldl = /* #__PURE__ */ Data_Foldable.foldl(Data_Foldable.foldableArray);\nvar foldRecM = function (dictMonadRec) {\n return function (f) {\n return function (b) {\n return function (array) {\n var go = function (res) {\n return function (i) {\n if (i >= $foreign.length(array)) {\n return Control_Applicative.pure((dictMonadRec.Monad0()).Applicative0())(new Control_Monad_Rec_Class.Done(res));\n };\n if (Data_Boolean.otherwise) {\n return Control_Bind.bind((dictMonadRec.Monad0()).Bind1())(f(res)(unsafeIndex()(array)(i)))(function (res$prime) {\n return Control_Applicative.pure((dictMonadRec.Monad0()).Applicative0())(new Control_Monad_Rec_Class.Loop({\n a: res$prime,\n b: i + 1 | 0\n }));\n });\n };\n throw new Error(\"Failed pattern match at Data.Array (line 1263, column 3 - line 1267, column 42): \" + [ res.constructor.name, i.constructor.name ]);\n };\n };\n return Control_Monad_Rec_Class.tailRecM2(dictMonadRec)(go)(b)(0);\n };\n };\n };\n};\nvar foldMap = function (dictMonoid) {\n return Data_Foldable.foldMap(Data_Foldable.foldableArray)(dictMonoid);\n};\nvar foldM = function (dictMonad) {\n return function (f) {\n return function (b) {\n return $foreign.unconsImpl(function (v) {\n return Control_Applicative.pure(dictMonad.Applicative0())(b);\n })(function (a) {\n return function (as) {\n return Control_Bind.bind(dictMonad.Bind1())(f(b)(a))(function (b$prime) {\n return foldM(dictMonad)(f)(b$prime)(as);\n });\n };\n });\n };\n };\n};\nvar fold = function (dictMonoid) {\n return Data_Foldable.fold(Data_Foldable.foldableArray)(dictMonoid);\n};\nvar findMap = /* #__PURE__ */ (function () {\n return $foreign.findMapImpl(Data_Maybe.Nothing.value)(Data_Maybe.isJust);\n})();\nvar findLastIndex = /* #__PURE__ */ (function () {\n return $foreign.findLastIndexImpl(Data_Maybe.Just.create)(Data_Maybe.Nothing.value);\n})();\nvar insertBy = function (cmp) {\n return function (x) {\n return function (ys) {\n var i = Data_Maybe.maybe(0)(function (v) {\n return v + 1 | 0;\n })(findLastIndex(function (y) {\n return Data_Eq.eq(Data_Ordering.eqOrdering)(cmp(x)(y))(Data_Ordering.GT.value);\n })(ys));\n return Data_Maybe.fromJust()(insertAt(i)(x)(ys));\n };\n };\n};\nvar insert = function (dictOrd) {\n return insertBy(Data_Ord.compare(dictOrd));\n};\nvar findIndex = /* #__PURE__ */ (function () {\n return $foreign.findIndexImpl(Data_Maybe.Just.create)(Data_Maybe.Nothing.value);\n})();\nvar intersectBy = function (eq) {\n return function (xs) {\n return function (ys) {\n return $foreign.filter(function (x) {\n return Data_Maybe.isJust(findIndex(eq(x))(ys));\n })(xs);\n };\n };\n};\nvar intersect = function (dictEq) {\n return intersectBy(Data_Eq.eq(dictEq));\n};\nvar find = function (f) {\n return function (xs) {\n return Data_Functor.map(Data_Maybe.functorMaybe)(unsafeIndex()(xs))(findIndex(f)(xs));\n };\n};\nvar elemLastIndex = function (dictEq) {\n return function (x) {\n return findLastIndex(function (v) {\n return Data_Eq.eq(dictEq)(v)(x);\n });\n };\n};\nvar elemIndex = function (dictEq) {\n return function (x) {\n return findIndex(function (v) {\n return Data_Eq.eq(dictEq)(v)(x);\n });\n };\n};\nvar notElem = function (dictEq) {\n return function (a) {\n return function (arr) {\n return Data_Maybe.isNothing(elemIndex(dictEq)(a)(arr));\n };\n };\n};\nvar elem = function (dictEq) {\n return function (a) {\n return function (arr) {\n return Data_Maybe.isJust(elemIndex(dictEq)(a)(arr));\n };\n };\n};\nvar dropWhile = function (p) {\n return function (xs) {\n return (span(p)(xs)).rest;\n };\n};\nvar dropEnd = function (n) {\n return function (xs) {\n return take($foreign.length(xs) - n | 0)(xs);\n };\n};\nvar drop = function (n) {\n return function (xs) {\n var $79 = n < 1;\n if ($79) {\n return xs;\n };\n return $foreign.slice(n)($foreign.length(xs))(xs);\n };\n};\nvar takeEnd = function (n) {\n return function (xs) {\n return drop($foreign.length(xs) - n | 0)(xs);\n };\n};\nvar deleteAt = /* #__PURE__ */ (function () {\n return $foreign[\"_deleteAt\"](Data_Maybe.Just.create)(Data_Maybe.Nothing.value);\n})();\nvar deleteBy = function (v) {\n return function (v1) {\n return function (v2) {\n if (v2.length === 0) {\n return [ ];\n };\n return Data_Maybe.maybe(v2)(function (i) {\n return Data_Maybe.fromJust()(deleteAt(i)(v2));\n })(findIndex(v(v1))(v2));\n };\n };\n};\nvar unionBy = function (eq) {\n return function (xs) {\n return function (ys) {\n return Data_Semigroup.append(Data_Semigroup.semigroupArray)(xs)(foldl(Data_Function.flip(deleteBy(eq)))(nubByEq(eq)(ys))(xs));\n };\n };\n};\nvar union = function (dictEq) {\n return unionBy(Data_Eq.eq(dictEq));\n};\nvar $$delete = function (dictEq) {\n return deleteBy(Data_Eq.eq(dictEq));\n};\nvar difference = function (dictEq) {\n return foldr($$delete(dictEq));\n};\nvar cons = function (x) {\n return function (xs) {\n return Data_Semigroup.append(Data_Semigroup.semigroupArray)([ x ])(xs);\n };\n};\nvar some = function (dictAlternative) {\n return function (dictLazy) {\n return function (v) {\n return Control_Apply.apply((dictAlternative.Applicative0()).Apply0())(Data_Functor.map(((dictAlternative.Plus1()).Alt0()).Functor0())(cons)(v))(Control_Lazy.defer(dictLazy)(function (v1) {\n return many(dictAlternative)(dictLazy)(v);\n }));\n };\n };\n};\nvar many = function (dictAlternative) {\n return function (dictLazy) {\n return function (v) {\n return Control_Alt.alt((dictAlternative.Plus1()).Alt0())(some(dictAlternative)(dictLazy)(v))(Control_Applicative.pure(dictAlternative.Applicative0())([ ]));\n };\n };\n};\nvar concatMap = /* #__PURE__ */ Data_Function.flip(/* #__PURE__ */ Control_Bind.bind(Control_Bind.bindArray));\nvar mapMaybe = function (f) {\n return concatMap((function () {\n var $99 = Data_Maybe.maybe([ ])(singleton);\n return function ($100) {\n return $99(f($100));\n };\n })());\n};\nvar filterA = function (dictApplicative) {\n return function (p) {\n var $101 = Data_Functor.map((dictApplicative.Apply0()).Functor0())(mapMaybe(function (v) {\n if (v.value1) {\n return new Data_Maybe.Just(v.value0);\n };\n return Data_Maybe.Nothing.value;\n }));\n var $102 = Data_Traversable.traverse(Data_Traversable.traversableArray)(dictApplicative)(function (x) {\n return Data_Functor.map((dictApplicative.Apply0()).Functor0())(Data_Tuple.Tuple.create(x))(p(x));\n });\n return function ($103) {\n return $101($102($103));\n };\n };\n};\nvar catMaybes = /* #__PURE__ */ mapMaybe(/* #__PURE__ */ Control_Category.identity(Control_Category.categoryFn));\nvar alterAt = function (i) {\n return function (f) {\n return function (xs) {\n var go = function (x) {\n var v = f(x);\n if (v instanceof Data_Maybe.Nothing) {\n return deleteAt(i)(xs);\n };\n if (v instanceof Data_Maybe.Just) {\n return updateAt(i)(v.value0)(xs);\n };\n throw new Error(\"Failed pattern match at Data.Array (line 589, column 10 - line 591, column 32): \" + [ v.constructor.name ]);\n };\n return Data_Maybe.maybe(Data_Maybe.Nothing.value)(go)(index(xs)(i));\n };\n };\n};\nexport {\n range,\n replicate,\n length,\n reverse,\n concat,\n filter,\n partition,\n scanl,\n scanr,\n slice,\n zipWith,\n any,\n all\n} from \"./foreign.js\";\nexport {\n fromFoldable,\n toUnfoldable,\n singleton,\n some,\n many,\n $$null as null,\n cons,\n snoc,\n insert,\n insertBy,\n head,\n last,\n tail,\n init,\n uncons,\n unsnoc,\n index,\n elem,\n notElem,\n elemIndex,\n elemLastIndex,\n find,\n findMap,\n findIndex,\n findLastIndex,\n insertAt,\n deleteAt,\n updateAt,\n updateAtIndices,\n modifyAt,\n modifyAtIndices,\n alterAt,\n intersperse,\n concatMap,\n splitAt,\n filterA,\n mapMaybe,\n catMaybes,\n mapWithIndex,\n foldl,\n foldr,\n foldMap,\n fold,\n intercalate,\n sort,\n sortBy,\n sortWith,\n take,\n takeEnd,\n takeWhile,\n drop,\n dropEnd,\n dropWhile,\n span,\n group,\n groupAll,\n groupBy,\n groupAllBy,\n nub,\n nubEq,\n nubBy,\n nubByEq,\n union,\n unionBy,\n $$delete as delete,\n deleteBy,\n difference,\n intersect,\n intersectBy,\n zipWithA,\n zip,\n unzip,\n foldM,\n foldRecM,\n unsafeIndex\n};\n","export const fromNumberImpl = function (just) {\n return function (nothing) {\n return function (n) {\n /* jshint bitwise: false */\n return (n | 0) === n ? just(n) : nothing;\n };\n };\n};\n\nexport const toNumber = function (n) {\n return n;\n};\n\nexport const fromStringAsImpl = function (just) {\n return function (nothing) {\n return function (radix) {\n var digits;\n if (radix < 11) {\n digits = \"[0-\" + (radix - 1).toString() + \"]\";\n } else if (radix === 11) {\n digits = \"[0-9a]\";\n } else {\n digits = \"[0-9a-\" + String.fromCharCode(86 + radix) + \"]\";\n }\n var pattern = new RegExp(\"^[\\\\+\\\\-]?\" + digits + \"+$\", \"i\");\n\n return function (s) {\n /* jshint bitwise: false */\n if (pattern.test(s)) {\n var i = parseInt(s, radix);\n return (i | 0) === i ? just(i) : nothing;\n } else {\n return nothing;\n }\n };\n };\n };\n};\n\nexport const toStringAs = function (radix) {\n return function (i) {\n return i.toString(radix);\n };\n};\n\n\nexport const quot = function (x) {\n return function (y) {\n /* jshint bitwise: false */\n return x / y | 0;\n };\n};\n\nexport const rem = function (x) {\n return function (y) {\n return x % y;\n };\n};\n\nexport const pow = function (x) {\n return function (y) {\n /* jshint bitwise: false */\n return Math.pow(x,y) | 0;\n };\n};\n","/* globals exports */\nexport const nan = NaN;\nconst isNaNImpl = isNaN;\nexport { isNaNImpl as isNaN };\nexport const infinity = Infinity;\nconst isFiniteImpl = isFinite;\nexport { isFiniteImpl as isFinite };\n\nexport function fromStringImpl(str, isFinite, just, nothing) {\n var num = parseFloat(str);\n if (isFinite(num)) {\n return just(num);\n } else {\n return nothing;\n }\n}\n\nexport const abs = Math.abs;\n\nexport const acos = Math.acos;\n\nexport const asin = Math.asin;\n\nexport const atan = Math.atan;\n\nexport const atan2 = function (y) {\n return function (x) {\n return Math.atan2(y, x);\n };\n};\n\nexport const ceil = Math.ceil;\n\nexport const cos = Math.cos;\n\nexport const exp = Math.exp;\n\nexport const floor = Math.floor;\n\nexport const log = Math.log;\n\nexport const max = function (n1) {\n return function (n2) {\n return Math.max(n1, n2);\n };\n};\n\nexport const min = function (n1) {\n return function (n2) {\n return Math.min(n1, n2);\n };\n};\n\nexport const pow = function (n) {\n return function (p) {\n return Math.pow(n, p);\n };\n};\n\nexport const remainder = function (n) {\n return function (m) {\n return n % m;\n };\n};\n\nexport const round = Math.round;\n\nexport const sign = Math.sign ? Math.sign : function(x) {\n return x === 0 || x !== x ? x : (x < 0 ? -1 : 1);\n};\n\nexport const sin = Math.sin;\n\nexport const sqrt = Math.sqrt;\n\nexport const tan = Math.tan;\n\nexport const trunc = Math.trunc ? Math.trunc : function(x) {\n return x < 0 ? Math.ceil(x) : Math.floor(x);\n}\n","// Generated by purs version 0.15.2\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nvar tau = 6.283185307179586;\nvar sqrt2 = 1.4142135623730951;\nvar sqrt1_2 = 0.7071067811865476;\nvar pi = 3.141592653589793;\nvar log2e = 1.4426950408889634;\nvar log10e = 0.4342944819032518;\nvar ln2 = 0.6931471805599453;\nvar ln10 = 2.302585092994046;\nvar fromString = function (str) {\n return $foreign.fromStringImpl(str, $foreign[\"isFinite\"], Data_Maybe.Just.create, Data_Maybe.Nothing.value);\n};\nvar e = 2.718281828459045;\nexport {\n nan,\n isNaN,\n infinity,\n isFinite,\n abs,\n acos,\n asin,\n atan,\n atan2,\n ceil,\n cos,\n exp,\n floor,\n log,\n max,\n min,\n pow,\n remainder,\n round,\n sign,\n sin,\n sqrt,\n tan,\n trunc\n} from \"./foreign.js\";\nexport {\n fromString,\n e,\n ln2,\n ln10,\n log10e,\n log2e,\n pi,\n sqrt1_2,\n sqrt2,\n tau\n};\n","// Generated by purs version 0.15.2\nimport * as $foreign from \"./foreign.js\";\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Data_Boolean from \"../Data.Boolean/index.js\";\nimport * as Data_Bounded from \"../Data.Bounded/index.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Number from \"../Data.Number/index.js\";\nimport * as Data_Ordering from \"../Data.Ordering/index.js\";\nimport * as Data_Semiring from \"../Data.Semiring/index.js\";\nvar Radix = function (x) {\n return x;\n};\nvar Even = /* #__PURE__ */ (function () {\n function Even() {\n\n };\n Even.value = new Even();\n return Even;\n})();\nvar Odd = /* #__PURE__ */ (function () {\n function Odd() {\n\n };\n Odd.value = new Odd();\n return Odd;\n})();\nvar showParity = {\n show: function (v) {\n if (v instanceof Even) {\n return \"Even\";\n };\n if (v instanceof Odd) {\n return \"Odd\";\n };\n throw new Error(\"Failed pattern match at Data.Int (line 117, column 1 - line 119, column 19): \" + [ v.constructor.name ]);\n }\n};\nvar radix = function (n) {\n if (n >= 2 && n <= 36) {\n return new Data_Maybe.Just(n);\n };\n if (Data_Boolean.otherwise) {\n return Data_Maybe.Nothing.value;\n };\n throw new Error(\"Failed pattern match at Data.Int (line 198, column 1 - line 198, column 28): \" + [ n.constructor.name ]);\n};\nvar odd = function (x) {\n return (x & 1) !== 0;\n};\nvar octal = 8;\nvar hexadecimal = 16;\nvar fromStringAs = /* #__PURE__ */ (function () {\n return $foreign.fromStringAsImpl(Data_Maybe.Just.create)(Data_Maybe.Nothing.value);\n})();\nvar fromString = /* #__PURE__ */ fromStringAs(10);\nvar fromNumber = /* #__PURE__ */ (function () {\n return $foreign.fromNumberImpl(Data_Maybe.Just.create)(Data_Maybe.Nothing.value);\n})();\nvar unsafeClamp = function (x) {\n if (!Data_Number[\"isFinite\"](x)) {\n return 0;\n };\n if (x >= $foreign.toNumber(Data_Bounded.top(Data_Bounded.boundedInt))) {\n return Data_Bounded.top(Data_Bounded.boundedInt);\n };\n if (x <= $foreign.toNumber(Data_Bounded.bottom(Data_Bounded.boundedInt))) {\n return Data_Bounded.bottom(Data_Bounded.boundedInt);\n };\n if (Data_Boolean.otherwise) {\n return Data_Maybe.fromMaybe(0)(fromNumber(x));\n };\n throw new Error(\"Failed pattern match at Data.Int (line 72, column 1 - line 72, column 29): \" + [ x.constructor.name ]);\n};\nvar round = function ($23) {\n return unsafeClamp(Data_Number.round($23));\n};\nvar trunc = function ($24) {\n return unsafeClamp(Data_Number.trunc($24));\n};\nvar floor = function ($25) {\n return unsafeClamp(Data_Number.floor($25));\n};\nvar even = function (x) {\n return (x & 1) === 0;\n};\nvar parity = function (n) {\n var $14 = even(n);\n if ($14) {\n return Even.value;\n };\n return Odd.value;\n};\nvar eqParity = {\n eq: function (x) {\n return function (y) {\n if (x instanceof Even && y instanceof Even) {\n return true;\n };\n if (x instanceof Odd && y instanceof Odd) {\n return true;\n };\n return false;\n };\n }\n};\nvar ordParity = {\n compare: function (x) {\n return function (y) {\n if (x instanceof Even && y instanceof Even) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof Even) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof Even) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof Odd && y instanceof Odd) {\n return Data_Ordering.EQ.value;\n };\n throw new Error(\"Failed pattern match at Data.Int (line 0, column 0 - line 0, column 0): \" + [ x.constructor.name, y.constructor.name ]);\n };\n },\n Eq0: function () {\n return eqParity;\n }\n};\nvar semiringParity = /* #__PURE__ */ (function () {\n return {\n zero: Even.value,\n add: function (x) {\n return function (y) {\n var $19 = Data_Eq.eq(eqParity)(x)(y);\n if ($19) {\n return Even.value;\n };\n return Odd.value;\n };\n },\n one: Odd.value,\n mul: function (v) {\n return function (v1) {\n if (v instanceof Odd && v1 instanceof Odd) {\n return Odd.value;\n };\n return Even.value;\n };\n }\n };\n})();\nvar ringParity = {\n sub: /* #__PURE__ */ Data_Semiring.add(semiringParity),\n Semiring0: function () {\n return semiringParity;\n }\n};\nvar divisionRingParity = {\n recip: /* #__PURE__ */ Control_Category.identity(Control_Category.categoryFn),\n Ring0: function () {\n return ringParity;\n }\n};\nvar decimal = 10;\nvar commutativeRingParity = {\n Ring0: function () {\n return ringParity;\n }\n};\nvar euclideanRingParity = {\n degree: function (v) {\n if (v instanceof Even) {\n return 0;\n };\n if (v instanceof Odd) {\n return 1;\n };\n throw new Error(\"Failed pattern match at Data.Int (line 137, column 1 - line 141, column 17): \" + [ v.constructor.name ]);\n },\n div: function (x) {\n return function (v) {\n return x;\n };\n },\n mod: function (v) {\n return function (v1) {\n return Even.value;\n };\n },\n CommutativeRing0: function () {\n return commutativeRingParity;\n }\n};\nvar ceil = function ($26) {\n return unsafeClamp(Data_Number.ceil($26));\n};\nvar boundedParity = /* #__PURE__ */ (function () {\n return {\n bottom: Even.value,\n top: Odd.value,\n Ord0: function () {\n return ordParity;\n }\n };\n})();\nvar binary = 2;\nvar base36 = 36;\nexport {\n toNumber,\n toStringAs,\n quot,\n rem,\n pow\n} from \"./foreign.js\";\nexport {\n fromNumber,\n ceil,\n floor,\n trunc,\n round,\n fromString,\n radix,\n binary,\n octal,\n decimal,\n hexadecimal,\n base36,\n fromStringAs,\n Even,\n Odd,\n parity,\n even,\n odd,\n eqParity,\n ordParity,\n showParity,\n boundedParity,\n semiringParity,\n ringParity,\n commutativeRingParity,\n euclideanRingParity,\n divisionRingParity\n};\n","// Generated by purs version 0.15.2\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Effect from \"../Effect/index.js\";\nvar monadEffectEffect = {\n liftEffect: /* #__PURE__ */ Control_Category.identity(Control_Category.categoryFn),\n Monad0: function () {\n return Effect.monadEffect;\n }\n};\nvar liftEffect = function (dict) {\n return dict.liftEffect;\n};\nexport {\n liftEffect,\n monadEffectEffect\n};\n","export const log = function (s) {\n return function () {\n console.log(s);\n };\n};\n\nexport const warn = function (s) {\n return function () {\n console.warn(s);\n };\n};\n\nexport const error = function (s) {\n return function () {\n console.error(s);\n };\n};\n\nexport const info = function (s) {\n return function () {\n console.info(s);\n };\n};\n\nexport const debug = function (s) {\n return function () {\n console.debug(s);\n };\n};\n\nexport const time = function (s) {\n return function () {\n console.time(s);\n };\n};\n\nexport const timeLog = function (s) {\n return function () {\n console.timeLog(s);\n };\n};\n\nexport const timeEnd = function (s) {\n return function () {\n console.timeEnd(s);\n };\n};\n\nexport const clear = function () {\n console.clear();\n};\n","// Generated by purs version 0.15.2\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Show from \"../Data.Show/index.js\";\nvar warnShow = function (dictShow) {\n return function (a) {\n return $foreign.warn(Data_Show.show(dictShow)(a));\n };\n};\nvar logShow = function (dictShow) {\n return function (a) {\n return $foreign.log(Data_Show.show(dictShow)(a));\n };\n};\nvar infoShow = function (dictShow) {\n return function (a) {\n return $foreign.info(Data_Show.show(dictShow)(a));\n };\n};\nvar errorShow = function (dictShow) {\n return function (a) {\n return $foreign.error(Data_Show.show(dictShow)(a));\n };\n};\nvar debugShow = function (dictShow) {\n return function (a) {\n return $foreign.debug(Data_Show.show(dictShow)(a));\n };\n};\nexport {\n log,\n warn,\n error,\n info,\n debug,\n time,\n timeLog,\n timeEnd,\n clear\n} from \"./foreign.js\";\nexport {\n logShow,\n warnShow,\n errorShow,\n infoShow,\n debugShow\n};\n","export function showErrorImpl(err) {\n return err.stack || err.toString();\n}\n\nexport function error(msg) {\n return new Error(msg);\n}\n\nexport function message(e) {\n return e.message;\n}\n\nexport function name(e) {\n return e.name || \"Error\";\n}\n\nexport function stackImpl(just) {\n return function (nothing) {\n return function (e) {\n return e.stack ? just(e.stack) : nothing;\n };\n };\n}\n\nexport function throwException(e) {\n return function () {\n throw e;\n };\n}\n\nexport function catchException(c) {\n return function (t) {\n return function () {\n try {\n return t();\n } catch (e) {\n if (e instanceof Error || Object.prototype.toString.call(e) === \"[object Error]\") {\n return c(e)();\n } else {\n return c(new Error(e.toString()))();\n }\n }\n };\n };\n}\n","// Generated by purs version 0.15.2\nimport * as $foreign from \"./foreign.js\";\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Data_Either from \"../Data.Either/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Effect from \"../Effect/index.js\";\nvar $$try = function (action) {\n return $foreign.catchException((function () {\n var $0 = Control_Applicative.pure(Effect.applicativeEffect);\n return function ($1) {\n return $0(Data_Either.Left.create($1));\n };\n })())(Data_Functor.map(Effect.functorEffect)(Data_Either.Right.create)(action));\n};\nvar $$throw = function ($2) {\n return $foreign.throwException($foreign.error($2));\n};\nvar stack = /* #__PURE__ */ (function () {\n return $foreign.stackImpl(Data_Maybe.Just.create)(Data_Maybe.Nothing.value);\n})();\nvar showError = {\n show: $foreign.showErrorImpl\n};\nexport {\n error,\n message,\n name,\n throwException,\n catchException\n} from \"./foreign.js\";\nexport {\n stack,\n $$throw as throw,\n $$try as try,\n showError\n};\n","// Generated by purs version 0.15.2\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Data_Either from \"../Data.Either/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nimport * as Effect from \"../Effect/index.js\";\nimport * as Effect_Exception from \"../Effect.Exception/index.js\";\nvar throwError = function (dict) {\n return dict.throwError;\n};\nvar monadThrowMaybe = /* #__PURE__ */ (function () {\n return {\n throwError: Data_Function[\"const\"](Data_Maybe.Nothing.value),\n Monad0: function () {\n return Data_Maybe.monadMaybe;\n }\n };\n})();\nvar monadThrowEither = /* #__PURE__ */ (function () {\n return {\n throwError: Data_Either.Left.create,\n Monad0: function () {\n return Data_Either.monadEither;\n }\n };\n})();\nvar monadThrowEffect = {\n throwError: Effect_Exception.throwException,\n Monad0: function () {\n return Effect.monadEffect;\n }\n};\nvar monadErrorMaybe = {\n catchError: function (v) {\n return function (v1) {\n if (v instanceof Data_Maybe.Nothing) {\n return v1(Data_Unit.unit);\n };\n if (v instanceof Data_Maybe.Just) {\n return new Data_Maybe.Just(v.value0);\n };\n throw new Error(\"Failed pattern match at Control.Monad.Error.Class (line 79, column 1 - line 81, column 33): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n },\n MonadThrow0: function () {\n return monadThrowMaybe;\n }\n};\nvar monadErrorEither = {\n catchError: function (v) {\n return function (v1) {\n if (v instanceof Data_Either.Left) {\n return v1(v.value0);\n };\n if (v instanceof Data_Either.Right) {\n return new Data_Either.Right(v.value0);\n };\n throw new Error(\"Failed pattern match at Control.Monad.Error.Class (line 72, column 1 - line 74, column 35): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n },\n MonadThrow0: function () {\n return monadThrowEither;\n }\n};\nvar monadErrorEffect = {\n catchError: /* #__PURE__ */ Data_Function.flip(Effect_Exception.catchException),\n MonadThrow0: function () {\n return monadThrowEffect;\n }\n};\nvar liftMaybe = function (dictMonadThrow) {\n return function (error) {\n return Data_Maybe.maybe(throwError(dictMonadThrow)(error))(Control_Applicative.pure((dictMonadThrow.Monad0()).Applicative0()));\n };\n};\nvar liftEither = function (dictMonadThrow) {\n return Data_Either.either(throwError(dictMonadThrow))(Control_Applicative.pure((dictMonadThrow.Monad0()).Applicative0()));\n};\nvar catchError = function (dict) {\n return dict.catchError;\n};\nvar catchJust = function (dictMonadError) {\n return function (p) {\n return function (act) {\n return function (handler) {\n var handle = function (e) {\n var v = p(e);\n if (v instanceof Data_Maybe.Nothing) {\n return throwError(dictMonadError.MonadThrow0())(e);\n };\n if (v instanceof Data_Maybe.Just) {\n return handler(v.value0);\n };\n throw new Error(\"Failed pattern match at Control.Monad.Error.Class (line 57, column 5 - line 59, column 26): \" + [ v.constructor.name ]);\n };\n return catchError(dictMonadError)(act)(handle);\n };\n };\n };\n};\nvar $$try = function (dictMonadError) {\n return function (a) {\n return catchError(dictMonadError)(Data_Functor.map(((((dictMonadError.MonadThrow0()).Monad0()).Bind1()).Apply0()).Functor0())(Data_Either.Right.create)(a))((function () {\n var $21 = Control_Applicative.pure(((dictMonadError.MonadThrow0()).Monad0()).Applicative0());\n return function ($22) {\n return $21(Data_Either.Left.create($22));\n };\n })());\n };\n};\nvar withResource = function (dictMonadError) {\n return function (acquire) {\n return function (release) {\n return function (kleisli) {\n return Control_Bind.bind(((dictMonadError.MonadThrow0()).Monad0()).Bind1())(acquire)(function (resource) {\n return Control_Bind.bind(((dictMonadError.MonadThrow0()).Monad0()).Bind1())($$try(dictMonadError)(kleisli(resource)))(function (result) {\n return Control_Bind.discard(Control_Bind.discardUnit)(((dictMonadError.MonadThrow0()).Monad0()).Bind1())(release(resource))(function () {\n return Data_Either.either(throwError(dictMonadError.MonadThrow0()))(Control_Applicative.pure(((dictMonadError.MonadThrow0()).Monad0()).Applicative0()))(result);\n });\n });\n });\n };\n };\n };\n};\nexport {\n catchError,\n throwError,\n catchJust,\n $$try as try,\n withResource,\n liftMaybe,\n liftEither,\n monadThrowEither,\n monadErrorEither,\n monadThrowMaybe,\n monadErrorMaybe,\n monadThrowEffect,\n monadErrorEffect\n};\n","// Generated by purs version 0.15.2\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nvar state = function (dict) {\n return dict.state;\n};\nvar put = function (dictMonadState) {\n return function (s) {\n return state(dictMonadState)(function (v) {\n return new Data_Tuple.Tuple(Data_Unit.unit, s);\n });\n };\n};\nvar modify_ = function (dictMonadState) {\n return function (f) {\n return state(dictMonadState)(function (s) {\n return new Data_Tuple.Tuple(Data_Unit.unit, f(s));\n });\n };\n};\nvar modify = function (dictMonadState) {\n return function (f) {\n return state(dictMonadState)(function (s) {\n var s$prime = f(s);\n return new Data_Tuple.Tuple(s$prime, s$prime);\n });\n };\n};\nvar gets = function (dictMonadState) {\n return function (f) {\n return state(dictMonadState)(function (s) {\n return new Data_Tuple.Tuple(f(s), s);\n });\n };\n};\nvar get = function (dictMonadState) {\n return state(dictMonadState)(function (s) {\n return new Data_Tuple.Tuple(s, s);\n });\n};\nexport {\n state,\n get,\n gets,\n put,\n modify,\n modify_\n};\n","// Generated by purs version 0.15.2\nvar lift = function (dict) {\n return dict.lift;\n};\nexport {\n lift\n};\n","// Generated by purs version 0.15.2\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nvar tell = function (dict) {\n return dict.tell;\n};\nvar pass = function (dict) {\n return dict.pass;\n};\nvar listen = function (dict) {\n return dict.listen;\n};\nvar listens = function (dictMonadWriter) {\n return function (f) {\n return function (m) {\n return Control_Bind.bind(((dictMonadWriter.MonadTell1()).Monad1()).Bind1())(listen(dictMonadWriter)(m))(function (v) {\n return Control_Applicative.pure(((dictMonadWriter.MonadTell1()).Monad1()).Applicative0())(new Data_Tuple.Tuple(v.value0, f(v.value1)));\n });\n };\n };\n};\nvar censor = function (dictMonadWriter) {\n return function (f) {\n return function (m) {\n return pass(dictMonadWriter)(Control_Bind.bind(((dictMonadWriter.MonadTell1()).Monad1()).Bind1())(m)(function (a) {\n return Control_Applicative.pure(((dictMonadWriter.MonadTell1()).Monad1()).Applicative0())(new Data_Tuple.Tuple(a, f));\n }));\n };\n };\n};\nexport {\n listen,\n pass,\n tell,\n listens,\n censor\n};\n","// Generated by purs version 0.15.2\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Apply from \"../Control.Apply/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Control_Monad from \"../Control.Monad/index.js\";\nimport * as Control_Monad_Cont_Class from \"../Control.Monad.Cont.Class/index.js\";\nimport * as Control_Monad_Error_Class from \"../Control.Monad.Error.Class/index.js\";\nimport * as Control_Monad_Reader_Class from \"../Control.Monad.Reader.Class/index.js\";\nimport * as Control_Monad_Rec_Class from \"../Control.Monad.Rec.Class/index.js\";\nimport * as Control_Monad_State_Class from \"../Control.Monad.State.Class/index.js\";\nimport * as Control_Monad_Trans_Class from \"../Control.Monad.Trans.Class/index.js\";\nimport * as Control_Monad_Writer_Class from \"../Control.Monad.Writer.Class/index.js\";\nimport * as Data_Either from \"../Data.Either/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Monoid from \"../Data.Monoid/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nimport * as Effect_Class from \"../Effect.Class/index.js\";\nvar ExceptT = function (x) {\n return x;\n};\nvar withExceptT = function (dictFunctor) {\n return function (f) {\n return function (v) {\n var mapLeft = function (v1) {\n return function (v2) {\n if (v2 instanceof Data_Either.Right) {\n return new Data_Either.Right(v2.value0);\n };\n if (v2 instanceof Data_Either.Left) {\n return new Data_Either.Left(v1(v2.value0));\n };\n throw new Error(\"Failed pattern match at Control.Monad.Except.Trans (line 42, column 3 - line 42, column 32): \" + [ v1.constructor.name, v2.constructor.name ]);\n };\n };\n return Data_Functor.map(dictFunctor)(mapLeft(f))(v);\n };\n };\n};\nvar runExceptT = function (v) {\n return v;\n};\nvar newtypeExceptT = {\n Coercible0: function () {\n return undefined;\n }\n};\nvar monadTransExceptT = {\n lift: function (dictMonad) {\n return function (m) {\n return Control_Bind.bind(dictMonad.Bind1())(m)(function (a) {\n return Control_Applicative.pure(dictMonad.Applicative0())(new Data_Either.Right(a));\n });\n };\n }\n};\nvar mapExceptT = function (f) {\n return function (v) {\n return f(v);\n };\n};\nvar functorExceptT = function (dictFunctor) {\n return {\n map: function (f) {\n return mapExceptT(Data_Functor.map(dictFunctor)(Data_Functor.map(Data_Either.functorEither)(f)));\n }\n };\n};\nvar except = function (dictApplicative) {\n var $87 = Control_Applicative.pure(dictApplicative);\n return function ($88) {\n return ExceptT($87($88));\n };\n};\nvar monadExceptT = function (dictMonad) {\n return {\n Applicative0: function () {\n return applicativeExceptT(dictMonad);\n },\n Bind1: function () {\n return bindExceptT(dictMonad);\n }\n };\n};\nvar bindExceptT = function (dictMonad) {\n return {\n bind: function (v) {\n return function (k) {\n return Control_Bind.bind(dictMonad.Bind1())(v)(Data_Either.either((function () {\n var $89 = Control_Applicative.pure(dictMonad.Applicative0());\n return function ($90) {\n return $89(Data_Either.Left.create($90));\n };\n })())(function (a) {\n var v1 = k(a);\n return v1;\n }));\n };\n },\n Apply0: function () {\n return applyExceptT(dictMonad);\n }\n };\n};\nvar applyExceptT = function (dictMonad) {\n return {\n apply: Control_Monad.ap(monadExceptT(dictMonad)),\n Functor0: function () {\n return functorExceptT(((dictMonad.Bind1()).Apply0()).Functor0());\n }\n };\n};\nvar applicativeExceptT = function (dictMonad) {\n return {\n pure: (function () {\n var $91 = Control_Applicative.pure(dictMonad.Applicative0());\n return function ($92) {\n return ExceptT($91(Data_Either.Right.create($92)));\n };\n })(),\n Apply0: function () {\n return applyExceptT(dictMonad);\n }\n };\n};\nvar semigroupExceptT = function (dictMonad) {\n return function (dictSemigroup) {\n return {\n append: Control_Apply.lift2(applyExceptT(dictMonad))(Data_Semigroup.append(dictSemigroup))\n };\n };\n};\nvar monadAskExceptT = function (dictMonadAsk) {\n return {\n ask: Control_Monad_Trans_Class.lift(monadTransExceptT)(dictMonadAsk.Monad0())(Control_Monad_Reader_Class.ask(dictMonadAsk)),\n Monad0: function () {\n return monadExceptT(dictMonadAsk.Monad0());\n }\n };\n};\nvar monadReaderExceptT = function (dictMonadReader) {\n return {\n local: function (f) {\n return mapExceptT(Control_Monad_Reader_Class.local(dictMonadReader)(f));\n },\n MonadAsk0: function () {\n return monadAskExceptT(dictMonadReader.MonadAsk0());\n }\n };\n};\nvar monadContExceptT = function (dictMonadCont) {\n return {\n callCC: function (f) {\n return Control_Monad_Cont_Class.callCC(dictMonadCont)(function (c) {\n var v = f(function (a) {\n return c(new Data_Either.Right(a));\n });\n return v;\n });\n },\n Monad0: function () {\n return monadExceptT(dictMonadCont.Monad0());\n }\n };\n};\nvar monadEffectExceptT = function (dictMonadEffect) {\n return {\n liftEffect: (function () {\n var $93 = Control_Monad_Trans_Class.lift(monadTransExceptT)(dictMonadEffect.Monad0());\n var $94 = Effect_Class.liftEffect(dictMonadEffect);\n return function ($95) {\n return $93($94($95));\n };\n })(),\n Monad0: function () {\n return monadExceptT(dictMonadEffect.Monad0());\n }\n };\n};\nvar monadRecExceptT = function (dictMonadRec) {\n return {\n tailRecM: function (f) {\n var $96 = Control_Monad_Rec_Class.tailRecM(dictMonadRec)(function (a) {\n var v = f(a);\n return Control_Bind.bind((dictMonadRec.Monad0()).Bind1())(v)(function (m$prime) {\n return Control_Applicative.pure((dictMonadRec.Monad0()).Applicative0())((function () {\n if (m$prime instanceof Data_Either.Left) {\n return new Control_Monad_Rec_Class.Done(new Data_Either.Left(m$prime.value0));\n };\n if (m$prime instanceof Data_Either.Right && m$prime.value0 instanceof Control_Monad_Rec_Class.Loop) {\n return new Control_Monad_Rec_Class.Loop(m$prime.value0.value0);\n };\n if (m$prime instanceof Data_Either.Right && m$prime.value0 instanceof Control_Monad_Rec_Class.Done) {\n return new Control_Monad_Rec_Class.Done(new Data_Either.Right(m$prime.value0.value0));\n };\n throw new Error(\"Failed pattern match at Control.Monad.Except.Trans (line 74, column 14 - line 77, column 43): \" + [ m$prime.constructor.name ]);\n })());\n });\n });\n return function ($97) {\n return ExceptT($96($97));\n };\n },\n Monad0: function () {\n return monadExceptT(dictMonadRec.Monad0());\n }\n };\n};\nvar monadStateExceptT = function (dictMonadState) {\n return {\n state: function (f) {\n return Control_Monad_Trans_Class.lift(monadTransExceptT)(dictMonadState.Monad0())(Control_Monad_State_Class.state(dictMonadState)(f));\n },\n Monad0: function () {\n return monadExceptT(dictMonadState.Monad0());\n }\n };\n};\nvar monadTellExceptT = function (dictMonadTell) {\n return {\n tell: (function () {\n var $98 = Control_Monad_Trans_Class.lift(monadTransExceptT)(dictMonadTell.Monad1());\n var $99 = Control_Monad_Writer_Class.tell(dictMonadTell);\n return function ($100) {\n return $98($99($100));\n };\n })(),\n Semigroup0: dictMonadTell.Semigroup0,\n Monad1: function () {\n return monadExceptT(dictMonadTell.Monad1());\n }\n };\n};\nvar monadWriterExceptT = function (dictMonadWriter) {\n return {\n listen: mapExceptT(function (m) {\n return Control_Bind.bind(((dictMonadWriter.MonadTell1()).Monad1()).Bind1())(Control_Monad_Writer_Class.listen(dictMonadWriter)(m))(function (v) {\n return Control_Applicative.pure(((dictMonadWriter.MonadTell1()).Monad1()).Applicative0())(Data_Functor.map(Data_Either.functorEither)(function (r) {\n return new Data_Tuple.Tuple(r, v.value1);\n })(v.value0));\n });\n }),\n pass: mapExceptT(function (m) {\n return Control_Monad_Writer_Class.pass(dictMonadWriter)(Control_Bind.bind(((dictMonadWriter.MonadTell1()).Monad1()).Bind1())(m)(function (a) {\n return Control_Applicative.pure(((dictMonadWriter.MonadTell1()).Monad1()).Applicative0())((function () {\n if (a instanceof Data_Either.Left) {\n return new Data_Tuple.Tuple(new Data_Either.Left(a.value0), Control_Category.identity(Control_Category.categoryFn));\n };\n if (a instanceof Data_Either.Right) {\n return new Data_Tuple.Tuple(new Data_Either.Right(a.value0.value0), a.value0.value1);\n };\n throw new Error(\"Failed pattern match at Control.Monad.Except.Trans (line 134, column 10 - line 136, column 45): \" + [ a.constructor.name ]);\n })());\n }));\n }),\n Monoid0: dictMonadWriter.Monoid0,\n MonadTell1: function () {\n return monadTellExceptT(dictMonadWriter.MonadTell1());\n }\n };\n};\nvar monadThrowExceptT = function (dictMonad) {\n return {\n throwError: (function () {\n var $101 = Control_Applicative.pure(dictMonad.Applicative0());\n return function ($102) {\n return ExceptT($101(Data_Either.Left.create($102)));\n };\n })(),\n Monad0: function () {\n return monadExceptT(dictMonad);\n }\n };\n};\nvar monadErrorExceptT = function (dictMonad) {\n return {\n catchError: function (v) {\n return function (k) {\n return Control_Bind.bind(dictMonad.Bind1())(v)(Data_Either.either(function (a) {\n var v1 = k(a);\n return v1;\n })((function () {\n var $103 = Control_Applicative.pure(dictMonad.Applicative0());\n return function ($104) {\n return $103(Data_Either.Right.create($104));\n };\n })()));\n };\n },\n MonadThrow0: function () {\n return monadThrowExceptT(dictMonad);\n }\n };\n};\nvar monoidExceptT = function (dictMonad) {\n return function (dictMonoid) {\n return {\n mempty: Control_Applicative.pure(applicativeExceptT(dictMonad))(Data_Monoid.mempty(dictMonoid)),\n Semigroup0: function () {\n return semigroupExceptT(dictMonad)(dictMonoid.Semigroup0());\n }\n };\n };\n};\nvar altExceptT = function (dictSemigroup) {\n return function (dictMonad) {\n return {\n alt: function (v) {\n return function (v1) {\n return Control_Bind.bind(dictMonad.Bind1())(v)(function (rm) {\n if (rm instanceof Data_Either.Right) {\n return Control_Applicative.pure(dictMonad.Applicative0())(new Data_Either.Right(rm.value0));\n };\n if (rm instanceof Data_Either.Left) {\n return Control_Bind.bind(dictMonad.Bind1())(v1)(function (rn) {\n if (rn instanceof Data_Either.Right) {\n return Control_Applicative.pure(dictMonad.Applicative0())(new Data_Either.Right(rn.value0));\n };\n if (rn instanceof Data_Either.Left) {\n return Control_Applicative.pure(dictMonad.Applicative0())(new Data_Either.Left(Data_Semigroup.append(dictSemigroup)(rm.value0)(rn.value0)));\n };\n throw new Error(\"Failed pattern match at Control.Monad.Except.Trans (line 86, column 9 - line 88, column 49): \" + [ rn.constructor.name ]);\n });\n };\n throw new Error(\"Failed pattern match at Control.Monad.Except.Trans (line 82, column 5 - line 88, column 49): \" + [ rm.constructor.name ]);\n });\n };\n },\n Functor0: function () {\n return functorExceptT(((dictMonad.Bind1()).Apply0()).Functor0());\n }\n };\n };\n};\nvar plusExceptT = function (dictMonoid) {\n return function (dictMonad) {\n return {\n empty: Control_Monad_Error_Class.throwError(monadThrowExceptT(dictMonad))(Data_Monoid.mempty(dictMonoid)),\n Alt0: function () {\n return altExceptT(dictMonoid.Semigroup0())(dictMonad);\n }\n };\n };\n};\nvar alternativeExceptT = function (dictMonoid) {\n return function (dictMonad) {\n return {\n Applicative0: function () {\n return applicativeExceptT(dictMonad);\n },\n Plus1: function () {\n return plusExceptT(dictMonoid)(dictMonad);\n }\n };\n };\n};\nvar monadPlusExceptT = function (dictMonoid) {\n return function (dictMonad) {\n return {\n Monad0: function () {\n return monadExceptT(dictMonad);\n },\n Alternative1: function () {\n return alternativeExceptT(dictMonoid)(dictMonad);\n }\n };\n };\n};\nexport {\n ExceptT,\n runExceptT,\n withExceptT,\n mapExceptT,\n except,\n newtypeExceptT,\n functorExceptT,\n applyExceptT,\n applicativeExceptT,\n bindExceptT,\n monadExceptT,\n monadRecExceptT,\n altExceptT,\n plusExceptT,\n alternativeExceptT,\n monadPlusExceptT,\n monadTransExceptT,\n monadEffectExceptT,\n monadContExceptT,\n monadThrowExceptT,\n monadErrorExceptT,\n monadAskExceptT,\n monadReaderExceptT,\n monadStateExceptT,\n monadTellExceptT,\n monadWriterExceptT,\n semigroupExceptT,\n monoidExceptT\n};\nexport {\n catchError,\n throwError\n} from \"../Control.Monad.Error.Class/index.js\";\nexport {\n lift\n} from \"../Control.Monad.Trans.Class/index.js\";\n","// Generated by purs version 0.15.2\nimport * as Control_Monad_Error_Class from \"../Control.Monad.Error.Class/index.js\";\nimport * as Control_Monad_Except_Trans from \"../Control.Monad.Except.Trans/index.js\";\nimport * as Data_Identity from \"../Data.Identity/index.js\";\nimport * as Data_Newtype from \"../Data.Newtype/index.js\";\nvar withExcept = /* #__PURE__ */ Control_Monad_Except_Trans.withExceptT(Data_Identity.functorIdentity);\nvar runExcept = /* #__PURE__ */ (function () {\n var $0 = Data_Newtype.unwrap();\n return function ($1) {\n return $0(Control_Monad_Except_Trans.runExceptT($1));\n };\n})();\nvar mapExcept = function (f) {\n return Control_Monad_Except_Trans.mapExceptT((function () {\n var $2 = Data_Newtype.unwrap();\n return function ($3) {\n return Data_Identity.Identity(f($2($3)));\n };\n })());\n};\nexport {\n runExcept,\n mapExcept,\n withExcept\n};\nexport {\n catchError,\n catchJust,\n throwError\n} from \"../Control.Monad.Error.Class/index.js\";\nexport {\n ExceptT,\n except,\n lift,\n mapExceptT,\n runExceptT,\n withExceptT\n} from \"../Control.Monad.Except.Trans/index.js\";\n","export function typeOf(value) {\n return typeof value;\n}\n\nexport function tagOf(value) {\n return Object.prototype.toString.call(value).slice(8, -1);\n}\n\nexport function isNull(value) {\n return value === null;\n}\n\nexport function isUndefined(value) {\n return value === undefined;\n}\n\nexport const isArray = Array.isArray || function (value) {\n return Object.prototype.toString.call(value) === \"[object Array]\";\n};\n","// Generated by purs version 0.15.2\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Bifunctor from \"../Data.Bifunctor/index.js\";\nimport * as Data_Const from \"../Data.Const/index.js\";\nimport * as Data_Either from \"../Data.Either/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Functor_App from \"../Data.Functor.App/index.js\";\nimport * as Data_Functor_Compose from \"../Data.Functor.Compose/index.js\";\nimport * as Data_Functor_Coproduct from \"../Data.Functor.Coproduct/index.js\";\nimport * as Data_Functor_Product from \"../Data.Functor.Product/index.js\";\nimport * as Data_Identity from \"../Data.Identity/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Maybe_First from \"../Data.Maybe.First/index.js\";\nimport * as Data_Maybe_Last from \"../Data.Maybe.Last/index.js\";\nimport * as Data_Monoid_Additive from \"../Data.Monoid.Additive/index.js\";\nimport * as Data_Monoid_Conj from \"../Data.Monoid.Conj/index.js\";\nimport * as Data_Monoid_Disj from \"../Data.Monoid.Disj/index.js\";\nimport * as Data_Monoid_Dual from \"../Data.Monoid.Dual/index.js\";\nimport * as Data_Monoid_Multiplicative from \"../Data.Monoid.Multiplicative/index.js\";\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nvar mapWithIndex = function (dict) {\n return dict.mapWithIndex;\n};\nvar mapDefault = function (dictFunctorWithIndex) {\n return function (f) {\n return mapWithIndex(dictFunctorWithIndex)(Data_Function[\"const\"](f));\n };\n};\nvar functorWithIndexTuple = {\n mapWithIndex: function (f) {\n return Data_Functor.map(Data_Tuple.functorTuple)(f(Data_Unit.unit));\n },\n Functor0: function () {\n return Data_Tuple.functorTuple;\n }\n};\nvar functorWithIndexProduct = function (dictFunctorWithIndex) {\n return function (dictFunctorWithIndex1) {\n return {\n mapWithIndex: function (f) {\n return function (v) {\n return Data_Bifunctor.bimap(Data_Bifunctor.bifunctorTuple)(mapWithIndex(dictFunctorWithIndex)(function ($28) {\n return f(Data_Either.Left.create($28));\n }))(mapWithIndex(dictFunctorWithIndex1)(function ($29) {\n return f(Data_Either.Right.create($29));\n }))(v);\n };\n },\n Functor0: function () {\n return Data_Functor_Product.functorProduct(dictFunctorWithIndex.Functor0())(dictFunctorWithIndex1.Functor0());\n }\n };\n };\n};\nvar functorWithIndexMultiplicative = {\n mapWithIndex: function (f) {\n return Data_Functor.map(Data_Monoid_Multiplicative.functorMultiplicative)(f(Data_Unit.unit));\n },\n Functor0: function () {\n return Data_Monoid_Multiplicative.functorMultiplicative;\n }\n};\nvar functorWithIndexMaybe = {\n mapWithIndex: function (f) {\n return Data_Functor.map(Data_Maybe.functorMaybe)(f(Data_Unit.unit));\n },\n Functor0: function () {\n return Data_Maybe.functorMaybe;\n }\n};\nvar functorWithIndexLast = {\n mapWithIndex: function (f) {\n return Data_Functor.map(Data_Maybe_Last.functorLast)(f(Data_Unit.unit));\n },\n Functor0: function () {\n return Data_Maybe_Last.functorLast;\n }\n};\nvar functorWithIndexIdentity = {\n mapWithIndex: function (f) {\n return function (v) {\n return f(Data_Unit.unit)(v);\n };\n },\n Functor0: function () {\n return Data_Identity.functorIdentity;\n }\n};\nvar functorWithIndexFirst = {\n mapWithIndex: function (f) {\n return Data_Functor.map(Data_Maybe_First.functorFirst)(f(Data_Unit.unit));\n },\n Functor0: function () {\n return Data_Maybe_First.functorFirst;\n }\n};\nvar functorWithIndexEither = {\n mapWithIndex: function (f) {\n return Data_Functor.map(Data_Either.functorEither)(f(Data_Unit.unit));\n },\n Functor0: function () {\n return Data_Either.functorEither;\n }\n};\nvar functorWithIndexDual = {\n mapWithIndex: function (f) {\n return Data_Functor.map(Data_Monoid_Dual.functorDual)(f(Data_Unit.unit));\n },\n Functor0: function () {\n return Data_Monoid_Dual.functorDual;\n }\n};\nvar functorWithIndexDisj = {\n mapWithIndex: function (f) {\n return Data_Functor.map(Data_Monoid_Disj.functorDisj)(f(Data_Unit.unit));\n },\n Functor0: function () {\n return Data_Monoid_Disj.functorDisj;\n }\n};\nvar functorWithIndexCoproduct = function (dictFunctorWithIndex) {\n return function (dictFunctorWithIndex1) {\n return {\n mapWithIndex: function (f) {\n return function (v) {\n return Data_Bifunctor.bimap(Data_Bifunctor.bifunctorEither)(mapWithIndex(dictFunctorWithIndex)(function ($30) {\n return f(Data_Either.Left.create($30));\n }))(mapWithIndex(dictFunctorWithIndex1)(function ($31) {\n return f(Data_Either.Right.create($31));\n }))(v);\n };\n },\n Functor0: function () {\n return Data_Functor_Coproduct.functorCoproduct(dictFunctorWithIndex.Functor0())(dictFunctorWithIndex1.Functor0());\n }\n };\n };\n};\nvar functorWithIndexConst = {\n mapWithIndex: function (v) {\n return function (v1) {\n return v1;\n };\n },\n Functor0: function () {\n return Data_Const.functorConst;\n }\n};\nvar functorWithIndexConj = {\n mapWithIndex: function (f) {\n return Data_Functor.map(Data_Monoid_Conj.functorConj)(f(Data_Unit.unit));\n },\n Functor0: function () {\n return Data_Monoid_Conj.functorConj;\n }\n};\nvar functorWithIndexCompose = function (dictFunctorWithIndex) {\n return function (dictFunctorWithIndex1) {\n return {\n mapWithIndex: function (f) {\n return function (v) {\n return mapWithIndex(dictFunctorWithIndex)((function () {\n var $32 = mapWithIndex(dictFunctorWithIndex1);\n var $33 = Data_Tuple.curry(f);\n return function ($34) {\n return $32($33($34));\n };\n })())(v);\n };\n },\n Functor0: function () {\n return Data_Functor_Compose.functorCompose(dictFunctorWithIndex.Functor0())(dictFunctorWithIndex1.Functor0());\n }\n };\n };\n};\nvar functorWithIndexArray = {\n mapWithIndex: $foreign.mapWithIndexArray,\n Functor0: function () {\n return Data_Functor.functorArray;\n }\n};\nvar functorWithIndexApp = function (dictFunctorWithIndex) {\n return {\n mapWithIndex: function (f) {\n return function (v) {\n return mapWithIndex(dictFunctorWithIndex)(f)(v);\n };\n },\n Functor0: function () {\n return Data_Functor_App.functorApp(dictFunctorWithIndex.Functor0());\n }\n };\n};\nvar functorWithIndexAdditive = {\n mapWithIndex: function (f) {\n return Data_Functor.map(Data_Monoid_Additive.functorAdditive)(f(Data_Unit.unit));\n },\n Functor0: function () {\n return Data_Monoid_Additive.functorAdditive;\n }\n};\nexport {\n mapWithIndex,\n mapDefault,\n functorWithIndexArray,\n functorWithIndexMaybe,\n functorWithIndexFirst,\n functorWithIndexLast,\n functorWithIndexAdditive,\n functorWithIndexDual,\n functorWithIndexConj,\n functorWithIndexDisj,\n functorWithIndexMultiplicative,\n functorWithIndexEither,\n functorWithIndexTuple,\n functorWithIndexIdentity,\n functorWithIndexConst,\n functorWithIndexProduct,\n functorWithIndexCoproduct,\n functorWithIndexCompose,\n functorWithIndexApp\n};\n","// Generated by purs version 0.15.2\nimport * as Control_Alt from \"../Control.Alt/index.js\";\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Apply from \"../Control.Apply/index.js\";\nimport * as Control_Plus from \"../Control.Plus/index.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Foldable from \"../Data.Foldable/index.js\";\nimport * as Data_FoldableWithIndex from \"../Data.FoldableWithIndex/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_FunctorWithIndex from \"../Data.FunctorWithIndex/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Data_Ordering from \"../Data.Ordering/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nimport * as Data_Semigroup_Foldable from \"../Data.Semigroup.Foldable/index.js\";\nimport * as Data_Show from \"../Data.Show/index.js\";\nimport * as Data_Traversable from \"../Data.Traversable/index.js\";\nimport * as Data_TraversableWithIndex from \"../Data.TraversableWithIndex/index.js\";\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nimport * as Data_Unfoldable from \"../Data.Unfoldable/index.js\";\nvar NonEmpty = /* #__PURE__ */ (function () {\n function NonEmpty(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n NonEmpty.create = function (value0) {\n return function (value1) {\n return new NonEmpty(value0, value1);\n };\n };\n return NonEmpty;\n})();\nvar unfoldable1NonEmpty = function (dictUnfoldable) {\n return {\n unfoldr1: function (f) {\n return function (b) {\n return Data_Tuple.uncurry(NonEmpty.create)(Data_Functor.map(Data_Tuple.functorTuple)(Data_Unfoldable.unfoldr(dictUnfoldable)(Data_Functor.map(Data_Maybe.functorMaybe)(f)))(f(b)));\n };\n }\n };\n};\nvar tail = function (v) {\n return v.value1;\n};\nvar singleton = function (dictPlus) {\n return function (a) {\n return new NonEmpty(a, Control_Plus.empty(dictPlus));\n };\n};\nvar showNonEmpty = function (dictShow) {\n return function (dictShow1) {\n return {\n show: function (v) {\n return \"(NonEmpty \" + (Data_Show.show(dictShow)(v.value0) + (\" \" + (Data_Show.show(dictShow1)(v.value1) + \")\")));\n }\n };\n };\n};\nvar semigroupNonEmpty = function (dictApplicative) {\n return function (dictSemigroup) {\n return {\n append: function (v) {\n return function (v1) {\n return new NonEmpty(v.value0, Data_Semigroup.append(dictSemigroup)(v.value1)(Data_Semigroup.append(dictSemigroup)(Control_Applicative.pure(dictApplicative)(v1.value0))(v1.value1)));\n };\n }\n };\n };\n};\nvar oneOf = function (dictAlternative) {\n return function (v) {\n return Control_Alt.alt((dictAlternative.Plus1()).Alt0())(Control_Applicative.pure(dictAlternative.Applicative0())(v.value0))(v.value1);\n };\n};\nvar head = function (v) {\n return v.value0;\n};\nvar functorNonEmpty = function (dictFunctor) {\n return {\n map: function (f) {\n return function (m) {\n return new NonEmpty(f(m.value0), Data_Functor.map(dictFunctor)(f)(m.value1));\n };\n }\n };\n};\nvar functorWithIndex = function (dictFunctorWithIndex) {\n return {\n mapWithIndex: function (f) {\n return function (v) {\n return new NonEmpty(f(Data_Maybe.Nothing.value)(v.value0), Data_FunctorWithIndex.mapWithIndex(dictFunctorWithIndex)(function ($159) {\n return f(Data_Maybe.Just.create($159));\n })(v.value1));\n };\n },\n Functor0: function () {\n return functorNonEmpty(dictFunctorWithIndex.Functor0());\n }\n };\n};\nvar fromNonEmpty = function (f) {\n return function (v) {\n return f(v.value0)(v.value1);\n };\n};\nvar foldableNonEmpty = function (dictFoldable) {\n return {\n foldMap: function (dictMonoid) {\n return function (f) {\n return function (v) {\n return Data_Semigroup.append(dictMonoid.Semigroup0())(f(v.value0))(Data_Foldable.foldMap(dictFoldable)(dictMonoid)(f)(v.value1));\n };\n };\n },\n foldl: function (f) {\n return function (b) {\n return function (v) {\n return Data_Foldable.foldl(dictFoldable)(f)(f(b)(v.value0))(v.value1);\n };\n };\n },\n foldr: function (f) {\n return function (b) {\n return function (v) {\n return f(v.value0)(Data_Foldable.foldr(dictFoldable)(f)(b)(v.value1));\n };\n };\n }\n };\n};\nvar foldableWithIndexNonEmpty = function (dictFoldableWithIndex) {\n return {\n foldMapWithIndex: function (dictMonoid) {\n return function (f) {\n return function (v) {\n return Data_Semigroup.append(dictMonoid.Semigroup0())(f(Data_Maybe.Nothing.value)(v.value0))(Data_FoldableWithIndex.foldMapWithIndex(dictFoldableWithIndex)(dictMonoid)(function ($160) {\n return f(Data_Maybe.Just.create($160));\n })(v.value1));\n };\n };\n },\n foldlWithIndex: function (f) {\n return function (b) {\n return function (v) {\n return Data_FoldableWithIndex.foldlWithIndex(dictFoldableWithIndex)(function ($161) {\n return f(Data_Maybe.Just.create($161));\n })(f(Data_Maybe.Nothing.value)(b)(v.value0))(v.value1);\n };\n };\n },\n foldrWithIndex: function (f) {\n return function (b) {\n return function (v) {\n return f(Data_Maybe.Nothing.value)(v.value0)(Data_FoldableWithIndex.foldrWithIndex(dictFoldableWithIndex)(function ($162) {\n return f(Data_Maybe.Just.create($162));\n })(b)(v.value1));\n };\n };\n },\n Foldable0: function () {\n return foldableNonEmpty(dictFoldableWithIndex.Foldable0());\n }\n };\n};\nvar traversableNonEmpty = function (dictTraversable) {\n return {\n sequence: function (dictApplicative) {\n return function (v) {\n return Control_Apply.apply(dictApplicative.Apply0())(Data_Functor.map((dictApplicative.Apply0()).Functor0())(NonEmpty.create)(v.value0))(Data_Traversable.sequence(dictTraversable)(dictApplicative)(v.value1));\n };\n },\n traverse: function (dictApplicative) {\n return function (f) {\n return function (v) {\n return Control_Apply.apply(dictApplicative.Apply0())(Data_Functor.map((dictApplicative.Apply0()).Functor0())(NonEmpty.create)(f(v.value0)))(Data_Traversable.traverse(dictTraversable)(dictApplicative)(f)(v.value1));\n };\n };\n },\n Functor0: function () {\n return functorNonEmpty(dictTraversable.Functor0());\n },\n Foldable1: function () {\n return foldableNonEmpty(dictTraversable.Foldable1());\n }\n };\n};\nvar traversableWithIndexNonEmpty = function (dictTraversableWithIndex) {\n return {\n traverseWithIndex: function (dictApplicative) {\n return function (f) {\n return function (v) {\n return Control_Apply.apply(dictApplicative.Apply0())(Data_Functor.map((dictApplicative.Apply0()).Functor0())(NonEmpty.create)(f(Data_Maybe.Nothing.value)(v.value0)))(Data_TraversableWithIndex.traverseWithIndex(dictTraversableWithIndex)(dictApplicative)(function ($163) {\n return f(Data_Maybe.Just.create($163));\n })(v.value1));\n };\n };\n },\n FunctorWithIndex0: function () {\n return functorWithIndex(dictTraversableWithIndex.FunctorWithIndex0());\n },\n FoldableWithIndex1: function () {\n return foldableWithIndexNonEmpty(dictTraversableWithIndex.FoldableWithIndex1());\n },\n Traversable2: function () {\n return traversableNonEmpty(dictTraversableWithIndex.Traversable2());\n }\n };\n};\nvar foldable1NonEmpty = function (dictFoldable) {\n return {\n foldMap1: function (dictSemigroup) {\n return function (f) {\n return function (v) {\n return Data_Foldable.foldl(dictFoldable)(function (s) {\n return function (a1) {\n return Data_Semigroup.append(dictSemigroup)(s)(f(a1));\n };\n })(f(v.value0))(v.value1);\n };\n };\n },\n foldr1: function (f) {\n return function (v) {\n return Data_Maybe.maybe(v.value0)(f(v.value0))(Data_Foldable.foldr(dictFoldable)(function (a1) {\n var $164 = Data_Maybe.maybe(a1)(f(a1));\n return function ($165) {\n return Data_Maybe.Just.create($164($165));\n };\n })(Data_Maybe.Nothing.value)(v.value1));\n };\n },\n foldl1: function (f) {\n return function (v) {\n return Data_Foldable.foldl(dictFoldable)(f)(v.value0)(v.value1);\n };\n },\n Foldable0: function () {\n return foldableNonEmpty(dictFoldable);\n }\n };\n};\nvar foldl1 = function (dictFoldable) {\n return Data_Semigroup_Foldable.foldl1(foldable1NonEmpty(dictFoldable));\n};\nvar eqNonEmpty = function (dictEq1) {\n return function (dictEq) {\n return {\n eq: function (x) {\n return function (y) {\n return Data_Eq.eq(dictEq)(x.value0)(y.value0) && Data_Eq.eq1(dictEq1)(dictEq)(x.value1)(y.value1);\n };\n }\n };\n };\n};\nvar ordNonEmpty = function (dictOrd1) {\n return function (dictOrd) {\n return {\n compare: function (x) {\n return function (y) {\n var v = Data_Ord.compare(dictOrd)(x.value0)(y.value0);\n if (v instanceof Data_Ordering.LT) {\n return Data_Ordering.LT.value;\n };\n if (v instanceof Data_Ordering.GT) {\n return Data_Ordering.GT.value;\n };\n return Data_Ord.compare1(dictOrd1)(dictOrd)(x.value1)(y.value1);\n };\n },\n Eq0: function () {\n return eqNonEmpty(dictOrd1.Eq10())(dictOrd.Eq0());\n }\n };\n };\n};\nvar eq1NonEmpty = function (dictEq1) {\n return {\n eq1: function (dictEq) {\n return Data_Eq.eq(eqNonEmpty(dictEq1)(dictEq));\n }\n };\n};\nvar ord1NonEmpty = function (dictOrd1) {\n return {\n compare1: function (dictOrd) {\n return Data_Ord.compare(ordNonEmpty(dictOrd1)(dictOrd));\n },\n Eq10: function () {\n return eq1NonEmpty(dictOrd1.Eq10());\n }\n };\n};\nexport {\n NonEmpty,\n singleton,\n foldl1,\n fromNonEmpty,\n oneOf,\n head,\n tail,\n showNonEmpty,\n eqNonEmpty,\n eq1NonEmpty,\n ordNonEmpty,\n ord1NonEmpty,\n functorNonEmpty,\n functorWithIndex,\n foldableNonEmpty,\n foldableWithIndexNonEmpty,\n traversableNonEmpty,\n traversableWithIndexNonEmpty,\n foldable1NonEmpty,\n unfoldable1NonEmpty,\n semigroupNonEmpty\n};\n","// Generated by purs version 0.15.2\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Apply from \"../Control.Apply/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Foldable from \"../Data.Foldable/index.js\";\nimport * as Data_FoldableWithIndex from \"../Data.FoldableWithIndex/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_FunctorWithIndex from \"../Data.FunctorWithIndex/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Monoid from \"../Data.Monoid/index.js\";\nimport * as Data_NonEmpty from \"../Data.NonEmpty/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Data_Ordering from \"../Data.Ordering/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nimport * as Data_Semigroup_Traversable from \"../Data.Semigroup.Traversable/index.js\";\nimport * as Data_Semiring from \"../Data.Semiring/index.js\";\nimport * as Data_Show from \"../Data.Show/index.js\";\nimport * as Data_Traversable from \"../Data.Traversable/index.js\";\nimport * as Data_TraversableWithIndex from \"../Data.TraversableWithIndex/index.js\";\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nvar Nil = /* #__PURE__ */ (function () {\n function Nil() {\n\n };\n Nil.value = new Nil();\n return Nil;\n})();\nvar Cons = /* #__PURE__ */ (function () {\n function Cons(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n Cons.create = function (value0) {\n return function (value1) {\n return new Cons(value0, value1);\n };\n };\n return Cons;\n})();\nvar NonEmptyList = function (x) {\n return x;\n};\nvar toList = function (v) {\n return new Cons(v.value0, v.value1);\n};\nvar newtypeNonEmptyList = {\n Coercible0: function () {\n return undefined;\n }\n};\nvar nelCons = function (a) {\n return function (v) {\n return new Data_NonEmpty.NonEmpty(a, new Cons(v.value0, v.value1));\n };\n};\nvar listMap = function (f) {\n var chunkedRevMap = function ($copy_chunksAcc) {\n return function ($copy_v) {\n var $tco_var_chunksAcc = $copy_chunksAcc;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(chunksAcc, v) {\n if (v instanceof Cons && (v.value1 instanceof Cons && v.value1.value1 instanceof Cons)) {\n $tco_var_chunksAcc = new Cons(v, chunksAcc);\n $copy_v = v.value1.value1.value1;\n return;\n };\n var unrolledMap = function (v1) {\n if (v1 instanceof Cons && (v1.value1 instanceof Cons && v1.value1.value1 instanceof Nil)) {\n return new Cons(f(v1.value0), new Cons(f(v1.value1.value0), Nil.value));\n };\n if (v1 instanceof Cons && v1.value1 instanceof Nil) {\n return new Cons(f(v1.value0), Nil.value);\n };\n return Nil.value;\n };\n var reverseUnrolledMap = function ($copy_v1) {\n return function ($copy_acc) {\n var $tco_var_v1 = $copy_v1;\n var $tco_done1 = false;\n var $tco_result;\n function $tco_loop(v1, acc) {\n if (v1 instanceof Cons && (v1.value0 instanceof Cons && (v1.value0.value1 instanceof Cons && v1.value0.value1.value1 instanceof Cons))) {\n $tco_var_v1 = v1.value1;\n $copy_acc = new Cons(f(v1.value0.value0), new Cons(f(v1.value0.value1.value0), new Cons(f(v1.value0.value1.value1.value0), acc)));\n return;\n };\n $tco_done1 = true;\n return acc;\n };\n while (!$tco_done1) {\n $tco_result = $tco_loop($tco_var_v1, $copy_acc);\n };\n return $tco_result;\n };\n };\n $tco_done = true;\n return reverseUnrolledMap(chunksAcc)(unrolledMap(v));\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_chunksAcc, $copy_v);\n };\n return $tco_result;\n };\n };\n return chunkedRevMap(Nil.value);\n};\nvar functorList = {\n map: listMap\n};\nvar functorNonEmptyList = /* #__PURE__ */ Data_NonEmpty.functorNonEmpty(functorList);\nvar foldableList = {\n foldr: function (f) {\n return function (b) {\n var rev = (function () {\n var go = function ($copy_acc) {\n return function ($copy_v) {\n var $tco_var_acc = $copy_acc;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(acc, v) {\n if (v instanceof Nil) {\n $tco_done = true;\n return acc;\n };\n if (v instanceof Cons) {\n $tco_var_acc = new Cons(v.value0, acc);\n $copy_v = v.value1;\n return;\n };\n throw new Error(\"Failed pattern match at Data.List.Types (line 107, column 7 - line 107, column 23): \" + [ acc.constructor.name, v.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_acc, $copy_v);\n };\n return $tco_result;\n };\n };\n return go(Nil.value);\n })();\n var $205 = Data_Foldable.foldl(foldableList)(Data_Function.flip(f))(b);\n return function ($206) {\n return $205(rev($206));\n };\n };\n },\n foldl: function (f) {\n var go = function ($copy_b) {\n return function ($copy_v) {\n var $tco_var_b = $copy_b;\n var $tco_done1 = false;\n var $tco_result;\n function $tco_loop(b, v) {\n if (v instanceof Nil) {\n $tco_done1 = true;\n return b;\n };\n if (v instanceof Cons) {\n $tco_var_b = f(b)(v.value0);\n $copy_v = v.value1;\n return;\n };\n throw new Error(\"Failed pattern match at Data.List.Types (line 111, column 12 - line 113, column 30): \" + [ v.constructor.name ]);\n };\n while (!$tco_done1) {\n $tco_result = $tco_loop($tco_var_b, $copy_v);\n };\n return $tco_result;\n };\n };\n return go;\n },\n foldMap: function (dictMonoid) {\n return function (f) {\n return Data_Foldable.foldl(foldableList)(function (acc) {\n var $207 = Data_Semigroup.append(dictMonoid.Semigroup0())(acc);\n return function ($208) {\n return $207(f($208));\n };\n })(Data_Monoid.mempty(dictMonoid));\n };\n }\n};\nvar foldableNonEmptyList = /* #__PURE__ */ Data_NonEmpty.foldableNonEmpty(foldableList);\nvar foldableWithIndexList = {\n foldrWithIndex: function (f) {\n return function (b) {\n return function (xs) {\n var v = (function () {\n var rev = Data_Foldable.foldl(foldableList)(function (v1) {\n return function (a) {\n return new Data_Tuple.Tuple(v1.value0 + 1 | 0, new Cons(a, v1.value1));\n };\n });\n return rev(new Data_Tuple.Tuple(0, Nil.value))(xs);\n })();\n return Data_Tuple.snd(Data_Foldable.foldl(foldableList)(function (v1) {\n return function (a) {\n return new Data_Tuple.Tuple(v1.value0 - 1 | 0, f(v1.value0 - 1 | 0)(a)(v1.value1));\n };\n })(new Data_Tuple.Tuple(v.value0, b))(v.value1));\n };\n };\n },\n foldlWithIndex: function (f) {\n return function (acc) {\n var $209 = Data_Foldable.foldl(foldableList)(function (v) {\n return function (a) {\n return new Data_Tuple.Tuple(v.value0 + 1 | 0, f(v.value0)(v.value1)(a));\n };\n })(new Data_Tuple.Tuple(0, acc));\n return function ($210) {\n return Data_Tuple.snd($209($210));\n };\n };\n },\n foldMapWithIndex: function (dictMonoid) {\n return function (f) {\n return Data_FoldableWithIndex.foldlWithIndex(foldableWithIndexList)(function (i) {\n return function (acc) {\n var $211 = Data_Semigroup.append(dictMonoid.Semigroup0())(acc);\n var $212 = f(i);\n return function ($213) {\n return $211($212($213));\n };\n };\n })(Data_Monoid.mempty(dictMonoid));\n };\n },\n Foldable0: function () {\n return foldableList;\n }\n};\nvar foldableWithIndexNonEmptyList = {\n foldMapWithIndex: function (dictMonoid) {\n return function (f) {\n return function (v) {\n return Data_FoldableWithIndex.foldMapWithIndex(Data_NonEmpty.foldableWithIndexNonEmpty(foldableWithIndexList))(dictMonoid)((function () {\n var $214 = Data_Maybe.maybe(0)(Data_Semiring.add(Data_Semiring.semiringInt)(1));\n return function ($215) {\n return f($214($215));\n };\n })())(v);\n };\n };\n },\n foldlWithIndex: function (f) {\n return function (b) {\n return function (v) {\n return Data_FoldableWithIndex.foldlWithIndex(Data_NonEmpty.foldableWithIndexNonEmpty(foldableWithIndexList))((function () {\n var $216 = Data_Maybe.maybe(0)(Data_Semiring.add(Data_Semiring.semiringInt)(1));\n return function ($217) {\n return f($216($217));\n };\n })())(b)(v);\n };\n };\n },\n foldrWithIndex: function (f) {\n return function (b) {\n return function (v) {\n return Data_FoldableWithIndex.foldrWithIndex(Data_NonEmpty.foldableWithIndexNonEmpty(foldableWithIndexList))((function () {\n var $218 = Data_Maybe.maybe(0)(Data_Semiring.add(Data_Semiring.semiringInt)(1));\n return function ($219) {\n return f($218($219));\n };\n })())(b)(v);\n };\n };\n },\n Foldable0: function () {\n return foldableNonEmptyList;\n }\n};\nvar functorWithIndexList = {\n mapWithIndex: function (f) {\n return Data_FoldableWithIndex.foldrWithIndex(foldableWithIndexList)(function (i) {\n return function (x) {\n return function (acc) {\n return new Cons(f(i)(x), acc);\n };\n };\n })(Nil.value);\n },\n Functor0: function () {\n return functorList;\n }\n};\nvar functorWithIndexNonEmptyList = {\n mapWithIndex: function (fn) {\n return function (v) {\n return Data_FunctorWithIndex.mapWithIndex(Data_NonEmpty.functorWithIndex(functorWithIndexList))((function () {\n var $220 = Data_Maybe.maybe(0)(Data_Semiring.add(Data_Semiring.semiringInt)(1));\n return function ($221) {\n return fn($220($221));\n };\n })())(v);\n };\n },\n Functor0: function () {\n return functorNonEmptyList;\n }\n};\nvar semigroupList = {\n append: function (xs) {\n return function (ys) {\n return Data_Foldable.foldr(foldableList)(Cons.create)(ys)(xs);\n };\n }\n};\nvar monoidList = /* #__PURE__ */ (function () {\n return {\n mempty: Nil.value,\n Semigroup0: function () {\n return semigroupList;\n }\n };\n})();\nvar semigroupNonEmptyList = {\n append: function (v) {\n return function (as$prime) {\n return new Data_NonEmpty.NonEmpty(v.value0, Data_Semigroup.append(semigroupList)(v.value1)(toList(as$prime)));\n };\n }\n};\nvar showList = function (dictShow) {\n return {\n show: function (v) {\n if (v instanceof Nil) {\n return \"Nil\";\n };\n return \"(\" + (Data_Foldable.intercalate(foldableList)(Data_Monoid.monoidString)(\" : \")(Data_Functor.map(functorList)(Data_Show.show(dictShow))(v)) + \" : Nil)\");\n }\n };\n};\nvar showNonEmptyList = function (dictShow) {\n return {\n show: function (v) {\n return \"(NonEmptyList \" + (Data_Show.show(Data_NonEmpty.showNonEmpty(dictShow)(showList(dictShow)))(v) + \")\");\n }\n };\n};\nvar traversableList = {\n traverse: function (dictApplicative) {\n return function (f) {\n var $222 = Data_Functor.map((dictApplicative.Apply0()).Functor0())(Data_Foldable.foldl(foldableList)(Data_Function.flip(Cons.create))(Nil.value));\n var $223 = Data_Foldable.foldl(foldableList)(function (acc) {\n var $225 = Control_Apply.lift2(dictApplicative.Apply0())(Data_Function.flip(Cons.create))(acc);\n return function ($226) {\n return $225(f($226));\n };\n })(Control_Applicative.pure(dictApplicative)(Nil.value));\n return function ($224) {\n return $222($223($224));\n };\n };\n },\n sequence: function (dictApplicative) {\n return Data_Traversable.traverse(traversableList)(dictApplicative)(Control_Category.identity(Control_Category.categoryFn));\n },\n Functor0: function () {\n return functorList;\n },\n Foldable1: function () {\n return foldableList;\n }\n};\nvar traversableNonEmptyList = /* #__PURE__ */ Data_NonEmpty.traversableNonEmpty(traversableList);\nvar traversableWithIndexList = {\n traverseWithIndex: function (dictApplicative) {\n return function (f) {\n var rev = Data_Foldable.foldl(foldableList)(Data_Function.flip(Cons.create))(Nil.value);\n var $227 = Data_Functor.map((dictApplicative.Apply0()).Functor0())(rev);\n var $228 = Data_FoldableWithIndex.foldlWithIndex(foldableWithIndexList)(function (i) {\n return function (acc) {\n var $230 = Control_Apply.lift2(dictApplicative.Apply0())(Data_Function.flip(Cons.create))(acc);\n var $231 = f(i);\n return function ($232) {\n return $230($231($232));\n };\n };\n })(Control_Applicative.pure(dictApplicative)(Nil.value));\n return function ($229) {\n return $227($228($229));\n };\n };\n },\n FunctorWithIndex0: function () {\n return functorWithIndexList;\n },\n FoldableWithIndex1: function () {\n return foldableWithIndexList;\n },\n Traversable2: function () {\n return traversableList;\n }\n};\nvar traversableWithIndexNonEmptyList = {\n traverseWithIndex: function (dictApplicative) {\n return function (f) {\n return function (v) {\n return Data_Functor.map((dictApplicative.Apply0()).Functor0())(NonEmptyList)(Data_TraversableWithIndex.traverseWithIndex(Data_NonEmpty.traversableWithIndexNonEmpty(traversableWithIndexList))(dictApplicative)((function () {\n var $233 = Data_Maybe.maybe(0)(Data_Semiring.add(Data_Semiring.semiringInt)(1));\n return function ($234) {\n return f($233($234));\n };\n })())(v));\n };\n };\n },\n FunctorWithIndex0: function () {\n return functorWithIndexNonEmptyList;\n },\n FoldableWithIndex1: function () {\n return foldableWithIndexNonEmptyList;\n },\n Traversable2: function () {\n return traversableNonEmptyList;\n }\n};\nvar unfoldable1List = {\n unfoldr1: function (f) {\n return function (b) {\n var go = function ($copy_source) {\n return function ($copy_memo) {\n var $tco_var_source = $copy_source;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(source, memo) {\n var v = f(source);\n if (v.value1 instanceof Data_Maybe.Just) {\n $tco_var_source = v.value1.value0;\n $copy_memo = new Cons(v.value0, memo);\n return;\n };\n if (v.value1 instanceof Data_Maybe.Nothing) {\n $tco_done = true;\n return Data_Foldable.foldl(foldableList)(Data_Function.flip(Cons.create))(Nil.value)(new Cons(v.value0, memo));\n };\n throw new Error(\"Failed pattern match at Data.List.Types (line 135, column 22 - line 137, column 61): \" + [ v.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_source, $copy_memo);\n };\n return $tco_result;\n };\n };\n return go(b)(Nil.value);\n };\n }\n};\nvar unfoldableList = {\n unfoldr: function (f) {\n return function (b) {\n var go = function ($copy_source) {\n return function ($copy_memo) {\n var $tco_var_source = $copy_source;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(source, memo) {\n var v = f(source);\n if (v instanceof Data_Maybe.Nothing) {\n $tco_done = true;\n return Data_Foldable.foldl(foldableList)(Data_Function.flip(Cons.create))(Nil.value)(memo);\n };\n if (v instanceof Data_Maybe.Just) {\n $tco_var_source = v.value0.value1;\n $copy_memo = new Cons(v.value0.value0, memo);\n return;\n };\n throw new Error(\"Failed pattern match at Data.List.Types (line 142, column 22 - line 144, column 52): \" + [ v.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_source, $copy_memo);\n };\n return $tco_result;\n };\n };\n return go(b)(Nil.value);\n };\n },\n Unfoldable10: function () {\n return unfoldable1List;\n }\n};\nvar unfoldable1NonEmptyList = /* #__PURE__ */ Data_NonEmpty.unfoldable1NonEmpty(unfoldableList);\nvar foldable1NonEmptyList = /* #__PURE__ */ Data_NonEmpty.foldable1NonEmpty(foldableList);\nvar extendNonEmptyList = {\n extend: function (f) {\n return function (v) {\n var go = function (a) {\n return function (v1) {\n return {\n val: new Cons(f(new Data_NonEmpty.NonEmpty(a, v1.acc)), v1.val),\n acc: new Cons(a, v1.acc)\n };\n };\n };\n return new Data_NonEmpty.NonEmpty(f(v), (Data_Foldable.foldr(foldableList)(go)({\n val: Nil.value,\n acc: Nil.value\n })(v.value1)).val);\n };\n },\n Functor0: function () {\n return functorNonEmptyList;\n }\n};\nvar extendList = {\n extend: function (v) {\n return function (v1) {\n if (v1 instanceof Nil) {\n return Nil.value;\n };\n if (v1 instanceof Cons) {\n var go = function (a$prime) {\n return function (v2) {\n var acc$prime = new Cons(a$prime, v2.acc);\n return {\n val: new Cons(v(acc$prime), v2.val),\n acc: acc$prime\n };\n };\n };\n return new Cons(v(v1), (Data_Foldable.foldr(foldableList)(go)({\n val: Nil.value,\n acc: Nil.value\n })(v1.value1)).val);\n };\n throw new Error(\"Failed pattern match at Data.List.Types (line 180, column 1 - line 187, column 42): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n },\n Functor0: function () {\n return functorList;\n }\n};\nvar eq1List = {\n eq1: function (dictEq) {\n return function (xs) {\n return function (ys) {\n var go = function ($copy_v) {\n return function ($copy_v1) {\n return function ($copy_v2) {\n var $tco_var_v = $copy_v;\n var $tco_var_v1 = $copy_v1;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(v, v1, v2) {\n if (!v2) {\n $tco_done = true;\n return false;\n };\n if (v instanceof Nil && v1 instanceof Nil) {\n $tco_done = true;\n return v2;\n };\n if (v instanceof Cons && v1 instanceof Cons) {\n $tco_var_v = v.value1;\n $tco_var_v1 = v1.value1;\n $copy_v2 = v2 && Data_Eq.eq(dictEq)(v1.value0)(v.value0);\n return;\n };\n $tco_done = true;\n return false;\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_v, $tco_var_v1, $copy_v2);\n };\n return $tco_result;\n };\n };\n };\n return go(xs)(ys)(true);\n };\n };\n }\n};\nvar eq1NonEmptyList = /* #__PURE__ */ Data_NonEmpty.eq1NonEmpty(eq1List);\nvar eqList = function (dictEq) {\n return {\n eq: Data_Eq.eq1(eq1List)(dictEq)\n };\n};\nvar eqNonEmptyList = function (dictEq) {\n return Data_NonEmpty.eqNonEmpty(eq1List)(dictEq);\n};\nvar ord1List = {\n compare1: function (dictOrd) {\n return function (xs) {\n return function (ys) {\n var go = function ($copy_v) {\n return function ($copy_v1) {\n var $tco_var_v = $copy_v;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(v, v1) {\n if (v instanceof Nil && v1 instanceof Nil) {\n $tco_done = true;\n return Data_Ordering.EQ.value;\n };\n if (v instanceof Nil) {\n $tco_done = true;\n return Data_Ordering.LT.value;\n };\n if (v1 instanceof Nil) {\n $tco_done = true;\n return Data_Ordering.GT.value;\n };\n if (v instanceof Cons && v1 instanceof Cons) {\n var v2 = Data_Ord.compare(dictOrd)(v.value0)(v1.value0);\n if (v2 instanceof Data_Ordering.EQ) {\n $tco_var_v = v.value1;\n $copy_v1 = v1.value1;\n return;\n };\n $tco_done = true;\n return v2;\n };\n throw new Error(\"Failed pattern match at Data.List.Types (line 60, column 5 - line 60, column 20): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_v, $copy_v1);\n };\n return $tco_result;\n };\n };\n return go(xs)(ys);\n };\n };\n },\n Eq10: function () {\n return eq1List;\n }\n};\nvar ord1NonEmptyList = /* #__PURE__ */ Data_NonEmpty.ord1NonEmpty(ord1List);\nvar ordList = function (dictOrd) {\n return {\n compare: Data_Ord.compare1(ord1List)(dictOrd),\n Eq0: function () {\n return eqList(dictOrd.Eq0());\n }\n };\n};\nvar ordNonEmptyList = function (dictOrd) {\n return Data_NonEmpty.ordNonEmpty(ord1List)(dictOrd);\n};\nvar comonadNonEmptyList = {\n extract: function (v) {\n return v.value0;\n },\n Extend0: function () {\n return extendNonEmptyList;\n }\n};\nvar applyList = {\n apply: function (v) {\n return function (v1) {\n if (v instanceof Nil) {\n return Nil.value;\n };\n if (v instanceof Cons) {\n return Data_Semigroup.append(semigroupList)(Data_Functor.map(functorList)(v.value0)(v1))(Control_Apply.apply(applyList)(v.value1)(v1));\n };\n throw new Error(\"Failed pattern match at Data.List.Types (line 157, column 1 - line 159, column 48): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n },\n Functor0: function () {\n return functorList;\n }\n};\nvar applyNonEmptyList = {\n apply: function (v) {\n return function (v1) {\n return new Data_NonEmpty.NonEmpty(v.value0(v1.value0), Data_Semigroup.append(semigroupList)(Control_Apply.apply(applyList)(v.value1)(new Cons(v1.value0, Nil.value)))(Control_Apply.apply(applyList)(new Cons(v.value0, v.value1))(v1.value1)));\n };\n },\n Functor0: function () {\n return functorNonEmptyList;\n }\n};\nvar bindList = {\n bind: function (v) {\n return function (v1) {\n if (v instanceof Nil) {\n return Nil.value;\n };\n if (v instanceof Cons) {\n return Data_Semigroup.append(semigroupList)(v1(v.value0))(Control_Bind.bind(bindList)(v.value1)(v1));\n };\n throw new Error(\"Failed pattern match at Data.List.Types (line 164, column 1 - line 166, column 37): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n },\n Apply0: function () {\n return applyList;\n }\n};\nvar bindNonEmptyList = {\n bind: function (v) {\n return function (f) {\n var v1 = f(v.value0);\n return new Data_NonEmpty.NonEmpty(v1.value0, Data_Semigroup.append(semigroupList)(v1.value1)(Control_Bind.bind(bindList)(v.value1)(function ($235) {\n return toList(f($235));\n })));\n };\n },\n Apply0: function () {\n return applyNonEmptyList;\n }\n};\nvar applicativeList = {\n pure: function (a) {\n return new Cons(a, Nil.value);\n },\n Apply0: function () {\n return applyList;\n }\n};\nvar monadList = {\n Applicative0: function () {\n return applicativeList;\n },\n Bind1: function () {\n return bindList;\n }\n};\nvar altNonEmptyList = {\n alt: /* #__PURE__ */ Data_Semigroup.append(semigroupNonEmptyList),\n Functor0: function () {\n return functorNonEmptyList;\n }\n};\nvar altList = {\n alt: /* #__PURE__ */ Data_Semigroup.append(semigroupList),\n Functor0: function () {\n return functorList;\n }\n};\nvar plusList = /* #__PURE__ */ (function () {\n return {\n empty: Nil.value,\n Alt0: function () {\n return altList;\n }\n };\n})();\nvar alternativeList = {\n Applicative0: function () {\n return applicativeList;\n },\n Plus1: function () {\n return plusList;\n }\n};\nvar monadPlusList = {\n Monad0: function () {\n return monadList;\n },\n Alternative1: function () {\n return alternativeList;\n }\n};\nvar applicativeNonEmptyList = {\n pure: /* #__PURE__ */ (function () {\n var $236 = Data_NonEmpty.singleton(plusList);\n return function ($237) {\n return NonEmptyList($236($237));\n };\n })(),\n Apply0: function () {\n return applyNonEmptyList;\n }\n};\nvar monadNonEmptyList = {\n Applicative0: function () {\n return applicativeNonEmptyList;\n },\n Bind1: function () {\n return bindNonEmptyList;\n }\n};\nvar traversable1NonEmptyList = {\n traverse1: function (dictApply) {\n return function (f) {\n return function (v) {\n return Data_Functor.mapFlipped(dictApply.Functor0())(Data_Foldable.foldl(foldableList)(function (acc) {\n var $238 = Control_Apply.lift2(dictApply)(Data_Function.flip(nelCons))(acc);\n return function ($239) {\n return $238(f($239));\n };\n })(Data_Functor.map(dictApply.Functor0())(Control_Applicative.pure(applicativeNonEmptyList))(f(v.value0)))(v.value1))(function (v1) {\n return Data_Foldable.foldl(foldableList)(Data_Function.flip(nelCons))(Control_Applicative.pure(applicativeNonEmptyList)(v1.value0))(v1.value1);\n });\n };\n };\n },\n sequence1: function (dictApply) {\n return Data_Semigroup_Traversable.traverse1(traversable1NonEmptyList)(dictApply)(Control_Category.identity(Control_Category.categoryFn));\n },\n Foldable10: function () {\n return foldable1NonEmptyList;\n },\n Traversable1: function () {\n return traversableNonEmptyList;\n }\n};\nexport {\n Nil,\n Cons,\n NonEmptyList,\n toList,\n nelCons,\n showList,\n eqList,\n eq1List,\n ordList,\n ord1List,\n semigroupList,\n monoidList,\n functorList,\n functorWithIndexList,\n foldableList,\n foldableWithIndexList,\n unfoldable1List,\n unfoldableList,\n traversableList,\n traversableWithIndexList,\n applyList,\n applicativeList,\n bindList,\n monadList,\n altList,\n plusList,\n alternativeList,\n monadPlusList,\n extendList,\n newtypeNonEmptyList,\n eqNonEmptyList,\n ordNonEmptyList,\n eq1NonEmptyList,\n ord1NonEmptyList,\n showNonEmptyList,\n functorNonEmptyList,\n applyNonEmptyList,\n applicativeNonEmptyList,\n bindNonEmptyList,\n monadNonEmptyList,\n altNonEmptyList,\n extendNonEmptyList,\n comonadNonEmptyList,\n semigroupNonEmptyList,\n foldableNonEmptyList,\n traversableNonEmptyList,\n foldable1NonEmptyList,\n unfoldable1NonEmptyList,\n functorWithIndexNonEmptyList,\n foldableWithIndexNonEmptyList,\n traversableWithIndexNonEmptyList,\n traversable1NonEmptyList\n};\n","// Generated by purs version 0.15.2\nimport * as Control_Alt from \"../Control.Alt/index.js\";\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Apply from \"../Control.Apply/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Control_Lazy from \"../Control.Lazy/index.js\";\nimport * as Control_Monad_Rec_Class from \"../Control.Monad.Rec.Class/index.js\";\nimport * as Data_Bifunctor from \"../Data.Bifunctor/index.js\";\nimport * as Data_Boolean from \"../Data.Boolean/index.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Foldable from \"../Data.Foldable/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_HeytingAlgebra from \"../Data.HeytingAlgebra/index.js\";\nimport * as Data_List_Internal from \"../Data.List.Internal/index.js\";\nimport * as Data_List_Types from \"../Data.List.Types/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_NonEmpty from \"../Data.NonEmpty/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Data_Ordering from \"../Data.Ordering/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nimport * as Data_Show from \"../Data.Show/index.js\";\nimport * as Data_Traversable from \"../Data.Traversable/index.js\";\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nimport * as Data_Unfoldable from \"../Data.Unfoldable/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nvar Pattern = function (x) {\n return x;\n};\nvar updateAt = function (v) {\n return function (v1) {\n return function (v2) {\n if (v === 0 && v2 instanceof Data_List_Types.Cons) {\n return new Data_Maybe.Just(new Data_List_Types.Cons(v1, v2.value1));\n };\n if (v2 instanceof Data_List_Types.Cons) {\n return Data_Functor.map(Data_Maybe.functorMaybe)(function (v3) {\n return new Data_List_Types.Cons(v2.value0, v3);\n })(updateAt(v - 1 | 0)(v1)(v2.value1));\n };\n return Data_Maybe.Nothing.value;\n };\n };\n};\nvar unzip = /* #__PURE__ */ (function () {\n return Data_Foldable.foldr(Data_List_Types.foldableList)(function (v) {\n return function (v1) {\n return new Data_Tuple.Tuple(new Data_List_Types.Cons(v.value0, v1.value0), new Data_List_Types.Cons(v.value1, v1.value1));\n };\n })(new Data_Tuple.Tuple(Data_List_Types.Nil.value, Data_List_Types.Nil.value));\n})();\nvar uncons = function (v) {\n if (v instanceof Data_List_Types.Nil) {\n return Data_Maybe.Nothing.value;\n };\n if (v instanceof Data_List_Types.Cons) {\n return new Data_Maybe.Just({\n head: v.value0,\n tail: v.value1\n });\n };\n throw new Error(\"Failed pattern match at Data.List (line 259, column 1 - line 259, column 66): \" + [ v.constructor.name ]);\n};\nvar toUnfoldable = function (dictUnfoldable) {\n return Data_Unfoldable.unfoldr(dictUnfoldable)(function (xs) {\n return Data_Functor.map(Data_Maybe.functorMaybe)(function (rec) {\n return new Data_Tuple.Tuple(rec.head, rec.tail);\n })(uncons(xs));\n });\n};\nvar tail = function (v) {\n if (v instanceof Data_List_Types.Nil) {\n return Data_Maybe.Nothing.value;\n };\n if (v instanceof Data_List_Types.Cons) {\n return new Data_Maybe.Just(v.value1);\n };\n throw new Error(\"Failed pattern match at Data.List (line 245, column 1 - line 245, column 43): \" + [ v.constructor.name ]);\n};\nvar stripPrefix = function (dictEq) {\n return function (v) {\n return function (s) {\n var go = function (prefix) {\n return function (input) {\n if (prefix instanceof Data_List_Types.Cons && (input instanceof Data_List_Types.Cons && Data_Eq.eq(dictEq)(prefix.value0)(input.value0))) {\n return new Data_Maybe.Just(new Control_Monad_Rec_Class.Loop({\n a: prefix.value1,\n b: input.value1\n }));\n };\n if (prefix instanceof Data_List_Types.Nil) {\n return new Data_Maybe.Just(new Control_Monad_Rec_Class.Done(input));\n };\n return Data_Maybe.Nothing.value;\n };\n };\n return Control_Monad_Rec_Class.tailRecM2(Control_Monad_Rec_Class.monadRecMaybe)(go)(v)(s);\n };\n };\n};\nvar span = function (v) {\n return function (v1) {\n if (v1 instanceof Data_List_Types.Cons && v(v1.value0)) {\n var v2 = span(v)(v1.value1);\n return {\n init: new Data_List_Types.Cons(v1.value0, v2.init),\n rest: v2.rest\n };\n };\n return {\n init: Data_List_Types.Nil.value,\n rest: v1\n };\n };\n};\nvar snoc = function (xs) {\n return function (x) {\n return Data_Foldable.foldr(Data_List_Types.foldableList)(Data_List_Types.Cons.create)(new Data_List_Types.Cons(x, Data_List_Types.Nil.value))(xs);\n };\n};\nvar singleton = function (a) {\n return new Data_List_Types.Cons(a, Data_List_Types.Nil.value);\n};\nvar sortBy = function (cmp) {\n var merge = function (v) {\n return function (v1) {\n if (v instanceof Data_List_Types.Cons && v1 instanceof Data_List_Types.Cons) {\n if (Data_Eq.eq(Data_Ordering.eqOrdering)(cmp(v.value0)(v1.value0))(Data_Ordering.GT.value)) {\n return new Data_List_Types.Cons(v1.value0, merge(v)(v1.value1));\n };\n if (Data_Boolean.otherwise) {\n return new Data_List_Types.Cons(v.value0, merge(v.value1)(v1));\n };\n };\n if (v instanceof Data_List_Types.Nil) {\n return v1;\n };\n if (v1 instanceof Data_List_Types.Nil) {\n return v;\n };\n throw new Error(\"Failed pattern match at Data.List (line 466, column 3 - line 466, column 38): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n };\n var mergePairs = function (v) {\n if (v instanceof Data_List_Types.Cons && v.value1 instanceof Data_List_Types.Cons) {\n return new Data_List_Types.Cons(merge(v.value0)(v.value1.value0), mergePairs(v.value1.value1));\n };\n return v;\n };\n var mergeAll = function ($copy_v) {\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(v) {\n if (v instanceof Data_List_Types.Cons && v.value1 instanceof Data_List_Types.Nil) {\n $tco_done = true;\n return v.value0;\n };\n $copy_v = mergePairs(v);\n return;\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($copy_v);\n };\n return $tco_result;\n };\n var sequences = function (v) {\n if (v instanceof Data_List_Types.Cons && v.value1 instanceof Data_List_Types.Cons) {\n if (Data_Eq.eq(Data_Ordering.eqOrdering)(cmp(v.value0)(v.value1.value0))(Data_Ordering.GT.value)) {\n return descending(v.value1.value0)(singleton(v.value0))(v.value1.value1);\n };\n if (Data_Boolean.otherwise) {\n return ascending(v.value1.value0)(function (v1) {\n return new Data_List_Types.Cons(v.value0, v1);\n })(v.value1.value1);\n };\n };\n return singleton(v);\n };\n var descending = function ($copy_a) {\n return function ($copy_as) {\n return function ($copy_v) {\n var $tco_var_a = $copy_a;\n var $tco_var_as = $copy_as;\n var $tco_done1 = false;\n var $tco_result;\n function $tco_loop(a, as, v) {\n if (v instanceof Data_List_Types.Cons && Data_Eq.eq(Data_Ordering.eqOrdering)(cmp(a)(v.value0))(Data_Ordering.GT.value)) {\n $tco_var_a = v.value0;\n $tco_var_as = new Data_List_Types.Cons(a, as);\n $copy_v = v.value1;\n return;\n };\n $tco_done1 = true;\n return new Data_List_Types.Cons(new Data_List_Types.Cons(a, as), sequences(v));\n };\n while (!$tco_done1) {\n $tco_result = $tco_loop($tco_var_a, $tco_var_as, $copy_v);\n };\n return $tco_result;\n };\n };\n };\n var ascending = function ($copy_a) {\n return function ($copy_as) {\n return function ($copy_v) {\n var $tco_var_a = $copy_a;\n var $tco_var_as = $copy_as;\n var $tco_done2 = false;\n var $tco_result;\n function $tco_loop(a, as, v) {\n if (v instanceof Data_List_Types.Cons && Data_Eq.notEq(Data_Ordering.eqOrdering)(cmp(a)(v.value0))(Data_Ordering.GT.value)) {\n $tco_var_a = v.value0;\n $tco_var_as = function (ys) {\n return as(new Data_List_Types.Cons(a, ys));\n };\n $copy_v = v.value1;\n return;\n };\n $tco_done2 = true;\n return new Data_List_Types.Cons(as(singleton(a)), sequences(v));\n };\n while (!$tco_done2) {\n $tco_result = $tco_loop($tco_var_a, $tco_var_as, $copy_v);\n };\n return $tco_result;\n };\n };\n };\n return function ($342) {\n return mergeAll(sequences($342));\n };\n};\nvar sort = function (dictOrd) {\n return function (xs) {\n return sortBy(Data_Ord.compare(dictOrd))(xs);\n };\n};\nvar tails = function (v) {\n if (v instanceof Data_List_Types.Nil) {\n return singleton(Data_List_Types.Nil.value);\n };\n if (v instanceof Data_List_Types.Cons) {\n return new Data_List_Types.Cons(v, tails(v.value1));\n };\n throw new Error(\"Failed pattern match at Data.List (line 641, column 1 - line 641, column 43): \" + [ v.constructor.name ]);\n};\nvar showPattern = function (dictShow) {\n return {\n show: function (v) {\n return \"(Pattern \" + (Data_Show.show(Data_List_Types.showList(dictShow))(v) + \")\");\n }\n };\n};\nvar reverse = /* #__PURE__ */ (function () {\n var go = function ($copy_acc) {\n return function ($copy_v) {\n var $tco_var_acc = $copy_acc;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(acc, v) {\n if (v instanceof Data_List_Types.Nil) {\n $tco_done = true;\n return acc;\n };\n if (v instanceof Data_List_Types.Cons) {\n $tco_var_acc = new Data_List_Types.Cons(v.value0, acc);\n $copy_v = v.value1;\n return;\n };\n throw new Error(\"Failed pattern match at Data.List (line 368, column 3 - line 368, column 19): \" + [ acc.constructor.name, v.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_acc, $copy_v);\n };\n return $tco_result;\n };\n };\n return go(Data_List_Types.Nil.value);\n})();\nvar take = /* #__PURE__ */ (function () {\n var go = function ($copy_acc) {\n return function ($copy_v) {\n return function ($copy_v1) {\n var $tco_var_acc = $copy_acc;\n var $tco_var_v = $copy_v;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(acc, v, v1) {\n if (v < 1) {\n $tco_done = true;\n return reverse(acc);\n };\n if (v1 instanceof Data_List_Types.Nil) {\n $tco_done = true;\n return reverse(acc);\n };\n if (v1 instanceof Data_List_Types.Cons) {\n $tco_var_acc = new Data_List_Types.Cons(v1.value0, acc);\n $tco_var_v = v - 1 | 0;\n $copy_v1 = v1.value1;\n return;\n };\n throw new Error(\"Failed pattern match at Data.List (line 513, column 3 - line 513, column 35): \" + [ acc.constructor.name, v.constructor.name, v1.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_acc, $tco_var_v, $copy_v1);\n };\n return $tco_result;\n };\n };\n };\n return go(Data_List_Types.Nil.value);\n})();\nvar takeWhile = function (p) {\n var go = function ($copy_acc) {\n return function ($copy_v) {\n var $tco_var_acc = $copy_acc;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(acc, v) {\n if (v instanceof Data_List_Types.Cons && p(v.value0)) {\n $tco_var_acc = new Data_List_Types.Cons(v.value0, acc);\n $copy_v = v.value1;\n return;\n };\n $tco_done = true;\n return reverse(acc);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_acc, $copy_v);\n };\n return $tco_result;\n };\n };\n return go(Data_List_Types.Nil.value);\n};\nvar unsnoc = function (lst) {\n var go = function ($copy_v) {\n return function ($copy_v1) {\n var $tco_var_v = $copy_v;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(v, v1) {\n if (v instanceof Data_List_Types.Nil) {\n $tco_done = true;\n return Data_Maybe.Nothing.value;\n };\n if (v instanceof Data_List_Types.Cons && v.value1 instanceof Data_List_Types.Nil) {\n $tco_done = true;\n return new Data_Maybe.Just({\n revInit: v1,\n last: v.value0\n });\n };\n if (v instanceof Data_List_Types.Cons) {\n $tco_var_v = v.value1;\n $copy_v1 = new Data_List_Types.Cons(v.value0, v1);\n return;\n };\n throw new Error(\"Failed pattern match at Data.List (line 270, column 3 - line 270, column 21): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_v, $copy_v1);\n };\n return $tco_result;\n };\n };\n return Data_Functor.map(Data_Maybe.functorMaybe)(function (h) {\n return {\n init: reverse(h.revInit),\n last: h.last\n };\n })(go(lst)(Data_List_Types.Nil.value));\n};\nvar zipWith = function (f) {\n return function (xs) {\n return function (ys) {\n var go = function ($copy_v) {\n return function ($copy_v1) {\n return function ($copy_acc) {\n var $tco_var_v = $copy_v;\n var $tco_var_v1 = $copy_v1;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(v, v1, acc) {\n if (v instanceof Data_List_Types.Nil) {\n $tco_done = true;\n return acc;\n };\n if (v1 instanceof Data_List_Types.Nil) {\n $tco_done = true;\n return acc;\n };\n if (v instanceof Data_List_Types.Cons && v1 instanceof Data_List_Types.Cons) {\n $tco_var_v = v.value1;\n $tco_var_v1 = v1.value1;\n $copy_acc = new Data_List_Types.Cons(f(v.value0)(v1.value0), acc);\n return;\n };\n throw new Error(\"Failed pattern match at Data.List (line 779, column 3 - line 779, column 21): \" + [ v.constructor.name, v1.constructor.name, acc.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_v, $tco_var_v1, $copy_acc);\n };\n return $tco_result;\n };\n };\n };\n return reverse(go(xs)(ys)(Data_List_Types.Nil.value));\n };\n };\n};\nvar zip = /* #__PURE__ */ (function () {\n return zipWith(Data_Tuple.Tuple.create);\n})();\nvar zipWithA = function (dictApplicative) {\n return function (f) {\n return function (xs) {\n return function (ys) {\n return Data_Traversable.sequence(Data_List_Types.traversableList)(dictApplicative)(zipWith(f)(xs)(ys));\n };\n };\n };\n};\nvar range = function (start) {\n return function (end) {\n if (start === end) {\n return singleton(start);\n };\n if (Data_Boolean.otherwise) {\n var go = function ($copy_s) {\n return function ($copy_e) {\n return function ($copy_step) {\n return function ($copy_rest) {\n var $tco_var_s = $copy_s;\n var $tco_var_e = $copy_e;\n var $tco_var_step = $copy_step;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(s, e, step, rest) {\n if (s === e) {\n $tco_done = true;\n return new Data_List_Types.Cons(s, rest);\n };\n if (Data_Boolean.otherwise) {\n $tco_var_s = s + step | 0;\n $tco_var_e = e;\n $tco_var_step = step;\n $copy_rest = new Data_List_Types.Cons(s, rest);\n return;\n };\n throw new Error(\"Failed pattern match at Data.List (line 148, column 3 - line 149, column 65): \" + [ s.constructor.name, e.constructor.name, step.constructor.name, rest.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_s, $tco_var_e, $tco_var_step, $copy_rest);\n };\n return $tco_result;\n };\n };\n };\n };\n return go(end)(start)((function () {\n var $223 = start > end;\n if ($223) {\n return 1;\n };\n return -1 | 0;\n })())(Data_List_Types.Nil.value);\n };\n throw new Error(\"Failed pattern match at Data.List (line 144, column 1 - line 144, column 32): \" + [ start.constructor.name, end.constructor.name ]);\n };\n};\nvar partition = function (p) {\n return function (xs) {\n var select = function (x) {\n return function (v) {\n var $226 = p(x);\n if ($226) {\n return {\n no: v.no,\n yes: new Data_List_Types.Cons(x, v.yes)\n };\n };\n return {\n no: new Data_List_Types.Cons(x, v.no),\n yes: v.yes\n };\n };\n };\n return Data_Foldable.foldr(Data_List_Types.foldableList)(select)({\n no: Data_List_Types.Nil.value,\n yes: Data_List_Types.Nil.value\n })(xs);\n };\n};\nvar $$null = function (v) {\n if (v instanceof Data_List_Types.Nil) {\n return true;\n };\n return false;\n};\nvar nubBy = function (p) {\n var go = function ($copy_v) {\n return function ($copy_acc) {\n return function ($copy_v1) {\n var $tco_var_v = $copy_v;\n var $tco_var_acc = $copy_acc;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(v, acc, v1) {\n if (v1 instanceof Data_List_Types.Nil) {\n $tco_done = true;\n return acc;\n };\n if (v1 instanceof Data_List_Types.Cons) {\n var v2 = Data_List_Internal.insertAndLookupBy(p)(v1.value0)(v);\n if (v2.found) {\n $tco_var_v = v2.result;\n $tco_var_acc = acc;\n $copy_v1 = v1.value1;\n return;\n };\n $tco_var_v = v2.result;\n $tco_var_acc = new Data_List_Types.Cons(v1.value0, acc);\n $copy_v1 = v1.value1;\n return;\n };\n throw new Error(\"Failed pattern match at Data.List (line 673, column 5 - line 673, column 23): \" + [ v.constructor.name, acc.constructor.name, v1.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_v, $tco_var_acc, $copy_v1);\n };\n return $tco_result;\n };\n };\n };\n var $343 = go(Data_List_Internal.emptySet)(Data_List_Types.Nil.value);\n return function ($344) {\n return reverse($343($344));\n };\n};\nvar nub = function (dictOrd) {\n return nubBy(Data_Ord.compare(dictOrd));\n};\nvar newtypePattern = {\n Coercible0: function () {\n return undefined;\n }\n};\nvar mapMaybe = function (f) {\n var go = function ($copy_acc) {\n return function ($copy_v) {\n var $tco_var_acc = $copy_acc;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(acc, v) {\n if (v instanceof Data_List_Types.Nil) {\n $tco_done = true;\n return reverse(acc);\n };\n if (v instanceof Data_List_Types.Cons) {\n var v1 = f(v.value0);\n if (v1 instanceof Data_Maybe.Nothing) {\n $tco_var_acc = acc;\n $copy_v = v.value1;\n return;\n };\n if (v1 instanceof Data_Maybe.Just) {\n $tco_var_acc = new Data_List_Types.Cons(v1.value0, acc);\n $copy_v = v.value1;\n return;\n };\n throw new Error(\"Failed pattern match at Data.List (line 419, column 5 - line 421, column 32): \" + [ v1.constructor.name ]);\n };\n throw new Error(\"Failed pattern match at Data.List (line 417, column 3 - line 417, column 27): \" + [ acc.constructor.name, v.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_acc, $copy_v);\n };\n return $tco_result;\n };\n };\n return go(Data_List_Types.Nil.value);\n};\nvar manyRec = function (dictMonadRec) {\n return function (dictAlternative) {\n return function (p) {\n var go = function (acc) {\n return Control_Bind.bind((dictMonadRec.Monad0()).Bind1())(Control_Alt.alt((dictAlternative.Plus1()).Alt0())(Data_Functor.map(((dictAlternative.Plus1()).Alt0()).Functor0())(Control_Monad_Rec_Class.Loop.create)(p))(Control_Applicative.pure(dictAlternative.Applicative0())(new Control_Monad_Rec_Class.Done(Data_Unit.unit))))(function (aa) {\n return Control_Applicative.pure(dictAlternative.Applicative0())(Data_Bifunctor.bimap(Control_Monad_Rec_Class.bifunctorStep)(function (v) {\n return new Data_List_Types.Cons(v, acc);\n })(function (v) {\n return reverse(acc);\n })(aa));\n });\n };\n return Control_Monad_Rec_Class.tailRecM(dictMonadRec)(go)(Data_List_Types.Nil.value);\n };\n };\n};\nvar someRec = function (dictMonadRec) {\n return function (dictAlternative) {\n return function (v) {\n return Control_Apply.apply((dictAlternative.Applicative0()).Apply0())(Data_Functor.map(((dictAlternative.Plus1()).Alt0()).Functor0())(Data_List_Types.Cons.create)(v))(manyRec(dictMonadRec)(dictAlternative)(v));\n };\n };\n};\nvar some = function (dictAlternative) {\n return function (dictLazy) {\n return function (v) {\n return Control_Apply.apply((dictAlternative.Applicative0()).Apply0())(Data_Functor.map(((dictAlternative.Plus1()).Alt0()).Functor0())(Data_List_Types.Cons.create)(v))(Control_Lazy.defer(dictLazy)(function (v1) {\n return many(dictAlternative)(dictLazy)(v);\n }));\n };\n };\n};\nvar many = function (dictAlternative) {\n return function (dictLazy) {\n return function (v) {\n return Control_Alt.alt((dictAlternative.Plus1()).Alt0())(some(dictAlternative)(dictLazy)(v))(Control_Applicative.pure(dictAlternative.Applicative0())(Data_List_Types.Nil.value));\n };\n };\n};\nvar length = /* #__PURE__ */ Data_Foldable.foldl(Data_List_Types.foldableList)(function (acc) {\n return function (v) {\n return acc + 1 | 0;\n };\n})(0);\nvar last = function ($copy_v) {\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(v) {\n if (v instanceof Data_List_Types.Cons && v.value1 instanceof Data_List_Types.Nil) {\n $tco_done = true;\n return new Data_Maybe.Just(v.value0);\n };\n if (v instanceof Data_List_Types.Cons) {\n $copy_v = v.value1;\n return;\n };\n $tco_done = true;\n return Data_Maybe.Nothing.value;\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($copy_v);\n };\n return $tco_result;\n};\nvar insertBy = function (v) {\n return function (x) {\n return function (v1) {\n if (v1 instanceof Data_List_Types.Nil) {\n return singleton(x);\n };\n if (v1 instanceof Data_List_Types.Cons) {\n var v2 = v(x)(v1.value0);\n if (v2 instanceof Data_Ordering.GT) {\n return new Data_List_Types.Cons(v1.value0, insertBy(v)(x)(v1.value1));\n };\n return new Data_List_Types.Cons(x, v1);\n };\n throw new Error(\"Failed pattern match at Data.List (line 216, column 1 - line 216, column 68): \" + [ v.constructor.name, x.constructor.name, v1.constructor.name ]);\n };\n };\n};\nvar insertAt = function (v) {\n return function (v1) {\n return function (v2) {\n if (v === 0) {\n return new Data_Maybe.Just(new Data_List_Types.Cons(v1, v2));\n };\n if (v2 instanceof Data_List_Types.Cons) {\n return Data_Functor.map(Data_Maybe.functorMaybe)(function (v3) {\n return new Data_List_Types.Cons(v2.value0, v3);\n })(insertAt(v - 1 | 0)(v1)(v2.value1));\n };\n return Data_Maybe.Nothing.value;\n };\n };\n};\nvar insert = function (dictOrd) {\n return insertBy(Data_Ord.compare(dictOrd));\n};\nvar init = function (lst) {\n return Data_Functor.map(Data_Maybe.functorMaybe)(function (v) {\n return v.init;\n })(unsnoc(lst));\n};\nvar index = function ($copy_v) {\n return function ($copy_v1) {\n var $tco_var_v = $copy_v;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(v, v1) {\n if (v instanceof Data_List_Types.Nil) {\n $tco_done = true;\n return Data_Maybe.Nothing.value;\n };\n if (v instanceof Data_List_Types.Cons && v1 === 0) {\n $tco_done = true;\n return new Data_Maybe.Just(v.value0);\n };\n if (v instanceof Data_List_Types.Cons) {\n $tco_var_v = v.value1;\n $copy_v1 = v1 - 1 | 0;\n return;\n };\n throw new Error(\"Failed pattern match at Data.List (line 281, column 1 - line 281, column 44): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_v, $copy_v1);\n };\n return $tco_result;\n };\n};\nvar head = function (v) {\n if (v instanceof Data_List_Types.Nil) {\n return Data_Maybe.Nothing.value;\n };\n if (v instanceof Data_List_Types.Cons) {\n return new Data_Maybe.Just(v.value0);\n };\n throw new Error(\"Failed pattern match at Data.List (line 230, column 1 - line 230, column 22): \" + [ v.constructor.name ]);\n};\nvar transpose = function (v) {\n if (v instanceof Data_List_Types.Nil) {\n return Data_List_Types.Nil.value;\n };\n if (v instanceof Data_List_Types.Cons && v.value0 instanceof Data_List_Types.Nil) {\n return transpose(v.value1);\n };\n if (v instanceof Data_List_Types.Cons && v.value0 instanceof Data_List_Types.Cons) {\n return new Data_List_Types.Cons(new Data_List_Types.Cons(v.value0.value0, mapMaybe(head)(v.value1)), transpose(new Data_List_Types.Cons(v.value0.value1, mapMaybe(tail)(v.value1))));\n };\n throw new Error(\"Failed pattern match at Data.List (line 813, column 1 - line 813, column 54): \" + [ v.constructor.name ]);\n};\nvar groupBy = function (v) {\n return function (v1) {\n if (v1 instanceof Data_List_Types.Nil) {\n return Data_List_Types.Nil.value;\n };\n if (v1 instanceof Data_List_Types.Cons) {\n var v2 = span(v(v1.value0))(v1.value1);\n return new Data_List_Types.Cons(new Data_NonEmpty.NonEmpty(v1.value0, v2.init), groupBy(v)(v2.rest));\n };\n throw new Error(\"Failed pattern match at Data.List (line 609, column 1 - line 609, column 80): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n};\nvar groupAllBy = function (p) {\n var $345 = groupBy(function (x) {\n return function (y) {\n return Data_Eq.eq(Data_Ordering.eqOrdering)(p(x)(y))(Data_Ordering.EQ.value);\n };\n });\n var $346 = sortBy(p);\n return function ($347) {\n return $345($346($347));\n };\n};\nvar group = function (dictEq) {\n return groupBy(Data_Eq.eq(dictEq));\n};\nvar groupAll = function (dictOrd) {\n var $348 = group(dictOrd.Eq0());\n var $349 = sort(dictOrd);\n return function ($350) {\n return $348($349($350));\n };\n};\nvar fromFoldable = function (dictFoldable) {\n return Data_Foldable.foldr(dictFoldable)(Data_List_Types.Cons.create)(Data_List_Types.Nil.value);\n};\nvar foldM = function (dictMonad) {\n return function (v) {\n return function (b) {\n return function (v1) {\n if (v1 instanceof Data_List_Types.Nil) {\n return Control_Applicative.pure(dictMonad.Applicative0())(b);\n };\n if (v1 instanceof Data_List_Types.Cons) {\n return Control_Bind.bind(dictMonad.Bind1())(v(b)(v1.value0))(function (b$prime) {\n return foldM(dictMonad)(v)(b$prime)(v1.value1);\n });\n };\n throw new Error(\"Failed pattern match at Data.List (line 824, column 1 - line 824, column 72): \" + [ v.constructor.name, b.constructor.name, v1.constructor.name ]);\n };\n };\n };\n};\nvar findIndex = function (fn) {\n var go = function ($copy_v) {\n return function ($copy_v1) {\n var $tco_var_v = $copy_v;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(v, v1) {\n if (v1 instanceof Data_List_Types.Cons) {\n if (fn(v1.value0)) {\n $tco_done = true;\n return new Data_Maybe.Just(v);\n };\n if (Data_Boolean.otherwise) {\n $tco_var_v = v + 1 | 0;\n $copy_v1 = v1.value1;\n return;\n };\n };\n if (v1 instanceof Data_List_Types.Nil) {\n $tco_done = true;\n return Data_Maybe.Nothing.value;\n };\n throw new Error(\"Failed pattern match at Data.List (line 301, column 3 - line 301, column 35): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_v, $copy_v1);\n };\n return $tco_result;\n };\n };\n return go(0);\n};\nvar findLastIndex = function (fn) {\n return function (xs) {\n return Data_Functor.map(Data_Maybe.functorMaybe)(function (v) {\n return (length(xs) - 1 | 0) - v | 0;\n })(findIndex(fn)(reverse(xs)));\n };\n};\nvar filterM = function (dictMonad) {\n return function (v) {\n return function (v1) {\n if (v1 instanceof Data_List_Types.Nil) {\n return Control_Applicative.pure(dictMonad.Applicative0())(Data_List_Types.Nil.value);\n };\n if (v1 instanceof Data_List_Types.Cons) {\n return Control_Bind.bind(dictMonad.Bind1())(v(v1.value0))(function (b) {\n return Control_Bind.bind(dictMonad.Bind1())(filterM(dictMonad)(v)(v1.value1))(function (xs$prime) {\n return Control_Applicative.pure(dictMonad.Applicative0())((function () {\n if (b) {\n return new Data_List_Types.Cons(v1.value0, xs$prime);\n };\n return xs$prime;\n })());\n });\n });\n };\n throw new Error(\"Failed pattern match at Data.List (line 403, column 1 - line 403, column 75): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n };\n};\nvar filter = function (p) {\n var go = function ($copy_acc) {\n return function ($copy_v) {\n var $tco_var_acc = $copy_acc;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(acc, v) {\n if (v instanceof Data_List_Types.Nil) {\n $tco_done = true;\n return reverse(acc);\n };\n if (v instanceof Data_List_Types.Cons) {\n if (p(v.value0)) {\n $tco_var_acc = new Data_List_Types.Cons(v.value0, acc);\n $copy_v = v.value1;\n return;\n };\n if (Data_Boolean.otherwise) {\n $tco_var_acc = acc;\n $copy_v = v.value1;\n return;\n };\n };\n throw new Error(\"Failed pattern match at Data.List (line 390, column 3 - line 390, column 27): \" + [ acc.constructor.name, v.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_acc, $copy_v);\n };\n return $tco_result;\n };\n };\n return go(Data_List_Types.Nil.value);\n};\nvar intersectBy = function (v) {\n return function (v1) {\n return function (v2) {\n if (v1 instanceof Data_List_Types.Nil) {\n return Data_List_Types.Nil.value;\n };\n if (v2 instanceof Data_List_Types.Nil) {\n return Data_List_Types.Nil.value;\n };\n return filter(function (x) {\n return Data_Foldable.any(Data_List_Types.foldableList)(Data_HeytingAlgebra.heytingAlgebraBoolean)(v(x))(v2);\n })(v1);\n };\n };\n};\nvar intersect = function (dictEq) {\n return intersectBy(Data_Eq.eq(dictEq));\n};\nvar nubByEq = function (v) {\n return function (v1) {\n if (v1 instanceof Data_List_Types.Nil) {\n return Data_List_Types.Nil.value;\n };\n if (v1 instanceof Data_List_Types.Cons) {\n return new Data_List_Types.Cons(v1.value0, nubByEq(v)(filter(function (y) {\n return !v(v1.value0)(y);\n })(v1.value1)));\n };\n throw new Error(\"Failed pattern match at Data.List (line 705, column 1 - line 705, column 61): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n};\nvar nubEq = function (dictEq) {\n return nubByEq(Data_Eq.eq(dictEq));\n};\nvar eqPattern = function (dictEq) {\n return {\n eq: function (x) {\n return function (y) {\n return Data_Eq.eq(Data_List_Types.eqList(dictEq))(x)(y);\n };\n }\n };\n};\nvar ordPattern = function (dictOrd) {\n return {\n compare: function (x) {\n return function (y) {\n return Data_Ord.compare(Data_List_Types.ordList(dictOrd))(x)(y);\n };\n },\n Eq0: function () {\n return eqPattern(dictOrd.Eq0());\n }\n };\n};\nvar elemLastIndex = function (dictEq) {\n return function (x) {\n return findLastIndex(function (v) {\n return Data_Eq.eq(dictEq)(v)(x);\n });\n };\n};\nvar elemIndex = function (dictEq) {\n return function (x) {\n return findIndex(function (v) {\n return Data_Eq.eq(dictEq)(v)(x);\n });\n };\n};\nvar dropWhile = function (p) {\n var go = function ($copy_v) {\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(v) {\n if (v instanceof Data_List_Types.Cons && p(v.value0)) {\n $copy_v = v.value1;\n return;\n };\n $tco_done = true;\n return v;\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($copy_v);\n };\n return $tco_result;\n };\n return go;\n};\nvar dropEnd = function (n) {\n return function (xs) {\n return take(length(xs) - n | 0)(xs);\n };\n};\nvar drop = function ($copy_v) {\n return function ($copy_v1) {\n var $tco_var_v = $copy_v;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(v, v1) {\n if (v < 1) {\n $tco_done = true;\n return v1;\n };\n if (v1 instanceof Data_List_Types.Nil) {\n $tco_done = true;\n return Data_List_Types.Nil.value;\n };\n if (v1 instanceof Data_List_Types.Cons) {\n $tco_var_v = v - 1 | 0;\n $copy_v1 = v1.value1;\n return;\n };\n throw new Error(\"Failed pattern match at Data.List (line 536, column 1 - line 536, column 42): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_v, $copy_v1);\n };\n return $tco_result;\n };\n};\nvar slice = function (start) {\n return function (end) {\n return function (xs) {\n return take(end - start | 0)(drop(start)(xs));\n };\n };\n};\nvar takeEnd = function (n) {\n return function (xs) {\n return drop(length(xs) - n | 0)(xs);\n };\n};\nvar deleteBy = function (v) {\n return function (v1) {\n return function (v2) {\n if (v2 instanceof Data_List_Types.Nil) {\n return Data_List_Types.Nil.value;\n };\n if (v2 instanceof Data_List_Types.Cons && v(v1)(v2.value0)) {\n return v2.value1;\n };\n if (v2 instanceof Data_List_Types.Cons) {\n return new Data_List_Types.Cons(v2.value0, deleteBy(v)(v1)(v2.value1));\n };\n throw new Error(\"Failed pattern match at Data.List (line 732, column 1 - line 732, column 67): \" + [ v.constructor.name, v1.constructor.name, v2.constructor.name ]);\n };\n };\n};\nvar unionBy = function (eq) {\n return function (xs) {\n return function (ys) {\n return Data_Semigroup.append(Data_List_Types.semigroupList)(xs)(Data_Foldable.foldl(Data_List_Types.foldableList)(Data_Function.flip(deleteBy(eq)))(nubByEq(eq)(ys))(xs));\n };\n };\n};\nvar union = function (dictEq) {\n return unionBy(Data_Eq.eq(dictEq));\n};\nvar deleteAt = function (v) {\n return function (v1) {\n if (v === 0 && v1 instanceof Data_List_Types.Cons) {\n return new Data_Maybe.Just(v1.value1);\n };\n if (v1 instanceof Data_List_Types.Cons) {\n return Data_Functor.map(Data_Maybe.functorMaybe)(function (v2) {\n return new Data_List_Types.Cons(v1.value0, v2);\n })(deleteAt(v - 1 | 0)(v1.value1));\n };\n return Data_Maybe.Nothing.value;\n };\n};\nvar $$delete = function (dictEq) {\n return deleteBy(Data_Eq.eq(dictEq));\n};\nvar difference = function (dictEq) {\n return Data_Foldable.foldl(Data_List_Types.foldableList)(Data_Function.flip($$delete(dictEq)));\n};\nvar concatMap = /* #__PURE__ */ Data_Function.flip(/* #__PURE__ */ Control_Bind.bind(Data_List_Types.bindList));\nvar concat = function (v) {\n return Control_Bind.bind(Data_List_Types.bindList)(v)(Control_Category.identity(Control_Category.categoryFn));\n};\nvar catMaybes = /* #__PURE__ */ mapMaybe(/* #__PURE__ */ Control_Category.identity(Control_Category.categoryFn));\nvar alterAt = function (v) {\n return function (v1) {\n return function (v2) {\n if (v === 0 && v2 instanceof Data_List_Types.Cons) {\n return new Data_Maybe.Just((function () {\n var v3 = v1(v2.value0);\n if (v3 instanceof Data_Maybe.Nothing) {\n return v2.value1;\n };\n if (v3 instanceof Data_Maybe.Just) {\n return new Data_List_Types.Cons(v3.value0, v2.value1);\n };\n throw new Error(\"Failed pattern match at Data.List (line 352, column 3 - line 354, column 23): \" + [ v3.constructor.name ]);\n })());\n };\n if (v2 instanceof Data_List_Types.Cons) {\n return Data_Functor.map(Data_Maybe.functorMaybe)(function (v3) {\n return new Data_List_Types.Cons(v2.value0, v3);\n })(alterAt(v - 1 | 0)(v1)(v2.value1));\n };\n return Data_Maybe.Nothing.value;\n };\n };\n};\nvar modifyAt = function (n) {\n return function (f) {\n return alterAt(n)(function ($351) {\n return Data_Maybe.Just.create(f($351));\n });\n };\n};\nexport {\n toUnfoldable,\n fromFoldable,\n singleton,\n range,\n some,\n someRec,\n many,\n manyRec,\n $$null as null,\n length,\n snoc,\n insert,\n insertBy,\n head,\n last,\n tail,\n init,\n uncons,\n unsnoc,\n index,\n elemIndex,\n elemLastIndex,\n findIndex,\n findLastIndex,\n insertAt,\n deleteAt,\n updateAt,\n modifyAt,\n alterAt,\n reverse,\n concat,\n concatMap,\n filter,\n filterM,\n mapMaybe,\n catMaybes,\n sort,\n sortBy,\n Pattern,\n stripPrefix,\n slice,\n take,\n takeEnd,\n takeWhile,\n drop,\n dropEnd,\n dropWhile,\n span,\n group,\n groupAll,\n groupBy,\n groupAllBy,\n partition,\n nub,\n nubBy,\n nubEq,\n nubByEq,\n union,\n unionBy,\n $$delete as delete,\n deleteBy,\n difference,\n intersect,\n intersectBy,\n zipWith,\n zipWithA,\n zip,\n unzip,\n transpose,\n foldM,\n eqPattern,\n ordPattern,\n newtypePattern,\n showPattern\n};\nexport {\n all,\n any,\n elem,\n find,\n findMap,\n fold,\n foldMap,\n foldl,\n foldr,\n intercalate,\n notElem\n} from \"../Data.Foldable/index.js\";\nexport {\n Cons,\n Nil\n} from \"../Data.List.Types/index.js\";\nexport {\n scanl,\n scanr\n} from \"../Data.Traversable/index.js\";\n","// module Partial.Unsafe\n\nexport const _unsafePartial = function (f) {\n return f();\n};\n","// module Partial\n\nexport const _crashWith = function (msg) {\n throw new Error(msg);\n};\n","// Generated by purs version 0.15.2\nimport * as $foreign from \"./foreign.js\";\nvar crashWith = function () {\n return $foreign[\"_crashWith\"];\n};\nvar crash = function () {\n return crashWith()(\"Partial.crash: partial function\");\n};\nexport {\n crash,\n crashWith\n};\n","// Generated by purs version 0.15.2\nimport * as $foreign from \"./foreign.js\";\nimport * as Partial from \"../Partial/index.js\";\nvar unsafePartial = $foreign[\"_unsafePartial\"];\nvar unsafeCrashWith = function (msg) {\n return unsafePartial(function () {\n return Partial.crashWith()(msg);\n });\n};\nexport {\n unsafePartial,\n unsafeCrashWith\n};\n","// Generated by purs version 0.15.2\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Data_Boolean from \"../Data.Boolean/index.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Foldable from \"../Data.Foldable/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_List from \"../Data.List/index.js\";\nimport * as Data_List_Types from \"../Data.List.Types/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_NonEmpty from \"../Data.NonEmpty/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nimport * as Data_Semigroup_Foldable from \"../Data.Semigroup.Foldable/index.js\";\nimport * as Data_Semigroup_Traversable from \"../Data.Semigroup.Traversable/index.js\";\nimport * as Data_Traversable from \"../Data.Traversable/index.js\";\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nimport * as Data_Unfoldable from \"../Data.Unfoldable/index.js\";\nimport * as Partial_Unsafe from \"../Partial.Unsafe/index.js\";\nvar zipWith = function (f) {\n return function (v) {\n return function (v1) {\n return new Data_NonEmpty.NonEmpty(f(v.value0)(v1.value0), Data_List.zipWith(f)(v.value1)(v1.value1));\n };\n };\n};\nvar zipWithA = function (dictApplicative) {\n return function (f) {\n return function (xs) {\n return function (ys) {\n return Data_Semigroup_Traversable.sequence1(Data_List_Types.traversable1NonEmptyList)(dictApplicative.Apply0())(zipWith(f)(xs)(ys));\n };\n };\n };\n};\nvar zip = /* #__PURE__ */ (function () {\n return zipWith(Data_Tuple.Tuple.create);\n})();\nvar wrappedOperation2 = function (name) {\n return function (f) {\n return function (v) {\n return function (v1) {\n var v2 = f(new Data_List_Types.Cons(v.value0, v.value1))(new Data_List_Types.Cons(v1.value0, v1.value1));\n if (v2 instanceof Data_List_Types.Cons) {\n return new Data_NonEmpty.NonEmpty(v2.value0, v2.value1);\n };\n if (v2 instanceof Data_List_Types.Nil) {\n return Partial_Unsafe.unsafeCrashWith(\"Impossible: empty list in NonEmptyList \" + name);\n };\n throw new Error(\"Failed pattern match at Data.List.NonEmpty (line 105, column 3 - line 107, column 81): \" + [ v2.constructor.name ]);\n };\n };\n };\n};\nvar wrappedOperation = function (name) {\n return function (f) {\n return function (v) {\n var v1 = f(new Data_List_Types.Cons(v.value0, v.value1));\n if (v1 instanceof Data_List_Types.Cons) {\n return new Data_NonEmpty.NonEmpty(v1.value0, v1.value1);\n };\n if (v1 instanceof Data_List_Types.Nil) {\n return Partial_Unsafe.unsafeCrashWith(\"Impossible: empty list in NonEmptyList \" + name);\n };\n throw new Error(\"Failed pattern match at Data.List.NonEmpty (line 92, column 3 - line 94, column 81): \" + [ v1.constructor.name ]);\n };\n };\n};\nvar updateAt = function (i) {\n return function (a) {\n return function (v) {\n if (i === 0) {\n return new Data_Maybe.Just(new Data_NonEmpty.NonEmpty(a, v.value1));\n };\n if (Data_Boolean.otherwise) {\n return Data_Functor.map(Data_Maybe.functorMaybe)(function ($162) {\n return Data_List_Types.NonEmptyList((function (v1) {\n return new Data_NonEmpty.NonEmpty(v.value0, v1);\n })($162));\n })(Data_List.updateAt(i - 1 | 0)(a)(v.value1));\n };\n throw new Error(\"Failed pattern match at Data.List.NonEmpty (line 198, column 1 - line 198, column 75): \" + [ i.constructor.name, a.constructor.name, v.constructor.name ]);\n };\n };\n};\nvar unzip = function (ts) {\n return new Data_Tuple.Tuple(Data_Functor.map(Data_List_Types.functorNonEmptyList)(Data_Tuple.fst)(ts), Data_Functor.map(Data_List_Types.functorNonEmptyList)(Data_Tuple.snd)(ts));\n};\nvar unsnoc = function (v) {\n var v1 = Data_List.unsnoc(v.value1);\n if (v1 instanceof Data_Maybe.Nothing) {\n return {\n init: Data_List_Types.Nil.value,\n last: v.value0\n };\n };\n if (v1 instanceof Data_Maybe.Just) {\n return {\n init: new Data_List_Types.Cons(v.value0, v1.value0.init),\n last: v1.value0.last\n };\n };\n throw new Error(\"Failed pattern match at Data.List.NonEmpty (line 160, column 35 - line 162, column 50): \" + [ v1.constructor.name ]);\n};\nvar unionBy = /* #__PURE__ */ (function () {\n var $163 = wrappedOperation2(\"unionBy\");\n return function ($164) {\n return $163(Data_List.unionBy($164));\n };\n})();\nvar union = function (dictEq) {\n return wrappedOperation2(\"union\")(Data_List.union(dictEq));\n};\nvar uncons = function (v) {\n return {\n head: v.value0,\n tail: v.value1\n };\n};\nvar toList = function (v) {\n return new Data_List_Types.Cons(v.value0, v.value1);\n};\nvar toUnfoldable = function (dictUnfoldable) {\n var $165 = Data_Unfoldable.unfoldr(dictUnfoldable)(function (xs) {\n return Data_Functor.map(Data_Maybe.functorMaybe)(function (rec) {\n return new Data_Tuple.Tuple(rec.head, rec.tail);\n })(Data_List.uncons(xs));\n });\n return function ($166) {\n return $165(toList($166));\n };\n};\nvar tail = function (v) {\n return v.value1;\n};\nvar sortBy = /* #__PURE__ */ (function () {\n var $167 = wrappedOperation(\"sortBy\");\n return function ($168) {\n return $167(Data_List.sortBy($168));\n };\n})();\nvar sort = function (dictOrd) {\n return function (xs) {\n return sortBy(Data_Ord.compare(dictOrd))(xs);\n };\n};\nvar snoc = function (v) {\n return function (y) {\n return new Data_NonEmpty.NonEmpty(v.value0, Data_List.snoc(v.value1)(y));\n };\n};\nvar singleton = /* #__PURE__ */ (function () {\n var $169 = Data_NonEmpty.singleton(Data_List_Types.plusList);\n return function ($170) {\n return Data_List_Types.NonEmptyList($169($170));\n };\n})();\nvar snoc$prime = function (v) {\n return function (y) {\n if (v instanceof Data_List_Types.Cons) {\n return new Data_NonEmpty.NonEmpty(v.value0, Data_List.snoc(v.value1)(y));\n };\n if (v instanceof Data_List_Types.Nil) {\n return singleton(y);\n };\n throw new Error(\"Failed pattern match at Data.List.NonEmpty (line 140, column 1 - line 140, column 51): \" + [ v.constructor.name, y.constructor.name ]);\n };\n};\nvar reverse = /* #__PURE__ */ wrappedOperation(\"reverse\")(Data_List.reverse);\nvar nubEq = function (dictEq) {\n return wrappedOperation(\"nubEq\")(Data_List.nubEq(dictEq));\n};\nvar nubByEq = /* #__PURE__ */ (function () {\n var $171 = wrappedOperation(\"nubByEq\");\n return function ($172) {\n return $171(Data_List.nubByEq($172));\n };\n})();\nvar nubBy = /* #__PURE__ */ (function () {\n var $173 = wrappedOperation(\"nubBy\");\n return function ($174) {\n return $173(Data_List.nubBy($174));\n };\n})();\nvar nub = function (dictOrd) {\n return wrappedOperation(\"nub\")(Data_List.nub(dictOrd));\n};\nvar modifyAt = function (i) {\n return function (f) {\n return function (v) {\n if (i === 0) {\n return new Data_Maybe.Just(new Data_NonEmpty.NonEmpty(f(v.value0), v.value1));\n };\n if (Data_Boolean.otherwise) {\n return Data_Functor.map(Data_Maybe.functorMaybe)(function ($175) {\n return Data_List_Types.NonEmptyList((function (v1) {\n return new Data_NonEmpty.NonEmpty(v.value0, v1);\n })($175));\n })(Data_List.modifyAt(i - 1 | 0)(f)(v.value1));\n };\n throw new Error(\"Failed pattern match at Data.List.NonEmpty (line 203, column 1 - line 203, column 82): \" + [ i.constructor.name, f.constructor.name, v.constructor.name ]);\n };\n };\n};\nvar lift = function (f) {\n return function (v) {\n return f(new Data_List_Types.Cons(v.value0, v.value1));\n };\n};\nvar mapMaybe = function ($176) {\n return lift(Data_List.mapMaybe($176));\n};\nvar partition = function ($177) {\n return lift(Data_List.partition($177));\n};\nvar span = function ($178) {\n return lift(Data_List.span($178));\n};\nvar take = function ($179) {\n return lift(Data_List.take($179));\n};\nvar takeWhile = function ($180) {\n return lift(Data_List.takeWhile($180));\n};\nvar length = function (v) {\n return 1 + Data_List.length(v.value1) | 0;\n};\nvar last = function (v) {\n return Data_Maybe.fromMaybe(v.value0)(Data_List.last(v.value1));\n};\nvar intersectBy = /* #__PURE__ */ (function () {\n var $181 = wrappedOperation2(\"intersectBy\");\n return function ($182) {\n return $181(Data_List.intersectBy($182));\n };\n})();\nvar intersect = function (dictEq) {\n return wrappedOperation2(\"intersect\")(Data_List.intersect(dictEq));\n};\nvar insertAt = function (i) {\n return function (a) {\n return function (v) {\n if (i === 0) {\n return new Data_Maybe.Just(new Data_NonEmpty.NonEmpty(a, new Data_List_Types.Cons(v.value0, v.value1)));\n };\n if (Data_Boolean.otherwise) {\n return Data_Functor.map(Data_Maybe.functorMaybe)(function ($183) {\n return Data_List_Types.NonEmptyList((function (v1) {\n return new Data_NonEmpty.NonEmpty(v.value0, v1);\n })($183));\n })(Data_List.insertAt(i - 1 | 0)(a)(v.value1));\n };\n throw new Error(\"Failed pattern match at Data.List.NonEmpty (line 193, column 1 - line 193, column 75): \" + [ i.constructor.name, a.constructor.name, v.constructor.name ]);\n };\n };\n};\nvar init = function (v) {\n return Data_Maybe.maybe(Data_List_Types.Nil.value)(function (v1) {\n return new Data_List_Types.Cons(v.value0, v1);\n })(Data_List.init(v.value1));\n};\nvar index = function (v) {\n return function (i) {\n if (i === 0) {\n return new Data_Maybe.Just(v.value0);\n };\n if (Data_Boolean.otherwise) {\n return Data_List.index(v.value1)(i - 1 | 0);\n };\n throw new Error(\"Failed pattern match at Data.List.NonEmpty (line 167, column 1 - line 167, column 52): \" + [ v.constructor.name, i.constructor.name ]);\n };\n};\nvar head = function (v) {\n return v.value0;\n};\nvar groupBy = /* #__PURE__ */ (function () {\n var $184 = wrappedOperation(\"groupBy\");\n return function ($185) {\n return $184(Data_List.groupBy($185));\n };\n})();\nvar groupAllBy = /* #__PURE__ */ (function () {\n var $186 = wrappedOperation(\"groupAllBy\");\n return function ($187) {\n return $186(Data_List.groupAllBy($187));\n };\n})();\nvar groupAll = function (dictOrd) {\n return wrappedOperation(\"groupAll\")(Data_List.groupAll(dictOrd));\n};\nvar group = function (dictEq) {\n return wrappedOperation(\"group\")(Data_List.group(dictEq));\n};\nvar fromList = function (v) {\n if (v instanceof Data_List_Types.Nil) {\n return Data_Maybe.Nothing.value;\n };\n if (v instanceof Data_List_Types.Cons) {\n return new Data_Maybe.Just(new Data_NonEmpty.NonEmpty(v.value0, v.value1));\n };\n throw new Error(\"Failed pattern match at Data.List.NonEmpty (line 121, column 1 - line 121, column 57): \" + [ v.constructor.name ]);\n};\nvar fromFoldable = function (dictFoldable) {\n var $188 = Data_List.fromFoldable(dictFoldable);\n return function ($189) {\n return fromList($188($189));\n };\n};\nvar foldM = function (dictMonad) {\n return function (f) {\n return function (b) {\n return function (v) {\n return Control_Bind.bind(dictMonad.Bind1())(f(b)(v.value0))(function (b$prime) {\n return Data_List.foldM(dictMonad)(f)(b$prime)(v.value1);\n });\n };\n };\n };\n};\nvar findLastIndex = function (f) {\n return function (v) {\n var v1 = Data_List.findLastIndex(f)(v.value1);\n if (v1 instanceof Data_Maybe.Just) {\n return new Data_Maybe.Just(v1.value0 + 1 | 0);\n };\n if (v1 instanceof Data_Maybe.Nothing) {\n if (f(v.value0)) {\n return new Data_Maybe.Just(0);\n };\n if (Data_Boolean.otherwise) {\n return Data_Maybe.Nothing.value;\n };\n };\n throw new Error(\"Failed pattern match at Data.List.NonEmpty (line 187, column 3 - line 191, column 29): \" + [ v1.constructor.name ]);\n };\n};\nvar findIndex = function (f) {\n return function (v) {\n if (f(v.value0)) {\n return new Data_Maybe.Just(0);\n };\n if (Data_Boolean.otherwise) {\n return Data_Functor.map(Data_Maybe.functorMaybe)(function (v1) {\n return v1 + 1 | 0;\n })(Data_List.findIndex(f)(v.value1));\n };\n throw new Error(\"Failed pattern match at Data.List.NonEmpty (line 180, column 1 - line 180, column 69): \" + [ f.constructor.name, v.constructor.name ]);\n };\n};\nvar filterM = function (dictMonad) {\n var $190 = Data_List.filterM(dictMonad);\n return function ($191) {\n return lift($190($191));\n };\n};\nvar filter = function ($192) {\n return lift(Data_List.filter($192));\n};\nvar elemLastIndex = function (dictEq) {\n return function (x) {\n return findLastIndex(function (v) {\n return Data_Eq.eq(dictEq)(v)(x);\n });\n };\n};\nvar elemIndex = function (dictEq) {\n return function (x) {\n return findIndex(function (v) {\n return Data_Eq.eq(dictEq)(v)(x);\n });\n };\n};\nvar dropWhile = function ($193) {\n return lift(Data_List.dropWhile($193));\n};\nvar drop = function ($194) {\n return lift(Data_List.drop($194));\n};\nvar cons$prime = function (x) {\n return function (xs) {\n return new Data_NonEmpty.NonEmpty(x, xs);\n };\n};\nvar cons = function (y) {\n return function (v) {\n return new Data_NonEmpty.NonEmpty(y, new Data_List_Types.Cons(v.value0, v.value1));\n };\n};\nvar concatMap = /* #__PURE__ */ Data_Function.flip(/* #__PURE__ */ Control_Bind.bind(Data_List_Types.bindNonEmptyList));\nvar concat = function (v) {\n return Control_Bind.bind(Data_List_Types.bindNonEmptyList)(v)(Control_Category.identity(Control_Category.categoryFn));\n};\nvar catMaybes = /* #__PURE__ */ lift(Data_List.catMaybes);\nvar appendFoldable = function (dictFoldable) {\n return function (v) {\n return function (ys) {\n return new Data_NonEmpty.NonEmpty(v.value0, Data_Semigroup.append(Data_List_Types.semigroupList)(v.value1)(Data_List.fromFoldable(dictFoldable)(ys)));\n };\n };\n};\nexport {\n toUnfoldable,\n fromFoldable,\n fromList,\n toList,\n singleton,\n length,\n cons,\n cons$prime,\n snoc,\n snoc$prime,\n head,\n last,\n tail,\n init,\n uncons,\n unsnoc,\n index,\n elemIndex,\n elemLastIndex,\n findIndex,\n findLastIndex,\n insertAt,\n updateAt,\n modifyAt,\n reverse,\n concat,\n concatMap,\n filter,\n filterM,\n mapMaybe,\n catMaybes,\n appendFoldable,\n sort,\n sortBy,\n take,\n takeWhile,\n drop,\n dropWhile,\n span,\n group,\n groupAll,\n groupBy,\n groupAllBy,\n partition,\n nub,\n nubBy,\n nubEq,\n nubByEq,\n union,\n unionBy,\n intersect,\n intersectBy,\n zipWith,\n zipWithA,\n zip,\n unzip,\n foldM\n};\nexport {\n all,\n any,\n elem,\n find,\n findMap,\n fold,\n foldMap,\n foldl,\n foldr,\n intercalate,\n notElem\n} from \"../Data.Foldable/index.js\";\nexport {\n NonEmptyList\n} from \"../Data.List.Types/index.js\";\nexport {\n fold1,\n foldMap1,\n for1_,\n sequence1_,\n traverse1_\n} from \"../Data.Semigroup.Foldable/index.js\";\nexport {\n sequence1,\n traverse1,\n traverse1Default\n} from \"../Data.Semigroup.Traversable/index.js\";\nexport {\n scanl,\n scanr\n} from \"../Data.Traversable/index.js\";\n","export const fromCharArray = function (a) {\n return a.join(\"\");\n};\n\nexport const toCharArray = function (s) {\n return s.split(\"\");\n};\n\nexport const singleton = function (c) {\n return c;\n};\n\nexport const _charAt = function (just) {\n return function (nothing) {\n return function (i) {\n return function (s) {\n return i >= 0 && i < s.length ? just(s.charAt(i)) : nothing;\n };\n };\n };\n};\n\nexport const _toChar = function (just) {\n return function (nothing) {\n return function (s) {\n return s.length === 1 ? just(s) : nothing;\n };\n };\n};\n\nexport const length = function (s) {\n return s.length;\n};\n\nexport const countPrefix = function (p) {\n return function (s) {\n var i = 0;\n while (i < s.length && p(s.charAt(i))) i++;\n return i;\n };\n};\n\nexport const _indexOf = function (just) {\n return function (nothing) {\n return function (x) {\n return function (s) {\n var i = s.indexOf(x);\n return i === -1 ? nothing : just(i);\n };\n };\n };\n};\n\nexport const _indexOfStartingAt = function (just) {\n return function (nothing) {\n return function (x) {\n return function (startAt) {\n return function (s) {\n if (startAt < 0 || startAt > s.length) return nothing;\n var i = s.indexOf(x, startAt);\n return i === -1 ? nothing : just(i);\n };\n };\n };\n };\n};\n\nexport const _lastIndexOf = function (just) {\n return function (nothing) {\n return function (x) {\n return function (s) {\n var i = s.lastIndexOf(x);\n return i === -1 ? nothing : just(i);\n };\n };\n };\n};\n\nexport const _lastIndexOfStartingAt = function (just) {\n return function (nothing) {\n return function (x) {\n return function (startAt) {\n return function (s) {\n var i = s.lastIndexOf(x, startAt);\n return i === -1 ? nothing : just(i);\n };\n };\n };\n };\n};\n\nexport const take = function (n) {\n return function (s) {\n return s.substr(0, n);\n };\n};\n\nexport const drop = function (n) {\n return function (s) {\n return s.substring(n);\n };\n};\n\nexport const slice = function (b) {\n return function (e) {\n return function (s) {\n return s.slice(b,e);\n };\n };\n};\n\nexport const splitAt = function (i) {\n return function (s) {\n return { before: s.substring(0, i), after: s.substring(i) };\n };\n};\n","export const charAt = function (i) {\n return function (s) {\n if (i >= 0 && i < s.length) return s.charAt(i);\n throw new Error(\"Data.String.Unsafe.charAt: Invalid index.\");\n };\n};\n\nexport const char = function (s) {\n if (s.length === 1) return s.charAt(0);\n throw new Error(\"Data.String.Unsafe.char: Expected string of length 1.\");\n};\n","// Generated by purs version 0.15.2\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_String_Unsafe from \"../Data.String.Unsafe/index.js\";\nvar uncons = function (v) {\n if (v === \"\") {\n return Data_Maybe.Nothing.value;\n };\n return new Data_Maybe.Just({\n head: Data_String_Unsafe.charAt(0)(v),\n tail: $foreign.drop(1)(v)\n });\n};\nvar toChar = /* #__PURE__ */ (function () {\n return $foreign[\"_toChar\"](Data_Maybe.Just.create)(Data_Maybe.Nothing.value);\n})();\nvar takeWhile = function (p) {\n return function (s) {\n return $foreign.take($foreign.countPrefix(p)(s))(s);\n };\n};\nvar takeRight = function (i) {\n return function (s) {\n return $foreign.drop($foreign.length(s) - i | 0)(s);\n };\n};\nvar stripSuffix = function (v) {\n return function (str) {\n var v1 = $foreign.splitAt($foreign.length(str) - $foreign.length(v) | 0)(str);\n var $9 = v1.after === v;\n if ($9) {\n return new Data_Maybe.Just(v1.before);\n };\n return Data_Maybe.Nothing.value;\n };\n};\nvar stripPrefix = function (v) {\n return function (str) {\n var v1 = $foreign.splitAt($foreign.length(v))(str);\n var $15 = v1.before === v;\n if ($15) {\n return new Data_Maybe.Just(v1.after);\n };\n return Data_Maybe.Nothing.value;\n };\n};\nvar lastIndexOf$prime = /* #__PURE__ */ (function () {\n return $foreign[\"_lastIndexOfStartingAt\"](Data_Maybe.Just.create)(Data_Maybe.Nothing.value);\n})();\nvar lastIndexOf = /* #__PURE__ */ (function () {\n return $foreign[\"_lastIndexOf\"](Data_Maybe.Just.create)(Data_Maybe.Nothing.value);\n})();\nvar indexOf$prime = /* #__PURE__ */ (function () {\n return $foreign[\"_indexOfStartingAt\"](Data_Maybe.Just.create)(Data_Maybe.Nothing.value);\n})();\nvar indexOf = /* #__PURE__ */ (function () {\n return $foreign[\"_indexOf\"](Data_Maybe.Just.create)(Data_Maybe.Nothing.value);\n})();\nvar dropWhile = function (p) {\n return function (s) {\n return $foreign.drop($foreign.countPrefix(p)(s))(s);\n };\n};\nvar dropRight = function (i) {\n return function (s) {\n return $foreign.take($foreign.length(s) - i | 0)(s);\n };\n};\nvar contains = function (pat) {\n var $18 = indexOf(pat);\n return function ($19) {\n return Data_Maybe.isJust($18($19));\n };\n};\nvar charAt = /* #__PURE__ */ (function () {\n return $foreign[\"_charAt\"](Data_Maybe.Just.create)(Data_Maybe.Nothing.value);\n})();\nexport {\n singleton,\n fromCharArray,\n toCharArray,\n length,\n countPrefix,\n take,\n drop,\n slice,\n splitAt\n} from \"./foreign.js\";\nexport {\n stripPrefix,\n stripSuffix,\n contains,\n charAt,\n toChar,\n uncons,\n indexOf,\n indexOf$prime,\n lastIndexOf,\n lastIndexOf$prime,\n takeRight,\n takeWhile,\n dropRight,\n dropWhile\n};\n","// Generated by purs version 0.15.2\nimport * as $foreign from \"./foreign.js\";\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Monad_Error_Class from \"../Control.Monad.Error.Class/index.js\";\nimport * as Control_Monad_Except_Trans from \"../Control.Monad.Except.Trans/index.js\";\nimport * as Data_Boolean from \"../Data.Boolean/index.js\";\nimport * as Data_Either from \"../Data.Either/index.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Int from \"../Data.Int/index.js\";\nimport * as Data_List_NonEmpty from \"../Data.List.NonEmpty/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Data_Ordering from \"../Data.Ordering/index.js\";\nimport * as Data_Show from \"../Data.Show/index.js\";\nimport * as Data_String_CodeUnits from \"../Data.String.CodeUnits/index.js\";\nimport * as Unsafe_Coerce from \"../Unsafe.Coerce/index.js\";\nvar ForeignError = /* #__PURE__ */ (function () {\n function ForeignError(value0) {\n this.value0 = value0;\n };\n ForeignError.create = function (value0) {\n return new ForeignError(value0);\n };\n return ForeignError;\n})();\nvar TypeMismatch = /* #__PURE__ */ (function () {\n function TypeMismatch(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n TypeMismatch.create = function (value0) {\n return function (value1) {\n return new TypeMismatch(value0, value1);\n };\n };\n return TypeMismatch;\n})();\nvar ErrorAtIndex = /* #__PURE__ */ (function () {\n function ErrorAtIndex(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n ErrorAtIndex.create = function (value0) {\n return function (value1) {\n return new ErrorAtIndex(value0, value1);\n };\n };\n return ErrorAtIndex;\n})();\nvar ErrorAtProperty = /* #__PURE__ */ (function () {\n function ErrorAtProperty(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n ErrorAtProperty.create = function (value0) {\n return function (value1) {\n return new ErrorAtProperty(value0, value1);\n };\n };\n return ErrorAtProperty;\n})();\nvar unsafeToForeign = Unsafe_Coerce.unsafeCoerce;\nvar unsafeFromForeign = Unsafe_Coerce.unsafeCoerce;\nvar showForeignError = {\n show: function (v) {\n if (v instanceof ForeignError) {\n return \"(ForeignError \" + (Data_Show.show(Data_Show.showString)(v.value0) + \")\");\n };\n if (v instanceof ErrorAtIndex) {\n return \"(ErrorAtIndex \" + (Data_Show.show(Data_Show.showInt)(v.value0) + (\" \" + (Data_Show.show(showForeignError)(v.value1) + \")\")));\n };\n if (v instanceof ErrorAtProperty) {\n return \"(ErrorAtProperty \" + (Data_Show.show(Data_Show.showString)(v.value0) + (\" \" + (Data_Show.show(showForeignError)(v.value1) + \")\")));\n };\n if (v instanceof TypeMismatch) {\n return \"(TypeMismatch \" + (Data_Show.show(Data_Show.showString)(v.value0) + (\" \" + (Data_Show.show(Data_Show.showString)(v.value1) + \")\")));\n };\n throw new Error(\"Failed pattern match at Foreign (line 69, column 1 - line 73, column 89): \" + [ v.constructor.name ]);\n }\n};\nvar renderForeignError = function (v) {\n if (v instanceof ForeignError) {\n return v.value0;\n };\n if (v instanceof ErrorAtIndex) {\n return \"Error at array index \" + (Data_Show.show(Data_Show.showInt)(v.value0) + (\": \" + renderForeignError(v.value1)));\n };\n if (v instanceof ErrorAtProperty) {\n return \"Error at property \" + (Data_Show.show(Data_Show.showString)(v.value0) + (\": \" + renderForeignError(v.value1)));\n };\n if (v instanceof TypeMismatch) {\n return \"Type mismatch: expected \" + (v.value0 + (\", found \" + v.value1));\n };\n throw new Error(\"Failed pattern match at Foreign (line 78, column 1 - line 78, column 45): \" + [ v.constructor.name ]);\n};\nvar readUndefined = function (dictMonad) {\n return function (value) {\n if ($foreign.isUndefined(value)) {\n return Control_Applicative.pure(Control_Monad_Except_Trans.applicativeExceptT(dictMonad))(Data_Maybe.Nothing.value);\n };\n if (Data_Boolean.otherwise) {\n return Control_Applicative.pure(Control_Monad_Except_Trans.applicativeExceptT(dictMonad))(new Data_Maybe.Just(value));\n };\n throw new Error(\"Failed pattern match at Foreign (line 174, column 1 - line 174, column 103): \" + [ value.constructor.name ]);\n };\n};\nvar readNullOrUndefined = function (dictMonad) {\n return function (value) {\n if ($foreign.isNull(value) || $foreign.isUndefined(value)) {\n return Control_Applicative.pure(Control_Monad_Except_Trans.applicativeExceptT(dictMonad))(Data_Maybe.Nothing.value);\n };\n if (Data_Boolean.otherwise) {\n return Control_Applicative.pure(Control_Monad_Except_Trans.applicativeExceptT(dictMonad))(new Data_Maybe.Just(value));\n };\n throw new Error(\"Failed pattern match at Foreign (line 179, column 1 - line 179, column 109): \" + [ value.constructor.name ]);\n };\n};\nvar readNull = function (dictMonad) {\n return function (value) {\n if ($foreign.isNull(value)) {\n return Control_Applicative.pure(Control_Monad_Except_Trans.applicativeExceptT(dictMonad))(Data_Maybe.Nothing.value);\n };\n if (Data_Boolean.otherwise) {\n return Control_Applicative.pure(Control_Monad_Except_Trans.applicativeExceptT(dictMonad))(new Data_Maybe.Just(value));\n };\n throw new Error(\"Failed pattern match at Foreign (line 169, column 1 - line 169, column 98): \" + [ value.constructor.name ]);\n };\n};\nvar fail = function (dictMonad) {\n var $115 = Control_Monad_Error_Class.throwError(Control_Monad_Except_Trans.monadThrowExceptT(dictMonad));\n return function ($116) {\n return $115(Data_List_NonEmpty.singleton($116));\n };\n};\nvar readArray = function (dictMonad) {\n return function (value) {\n if ($foreign.isArray(value)) {\n return Control_Applicative.pure(Control_Monad_Except_Trans.applicativeExceptT(dictMonad))(unsafeFromForeign(value));\n };\n if (Data_Boolean.otherwise) {\n return fail(dictMonad)(new TypeMismatch(\"array\", $foreign.tagOf(value)));\n };\n throw new Error(\"Failed pattern match at Foreign (line 164, column 1 - line 164, column 99): \" + [ value.constructor.name ]);\n };\n};\nvar unsafeReadTagged = function (dictMonad) {\n return function (tag) {\n return function (value) {\n if ($foreign.tagOf(value) === tag) {\n return Control_Applicative.pure(Control_Monad_Except_Trans.applicativeExceptT(dictMonad))(unsafeFromForeign(value));\n };\n if (Data_Boolean.otherwise) {\n return fail(dictMonad)(new TypeMismatch(tag, $foreign.tagOf(value)));\n };\n throw new Error(\"Failed pattern match at Foreign (line 123, column 1 - line 123, column 104): \" + [ tag.constructor.name, value.constructor.name ]);\n };\n };\n};\nvar readBoolean = function (dictMonad) {\n return unsafeReadTagged(dictMonad)(\"Boolean\");\n};\nvar readNumber = function (dictMonad) {\n return unsafeReadTagged(dictMonad)(\"Number\");\n};\nvar readInt = function (dictMonad) {\n return function (value) {\n var error = new Data_Either.Left(Data_List_NonEmpty.singleton(new TypeMismatch(\"Int\", $foreign.tagOf(value))));\n var fromNumber = (function () {\n var $117 = Data_Maybe.maybe(error)(Control_Applicative.pure(Data_Either.applicativeEither));\n return function ($118) {\n return $117(Data_Int.fromNumber($118));\n };\n })();\n return Control_Monad_Except_Trans.mapExceptT(Data_Functor.map(((dictMonad.Bind1()).Apply0()).Functor0())(Data_Either.either(Data_Function[\"const\"](error))(fromNumber)))(readNumber(dictMonad)(value));\n };\n};\nvar readString = function (dictMonad) {\n return unsafeReadTagged(dictMonad)(\"String\");\n};\nvar readChar = function (dictMonad) {\n return function (value) {\n var error = new Data_Either.Left(Data_List_NonEmpty.singleton(new TypeMismatch(\"Char\", $foreign.tagOf(value))));\n var fromString = (function () {\n var $119 = Data_Maybe.maybe(error)(Control_Applicative.pure(Data_Either.applicativeEither));\n return function ($120) {\n return $119(Data_String_CodeUnits.toChar($120));\n };\n })();\n return Control_Monad_Except_Trans.mapExceptT(Data_Functor.map(((dictMonad.Bind1()).Apply0()).Functor0())(Data_Either.either(Data_Function[\"const\"](error))(fromString)))(readString(dictMonad)(value));\n };\n};\nvar eqForeignError = {\n eq: function (x) {\n return function (y) {\n if (x instanceof ForeignError && y instanceof ForeignError) {\n return x.value0 === y.value0;\n };\n if (x instanceof TypeMismatch && y instanceof TypeMismatch) {\n return x.value0 === y.value0 && x.value1 === y.value1;\n };\n if (x instanceof ErrorAtIndex && y instanceof ErrorAtIndex) {\n return x.value0 === y.value0 && Data_Eq.eq(eqForeignError)(x.value1)(y.value1);\n };\n if (x instanceof ErrorAtProperty && y instanceof ErrorAtProperty) {\n return x.value0 === y.value0 && Data_Eq.eq(eqForeignError)(x.value1)(y.value1);\n };\n return false;\n };\n }\n};\nvar ordForeignError = {\n compare: function (x) {\n return function (y) {\n if (x instanceof ForeignError && y instanceof ForeignError) {\n return Data_Ord.compare(Data_Ord.ordString)(x.value0)(y.value0);\n };\n if (x instanceof ForeignError) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof ForeignError) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof TypeMismatch && y instanceof TypeMismatch) {\n var v = Data_Ord.compare(Data_Ord.ordString)(x.value0)(y.value0);\n if (v instanceof Data_Ordering.LT) {\n return Data_Ordering.LT.value;\n };\n if (v instanceof Data_Ordering.GT) {\n return Data_Ordering.GT.value;\n };\n return Data_Ord.compare(Data_Ord.ordString)(x.value1)(y.value1);\n };\n if (x instanceof TypeMismatch) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof TypeMismatch) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof ErrorAtIndex && y instanceof ErrorAtIndex) {\n var v = Data_Ord.compare(Data_Ord.ordInt)(x.value0)(y.value0);\n if (v instanceof Data_Ordering.LT) {\n return Data_Ordering.LT.value;\n };\n if (v instanceof Data_Ordering.GT) {\n return Data_Ordering.GT.value;\n };\n return Data_Ord.compare(ordForeignError)(x.value1)(y.value1);\n };\n if (x instanceof ErrorAtIndex) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof ErrorAtIndex) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof ErrorAtProperty && y instanceof ErrorAtProperty) {\n var v = Data_Ord.compare(Data_Ord.ordString)(x.value0)(y.value0);\n if (v instanceof Data_Ordering.LT) {\n return Data_Ordering.LT.value;\n };\n if (v instanceof Data_Ordering.GT) {\n return Data_Ordering.GT.value;\n };\n return Data_Ord.compare(ordForeignError)(x.value1)(y.value1);\n };\n throw new Error(\"Failed pattern match at Foreign (line 0, column 0 - line 0, column 0): \" + [ x.constructor.name, y.constructor.name ]);\n };\n },\n Eq0: function () {\n return eqForeignError;\n }\n};\nexport {\n typeOf,\n tagOf,\n isNull,\n isUndefined,\n isArray\n} from \"./foreign.js\";\nexport {\n ForeignError,\n TypeMismatch,\n ErrorAtIndex,\n ErrorAtProperty,\n renderForeignError,\n unsafeToForeign,\n unsafeFromForeign,\n unsafeReadTagged,\n readString,\n readChar,\n readBoolean,\n readNumber,\n readInt,\n readArray,\n readNull,\n readUndefined,\n readNullOrUndefined,\n fail,\n eqForeignError,\n ordForeignError,\n showForeignError\n};\n","// Generated by purs version 0.15.2\nimport * as $foreign from \"./foreign.js\";\nimport * as Control_Monad_Except from \"../Control.Monad.Except/index.js\";\nimport * as Data_Either from \"../Data.Either/index.js\";\nimport * as Data_Identity from \"../Data.Identity/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Foreign from \"../Foreign/index.js\";\nvar decompressFromEncodedURIComponent = function (compressed) {\n var v = Control_Monad_Except.runExcept(Foreign.readString(Data_Identity.monadIdentity)($foreign.unsafeDecompressFromEncodedURIComponent(compressed)));\n if (v instanceof Data_Either.Right && v.value0 === \"\") {\n return Data_Maybe.Nothing.value;\n };\n if (v instanceof Data_Either.Right) {\n return new Data_Maybe.Just(v.value0);\n };\n return Data_Maybe.Nothing.value;\n};\nvar compressToEncodedURIComponent = function (value) {\n var v = Control_Monad_Except.runExcept(Foreign.readString(Data_Identity.monadIdentity)($foreign.unsafeCompressToEncodedURIComponent(value)));\n if (v instanceof Data_Either.Right && v.value0 === \"\") {\n return Data_Maybe.Nothing.value;\n };\n if (v instanceof Data_Either.Right) {\n return new Data_Maybe.Just(v.value0);\n };\n return Data_Maybe.Nothing.value;\n};\nexport {\n unsafeDecompressFromEncodedURIComponent,\n unsafeCompressToEncodedURIComponent\n} from \"./foreign.js\";\nexport {\n compressToEncodedURIComponent,\n decompressFromEncodedURIComponent\n};\n","\"use strict\";\nconst LZString = require('lz-string');\n\nfunction unsafeCompressToEncodedURIComponent(value) {\n return LZString.compressToEncodedURIComponent(value);\n};\n\nfunction unsafeDecompressFromEncodedURIComponent(value) {\n return LZString.decompressFromEncodedURIComponent(value);\n};\n\nexport { unsafeCompressToEncodedURIComponent, unsafeDecompressFromEncodedURIComponent }\n","\"use strict\";\n\nfunction getLocationString() {\n return window.location.href;\n};\n\nfunction getLocationBaseString() {\n return window.location.origin + window.location.pathname;\n};\n\nfunction setLocationString(value) {\n return function () {\n _setLocationString(value);\n }\n};\n\nvar _setLocationString = function (value) {\n var newurl = value;\n window.location = newurl;\n // window.history.pushState({}, '', newurl);\n};\n\n\nfunction getFragmentString() {\n var result = window.location.hash;\n if (result.startsWith(\"#\"))\n return result.substring(1);\n return \"\";\n};\n\nfunction setFragmentString(value) {\n return function () {\n _setFragmentString(value);\n }\n};\n\nvar _setFragmentString = function (value) {\n var newurl = window.location.protocol + \"//\" + window.location.host +\n window.location.pathname + window.location.search + '#' + value;\n // Only changing the fragment string shouldn't trigger a page reload in\n // itself, but we do it like this to be safe and avoid potential sitatuations\n // of changing a query string and then the fragment string still triggering a\n // reload or something.\n window.history.pushState({}, '', newurl);\n};\n\n\nfunction getQueryString() {\n var result = window.location.search;\n if (result.startsWith(\"?\"))\n return result.substring(1);\n return \"\";\n};\n\nfunction setQueryString(value) {\n return function () {\n _setQueryString(value);\n }\n};\n\nvar _setQueryString = function (value) {\n var newurl = window.location.protocol + \"//\" + window.location.host +\n window.location.pathname + '?' + value + window.location.hash;\n // Set the location without triggering a page reload.\n window.history.pushState({}, '', newurl);\n};\n\nfunction _getQueryParam(paramName) {\n return function () {\n const urlParams = new URLSearchParams(window.location.search);\n return urlParams.get(paramName);\n }\n}\n\n\nexport { setQueryString, getQueryString, setFragmentString, getFragmentString, getLocationBaseString, getLocationString, setLocationString, _getQueryParam }\n","export const _localeCompare = function (lt) {\n return function (eq) {\n return function (gt) {\n return function (s1) {\n return function (s2) {\n var result = s1.localeCompare(s2);\n return result < 0 ? lt : result > 0 ? gt : eq;\n };\n };\n };\n };\n};\n\nexport const replace = function (s1) {\n return function (s2) {\n return function (s3) {\n return s3.replace(s1, s2);\n };\n };\n};\n\nexport const replaceAll = function (s1) {\n return function (s2) {\n return function (s3) {\n return s3.replace(new RegExp(s1.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, \"\\\\$&\"), \"g\"), s2); // eslint-disable-line no-useless-escape\n };\n };\n};\n\nexport const split = function (sep) {\n return function (s) {\n return s.split(sep);\n };\n};\n\nexport const toLower = function (s) {\n return s.toLowerCase();\n};\n\nexport const toUpper = function (s) {\n return s.toUpperCase();\n};\n\nexport const trim = function (s) {\n return s.trim();\n};\n\nexport const joinWith = function (s) {\n return function (xs) {\n return xs.join(s);\n };\n};\n","// Generated by purs version 0.15.2\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Ordering from \"../Data.Ordering/index.js\";\nvar $$null = function (s) {\n return s === \"\";\n};\nvar localeCompare = /* #__PURE__ */ (function () {\n return $foreign[\"_localeCompare\"](Data_Ordering.LT.value)(Data_Ordering.EQ.value)(Data_Ordering.GT.value);\n})();\nexport {\n replace,\n replaceAll,\n split,\n toLower,\n toUpper,\n trim,\n joinWith\n} from \"./foreign.js\";\nexport {\n $$null as null,\n localeCompare\n};\n","// Generated by purs version 0.15.2\nimport * as $foreign from \"./foreign.js\";\nimport * as Control_Monad_Except from \"../Control.Monad.Except/index.js\";\nimport * as Data_Either from \"../Data.Either/index.js\";\nimport * as Data_Identity from \"../Data.Identity/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_String_Common from \"../Data.String.Common/index.js\";\nimport * as Foreign from \"../Foreign/index.js\";\nvar setQueryComponents = function (components) {\n return $foreign.setQueryString(Data_String_Common.joinWith(\"&\")(components));\n};\nvar getQueryParam = function (paramName) {\n return function __do() {\n var result = $foreign[\"_getQueryParam\"](paramName)();\n var v = Control_Monad_Except.runExcept(Foreign.readString(Data_Identity.monadIdentity)(result));\n if (v instanceof Data_Either.Right) {\n return new Data_Maybe.Just(v.value0);\n };\n return Data_Maybe.Nothing.value;\n };\n};\nexport {\n getLocationString,\n getLocationBaseString,\n setLocationString,\n getFragmentString,\n setFragmentString,\n getQueryString,\n setQueryString,\n _getQueryParam\n} from \"./foreign.js\";\nexport {\n getQueryParam,\n setQueryComponents\n};\n","// Generated by purs version 0.15.2\nimport * as Data_Bounded from \"../Data.Bounded/index.js\";\nimport * as Data_Generic_Rep from \"../Data.Generic.Rep/index.js\";\nvar genericTopNoArguments = /* #__PURE__ */ (function () {\n return {\n \"genericTop'\": Data_Generic_Rep.NoArguments.value\n };\n})();\nvar genericTopArgument = function (dictBounded) {\n return {\n \"genericTop'\": Data_Bounded.top(dictBounded)\n };\n};\nvar genericTop$prime = function (dict) {\n return dict[\"genericTop'\"];\n};\nvar genericTopConstructor = function (dictGenericTop) {\n return {\n \"genericTop'\": genericTop$prime(dictGenericTop)\n };\n};\nvar genericTopProduct = function (dictGenericTop) {\n return function (dictGenericTop1) {\n return {\n \"genericTop'\": new Data_Generic_Rep.Product(genericTop$prime(dictGenericTop), genericTop$prime(dictGenericTop1))\n };\n };\n};\nvar genericTopSum = function (dictGenericTop) {\n return {\n \"genericTop'\": new Data_Generic_Rep.Inr(genericTop$prime(dictGenericTop))\n };\n};\nvar genericTop = function (dictGeneric) {\n return function (dictGenericTop) {\n return Data_Generic_Rep.to(dictGeneric)(genericTop$prime(dictGenericTop));\n };\n};\nvar genericBottomNoArguments = /* #__PURE__ */ (function () {\n return {\n \"genericBottom'\": Data_Generic_Rep.NoArguments.value\n };\n})();\nvar genericBottomArgument = function (dictBounded) {\n return {\n \"genericBottom'\": Data_Bounded.bottom(dictBounded)\n };\n};\nvar genericBottom$prime = function (dict) {\n return dict[\"genericBottom'\"];\n};\nvar genericBottomConstructor = function (dictGenericBottom) {\n return {\n \"genericBottom'\": genericBottom$prime(dictGenericBottom)\n };\n};\nvar genericBottomProduct = function (dictGenericBottom) {\n return function (dictGenericBottom1) {\n return {\n \"genericBottom'\": new Data_Generic_Rep.Product(genericBottom$prime(dictGenericBottom), genericBottom$prime(dictGenericBottom1))\n };\n };\n};\nvar genericBottomSum = function (dictGenericBottom) {\n return {\n \"genericBottom'\": new Data_Generic_Rep.Inl(genericBottom$prime(dictGenericBottom))\n };\n};\nvar genericBottom = function (dictGeneric) {\n return function (dictGenericBottom) {\n return Data_Generic_Rep.to(dictGeneric)(genericBottom$prime(dictGenericBottom));\n };\n};\nexport {\n genericBottom$prime,\n genericBottom,\n genericTop$prime,\n genericTop,\n genericBottomNoArguments,\n genericBottomArgument,\n genericBottomSum,\n genericBottomProduct,\n genericBottomConstructor,\n genericTopNoArguments,\n genericTopArgument,\n genericTopSum,\n genericTopProduct,\n genericTopConstructor\n};\n","export function toCharCode(c) {\n return c.charCodeAt(0);\n}\n\nexport function fromCharCode(c) {\n return String.fromCharCode(c);\n}\n","// Generated by purs version 0.15.2\nimport * as Control_Alt from \"../Control.Alt/index.js\";\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Apply from \"../Control.Apply/index.js\";\nimport * as Control_Plus from \"../Control.Plus/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nvar guard = function (dictAlternative) {\n return function (v) {\n if (v) {\n return Control_Applicative.pure(dictAlternative.Applicative0())(Data_Unit.unit);\n };\n if (!v) {\n return Control_Plus.empty(dictAlternative.Plus1());\n };\n throw new Error(\"Failed pattern match at Control.Alternative (line 48, column 1 - line 48, column 54): \" + [ v.constructor.name ]);\n };\n};\nvar alternativeArray = {\n Applicative0: function () {\n return Control_Applicative.applicativeArray;\n },\n Plus1: function () {\n return Control_Plus.plusArray;\n }\n};\nexport {\n guard,\n alternativeArray\n};\nexport {\n alt\n} from \"../Control.Alt/index.js\";\nexport {\n liftA1,\n pure,\n unless,\n when\n} from \"../Control.Applicative/index.js\";\nexport {\n apply\n} from \"../Control.Apply/index.js\";\nexport {\n empty\n} from \"../Control.Plus/index.js\";\nexport {\n map,\n void\n} from \"../Data.Functor/index.js\";\n","// Generated by purs version 0.15.2\nimport * as $foreign from \"./foreign.js\";\nimport * as Control_Alternative from \"../Control.Alternative/index.js\";\nimport * as Control_Apply from \"../Control.Apply/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Data_Boolean from \"../Data.Boolean/index.js\";\nimport * as Data_Bounded from \"../Data.Bounded/index.js\";\nimport * as Data_Either from \"../Data.Either/index.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Data_Ordering from \"../Data.Ordering/index.js\";\nimport * as Data_Show from \"../Data.Show/index.js\";\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nimport * as Data_Unfoldable from \"../Data.Unfoldable/index.js\";\nimport * as Data_Unfoldable1 from \"../Data.Unfoldable1/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nvar Cardinality = function (x) {\n return x;\n};\nvar toEnum = function (dict) {\n return dict.toEnum;\n};\nvar succ = function (dict) {\n return dict.succ;\n};\nvar upFromIncluding = function (dictEnum) {\n return function (dictUnfoldable1) {\n return Data_Unfoldable1.unfoldr1(dictUnfoldable1)(Control_Apply.apply(Control_Apply.applyFn)(Data_Tuple.Tuple.create)(succ(dictEnum)));\n };\n};\nvar showCardinality = {\n show: function (v) {\n return \"(Cardinality \" + (Data_Show.show(Data_Show.showInt)(v) + \")\");\n }\n};\nvar pred = function (dict) {\n return dict.pred;\n};\nvar ordCardinality = Data_Ord.ordInt;\nvar newtypeCardinality = {\n Coercible0: function () {\n return undefined;\n }\n};\nvar fromEnum = function (dict) {\n return dict.fromEnum;\n};\nvar toEnumWithDefaults = function (dictBoundedEnum) {\n return function (low) {\n return function (high) {\n return function (x) {\n var v = toEnum(dictBoundedEnum)(x);\n if (v instanceof Data_Maybe.Just) {\n return v.value0;\n };\n if (v instanceof Data_Maybe.Nothing) {\n var $54 = x < fromEnum(dictBoundedEnum)(Data_Bounded.bottom(dictBoundedEnum.Bounded0()));\n if ($54) {\n return low;\n };\n return high;\n };\n throw new Error(\"Failed pattern match at Data.Enum (line 158, column 33 - line 160, column 62): \" + [ v.constructor.name ]);\n };\n };\n };\n};\nvar eqCardinality = Data_Eq.eqInt;\nvar enumUnit = /* #__PURE__ */ (function () {\n return {\n succ: Data_Function[\"const\"](Data_Maybe.Nothing.value),\n pred: Data_Function[\"const\"](Data_Maybe.Nothing.value),\n Ord0: function () {\n return Data_Ord.ordUnit;\n }\n };\n})();\nvar enumTuple = function (dictEnum) {\n return function (dictBoundedEnum) {\n return {\n succ: function (v) {\n return Data_Maybe.maybe(Data_Functor.map(Data_Maybe.functorMaybe)(Data_Function.flip(Data_Tuple.Tuple.create)(Data_Bounded.bottom(dictBoundedEnum.Bounded0())))(succ(dictEnum)(v.value0)))((function () {\n var $97 = Data_Tuple.Tuple.create(v.value0);\n return function ($98) {\n return Data_Maybe.Just.create($97($98));\n };\n })())(succ(dictBoundedEnum.Enum1())(v.value1));\n },\n pred: function (v) {\n return Data_Maybe.maybe(Data_Functor.map(Data_Maybe.functorMaybe)(Data_Function.flip(Data_Tuple.Tuple.create)(Data_Bounded.top(dictBoundedEnum.Bounded0())))(pred(dictEnum)(v.value0)))((function () {\n var $99 = Data_Tuple.Tuple.create(v.value0);\n return function ($100) {\n return Data_Maybe.Just.create($99($100));\n };\n })())(pred(dictBoundedEnum.Enum1())(v.value1));\n },\n Ord0: function () {\n return Data_Tuple.ordTuple(dictEnum.Ord0())((dictBoundedEnum.Enum1()).Ord0());\n }\n };\n };\n};\nvar enumOrdering = {\n succ: function (v) {\n if (v instanceof Data_Ordering.LT) {\n return new Data_Maybe.Just(Data_Ordering.EQ.value);\n };\n if (v instanceof Data_Ordering.EQ) {\n return new Data_Maybe.Just(Data_Ordering.GT.value);\n };\n if (v instanceof Data_Ordering.GT) {\n return Data_Maybe.Nothing.value;\n };\n throw new Error(\"Failed pattern match at Data.Enum (line 72, column 1 - line 78, column 20): \" + [ v.constructor.name ]);\n },\n pred: function (v) {\n if (v instanceof Data_Ordering.LT) {\n return Data_Maybe.Nothing.value;\n };\n if (v instanceof Data_Ordering.EQ) {\n return new Data_Maybe.Just(Data_Ordering.LT.value);\n };\n if (v instanceof Data_Ordering.GT) {\n return new Data_Maybe.Just(Data_Ordering.EQ.value);\n };\n throw new Error(\"Failed pattern match at Data.Enum (line 72, column 1 - line 78, column 20): \" + [ v.constructor.name ]);\n },\n Ord0: function () {\n return Data_Ord.ordOrdering;\n }\n};\nvar enumMaybe = function (dictBoundedEnum) {\n return {\n succ: function (v) {\n if (v instanceof Data_Maybe.Nothing) {\n return new Data_Maybe.Just(new Data_Maybe.Just(Data_Bounded.bottom(dictBoundedEnum.Bounded0())));\n };\n if (v instanceof Data_Maybe.Just) {\n return Data_Functor.map(Data_Maybe.functorMaybe)(Data_Maybe.Just.create)(succ(dictBoundedEnum.Enum1())(v.value0));\n };\n throw new Error(\"Failed pattern match at Data.Enum (line 80, column 1 - line 84, column 32): \" + [ v.constructor.name ]);\n },\n pred: function (v) {\n if (v instanceof Data_Maybe.Nothing) {\n return Data_Maybe.Nothing.value;\n };\n if (v instanceof Data_Maybe.Just) {\n return new Data_Maybe.Just(pred(dictBoundedEnum.Enum1())(v.value0));\n };\n throw new Error(\"Failed pattern match at Data.Enum (line 80, column 1 - line 84, column 32): \" + [ v.constructor.name ]);\n },\n Ord0: function () {\n return Data_Maybe.ordMaybe((dictBoundedEnum.Enum1()).Ord0());\n }\n };\n};\nvar enumInt = {\n succ: function (n) {\n var $67 = n < Data_Bounded.top(Data_Bounded.boundedInt);\n if ($67) {\n return new Data_Maybe.Just(n + 1 | 0);\n };\n return Data_Maybe.Nothing.value;\n },\n pred: function (n) {\n var $68 = n > Data_Bounded.bottom(Data_Bounded.boundedInt);\n if ($68) {\n return new Data_Maybe.Just(n - 1 | 0);\n };\n return Data_Maybe.Nothing.value;\n },\n Ord0: function () {\n return Data_Ord.ordInt;\n }\n};\nvar enumFromTo = function (dictEnum) {\n return function (dictUnfoldable1) {\n var go = function (step) {\n return function (op) {\n return function (to) {\n return function (a) {\n return new Data_Tuple.Tuple(a, Control_Bind.bind(Data_Maybe.bindMaybe)(step(a))(function (a$prime) {\n return Data_Functor.voidLeft(Data_Maybe.functorMaybe)(Control_Alternative.guard(Data_Maybe.alternativeMaybe)(op(a$prime)(to)))(a$prime);\n }));\n };\n };\n };\n };\n return function (v) {\n return function (v1) {\n if (Data_Eq.eq((dictEnum.Ord0()).Eq0())(v)(v1)) {\n return Data_Unfoldable1.singleton(dictUnfoldable1)(v);\n };\n if (Data_Ord.lessThan(dictEnum.Ord0())(v)(v1)) {\n return Data_Unfoldable1.unfoldr1(dictUnfoldable1)(go(succ(dictEnum))(Data_Ord.lessThanOrEq(dictEnum.Ord0()))(v1))(v);\n };\n if (Data_Boolean.otherwise) {\n return Data_Unfoldable1.unfoldr1(dictUnfoldable1)(go(pred(dictEnum))(Data_Ord.greaterThanOrEq(dictEnum.Ord0()))(v1))(v);\n };\n throw new Error(\"Failed pattern match at Data.Enum (line 186, column 14 - line 190, column 51): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n };\n };\n};\nvar enumFromThenTo = function (dictUnfoldable) {\n return function (dictFunctor) {\n return function (dictBoundedEnum) {\n var go = function (step) {\n return function (to) {\n return function (e) {\n if (e <= to) {\n return new Data_Maybe.Just(new Data_Tuple.Tuple(e, e + step | 0));\n };\n if (Data_Boolean.otherwise) {\n return Data_Maybe.Nothing.value;\n };\n throw new Error(\"Failed pattern match at Data.Enum (line 217, column 5 - line 219, column 28): \" + [ step.constructor.name, to.constructor.name, e.constructor.name ]);\n };\n };\n };\n return function (a) {\n return function (b) {\n return function (c) {\n var c$prime = fromEnum(dictBoundedEnum)(c);\n var b$prime = fromEnum(dictBoundedEnum)(b);\n var a$prime = fromEnum(dictBoundedEnum)(a);\n return Data_Functor.map(dictFunctor)((function () {\n var $101 = Data_Maybe.fromJust();\n var $102 = toEnum(dictBoundedEnum);\n return function ($103) {\n return $101($102($103));\n };\n })())(Data_Unfoldable.unfoldr(dictUnfoldable)(go(b$prime - a$prime | 0)(c$prime))(a$prime));\n };\n };\n };\n };\n };\n};\nvar enumEither = function (dictBoundedEnum) {\n return function (dictBoundedEnum1) {\n return {\n succ: function (v) {\n if (v instanceof Data_Either.Left) {\n return Data_Maybe.maybe(new Data_Maybe.Just(new Data_Either.Right(Data_Bounded.bottom(dictBoundedEnum1.Bounded0()))))(function ($104) {\n return Data_Maybe.Just.create(Data_Either.Left.create($104));\n })(succ(dictBoundedEnum.Enum1())(v.value0));\n };\n if (v instanceof Data_Either.Right) {\n return Data_Maybe.maybe(Data_Maybe.Nothing.value)(function ($105) {\n return Data_Maybe.Just.create(Data_Either.Right.create($105));\n })(succ(dictBoundedEnum1.Enum1())(v.value0));\n };\n throw new Error(\"Failed pattern match at Data.Enum (line 86, column 1 - line 90, column 69): \" + [ v.constructor.name ]);\n },\n pred: function (v) {\n if (v instanceof Data_Either.Left) {\n return Data_Maybe.maybe(Data_Maybe.Nothing.value)(function ($106) {\n return Data_Maybe.Just.create(Data_Either.Left.create($106));\n })(pred(dictBoundedEnum.Enum1())(v.value0));\n };\n if (v instanceof Data_Either.Right) {\n return Data_Maybe.maybe(new Data_Maybe.Just(new Data_Either.Left(Data_Bounded.top(dictBoundedEnum.Bounded0()))))(function ($107) {\n return Data_Maybe.Just.create(Data_Either.Right.create($107));\n })(pred(dictBoundedEnum1.Enum1())(v.value0));\n };\n throw new Error(\"Failed pattern match at Data.Enum (line 86, column 1 - line 90, column 69): \" + [ v.constructor.name ]);\n },\n Ord0: function () {\n return Data_Either.ordEither((dictBoundedEnum.Enum1()).Ord0())((dictBoundedEnum1.Enum1()).Ord0());\n }\n };\n };\n};\nvar enumBoolean = {\n succ: function (v) {\n if (!v) {\n return new Data_Maybe.Just(true);\n };\n return Data_Maybe.Nothing.value;\n },\n pred: function (v) {\n if (v) {\n return new Data_Maybe.Just(false);\n };\n return Data_Maybe.Nothing.value;\n },\n Ord0: function () {\n return Data_Ord.ordBoolean;\n }\n};\nvar downFromIncluding = function (dictEnum) {\n return function (dictUnfoldable1) {\n return Data_Unfoldable1.unfoldr1(dictUnfoldable1)(Control_Apply.apply(Control_Apply.applyFn)(Data_Tuple.Tuple.create)(pred(dictEnum)));\n };\n};\nvar diag = function (a) {\n return new Data_Tuple.Tuple(a, a);\n};\nvar downFrom = function (dictEnum) {\n return function (dictUnfoldable) {\n return Data_Unfoldable.unfoldr(dictUnfoldable)((function () {\n var $108 = Data_Functor.map(Data_Maybe.functorMaybe)(diag);\n var $109 = pred(dictEnum);\n return function ($110) {\n return $108($109($110));\n };\n })());\n };\n};\nvar upFrom = function (dictEnum) {\n return function (dictUnfoldable) {\n return Data_Unfoldable.unfoldr(dictUnfoldable)((function () {\n var $111 = Data_Functor.map(Data_Maybe.functorMaybe)(diag);\n var $112 = succ(dictEnum);\n return function ($113) {\n return $111($112($113));\n };\n })());\n };\n};\nvar defaultToEnum = function (dictBounded) {\n return function (dictEnum) {\n return function (i$prime) {\n var go = function ($copy_i) {\n return function ($copy_x) {\n var $tco_var_i = $copy_i;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(i, x) {\n var $82 = i === 0;\n if ($82) {\n $tco_done = true;\n return new Data_Maybe.Just(x);\n };\n var v = succ(dictEnum)(x);\n if (v instanceof Data_Maybe.Just) {\n $tco_var_i = i - 1 | 0;\n $copy_x = v.value0;\n return;\n };\n if (v instanceof Data_Maybe.Nothing) {\n $tco_done = true;\n return Data_Maybe.Nothing.value;\n };\n throw new Error(\"Failed pattern match at Data.Enum (line 296, column 12 - line 298, column 33): \" + [ v.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_i, $copy_x);\n };\n return $tco_result;\n };\n };\n var $85 = i$prime < 0;\n if ($85) {\n return Data_Maybe.Nothing.value;\n };\n return go(i$prime)(Data_Bounded.bottom(dictBounded));\n };\n };\n};\nvar defaultSucc = function (toEnum$prime) {\n return function (fromEnum$prime) {\n return function (a) {\n return toEnum$prime(fromEnum$prime(a) + 1 | 0);\n };\n };\n};\nvar defaultPred = function (toEnum$prime) {\n return function (fromEnum$prime) {\n return function (a) {\n return toEnum$prime(fromEnum$prime(a) - 1 | 0);\n };\n };\n};\nvar defaultFromEnum = function (dictEnum) {\n var go = function ($copy_i) {\n return function ($copy_x) {\n var $tco_var_i = $copy_i;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(i, x) {\n var v = pred(dictEnum)(x);\n if (v instanceof Data_Maybe.Just) {\n $tco_var_i = i + 1 | 0;\n $copy_x = v.value0;\n return;\n };\n if (v instanceof Data_Maybe.Nothing) {\n $tco_done = true;\n return i;\n };\n throw new Error(\"Failed pattern match at Data.Enum (line 309, column 5 - line 311, column 19): \" + [ v.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_i, $copy_x);\n };\n return $tco_result;\n };\n };\n return go(0);\n};\nvar defaultCardinality = function (dictBounded) {\n return function (dictEnum) {\n var go = function ($copy_i) {\n return function ($copy_x) {\n var $tco_var_i = $copy_i;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(i, x) {\n var v = succ(dictEnum)(x);\n if (v instanceof Data_Maybe.Just) {\n $tco_var_i = i + 1 | 0;\n $copy_x = v.value0;\n return;\n };\n if (v instanceof Data_Maybe.Nothing) {\n $tco_done = true;\n return i;\n };\n throw new Error(\"Failed pattern match at Data.Enum (line 276, column 5 - line 278, column 19): \" + [ v.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_i, $copy_x);\n };\n return $tco_result;\n };\n };\n return go(1)(Data_Bounded.bottom(dictBounded));\n };\n};\nvar charToEnum = function (v) {\n if (v >= Data_Bounded.bottom(Data_Bounded.boundedInt) && v <= Data_Bounded.top(Data_Bounded.boundedInt)) {\n return new Data_Maybe.Just($foreign.fromCharCode(v));\n };\n return Data_Maybe.Nothing.value;\n};\nvar enumChar = {\n succ: /* #__PURE__ */ defaultSucc(charToEnum)($foreign.toCharCode),\n pred: /* #__PURE__ */ defaultPred(charToEnum)($foreign.toCharCode),\n Ord0: function () {\n return Data_Ord.ordChar;\n }\n};\nvar cardinality = function (dict) {\n return dict.cardinality;\n};\nvar boundedEnumUnit = {\n cardinality: 1,\n toEnum: function (v) {\n if (v === 0) {\n return new Data_Maybe.Just(Data_Unit.unit);\n };\n return Data_Maybe.Nothing.value;\n },\n fromEnum: /* #__PURE__ */ Data_Function[\"const\"](0),\n Bounded0: function () {\n return Data_Bounded.boundedUnit;\n },\n Enum1: function () {\n return enumUnit;\n }\n};\nvar boundedEnumOrdering = {\n cardinality: 3,\n toEnum: function (v) {\n if (v === 0) {\n return new Data_Maybe.Just(Data_Ordering.LT.value);\n };\n if (v === 1) {\n return new Data_Maybe.Just(Data_Ordering.EQ.value);\n };\n if (v === 2) {\n return new Data_Maybe.Just(Data_Ordering.GT.value);\n };\n return Data_Maybe.Nothing.value;\n },\n fromEnum: function (v) {\n if (v instanceof Data_Ordering.LT) {\n return 0;\n };\n if (v instanceof Data_Ordering.EQ) {\n return 1;\n };\n if (v instanceof Data_Ordering.GT) {\n return 2;\n };\n throw new Error(\"Failed pattern match at Data.Enum (line 137, column 1 - line 145, column 18): \" + [ v.constructor.name ]);\n },\n Bounded0: function () {\n return Data_Bounded.boundedOrdering;\n },\n Enum1: function () {\n return enumOrdering;\n }\n};\nvar boundedEnumChar = /* #__PURE__ */ (function () {\n return {\n cardinality: $foreign.toCharCode(Data_Bounded.top(Data_Bounded.boundedChar)) - $foreign.toCharCode(Data_Bounded.bottom(Data_Bounded.boundedChar)) | 0,\n toEnum: charToEnum,\n fromEnum: $foreign.toCharCode,\n Bounded0: function () {\n return Data_Bounded.boundedChar;\n },\n Enum1: function () {\n return enumChar;\n }\n };\n})();\nvar boundedEnumBoolean = {\n cardinality: 2,\n toEnum: function (v) {\n if (v === 0) {\n return new Data_Maybe.Just(false);\n };\n if (v === 1) {\n return new Data_Maybe.Just(true);\n };\n return Data_Maybe.Nothing.value;\n },\n fromEnum: function (v) {\n if (!v) {\n return 0;\n };\n if (v) {\n return 1;\n };\n throw new Error(\"Failed pattern match at Data.Enum (line 118, column 1 - line 124, column 20): \" + [ v.constructor.name ]);\n },\n Bounded0: function () {\n return Data_Bounded.boundedBoolean;\n },\n Enum1: function () {\n return enumBoolean;\n }\n};\nexport {\n succ,\n pred,\n cardinality,\n toEnum,\n fromEnum,\n toEnumWithDefaults,\n Cardinality,\n enumFromTo,\n enumFromThenTo,\n upFrom,\n upFromIncluding,\n downFrom,\n downFromIncluding,\n defaultSucc,\n defaultPred,\n defaultCardinality,\n defaultToEnum,\n defaultFromEnum,\n enumBoolean,\n enumInt,\n enumChar,\n enumUnit,\n enumOrdering,\n enumMaybe,\n enumEither,\n enumTuple,\n boundedEnumBoolean,\n boundedEnumChar,\n boundedEnumUnit,\n boundedEnumOrdering,\n newtypeCardinality,\n eqCardinality,\n ordCardinality,\n showCardinality\n};\n","// Generated by purs version 0.15.2\nimport * as Control_Apply from \"../Control.Apply/index.js\";\nimport * as Data_Boolean from \"../Data.Boolean/index.js\";\nimport * as Data_Bounded_Generic from \"../Data.Bounded.Generic/index.js\";\nimport * as Data_Enum from \"../Data.Enum/index.js\";\nimport * as Data_EuclideanRing from \"../Data.EuclideanRing/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Generic_Rep from \"../Data.Generic.Rep/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Newtype from \"../Data.Newtype/index.js\";\nvar genericToEnum$prime = function (dict) {\n return dict[\"genericToEnum'\"];\n};\nvar genericToEnum = function (dictGeneric) {\n return function (dictGenericBoundedEnum) {\n var $95 = Data_Functor.map(Data_Maybe.functorMaybe)(Data_Generic_Rep.to(dictGeneric));\n var $96 = genericToEnum$prime(dictGenericBoundedEnum);\n return function ($97) {\n return $95($96($97));\n };\n };\n};\nvar genericSucc$prime = function (dict) {\n return dict[\"genericSucc'\"];\n};\nvar genericSucc = function (dictGeneric) {\n return function (dictGenericEnum) {\n var $98 = Data_Functor.map(Data_Maybe.functorMaybe)(Data_Generic_Rep.to(dictGeneric));\n var $99 = genericSucc$prime(dictGenericEnum);\n var $100 = Data_Generic_Rep.from(dictGeneric);\n return function ($101) {\n return $98($99($100($101)));\n };\n };\n};\nvar genericPred$prime = function (dict) {\n return dict[\"genericPred'\"];\n};\nvar genericPred = function (dictGeneric) {\n return function (dictGenericEnum) {\n var $102 = Data_Functor.map(Data_Maybe.functorMaybe)(Data_Generic_Rep.to(dictGeneric));\n var $103 = genericPred$prime(dictGenericEnum);\n var $104 = Data_Generic_Rep.from(dictGeneric);\n return function ($105) {\n return $102($103($104($105)));\n };\n };\n};\nvar genericFromEnum$prime = function (dict) {\n return dict[\"genericFromEnum'\"];\n};\nvar genericFromEnum = function (dictGeneric) {\n return function (dictGenericBoundedEnum) {\n var $106 = genericFromEnum$prime(dictGenericBoundedEnum);\n var $107 = Data_Generic_Rep.from(dictGeneric);\n return function ($108) {\n return $106($107($108));\n };\n };\n};\nvar genericEnumSum = function (dictGenericEnum) {\n return function (dictGenericTop) {\n return function (dictGenericEnum1) {\n return function (dictGenericBottom) {\n return {\n \"genericPred'\": function (v) {\n if (v instanceof Data_Generic_Rep.Inl) {\n return Data_Functor.map(Data_Maybe.functorMaybe)(Data_Generic_Rep.Inl.create)(genericPred$prime(dictGenericEnum)(v.value0));\n };\n if (v instanceof Data_Generic_Rep.Inr) {\n var v1 = genericPred$prime(dictGenericEnum1)(v.value0);\n if (v1 instanceof Data_Maybe.Nothing) {\n return new Data_Maybe.Just(new Data_Generic_Rep.Inl(Data_Bounded_Generic[\"genericTop$prime\"](dictGenericTop)));\n };\n if (v1 instanceof Data_Maybe.Just) {\n return new Data_Maybe.Just(new Data_Generic_Rep.Inr(v1.value0));\n };\n throw new Error(\"Failed pattern match at Data.Enum.Generic (line 30, column 14 - line 32, column 31): \" + [ v1.constructor.name ]);\n };\n throw new Error(\"Failed pattern match at Data.Enum.Generic (line 28, column 18 - line 32, column 31): \" + [ v.constructor.name ]);\n },\n \"genericSucc'\": function (v) {\n if (v instanceof Data_Generic_Rep.Inl) {\n var v1 = genericSucc$prime(dictGenericEnum)(v.value0);\n if (v1 instanceof Data_Maybe.Nothing) {\n return new Data_Maybe.Just(new Data_Generic_Rep.Inr(Data_Bounded_Generic[\"genericBottom$prime\"](dictGenericBottom)));\n };\n if (v1 instanceof Data_Maybe.Just) {\n return new Data_Maybe.Just(new Data_Generic_Rep.Inl(v1.value0));\n };\n throw new Error(\"Failed pattern match at Data.Enum.Generic (line 34, column 14 - line 36, column 31): \" + [ v1.constructor.name ]);\n };\n if (v instanceof Data_Generic_Rep.Inr) {\n return Data_Functor.map(Data_Maybe.functorMaybe)(Data_Generic_Rep.Inr.create)(genericSucc$prime(dictGenericEnum1)(v.value0));\n };\n throw new Error(\"Failed pattern match at Data.Enum.Generic (line 33, column 18 - line 37, column 36): \" + [ v.constructor.name ]);\n }\n };\n };\n };\n };\n};\nvar genericEnumProduct = function (dictGenericEnum) {\n return function (dictGenericTop) {\n return function (dictGenericBottom) {\n return function (dictGenericEnum1) {\n return function (dictGenericTop1) {\n return function (dictGenericBottom1) {\n return {\n \"genericPred'\": function (v) {\n var v1 = genericPred$prime(dictGenericEnum1)(v.value1);\n if (v1 instanceof Data_Maybe.Just) {\n return new Data_Maybe.Just(new Data_Generic_Rep.Product(v.value0, v1.value0));\n };\n if (v1 instanceof Data_Maybe.Nothing) {\n return Data_Functor.map(Data_Maybe.functorMaybe)(Data_Function.flip(Data_Generic_Rep.Product.create)(Data_Bounded_Generic[\"genericTop$prime\"](dictGenericTop1)))(genericPred$prime(dictGenericEnum)(v.value0));\n };\n throw new Error(\"Failed pattern match at Data.Enum.Generic (line 40, column 32 - line 42, column 59): \" + [ v1.constructor.name ]);\n },\n \"genericSucc'\": function (v) {\n var v1 = genericSucc$prime(dictGenericEnum1)(v.value1);\n if (v1 instanceof Data_Maybe.Just) {\n return new Data_Maybe.Just(new Data_Generic_Rep.Product(v.value0, v1.value0));\n };\n if (v1 instanceof Data_Maybe.Nothing) {\n return Data_Functor.map(Data_Maybe.functorMaybe)(Data_Function.flip(Data_Generic_Rep.Product.create)(Data_Bounded_Generic[\"genericBottom$prime\"](dictGenericBottom1)))(genericSucc$prime(dictGenericEnum)(v.value0));\n };\n throw new Error(\"Failed pattern match at Data.Enum.Generic (line 43, column 32 - line 45, column 62): \" + [ v1.constructor.name ]);\n }\n };\n };\n };\n };\n };\n };\n};\nvar genericEnumNoArguments = {\n \"genericPred'\": function (v) {\n return Data_Maybe.Nothing.value;\n },\n \"genericSucc'\": function (v) {\n return Data_Maybe.Nothing.value;\n }\n};\nvar genericEnumConstructor = function (dictGenericEnum) {\n return {\n \"genericPred'\": function (v) {\n return Data_Functor.map(Data_Maybe.functorMaybe)(Data_Generic_Rep.Constructor)(genericPred$prime(dictGenericEnum)(v));\n },\n \"genericSucc'\": function (v) {\n return Data_Functor.map(Data_Maybe.functorMaybe)(Data_Generic_Rep.Constructor)(genericSucc$prime(dictGenericEnum)(v));\n }\n };\n};\nvar genericEnumArgument = function (dictEnum) {\n return {\n \"genericPred'\": function (v) {\n return Data_Functor.map(Data_Maybe.functorMaybe)(Data_Generic_Rep.Argument)(Data_Enum.pred(dictEnum)(v));\n },\n \"genericSucc'\": function (v) {\n return Data_Functor.map(Data_Maybe.functorMaybe)(Data_Generic_Rep.Argument)(Data_Enum.succ(dictEnum)(v));\n }\n };\n};\nvar genericCardinality$prime = function (dict) {\n return dict[\"genericCardinality'\"];\n};\nvar genericCardinality = function (dictGeneric) {\n return function (dictGenericBoundedEnum) {\n return Data_Newtype.unwrap()(genericCardinality$prime(dictGenericBoundedEnum));\n };\n};\nvar genericBoundedEnumSum = function (dictGenericBoundedEnum) {\n return function (dictGenericBoundedEnum1) {\n return {\n \"genericCardinality'\": Data_Newtype.unwrap()(genericCardinality$prime(dictGenericBoundedEnum)) + Data_Newtype.unwrap()(genericCardinality$prime(dictGenericBoundedEnum1)) | 0,\n \"genericToEnum'\": function (n) {\n var to = function (v) {\n if (n >= 0 && n < v) {\n return Data_Functor.map(Data_Maybe.functorMaybe)(Data_Generic_Rep.Inl.create)(genericToEnum$prime(dictGenericBoundedEnum)(n));\n };\n if (Data_Boolean.otherwise) {\n return Data_Functor.map(Data_Maybe.functorMaybe)(Data_Generic_Rep.Inr.create)(genericToEnum$prime(dictGenericBoundedEnum1)(n - v | 0));\n };\n throw new Error(\"Failed pattern match at Data.Enum.Generic (line 83, column 5 - line 83, column 43): \" + [ v.constructor.name ]);\n };\n return to(genericCardinality$prime(dictGenericBoundedEnum));\n },\n \"genericFromEnum'\": function (v) {\n if (v instanceof Data_Generic_Rep.Inl) {\n return genericFromEnum$prime(dictGenericBoundedEnum)(v.value0);\n };\n if (v instanceof Data_Generic_Rep.Inr) {\n return genericFromEnum$prime(dictGenericBoundedEnum1)(v.value0) + Data_Newtype.unwrap()(genericCardinality$prime(dictGenericBoundedEnum)) | 0;\n };\n throw new Error(\"Failed pattern match at Data.Enum.Generic (line 87, column 22 - line 89, column 80): \" + [ v.constructor.name ]);\n }\n };\n };\n};\nvar genericBoundedEnumProduct = function (dictGenericBoundedEnum) {\n return function (dictGenericBoundedEnum1) {\n return {\n \"genericCardinality'\": Data_Newtype.unwrap()(genericCardinality$prime(dictGenericBoundedEnum)) * Data_Newtype.unwrap()(genericCardinality$prime(dictGenericBoundedEnum1)) | 0,\n \"genericToEnum'\": function (n) {\n var to = function (v) {\n return Control_Apply.apply(Data_Maybe.applyMaybe)(Data_Functor.map(Data_Maybe.functorMaybe)(Data_Generic_Rep.Product.create)(genericToEnum$prime(dictGenericBoundedEnum)(Data_EuclideanRing.div(Data_EuclideanRing.euclideanRingInt)(n)(v))))(genericToEnum$prime(dictGenericBoundedEnum1)(Data_EuclideanRing.mod(Data_EuclideanRing.euclideanRingInt)(n)(v)));\n };\n return to(genericCardinality$prime(dictGenericBoundedEnum1));\n },\n \"genericFromEnum'\": (function () {\n var from = function (v) {\n return function (v1) {\n return (genericFromEnum$prime(dictGenericBoundedEnum)(v1.value0) * v | 0) + genericFromEnum$prime(dictGenericBoundedEnum1)(v1.value1) | 0;\n };\n };\n return from(genericCardinality$prime(dictGenericBoundedEnum1));\n })()\n };\n };\n};\nvar genericBoundedEnumNoArguments = {\n \"genericCardinality'\": 1,\n \"genericToEnum'\": function (i) {\n var $92 = i === 0;\n if ($92) {\n return new Data_Maybe.Just(Data_Generic_Rep.NoArguments.value);\n };\n return Data_Maybe.Nothing.value;\n },\n \"genericFromEnum'\": function (v) {\n return 0;\n }\n};\nvar genericBoundedEnumConstructor = function (dictGenericBoundedEnum) {\n return {\n \"genericCardinality'\": Data_Newtype.unwrap()(genericCardinality$prime(dictGenericBoundedEnum)),\n \"genericToEnum'\": function (i) {\n return Data_Functor.map(Data_Maybe.functorMaybe)(Data_Generic_Rep.Constructor)(genericToEnum$prime(dictGenericBoundedEnum)(i));\n },\n \"genericFromEnum'\": function (v) {\n return genericFromEnum$prime(dictGenericBoundedEnum)(v);\n }\n };\n};\nvar genericBoundedEnumArgument = function (dictBoundedEnum) {\n return {\n \"genericCardinality'\": Data_Newtype.unwrap()(Data_Enum.cardinality(dictBoundedEnum)),\n \"genericToEnum'\": function (i) {\n return Data_Functor.map(Data_Maybe.functorMaybe)(Data_Generic_Rep.Argument)(Data_Enum.toEnum(dictBoundedEnum)(i));\n },\n \"genericFromEnum'\": function (v) {\n return Data_Enum.fromEnum(dictBoundedEnum)(v);\n }\n };\n};\nexport {\n genericCardinality$prime,\n genericFromEnum$prime,\n genericPred$prime,\n genericSucc$prime,\n genericToEnum$prime,\n genericPred,\n genericSucc,\n genericCardinality,\n genericToEnum,\n genericFromEnum,\n genericEnumNoArguments,\n genericEnumArgument,\n genericEnumConstructor,\n genericEnumSum,\n genericEnumProduct,\n genericBoundedEnumNoArguments,\n genericBoundedEnumArgument,\n genericBoundedEnumConstructor,\n genericBoundedEnumSum,\n genericBoundedEnumProduct\n};\n","// Generated by purs version 0.15.2\nimport * as Data_Const from \"../Data.Const/index.js\";\nimport * as Data_Either from \"../Data.Either/index.js\";\nimport * as Data_Monoid from \"../Data.Monoid/index.js\";\nimport * as Data_Newtype from \"../Data.Newtype/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nvar Forget = function (x) {\n return x;\n};\nvar semigroupForget = function (dictSemigroup) {\n return Data_Semigroup.semigroupFn(dictSemigroup);\n};\nvar profunctorForget = {\n dimap: function (f) {\n return function (v) {\n return function (v1) {\n return function ($24) {\n return v1(f($24));\n };\n };\n };\n }\n};\nvar strongForget = {\n first: function (v) {\n return function ($25) {\n return v(Data_Tuple.fst($25));\n };\n },\n second: function (v) {\n return function ($26) {\n return v(Data_Tuple.snd($26));\n };\n },\n Profunctor0: function () {\n return profunctorForget;\n }\n};\nvar newtypeForget = {\n Coercible0: function () {\n return undefined;\n }\n};\nvar monoidForget = function (dictMonoid) {\n return Data_Monoid.monoidFn(dictMonoid);\n};\nvar cochoiceForget = {\n unleft: function (v) {\n return function ($27) {\n return v(Data_Either.Left.create($27));\n };\n },\n unright: function (v) {\n return function ($28) {\n return v(Data_Either.Right.create($28));\n };\n },\n Profunctor0: function () {\n return profunctorForget;\n }\n};\nvar choiceForget = function (dictMonoid) {\n return {\n left: function (v) {\n return Data_Either.either(v)(Data_Monoid.mempty(Data_Monoid.monoidFn(dictMonoid)));\n },\n right: function (v) {\n return Data_Either.either(Data_Monoid.mempty(Data_Monoid.monoidFn(dictMonoid)))(v);\n },\n Profunctor0: function () {\n return profunctorForget;\n }\n };\n};\nvar wanderForget = function (dictMonoid) {\n return {\n wander: function (f) {\n return function (v) {\n return Data_Newtype.alaF()()()()(Data_Const.Const)(f(Data_Const.applicativeConst(dictMonoid)))(v);\n };\n },\n Strong0: function () {\n return strongForget;\n },\n Choice1: function () {\n return choiceForget(dictMonoid);\n }\n };\n};\nexport {\n Forget,\n newtypeForget,\n semigroupForget,\n monoidForget,\n profunctorForget,\n choiceForget,\n strongForget,\n cochoiceForget,\n wanderForget\n};\n","// Generated by purs version 0.15.2\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Data_Newtype from \"../Data.Newtype/index.js\";\nvar profunctorFn = {\n dimap: function (a2b) {\n return function (c2d) {\n return function (b2c) {\n return function ($8) {\n return c2d(b2c(a2b($8)));\n };\n };\n };\n }\n};\nvar dimap = function (dict) {\n return dict.dimap;\n};\nvar lcmap = function (dictProfunctor) {\n return function (a2b) {\n return dimap(dictProfunctor)(a2b)(Control_Category.identity(Control_Category.categoryFn));\n };\n};\nvar rmap = function (dictProfunctor) {\n return function (b2c) {\n return dimap(dictProfunctor)(Control_Category.identity(Control_Category.categoryFn))(b2c);\n };\n};\nvar unwrapIso = function (dictProfunctor) {\n return function () {\n return dimap(dictProfunctor)(Data_Newtype.wrap())(Data_Newtype.unwrap());\n };\n};\nvar wrapIso = function (dictProfunctor) {\n return function () {\n return function (v) {\n return dimap(dictProfunctor)(Data_Newtype.unwrap())(Data_Newtype.wrap());\n };\n };\n};\nvar arr = function (dictCategory) {\n return function (dictProfunctor) {\n return function (f) {\n return rmap(dictProfunctor)(f)(Control_Category.identity(dictCategory));\n };\n };\n};\nexport {\n dimap,\n lcmap,\n rmap,\n arr,\n unwrapIso,\n wrapIso,\n profunctorFn\n};\n","// Generated by purs version 0.15.2\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Control_Semigroupoid from \"../Control.Semigroupoid/index.js\";\nimport * as Data_Either from \"../Data.Either/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Profunctor from \"../Data.Profunctor/index.js\";\nvar right = function (dict) {\n return dict.right;\n};\nvar left = function (dict) {\n return dict.left;\n};\nvar splitChoice = function (dictCategory) {\n return function (dictChoice) {\n return function (l) {\n return function (r) {\n return Control_Semigroupoid.composeFlipped(dictCategory.Semigroupoid0())(left(dictChoice)(l))(right(dictChoice)(r));\n };\n };\n };\n};\nvar fanin = function (dictCategory) {\n return function (dictChoice) {\n return function (l) {\n return function (r) {\n var join = Data_Profunctor.dimap(dictChoice.Profunctor0())(Data_Either.either(Control_Category.identity(Control_Category.categoryFn))(Control_Category.identity(Control_Category.categoryFn)))(Control_Category.identity(Control_Category.categoryFn))(Control_Category.identity(dictCategory));\n return Control_Semigroupoid.composeFlipped(dictCategory.Semigroupoid0())(splitChoice(dictCategory)(dictChoice)(l)(r))(join);\n };\n };\n };\n};\nvar choiceFn = {\n left: function (v) {\n return function (v1) {\n if (v1 instanceof Data_Either.Left) {\n return new Data_Either.Left(v(v1.value0));\n };\n if (v1 instanceof Data_Either.Right) {\n return new Data_Either.Right(v1.value0);\n };\n throw new Error(\"Failed pattern match at Data.Profunctor.Choice (line 32, column 1 - line 35, column 16): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n },\n right: /* #__PURE__ */ Data_Functor.map(Data_Either.functorEither),\n Profunctor0: function () {\n return Data_Profunctor.profunctorFn;\n }\n};\nexport {\n left,\n right,\n splitChoice,\n fanin,\n choiceFn\n};\n","// Generated by purs version 0.15.2\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Control_Semigroupoid from \"../Control.Semigroupoid/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Profunctor from \"../Data.Profunctor/index.js\";\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nvar strongFn = {\n first: function (a2b) {\n return function (v) {\n return new Data_Tuple.Tuple(a2b(v.value0), v.value1);\n };\n },\n second: /* #__PURE__ */ Data_Functor.map(Data_Tuple.functorTuple),\n Profunctor0: function () {\n return Data_Profunctor.profunctorFn;\n }\n};\nvar second = function (dict) {\n return dict.second;\n};\nvar first = function (dict) {\n return dict.first;\n};\nvar splitStrong = function (dictCategory) {\n return function (dictStrong) {\n return function (l) {\n return function (r) {\n return Control_Semigroupoid.composeFlipped(dictCategory.Semigroupoid0())(first(dictStrong)(l))(second(dictStrong)(r));\n };\n };\n };\n};\nvar fanout = function (dictCategory) {\n return function (dictStrong) {\n return function (l) {\n return function (r) {\n var split = Data_Profunctor.dimap(dictStrong.Profunctor0())(Control_Category.identity(Control_Category.categoryFn))(function (a) {\n return new Data_Tuple.Tuple(a, a);\n })(Control_Category.identity(dictCategory));\n return Control_Semigroupoid.composeFlipped(dictCategory.Semigroupoid0())(split)(splitStrong(dictCategory)(dictStrong)(l)(r));\n };\n };\n };\n};\nexport {\n first,\n second,\n splitStrong,\n fanout,\n strongFn\n};\n","// Generated by purs version 0.15.2\nimport * as Data_Identity from \"../Data.Identity/index.js\";\nimport * as Data_Newtype from \"../Data.Newtype/index.js\";\nimport * as Data_Profunctor_Choice from \"../Data.Profunctor.Choice/index.js\";\nimport * as Data_Profunctor_Star from \"../Data.Profunctor.Star/index.js\";\nimport * as Data_Profunctor_Strong from \"../Data.Profunctor.Strong/index.js\";\nvar wanderStar = function (dictApplicative) {\n return {\n wander: function (t) {\n return function (v) {\n return t(dictApplicative)(v);\n };\n },\n Strong0: function () {\n return Data_Profunctor_Star.strongStar((dictApplicative.Apply0()).Functor0());\n },\n Choice1: function () {\n return Data_Profunctor_Star.choiceStar(dictApplicative);\n }\n };\n};\nvar wanderFunction = {\n wander: function (t) {\n return Data_Newtype.alaF()()()()(Data_Identity.Identity)(t(Data_Identity.applicativeIdentity));\n },\n Strong0: function () {\n return Data_Profunctor_Strong.strongFn;\n },\n Choice1: function () {\n return Data_Profunctor_Choice.choiceFn;\n }\n};\nvar wander = function (dict) {\n return dict.wander;\n};\nexport {\n wander,\n wanderFunction,\n wanderStar\n};\n","// Generated by purs version 0.15.2\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Data_Boolean from \"../Data.Boolean/index.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Lens_Internal_Exchange from \"../Data.Lens.Internal.Exchange/index.js\";\nimport * as Data_Lens_Types from \"../Data.Lens.Types/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Newtype from \"../Data.Newtype/index.js\";\nimport * as Data_Profunctor from \"../Data.Profunctor/index.js\";\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nimport * as Safe_Coerce from \"../Safe.Coerce/index.js\";\nvar withIso = function (l) {\n return function (f) {\n var v = l(new Data_Lens_Internal_Exchange.Exchange(Control_Category.identity(Control_Category.categoryFn), Control_Category.identity(Control_Category.categoryFn)));\n return f(v.value0)(v.value1);\n };\n};\nvar under = function (l) {\n return withIso(l)(function (sa) {\n return function (bt) {\n return function (ts) {\n return function ($20) {\n return sa(ts(bt($20)));\n };\n };\n };\n });\n};\nvar re = function (t) {\n return Data_Newtype.unwrap()(t(Control_Category.identity(Control_Category.categoryFn)));\n};\nvar iso = function (f) {\n return function (g) {\n return function (dictProfunctor) {\n return function (pab) {\n return Data_Profunctor.dimap(dictProfunctor)(f)(g)(pab);\n };\n };\n };\n};\nvar mapping = function (dictFunctor) {\n return function (dictFunctor1) {\n return function (l) {\n return function (dictProfunctor) {\n return withIso(l)(function (sa) {\n return function (bt) {\n return iso(Data_Functor.map(dictFunctor)(sa))(Data_Functor.map(dictFunctor1)(bt))(dictProfunctor);\n };\n });\n };\n };\n };\n};\nvar non = function (dictEq) {\n return function (def) {\n return function (dictProfunctor) {\n var g = function (a) {\n if (Data_Eq.eq(dictEq)(a)(def)) {\n return Data_Maybe.Nothing.value;\n };\n if (Data_Boolean.otherwise) {\n return new Data_Maybe.Just(a);\n };\n throw new Error(\"Failed pattern match at Data.Lens.Iso (line 60, column 3 - line 62, column 25): \" + [ a.constructor.name ]);\n };\n return iso(Data_Maybe.fromMaybe(def))(g)(dictProfunctor);\n };\n };\n};\nvar uncurried = function (dictProfunctor) {\n return iso(Data_Tuple.uncurry)(Data_Tuple.curry)(dictProfunctor);\n};\nvar flipped = function (dictProfunctor) {\n return iso(Data_Function.flip)(Data_Function.flip)(dictProfunctor);\n};\nvar dimapping = function (dictProfunctor) {\n return function (dictProfunctor1) {\n return function (f) {\n return function (g) {\n return function (dictProfunctor2) {\n return withIso(f)(function (sa) {\n return function (bt) {\n return withIso(g)(function (ssaa) {\n return function (bbtt) {\n return iso(Data_Profunctor.dimap(dictProfunctor)(sa)(ssaa))(Data_Profunctor.dimap(dictProfunctor1)(bt)(bbtt))(dictProfunctor2);\n };\n });\n };\n });\n };\n };\n };\n };\n};\nvar curried = function (dictProfunctor) {\n return iso(Data_Tuple.curry)(Data_Tuple.uncurry)(dictProfunctor);\n};\nvar coerced = function () {\n return function () {\n return function (dictProfunctor) {\n return iso(Safe_Coerce.coerce())(Safe_Coerce.coerce())(dictProfunctor);\n };\n };\n};\nvar cloneIso = function (l) {\n return function (dictProfunctor) {\n return withIso(l)(function (x) {\n return function (y) {\n return function (p) {\n return iso(x)(y)(dictProfunctor)(p);\n };\n };\n });\n };\n};\nvar auf = function (dictProfunctor) {\n return function (l) {\n return withIso(l)(function (sa) {\n return function (bt) {\n return function (f) {\n return function (g) {\n return function (e) {\n return bt(f(Data_Profunctor.rmap(dictProfunctor)(sa)(g))(e));\n };\n };\n };\n };\n });\n };\n};\nvar au = function (l) {\n return withIso(l)(function (sa) {\n return function (bt) {\n return function (f) {\n return function (e) {\n return sa(f(bt)(e));\n };\n };\n };\n });\n};\nexport {\n iso,\n withIso,\n cloneIso,\n re,\n au,\n auf,\n under,\n non,\n curried,\n uncurried,\n flipped,\n mapping,\n dimapping,\n coerced\n};\nexport {\n Exchange,\n Re\n} from \"../Data.Lens.Types/index.js\";\n","// Generated by purs version 0.15.2\nimport * as Control_Apply from \"../Control.Apply/index.js\";\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Data_Lens_Internal_Indexed from \"../Data.Lens.Internal.Indexed/index.js\";\nimport * as Data_Lens_Internal_Shop from \"../Data.Lens.Internal.Shop/index.js\";\nimport * as Data_Lens_Types from \"../Data.Lens.Types/index.js\";\nimport * as Data_Newtype from \"../Data.Newtype/index.js\";\nimport * as Data_Profunctor from \"../Data.Profunctor/index.js\";\nimport * as Data_Profunctor_Strong from \"../Data.Profunctor.Strong/index.js\";\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nvar withLens = function (l) {\n return function (f) {\n var v = l(new Data_Lens_Internal_Shop.Shop(Control_Category.identity(Control_Category.categoryFn), function (v1) {\n return function (b) {\n return b;\n };\n }));\n return f(v.value0)(v.value1);\n };\n};\nvar withIndexedLens = function (l) {\n return function (f) {\n var v = l(new Data_Lens_Internal_Shop.Shop(Control_Category.identity(Control_Category.categoryFn), function (v1) {\n return function (b) {\n return b;\n };\n }));\n return f(v.value0)(v.value1);\n };\n};\nvar lensStore = function (l) {\n return withLens(l)(Control_Apply.lift2(Control_Apply.applyFn)(Data_Tuple.Tuple.create));\n};\nvar lens$prime = function (to) {\n return function (dictStrong) {\n return function (pab) {\n return Data_Profunctor.dimap(dictStrong.Profunctor0())(to)(function (v) {\n return v.value1(v.value0);\n })(Data_Profunctor_Strong.first(dictStrong)(pab));\n };\n };\n};\nvar lens = function (get) {\n return function (set) {\n return function (dictStrong) {\n return lens$prime(function (s) {\n return new Data_Tuple.Tuple(get(s), function (b) {\n return set(s)(b);\n });\n })(dictStrong);\n };\n };\n};\nvar ilens$prime = function (to) {\n return function (dictStrong) {\n return function (pab) {\n return Data_Profunctor.dimap(dictStrong.Profunctor0())(to)(function (v) {\n return v.value1(v.value0);\n })(Data_Profunctor_Strong.first(dictStrong)(Data_Newtype.un()(Data_Lens_Internal_Indexed.Indexed)(pab)));\n };\n };\n};\nvar ilens = function (get) {\n return function (set) {\n return function (dictStrong) {\n return ilens$prime(function (s) {\n return new Data_Tuple.Tuple(get(s), function (b) {\n return set(s)(b);\n });\n })(dictStrong);\n };\n };\n};\nvar cloneLens = function (l) {\n return function (dictStrong) {\n return withLens(l)(function (x) {\n return function (y) {\n return function (p) {\n return lens(x)(y)(dictStrong)(p);\n };\n };\n });\n };\n};\nvar cloneIndexedLens = function (l) {\n return function (dictStrong) {\n return withIndexedLens(l)(function (x) {\n return function (y) {\n return function (p) {\n return ilens(x)(y)(dictStrong)(p);\n };\n };\n });\n };\n};\nexport {\n lens,\n lens$prime,\n withLens,\n cloneLens,\n ilens,\n ilens$prime,\n withIndexedLens,\n cloneIndexedLens,\n lensStore\n};\n","// Generated by purs version 0.15.2\nimport * as Control_Alternative from \"../Control.Alternative/index.js\";\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Data_Either from \"../Data.Either/index.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_HeytingAlgebra from \"../Data.HeytingAlgebra/index.js\";\nimport * as Data_Lens_Internal_Market from \"../Data.Lens.Internal.Market/index.js\";\nimport * as Data_Lens_Internal_Tagged from \"../Data.Lens.Internal.Tagged/index.js\";\nimport * as Data_Lens_Types from \"../Data.Lens.Types/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Newtype from \"../Data.Newtype/index.js\";\nimport * as Data_Profunctor from \"../Data.Profunctor/index.js\";\nimport * as Data_Profunctor_Choice from \"../Data.Profunctor.Choice/index.js\";\nimport * as Data_Traversable from \"../Data.Traversable/index.js\";\nvar withPrism = function (l) {\n return function (f) {\n var v = l(new Data_Lens_Internal_Market.Market(Control_Category.identity(Control_Category.categoryFn), Data_Either.Right.create));\n return f(v.value0)(v.value1);\n };\n};\nvar review = /* #__PURE__ */ Data_Newtype.under()()(Data_Lens_Internal_Tagged.Tagged);\nvar prism = function (to) {\n return function (fro) {\n return function (dictChoice) {\n return function (pab) {\n return Data_Profunctor.dimap(dictChoice.Profunctor0())(fro)(Data_Either.either(Control_Category.identity(Control_Category.categoryFn))(Control_Category.identity(Control_Category.categoryFn)))(Data_Profunctor_Choice.right(dictChoice)(Data_Profunctor.rmap(dictChoice.Profunctor0())(to)(pab)));\n };\n };\n };\n};\nvar prism$prime = function (to) {\n return function (fro) {\n return function (dictChoice) {\n return prism(to)(function (s) {\n return Data_Maybe.maybe(new Data_Either.Left(s))(Data_Either.Right.create)(fro(s));\n })(dictChoice);\n };\n };\n};\nvar nearly = function (x) {\n return function (f) {\n return function (dictChoice) {\n return prism$prime(Data_Function[\"const\"](x))((function () {\n var $20 = Control_Alternative.guard(Data_Maybe.alternativeMaybe);\n return function ($21) {\n return $20(f($21));\n };\n })())(dictChoice);\n };\n };\n};\nvar only = function (dictEq) {\n return function (x) {\n return function (dictChoice) {\n return nearly(x)(function (v) {\n return Data_Eq.eq(dictEq)(v)(x);\n })(dictChoice);\n };\n };\n};\nvar matching = function (l) {\n return withPrism(l)(function (v) {\n return function (f) {\n return f;\n };\n });\n};\nvar is = function (dictHeytingAlgebra) {\n return function (l) {\n var $22 = Data_Either.either(Data_Function[\"const\"](Data_HeytingAlgebra.ff(dictHeytingAlgebra)))(Data_Function[\"const\"](Data_HeytingAlgebra.tt(dictHeytingAlgebra)));\n var $23 = matching(l);\n return function ($24) {\n return $22($23($24));\n };\n };\n};\nvar isn$primet = function (dictHeytingAlgebra) {\n return function (l) {\n var $25 = Data_HeytingAlgebra.not(dictHeytingAlgebra);\n var $26 = is(dictHeytingAlgebra)(l);\n return function ($27) {\n return $25($26($27));\n };\n };\n};\nvar clonePrism = function (l) {\n return function (dictChoice) {\n return withPrism(l)(function (x) {\n return function (y) {\n return function (p) {\n return prism(x)(y)(dictChoice)(p);\n };\n };\n });\n };\n};\nvar below = function (dictTraversable) {\n return function (k) {\n return function (dictChoice) {\n return withPrism(k)(function (bt) {\n return function (seta) {\n return prism(Data_Functor.map(dictTraversable.Functor0())(bt))(function (s) {\n var v = Data_Traversable.traverse(dictTraversable)(Data_Either.applicativeEither)(seta)(s);\n if (v instanceof Data_Either.Left) {\n return new Data_Either.Left(s);\n };\n if (v instanceof Data_Either.Right) {\n return new Data_Either.Right(v.value0);\n };\n throw new Error(\"Failed pattern match at Data.Lens.Prism (line 199, column 7 - line 201, column 27): \" + [ v.constructor.name ]);\n })(dictChoice);\n };\n });\n };\n };\n};\nexport {\n prism$prime,\n prism,\n only,\n nearly,\n review,\n is,\n isn$primet,\n matching,\n clonePrism,\n withPrism,\n below\n};\n","// Generated by purs version 0.15.2\nimport * as Data_Either from \"../Data.Either/index.js\";\nimport * as Data_Generic_Rep from \"../Data.Generic.Rep/index.js\";\nimport * as Data_Lens_Iso from \"../Data.Lens.Iso/index.js\";\nimport * as Data_Lens_Lens from \"../Data.Lens.Lens/index.js\";\nimport * as Data_Lens_Lens_Unit from \"../Data.Lens.Lens.Unit/index.js\";\nimport * as Data_Lens_Prism from \"../Data.Lens.Prism/index.js\";\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nvar _ToGeneric = function (dictGeneric) {\n return function (dictProfunctor) {\n return Data_Lens_Iso.iso(Data_Generic_Rep.from(dictGeneric))(Data_Generic_Rep.to(dictGeneric))(dictProfunctor);\n };\n};\nvar _SumRight = function (dictChoice) {\n return Data_Lens_Prism.prism(Data_Generic_Rep.Inr.create)(function (v) {\n if (v instanceof Data_Generic_Rep.Inr) {\n return new Data_Either.Right(v.value0);\n };\n return new Data_Either.Left(v);\n })(dictChoice);\n};\nvar _SumLeft = function (dictChoice) {\n return Data_Lens_Prism.prism(Data_Generic_Rep.Inl.create)(function (v) {\n if (v instanceof Data_Generic_Rep.Inl) {\n return new Data_Either.Right(v.value0);\n };\n return new Data_Either.Left(v);\n })(dictChoice);\n};\nvar _ProductRight = function (dictStrong) {\n return Data_Lens_Lens[\"lens$prime\"](function (v) {\n return new Data_Tuple.Tuple(v.value1, function (b) {\n return new Data_Generic_Rep.Product(v.value0, b);\n });\n })(dictStrong);\n};\nvar _ProductLeft = function (dictStrong) {\n return Data_Lens_Lens[\"lens$prime\"](function (v) {\n return new Data_Tuple.Tuple(v.value0, function (a) {\n return new Data_Generic_Rep.Product(a, v.value1);\n });\n })(dictStrong);\n};\nvar _NoArguments = function (dictStrong) {\n return Data_Lens_Lens_Unit.united(dictStrong);\n};\nvar _Constructor = function (dictProfunctor) {\n var wrapC = function (a) {\n return a;\n };\n var unwrapC = function (v) {\n return v;\n };\n return Data_Lens_Iso.iso(unwrapC)(wrapC)(dictProfunctor);\n};\nvar _Argument = function (dictProfunctor) {\n var wrapA = function (a) {\n return a;\n };\n var unwrapA = function (v) {\n return v;\n };\n return Data_Lens_Iso.iso(unwrapA)(wrapA)(dictProfunctor);\n};\nexport {\n _SumRight,\n _SumLeft,\n _ProductLeft,\n _ProductRight,\n _Constructor,\n _Argument,\n _NoArguments,\n _ToGeneric\n};\n","// Generated by purs version 0.15.2\nimport * as Data_Lens_Iso from \"../Data.Lens.Iso/index.js\";\nvar _Newtype = function () {\n return function () {\n return function (dictProfunctor) {\n return Data_Lens_Iso.coerced()()(dictProfunctor);\n };\n };\n};\nvar unto = function () {\n return function (v) {\n return function (dictProfunctor) {\n return _Newtype()()(dictProfunctor);\n };\n };\n};\nexport {\n _Newtype,\n unto\n};\n","// Generated by purs version 0.15.2\nimport * as Data_Either from \"../Data.Either/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Lens_Prism from \"../Data.Lens.Prism/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nvar _Nothing = function (dictChoice) {\n return Data_Lens_Prism.prism(Data_Function[\"const\"](Data_Maybe.Nothing.value))(Data_Maybe.maybe(new Data_Either.Right(Data_Unit.unit))(Data_Function[\"const\"](new Data_Either.Left(Data_Maybe.Nothing.value))))(dictChoice);\n};\nvar _Just = function (dictChoice) {\n return Data_Lens_Prism.prism(Data_Maybe.Just.create)(Data_Maybe.maybe(new Data_Either.Left(Data_Maybe.Nothing.value))(Data_Either.Right.create))(dictChoice);\n};\nexport {\n _Nothing,\n _Just\n};\n","// module Data.Function.Uncurried\n\nexport const mkFn0 = function (fn) {\n return function () {\n return fn();\n };\n};\n\nexport const mkFn2 = function (fn) {\n /* jshint maxparams: 2 */\n return function (a, b) {\n return fn(a)(b);\n };\n};\n\nexport const mkFn3 = function (fn) {\n /* jshint maxparams: 3 */\n return function (a, b, c) {\n return fn(a)(b)(c);\n };\n};\n\nexport const mkFn4 = function (fn) {\n /* jshint maxparams: 4 */\n return function (a, b, c, d) {\n return fn(a)(b)(c)(d);\n };\n};\n\nexport const mkFn5 = function (fn) {\n /* jshint maxparams: 5 */\n return function (a, b, c, d, e) {\n return fn(a)(b)(c)(d)(e);\n };\n};\n\nexport const mkFn6 = function (fn) {\n /* jshint maxparams: 6 */\n return function (a, b, c, d, e, f) {\n return fn(a)(b)(c)(d)(e)(f);\n };\n};\n\nexport const mkFn7 = function (fn) {\n /* jshint maxparams: 7 */\n return function (a, b, c, d, e, f, g) {\n return fn(a)(b)(c)(d)(e)(f)(g);\n };\n};\n\nexport const mkFn8 = function (fn) {\n /* jshint maxparams: 8 */\n return function (a, b, c, d, e, f, g, h) {\n return fn(a)(b)(c)(d)(e)(f)(g)(h);\n };\n};\n\nexport const mkFn9 = function (fn) {\n /* jshint maxparams: 9 */\n return function (a, b, c, d, e, f, g, h, i) {\n return fn(a)(b)(c)(d)(e)(f)(g)(h)(i);\n };\n};\n\nexport const mkFn10 = function (fn) {\n /* jshint maxparams: 10 */\n return function (a, b, c, d, e, f, g, h, i, j) {\n return fn(a)(b)(c)(d)(e)(f)(g)(h)(i)(j);\n };\n};\n\nexport const runFn0 = function (fn) {\n return fn();\n};\n\nexport const runFn2 = function (fn) {\n return function (a) {\n return function (b) {\n return fn(a, b);\n };\n };\n};\n\nexport const runFn3 = function (fn) {\n return function (a) {\n return function (b) {\n return function (c) {\n return fn(a, b, c);\n };\n };\n };\n};\n\nexport const runFn4 = function (fn) {\n return function (a) {\n return function (b) {\n return function (c) {\n return function (d) {\n return fn(a, b, c, d);\n };\n };\n };\n };\n};\n\nexport const runFn5 = function (fn) {\n return function (a) {\n return function (b) {\n return function (c) {\n return function (d) {\n return function (e) {\n return fn(a, b, c, d, e);\n };\n };\n };\n };\n };\n};\n\nexport const runFn6 = function (fn) {\n return function (a) {\n return function (b) {\n return function (c) {\n return function (d) {\n return function (e) {\n return function (f) {\n return fn(a, b, c, d, e, f);\n };\n };\n };\n };\n };\n };\n};\n\nexport const runFn7 = function (fn) {\n return function (a) {\n return function (b) {\n return function (c) {\n return function (d) {\n return function (e) {\n return function (f) {\n return function (g) {\n return fn(a, b, c, d, e, f, g);\n };\n };\n };\n };\n };\n };\n };\n};\n\nexport const runFn8 = function (fn) {\n return function (a) {\n return function (b) {\n return function (c) {\n return function (d) {\n return function (e) {\n return function (f) {\n return function (g) {\n return function (h) {\n return fn(a, b, c, d, e, f, g, h);\n };\n };\n };\n };\n };\n };\n };\n };\n};\n\nexport const runFn9 = function (fn) {\n return function (a) {\n return function (b) {\n return function (c) {\n return function (d) {\n return function (e) {\n return function (f) {\n return function (g) {\n return function (h) {\n return function (i) {\n return fn(a, b, c, d, e, f, g, h, i);\n };\n };\n };\n };\n };\n };\n };\n };\n };\n};\n\nexport const runFn10 = function (fn) {\n return function (a) {\n return function (b) {\n return function (c) {\n return function (d) {\n return function (e) {\n return function (f) {\n return function (g) {\n return function (h) {\n return function (i) {\n return function (j) {\n return fn(a, b, c, d, e, f, g, h, i, j);\n };\n };\n };\n };\n };\n };\n };\n };\n };\n };\n};\n","// Generated by purs version 0.15.2\nimport * as $foreign from \"./foreign.js\";\nvar runFn1 = function (f) {\n return f;\n};\nvar mkFn1 = function (f) {\n return f;\n};\nexport {\n mkFn0,\n mkFn2,\n mkFn3,\n mkFn4,\n mkFn5,\n mkFn6,\n mkFn7,\n mkFn8,\n mkFn9,\n mkFn10,\n runFn0,\n runFn2,\n runFn3,\n runFn4,\n runFn5,\n runFn6,\n runFn7,\n runFn8,\n runFn9,\n runFn10\n} from \"./foreign.js\";\nexport {\n mkFn1,\n runFn1\n};\n","// Generated by purs version 0.15.2\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Symbol from \"../Data.Symbol/index.js\";\nimport * as Record_Unsafe from \"../Record.Unsafe/index.js\";\nimport * as Record_Unsafe_Union from \"../Record.Unsafe.Union/index.js\";\nimport * as Type_Proxy from \"../Type.Proxy/index.js\";\nimport * as Unsafe_Coerce from \"../Unsafe.Coerce/index.js\";\nvar union = function () {\n return function (l) {\n return function (r) {\n return Record_Unsafe_Union.unsafeUnionFn(l, r);\n };\n };\n};\nvar set = function (dictIsSymbol) {\n return function () {\n return function () {\n return function (l) {\n return function (b) {\n return function (r) {\n return Record_Unsafe.unsafeSet(Data_Symbol.reflectSymbol(dictIsSymbol)(l))(b)(r);\n };\n };\n };\n };\n };\n};\nvar nub = function () {\n return Unsafe_Coerce.unsafeCoerce;\n};\nvar merge = function () {\n return function () {\n return function (l) {\n return function (r) {\n return Record_Unsafe_Union.unsafeUnionFn(l, r);\n };\n };\n };\n};\nvar insert = function (dictIsSymbol) {\n return function () {\n return function () {\n return function (l) {\n return function (a) {\n return function (r) {\n return Record_Unsafe.unsafeSet(Data_Symbol.reflectSymbol(dictIsSymbol)(l))(a)(r);\n };\n };\n };\n };\n };\n};\nvar get = function (dictIsSymbol) {\n return function () {\n return function (l) {\n return function (r) {\n return Record_Unsafe.unsafeGet(Data_Symbol.reflectSymbol(dictIsSymbol)(l))(r);\n };\n };\n };\n};\nvar modify = function (dictIsSymbol) {\n return function () {\n return function () {\n return function (l) {\n return function (f) {\n return function (r) {\n return set(dictIsSymbol)()()(l)(f(get(dictIsSymbol)()(l)(r)))(r);\n };\n };\n };\n };\n };\n};\nvar equalFieldsNil = {\n equalFields: function (v) {\n return function (v1) {\n return function (v2) {\n return true;\n };\n };\n }\n};\nvar equalFields = function (dict) {\n return dict.equalFields;\n};\nvar equalFieldsCons = function (dictIsSymbol) {\n return function (dictEq) {\n return function () {\n return function (dictEqualFields) {\n return {\n equalFields: function (v) {\n return function (a) {\n return function (b) {\n var get$prime = get(dictIsSymbol)()(Type_Proxy[\"Proxy\"].value);\n var equalRest = equalFields(dictEqualFields)(Type_Proxy[\"Proxy\"].value);\n return Data_Eq.eq(dictEq)(get$prime(a))(get$prime(b)) && equalRest(a)(b);\n };\n };\n }\n };\n };\n };\n };\n};\nvar equal = function () {\n return function (dictEqualFields) {\n return function (a) {\n return function (b) {\n return equalFields(dictEqualFields)(Type_Proxy[\"Proxy\"].value)(a)(b);\n };\n };\n };\n};\nvar disjointUnion = function () {\n return function () {\n return function (l) {\n return function (r) {\n return Record_Unsafe_Union.unsafeUnionFn(l, r);\n };\n };\n };\n};\nvar $$delete = function (dictIsSymbol) {\n return function () {\n return function () {\n return function (l) {\n return function (r) {\n return Record_Unsafe.unsafeDelete(Data_Symbol.reflectSymbol(dictIsSymbol)(l))(r);\n };\n };\n };\n };\n};\nvar rename = function (dictIsSymbol) {\n return function (dictIsSymbol1) {\n return function () {\n return function () {\n return function () {\n return function () {\n return function (prev) {\n return function (next) {\n return function (record) {\n return insert(dictIsSymbol1)()()(next)(get(dictIsSymbol)()(prev)(record))($$delete(dictIsSymbol)()()(prev)(record));\n };\n };\n };\n };\n };\n };\n };\n };\n};\nexport {\n get,\n set,\n modify,\n insert,\n $$delete as delete,\n rename,\n equal,\n merge,\n union,\n disjointUnion,\n nub,\n equalFields,\n equalFieldsCons,\n equalFieldsNil\n};\n","// Generated by purs version 0.15.2\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Lens_Lens from \"../Data.Lens.Lens/index.js\";\nimport * as Record from \"../Record/index.js\";\nvar prop = function (dictIsSymbol) {\n return function () {\n return function () {\n return function (l) {\n return function (dictStrong) {\n return Data_Lens_Lens.lens(Record.get(dictIsSymbol)()(l))(Data_Function.flip(Record.set(dictIsSymbol)()()(l)))(dictStrong);\n };\n };\n };\n };\n};\nexport {\n prop\n};\n","// Generated by purs version 0.15.2\nimport * as Control_Alt from \"../Control.Alt/index.js\";\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Apply from \"../Control.Apply/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Control_Monad from \"../Control.Monad/index.js\";\nimport * as Control_Monad_Cont_Class from \"../Control.Monad.Cont.Class/index.js\";\nimport * as Control_Monad_Error_Class from \"../Control.Monad.Error.Class/index.js\";\nimport * as Control_Monad_Reader_Class from \"../Control.Monad.Reader.Class/index.js\";\nimport * as Control_Monad_Rec_Class from \"../Control.Monad.Rec.Class/index.js\";\nimport * as Control_Monad_State_Class from \"../Control.Monad.State.Class/index.js\";\nimport * as Control_Monad_Trans_Class from \"../Control.Monad.Trans.Class/index.js\";\nimport * as Control_Monad_Writer_Class from \"../Control.Monad.Writer.Class/index.js\";\nimport * as Control_Plus from \"../Control.Plus/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Monoid from \"../Data.Monoid/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nimport * as Effect_Class from \"../Effect.Class/index.js\";\nvar StateT = function (x) {\n return x;\n};\nvar withStateT = function (f) {\n return function (v) {\n return function ($105) {\n return v(f($105));\n };\n };\n};\nvar runStateT = function (v) {\n return v;\n};\nvar newtypeStateT = {\n Coercible0: function () {\n return undefined;\n }\n};\nvar monadTransStateT = {\n lift: function (dictMonad) {\n return function (m) {\n return function (s) {\n return Control_Bind.bind(dictMonad.Bind1())(m)(function (x) {\n return Control_Applicative.pure(dictMonad.Applicative0())(new Data_Tuple.Tuple(x, s));\n });\n };\n };\n }\n};\nvar mapStateT = function (f) {\n return function (v) {\n return function ($106) {\n return f(v($106));\n };\n };\n};\nvar lazyStateT = {\n defer: function (f) {\n return function (s) {\n var v = f(Data_Unit.unit);\n return v(s);\n };\n }\n};\nvar functorStateT = function (dictFunctor) {\n return {\n map: function (f) {\n return function (v) {\n return function (s) {\n return Data_Functor.map(dictFunctor)(function (v1) {\n return new Data_Tuple.Tuple(f(v1.value0), v1.value1);\n })(v(s));\n };\n };\n }\n };\n};\nvar execStateT = function (dictFunctor) {\n return function (v) {\n return function (s) {\n return Data_Functor.map(dictFunctor)(Data_Tuple.snd)(v(s));\n };\n };\n};\nvar evalStateT = function (dictFunctor) {\n return function (v) {\n return function (s) {\n return Data_Functor.map(dictFunctor)(Data_Tuple.fst)(v(s));\n };\n };\n};\nvar monadStateT = function (dictMonad) {\n return {\n Applicative0: function () {\n return applicativeStateT(dictMonad);\n },\n Bind1: function () {\n return bindStateT(dictMonad);\n }\n };\n};\nvar bindStateT = function (dictMonad) {\n return {\n bind: function (v) {\n return function (f) {\n return function (s) {\n return Control_Bind.bind(dictMonad.Bind1())(v(s))(function (v1) {\n var v3 = f(v1.value0);\n return v3(v1.value1);\n });\n };\n };\n },\n Apply0: function () {\n return applyStateT(dictMonad);\n }\n };\n};\nvar applyStateT = function (dictMonad) {\n return {\n apply: Control_Monad.ap(monadStateT(dictMonad)),\n Functor0: function () {\n return functorStateT(((dictMonad.Bind1()).Apply0()).Functor0());\n }\n };\n};\nvar applicativeStateT = function (dictMonad) {\n return {\n pure: function (a) {\n return function (s) {\n return Control_Applicative.pure(dictMonad.Applicative0())(new Data_Tuple.Tuple(a, s));\n };\n },\n Apply0: function () {\n return applyStateT(dictMonad);\n }\n };\n};\nvar semigroupStateT = function (dictMonad) {\n return function (dictSemigroup) {\n return {\n append: Control_Apply.lift2(applyStateT(dictMonad))(Data_Semigroup.append(dictSemigroup))\n };\n };\n};\nvar monadAskStateT = function (dictMonadAsk) {\n return {\n ask: Control_Monad_Trans_Class.lift(monadTransStateT)(dictMonadAsk.Monad0())(Control_Monad_Reader_Class.ask(dictMonadAsk)),\n Monad0: function () {\n return monadStateT(dictMonadAsk.Monad0());\n }\n };\n};\nvar monadReaderStateT = function (dictMonadReader) {\n return {\n local: (function () {\n var $107 = Control_Monad_Reader_Class.local(dictMonadReader);\n return function ($108) {\n return mapStateT($107($108));\n };\n })(),\n MonadAsk0: function () {\n return monadAskStateT(dictMonadReader.MonadAsk0());\n }\n };\n};\nvar monadContStateT = function (dictMonadCont) {\n return {\n callCC: function (f) {\n return function (s) {\n return Control_Monad_Cont_Class.callCC(dictMonadCont)(function (c) {\n var v = f(function (a) {\n return function (s$prime) {\n return c(new Data_Tuple.Tuple(a, s$prime));\n };\n });\n return v(s);\n });\n };\n },\n Monad0: function () {\n return monadStateT(dictMonadCont.Monad0());\n }\n };\n};\nvar monadEffectState = function (dictMonadEffect) {\n return {\n liftEffect: (function () {\n var $109 = Control_Monad_Trans_Class.lift(monadTransStateT)(dictMonadEffect.Monad0());\n var $110 = Effect_Class.liftEffect(dictMonadEffect);\n return function ($111) {\n return $109($110($111));\n };\n })(),\n Monad0: function () {\n return monadStateT(dictMonadEffect.Monad0());\n }\n };\n};\nvar monadRecStateT = function (dictMonadRec) {\n return {\n tailRecM: function (f) {\n return function (a) {\n var f$prime = function (v) {\n var v1 = f(v.value0);\n return Control_Bind.bind((dictMonadRec.Monad0()).Bind1())(v1(v.value1))(function (v2) {\n return Control_Applicative.pure((dictMonadRec.Monad0()).Applicative0())((function () {\n if (v2.value0 instanceof Control_Monad_Rec_Class.Loop) {\n return new Control_Monad_Rec_Class.Loop(new Data_Tuple.Tuple(v2.value0.value0, v2.value1));\n };\n if (v2.value0 instanceof Control_Monad_Rec_Class.Done) {\n return new Control_Monad_Rec_Class.Done(new Data_Tuple.Tuple(v2.value0.value0, v2.value1));\n };\n throw new Error(\"Failed pattern match at Control.Monad.State.Trans (line 87, column 16 - line 89, column 40): \" + [ v2.value0.constructor.name ]);\n })());\n });\n };\n return function (s) {\n return Control_Monad_Rec_Class.tailRecM(dictMonadRec)(f$prime)(new Data_Tuple.Tuple(a, s));\n };\n };\n },\n Monad0: function () {\n return monadStateT(dictMonadRec.Monad0());\n }\n };\n};\nvar monadStateStateT = function (dictMonad) {\n return {\n state: function (f) {\n var $112 = Control_Applicative.pure(dictMonad.Applicative0());\n return function ($113) {\n return $112(f($113));\n };\n },\n Monad0: function () {\n return monadStateT(dictMonad);\n }\n };\n};\nvar monadTellStateT = function (dictMonadTell) {\n return {\n tell: (function () {\n var $114 = Control_Monad_Trans_Class.lift(monadTransStateT)(dictMonadTell.Monad1());\n var $115 = Control_Monad_Writer_Class.tell(dictMonadTell);\n return function ($116) {\n return $114($115($116));\n };\n })(),\n Semigroup0: dictMonadTell.Semigroup0,\n Monad1: function () {\n return monadStateT(dictMonadTell.Monad1());\n }\n };\n};\nvar monadWriterStateT = function (dictMonadWriter) {\n return {\n listen: function (m) {\n return function (s) {\n return Control_Bind.bind(((dictMonadWriter.MonadTell1()).Monad1()).Bind1())(Control_Monad_Writer_Class.listen(dictMonadWriter)(m(s)))(function (v) {\n return Control_Applicative.pure(((dictMonadWriter.MonadTell1()).Monad1()).Applicative0())(new Data_Tuple.Tuple(new Data_Tuple.Tuple(v.value0.value0, v.value1), v.value0.value1));\n });\n };\n },\n pass: function (m) {\n return function (s) {\n return Control_Monad_Writer_Class.pass(dictMonadWriter)(Control_Bind.bind(((dictMonadWriter.MonadTell1()).Monad1()).Bind1())(m(s))(function (v) {\n return Control_Applicative.pure(((dictMonadWriter.MonadTell1()).Monad1()).Applicative0())(new Data_Tuple.Tuple(new Data_Tuple.Tuple(v.value0.value0, v.value1), v.value0.value1));\n }));\n };\n },\n Monoid0: dictMonadWriter.Monoid0,\n MonadTell1: function () {\n return monadTellStateT(dictMonadWriter.MonadTell1());\n }\n };\n};\nvar monadThrowStateT = function (dictMonadThrow) {\n return {\n throwError: function (e) {\n return Control_Monad_Trans_Class.lift(monadTransStateT)(dictMonadThrow.Monad0())(Control_Monad_Error_Class.throwError(dictMonadThrow)(e));\n },\n Monad0: function () {\n return monadStateT(dictMonadThrow.Monad0());\n }\n };\n};\nvar monadErrorStateT = function (dictMonadError) {\n return {\n catchError: function (v) {\n return function (h) {\n return function (s) {\n return Control_Monad_Error_Class.catchError(dictMonadError)(v(s))(function (e) {\n var v1 = h(e);\n return v1(s);\n });\n };\n };\n },\n MonadThrow0: function () {\n return monadThrowStateT(dictMonadError.MonadThrow0());\n }\n };\n};\nvar monoidStateT = function (dictMonad) {\n return function (dictMonoid) {\n return {\n mempty: Control_Applicative.pure(applicativeStateT(dictMonad))(Data_Monoid.mempty(dictMonoid)),\n Semigroup0: function () {\n return semigroupStateT(dictMonad)(dictMonoid.Semigroup0());\n }\n };\n };\n};\nvar altStateT = function (dictMonad) {\n return function (dictAlt) {\n return {\n alt: function (v) {\n return function (v1) {\n return function (s) {\n return Control_Alt.alt(dictAlt)(v(s))(v1(s));\n };\n };\n },\n Functor0: function () {\n return functorStateT(dictAlt.Functor0());\n }\n };\n };\n};\nvar plusStateT = function (dictMonad) {\n return function (dictPlus) {\n return {\n empty: function (v) {\n return Control_Plus.empty(dictPlus);\n },\n Alt0: function () {\n return altStateT(dictMonad)(dictPlus.Alt0());\n }\n };\n };\n};\nvar alternativeStateT = function (dictMonad) {\n return function (dictAlternative) {\n return {\n Applicative0: function () {\n return applicativeStateT(dictMonad);\n },\n Plus1: function () {\n return plusStateT(dictMonad)(dictAlternative.Plus1());\n }\n };\n };\n};\nvar monadPlusStateT = function (dictMonadPlus) {\n return {\n Monad0: function () {\n return monadStateT(dictMonadPlus.Monad0());\n },\n Alternative1: function () {\n return alternativeStateT(dictMonadPlus.Monad0())(dictMonadPlus.Alternative1());\n }\n };\n};\nexport {\n StateT,\n runStateT,\n evalStateT,\n execStateT,\n mapStateT,\n withStateT,\n newtypeStateT,\n functorStateT,\n applyStateT,\n applicativeStateT,\n altStateT,\n plusStateT,\n alternativeStateT,\n bindStateT,\n monadStateT,\n monadRecStateT,\n monadPlusStateT,\n monadTransStateT,\n lazyStateT,\n monadEffectState,\n monadContStateT,\n monadThrowStateT,\n monadErrorStateT,\n monadAskStateT,\n monadReaderStateT,\n monadStateStateT,\n monadTellStateT,\n monadWriterStateT,\n semigroupStateT,\n monoidStateT\n};\nexport {\n get,\n gets,\n modify,\n modify_,\n put,\n state\n} from \"../Control.Monad.State.Class/index.js\";\nexport {\n lift\n} from \"../Control.Monad.Trans.Class/index.js\";\n","// Generated by purs version 0.15.2\nimport * as Control_Monad_State_Class from \"../Control.Monad.State.Class/index.js\";\nimport * as Data_EuclideanRing from \"../Data.EuclideanRing/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_HeytingAlgebra from \"../Data.HeytingAlgebra/index.js\";\nimport * as Data_Lens_Types from \"../Data.Lens.Types/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Ring from \"../Data.Ring/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nimport * as Data_Semiring from \"../Data.Semiring/index.js\";\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nvar over = function (l) {\n return l;\n};\nvar set = function (l) {\n return function (b) {\n return over(l)(Data_Function[\"const\"](b));\n };\n};\nvar setJust = function (p) {\n var $24 = set(p);\n return function ($25) {\n return $24(Data_Maybe.Just.create($25));\n };\n};\nvar subOver = function (dictRing) {\n return function (p) {\n var $26 = over(p);\n var $27 = Data_Function.flip(Data_Ring.sub(dictRing));\n return function ($28) {\n return $26($27($28));\n };\n };\n};\nvar mulOver = function (dictSemiring) {\n return function (p) {\n var $29 = over(p);\n var $30 = Data_Function.flip(Data_Semiring.mul(dictSemiring));\n return function ($31) {\n return $29($30($31));\n };\n };\n};\nvar modifying = function (dictMonadState) {\n return function (p) {\n return function (f) {\n return Data_Functor[\"void\"]((((dictMonadState.Monad0()).Bind1()).Apply0()).Functor0())(Control_Monad_State_Class.modify(dictMonadState)(over(p)(f)));\n };\n };\n};\nvar mulModifying = function (dictMonadState) {\n return function (dictSemiring) {\n return function (p) {\n var $32 = modifying(dictMonadState)(p);\n var $33 = Data_Function.flip(Data_Semiring.mul(dictSemiring));\n return function ($34) {\n return $32($33($34));\n };\n };\n };\n};\nvar subModifying = function (dictMonadState) {\n return function (dictRing) {\n return function (p) {\n var $35 = modifying(dictMonadState)(p);\n var $36 = Data_Function.flip(Data_Ring.sub(dictRing));\n return function ($37) {\n return $35($36($37));\n };\n };\n };\n};\nvar iover = function (l) {\n return function (f) {\n return l(Data_Tuple.uncurry(f));\n };\n};\nvar divOver = function (dictEuclideanRing) {\n return function (p) {\n var $38 = over(p);\n var $39 = Data_Function.flip(Data_EuclideanRing.div(dictEuclideanRing));\n return function ($40) {\n return $38($39($40));\n };\n };\n};\nvar divModifying = function (dictMonadState) {\n return function (dictEuclideanRing) {\n return function (p) {\n var $41 = modifying(dictMonadState)(p);\n var $42 = Data_Function.flip(Data_EuclideanRing.div(dictEuclideanRing));\n return function ($43) {\n return $41($42($43));\n };\n };\n };\n};\nvar disjOver = function (dictHeytingAlgebra) {\n return function (p) {\n var $44 = over(p);\n var $45 = Data_Function.flip(Data_HeytingAlgebra.disj(dictHeytingAlgebra));\n return function ($46) {\n return $44($45($46));\n };\n };\n};\nvar disjModifying = function (dictMonadState) {\n return function (dictHeytingAlgebra) {\n return function (p) {\n var $47 = modifying(dictMonadState)(p);\n var $48 = Data_Function.flip(Data_HeytingAlgebra.disj(dictHeytingAlgebra));\n return function ($49) {\n return $47($48($49));\n };\n };\n };\n};\nvar conjOver = function (dictHeytingAlgebra) {\n return function (p) {\n var $50 = over(p);\n var $51 = Data_Function.flip(Data_HeytingAlgebra.conj(dictHeytingAlgebra));\n return function ($52) {\n return $50($51($52));\n };\n };\n};\nvar conjModifying = function (dictMonadState) {\n return function (dictHeytingAlgebra) {\n return function (p) {\n var $53 = modifying(dictMonadState)(p);\n var $54 = Data_Function.flip(Data_HeytingAlgebra.conj(dictHeytingAlgebra));\n return function ($55) {\n return $53($54($55));\n };\n };\n };\n};\nvar assign = function (dictMonadState) {\n return function (p) {\n return function (b) {\n return Data_Functor[\"void\"]((((dictMonadState.Monad0()).Bind1()).Apply0()).Functor0())(Control_Monad_State_Class.modify(dictMonadState)(set(p)(b)));\n };\n };\n};\nvar assignJust = function (dictMonadState) {\n return function (p) {\n var $56 = assign(dictMonadState)(p);\n return function ($57) {\n return $56(Data_Maybe.Just.create($57));\n };\n };\n};\nvar appendOver = function (dictSemigroup) {\n return function (p) {\n var $58 = over(p);\n var $59 = Data_Function.flip(Data_Semigroup.append(dictSemigroup));\n return function ($60) {\n return $58($59($60));\n };\n };\n};\nvar appendModifying = function (dictMonadState) {\n return function (dictSemigroup) {\n return function (p) {\n var $61 = modifying(dictMonadState)(p);\n var $62 = Data_Function.flip(Data_Semigroup.append(dictSemigroup));\n return function ($63) {\n return $61($62($63));\n };\n };\n };\n};\nvar addOver = function (dictSemiring) {\n return function (p) {\n var $64 = over(p);\n var $65 = Data_Semiring.add(dictSemiring);\n return function ($66) {\n return $64($65($66));\n };\n };\n};\nvar addModifying = function (dictMonadState) {\n return function (dictSemiring) {\n return function (p) {\n var $67 = modifying(dictMonadState)(p);\n var $68 = Data_Semiring.add(dictSemiring);\n return function ($69) {\n return $67($68($69));\n };\n };\n };\n};\nexport {\n over,\n iover,\n set,\n addOver,\n subOver,\n mulOver,\n divOver,\n disjOver,\n conjOver,\n appendOver,\n setJust,\n assign,\n modifying,\n addModifying,\n mulModifying,\n subModifying,\n divModifying,\n disjModifying,\n conjModifying,\n appendModifying,\n assignJust\n};\nexport {\n Indexed\n} from \"../Data.Lens.Types/index.js\";\n","// Generated by purs version 0.15.2\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Control_Plus from \"../Control.Plus/index.js\";\nimport * as Data_Bitraversable from \"../Data.Bitraversable/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Lens_Indexed from \"../Data.Lens.Indexed/index.js\";\nimport * as Data_Lens_Internal_Bazaar from \"../Data.Lens.Internal.Bazaar/index.js\";\nimport * as Data_Lens_Internal_Indexed from \"../Data.Lens.Internal.Indexed/index.js\";\nimport * as Data_Lens_Internal_Wander from \"../Data.Lens.Internal.Wander/index.js\";\nimport * as Data_Lens_Types from \"../Data.Lens.Types/index.js\";\nimport * as Data_Newtype from \"../Data.Newtype/index.js\";\nimport * as Data_Profunctor_Star from \"../Data.Profunctor.Star/index.js\";\nimport * as Data_Traversable from \"../Data.Traversable/index.js\";\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nvar traversed = function (dictTraversable) {\n return function (dictWander) {\n return Data_Lens_Internal_Wander.wander(dictWander)(function (dictApplicative) {\n return Data_Traversable.traverse(dictTraversable)(dictApplicative);\n });\n };\n};\nvar traverseOf = /* #__PURE__ */ Data_Newtype.under()()(Data_Profunctor_Star.Star);\nvar sequenceOf = function (t) {\n return traverseOf(t)(Control_Category.identity(Control_Category.categoryFn));\n};\nvar itraverseOf = function (t) {\n var $27 = Data_Newtype.under()()(Data_Profunctor_Star.Star)(function ($29) {\n return t(Data_Lens_Internal_Indexed.Indexed($29));\n });\n return function ($28) {\n return $27(Data_Tuple.uncurry($28));\n };\n};\nvar iforOf = function ($30) {\n return Data_Function.flip(itraverseOf($30));\n};\nvar failover = function (dictAlternative) {\n return function (t) {\n return function (f) {\n return function (s) {\n var v = Data_Newtype.unwrap()(t((function () {\n var $31 = Data_Tuple.Tuple.create(true);\n return function ($32) {\n return $31(f($32));\n };\n })()))(s);\n if (v.value0) {\n return Control_Applicative.pure(dictAlternative.Applicative0())(v.value1);\n };\n if (!v.value0) {\n return Control_Plus.empty(dictAlternative.Plus1());\n };\n throw new Error(\"Failed pattern match at Data.Lens.Traversal (line 98, column 18 - line 100, column 32): \" + [ v.constructor.name ]);\n };\n };\n };\n};\nvar elementsOf = function (dictWander) {\n return function (tr) {\n return function (pr) {\n return Data_Lens_Indexed.iwander(function (dictApplicative) {\n return function (f) {\n return Data_Newtype.unwrap()(tr(Data_Lens_Internal_Wander.wanderStar(dictApplicative))(function (v) {\n var $24 = pr(v.value0);\n if ($24) {\n return f(v.value0)(v.value1);\n };\n return Control_Applicative.pure(dictApplicative)(v.value1);\n }));\n };\n })(dictWander);\n };\n };\n};\nvar element = function (dictWander) {\n return function (n) {\n return function (tr) {\n return Data_Lens_Indexed.unIndex((dictWander.Choice1()).Profunctor0())(elementsOf(dictWander)(function (dictWander1) {\n return Data_Lens_Indexed.positions(function (dictWander2) {\n return tr(dictWander2);\n })(dictWander1);\n })(function (v) {\n return v === n;\n }));\n };\n };\n};\nvar cloneTraversal = function (l) {\n return function (dictWander) {\n return Data_Lens_Internal_Wander.wander(dictWander)(function (dictApplicative) {\n return Data_Lens_Internal_Bazaar.runBazaar(l(function (dictApplicative1) {\n return Control_Category.identity(Control_Category.categoryFn);\n }))(dictApplicative);\n });\n };\n};\nvar both = function (dictBitraversable) {\n return function (dictWander) {\n return Data_Lens_Internal_Wander.wander(dictWander)(function (dictApplicative) {\n return Control_Bind.join(Control_Bind.bindFn)(Data_Bitraversable.bitraverse(dictBitraversable)(dictApplicative));\n });\n };\n};\nexport {\n traversed,\n element,\n traverseOf,\n sequenceOf,\n failover,\n elementsOf,\n itraverseOf,\n iforOf,\n cloneTraversal,\n both\n};\n","// Generated by purs version 0.15.2\nimport * as Data_Lens_Barlow_Generic from \"../Data.Lens.Barlow.Generic/index.js\";\nimport * as Data_Lens_Iso_Newtype from \"../Data.Lens.Iso.Newtype/index.js\";\nimport * as Data_Lens_Prism_Either from \"../Data.Lens.Prism.Either/index.js\";\nimport * as Data_Lens_Prism_Maybe from \"../Data.Lens.Prism.Maybe/index.js\";\nimport * as Data_Lens_Record from \"../Data.Lens.Record/index.js\";\nimport * as Data_Lens_Traversal from \"../Data.Lens.Traversal/index.js\";\nimport * as Type_Proxy from \"../Type.Proxy/index.js\";\nvar constructBarlowTConsRight = function (dictChoice) {\n return {\n constructBarlow: function (v) {\n return Data_Lens_Prism_Either[\"_Right\"](dictChoice);\n }\n };\n};\nvar constructBarlowTConsRecor = function (dictIsSymbol) {\n return function () {\n return function () {\n return function (dictStrong) {\n return {\n constructBarlow: function (v) {\n return Data_Lens_Record.prop(dictIsSymbol)()()(Type_Proxy[\"Proxy\"].value)(dictStrong);\n }\n };\n };\n };\n };\n};\nvar constructBarlowTConsQuest = function (dictChoice) {\n return {\n constructBarlow: function (v) {\n return Data_Lens_Prism_Maybe[\"_Just\"](dictChoice);\n }\n };\n};\nvar constructBarlowTConsPlusT = function (dictWander) {\n return function (dictTraversable) {\n return {\n constructBarlow: function (v) {\n return Data_Lens_Traversal.traversed(dictTraversable)(dictWander);\n }\n };\n };\n};\nvar constructBarlowTConsLeftA = function (dictChoice) {\n return {\n constructBarlow: function (v) {\n return Data_Lens_Prism_Either[\"_Left\"](dictChoice);\n }\n };\n};\nvar constructBarlowGenericTCo = function (dictProfunctor) {\n return {\n constructBarlowGeneric: function (v) {\n return Data_Lens_Barlow_Generic[\"_Argument\"](dictProfunctor);\n }\n };\n};\nvar constructBarlowGenericTCo1 = function (dictStrong) {\n return {\n constructBarlowGeneric: function (v) {\n var $114 = Data_Lens_Barlow_Generic[\"_ProductLeft\"](dictStrong);\n var $115 = Data_Lens_Barlow_Generic[\"_Argument\"](dictStrong.Profunctor0());\n return function ($116) {\n return $114($115($116));\n };\n }\n };\n};\nvar constructBarlowGenericTCo2 = function (dictChoice) {\n return {\n constructBarlowGeneric: function (v) {\n var $117 = Data_Lens_Barlow_Generic[\"_SumRight\"](dictChoice);\n var $118 = Data_Lens_Barlow_Generic[\"_Constructor\"](dictChoice.Profunctor0());\n var $119 = Data_Lens_Barlow_Generic[\"_Argument\"](dictChoice.Profunctor0());\n return function ($120) {\n return $117($118($119($120)));\n };\n }\n };\n};\nvar constructBarlowGenericTCo3 = function (dictChoice) {\n return function (dictStrong) {\n return {\n constructBarlowGeneric: function (v) {\n var $121 = Data_Lens_Barlow_Generic[\"_SumRight\"](dictChoice);\n var $122 = Data_Lens_Barlow_Generic[\"_Constructor\"](dictChoice.Profunctor0());\n var $123 = Data_Lens_Barlow_Generic[\"_NoArguments\"](dictStrong);\n return function ($124) {\n return $121($122($123($124)));\n };\n }\n };\n };\n};\nvar constructBarlowGenericTCo4 = function (dictChoice) {\n return {\n constructBarlowGeneric: function (v) {\n var $125 = Data_Lens_Barlow_Generic[\"_SumLeft\"](dictChoice);\n var $126 = Data_Lens_Barlow_Generic[\"_Constructor\"](dictChoice.Profunctor0());\n var $127 = Data_Lens_Barlow_Generic[\"_Argument\"](dictChoice.Profunctor0());\n return function ($128) {\n return $125($126($127($128)));\n };\n }\n };\n};\nvar constructBarlowGenericTCo5 = function (dictChoice) {\n return function (dictStrong) {\n return {\n constructBarlowGeneric: function (v) {\n var $129 = Data_Lens_Barlow_Generic[\"_SumLeft\"](dictChoice);\n var $130 = Data_Lens_Barlow_Generic[\"_Constructor\"](dictChoice.Profunctor0());\n var $131 = Data_Lens_Barlow_Generic[\"_NoArguments\"](dictStrong);\n return function ($132) {\n return $129($130($131($132)));\n };\n }\n };\n };\n};\nvar constructBarlowGenericTCo6 = function (dictProfunctor) {\n return {\n constructBarlowGeneric: function (v) {\n var $133 = Data_Lens_Barlow_Generic[\"_Constructor\"](dictProfunctor);\n var $134 = Data_Lens_Barlow_Generic[\"_Argument\"](dictProfunctor);\n return function ($135) {\n return $133($134($135));\n };\n }\n };\n};\nvar constructBarlowGenericTCo7 = function (dictStrong) {\n return {\n constructBarlowGeneric: function (v) {\n var $136 = Data_Lens_Barlow_Generic[\"_Constructor\"](dictStrong.Profunctor0());\n var $137 = Data_Lens_Barlow_Generic[\"_NoArguments\"](dictStrong);\n return function ($138) {\n return $136($137($138));\n };\n }\n };\n};\nvar constructBarlowNilExclamationMark = function (dictProfunctor) {\n return function () {\n return {\n constructBarlow: function (v) {\n return Data_Lens_Iso_Newtype[\"_Newtype\"]()()(dictProfunctor);\n }\n };\n };\n};\nvar constructBarlowGeneric = function (dict) {\n return dict.constructBarlowGeneric;\n};\nvar constructBarlow1 = function (dictGeneric) {\n return function (dictConstructBarlowGeneric) {\n return function (dictProfunctor) {\n return {\n constructBarlow: function (v) {\n var $139 = Data_Lens_Barlow_Generic[\"_ToGeneric\"](dictGeneric)(dictProfunctor);\n var $140 = constructBarlowGeneric(dictConstructBarlowGeneric)(Type_Proxy[\"Proxy\"].value);\n return function ($141) {\n return $139($140($141));\n };\n }\n };\n };\n };\n};\nvar constructBarlowGenericTCo8 = function (dictConstructBarlowGeneric) {\n return function (dictProfunctor) {\n return {\n constructBarlowGeneric: function (v) {\n var $142 = Data_Lens_Barlow_Generic[\"_Constructor\"](dictProfunctor);\n var $143 = constructBarlowGeneric(dictConstructBarlowGeneric)(Type_Proxy[\"Proxy\"].value);\n return function ($144) {\n return $142($143($144));\n };\n }\n };\n };\n};\nvar constructBarlowGenericTCo9 = function (dictConstructBarlowGeneric) {\n return function (dictChoice) {\n return {\n constructBarlowGeneric: function (v) {\n var $145 = Data_Lens_Barlow_Generic[\"_SumLeft\"](dictChoice);\n var $146 = Data_Lens_Barlow_Generic[\"_Constructor\"](dictChoice.Profunctor0());\n var $147 = constructBarlowGeneric(dictConstructBarlowGeneric)(Type_Proxy[\"Proxy\"].value);\n return function ($148) {\n return $145($146($147($148)));\n };\n }\n };\n };\n};\nvar constructBarlowGenericTCo10 = function (dictConstructBarlowGeneric) {\n return function (dictChoice) {\n return {\n constructBarlowGeneric: function (v) {\n var $149 = Data_Lens_Barlow_Generic[\"_SumRight\"](dictChoice);\n var $150 = constructBarlowGeneric(dictConstructBarlowGeneric)(Type_Proxy[\"Proxy\"].value);\n return function ($151) {\n return $149($150($151));\n };\n }\n };\n };\n};\nvar constructBarlowGenericTCo11 = function (dictConstructBarlowGeneric) {\n return function (dictStrong) {\n return {\n constructBarlowGeneric: function (v) {\n var $152 = Data_Lens_Barlow_Generic[\"_ProductRight\"](dictStrong);\n var $153 = constructBarlowGeneric(dictConstructBarlowGeneric)(Type_Proxy[\"Proxy\"].value);\n return function ($154) {\n return $152($153($154));\n };\n }\n };\n };\n};\nvar constructBarlow = function (dict) {\n return dict.constructBarlow;\n};\nvar constructBarlowGenericTCo12 = function (dictConstructBarlow) {\n return function (dictProfunctor) {\n return {\n constructBarlowGeneric: function (v) {\n var $155 = Data_Lens_Barlow_Generic[\"_Constructor\"](dictProfunctor);\n var $156 = Data_Lens_Barlow_Generic[\"_Argument\"](dictProfunctor);\n var $157 = constructBarlow(dictConstructBarlow)(Type_Proxy[\"Proxy\"].value);\n return function ($158) {\n return $155($156($157($158)));\n };\n }\n };\n };\n};\nvar constructBarlowGenericTCo13 = function (dictConstructBarlow) {\n return function (dictChoice) {\n return {\n constructBarlowGeneric: function (v) {\n var $159 = Data_Lens_Barlow_Generic[\"_SumLeft\"](dictChoice);\n var $160 = Data_Lens_Barlow_Generic[\"_Constructor\"](dictChoice.Profunctor0());\n var $161 = Data_Lens_Barlow_Generic[\"_Argument\"](dictChoice.Profunctor0());\n var $162 = constructBarlow(dictConstructBarlow)(Type_Proxy[\"Proxy\"].value);\n return function ($163) {\n return $159($160($161($162($163))));\n };\n }\n };\n };\n};\nvar constructBarlowGenericTCo14 = function (dictConstructBarlow) {\n return function (dictChoice) {\n return {\n constructBarlowGeneric: function (v) {\n var $164 = Data_Lens_Barlow_Generic[\"_SumRight\"](dictChoice);\n var $165 = Data_Lens_Barlow_Generic[\"_Constructor\"](dictChoice.Profunctor0());\n var $166 = Data_Lens_Barlow_Generic[\"_Argument\"](dictChoice.Profunctor0());\n var $167 = constructBarlow(dictConstructBarlow)(Type_Proxy[\"Proxy\"].value);\n return function ($168) {\n return $164($165($166($167($168))));\n };\n }\n };\n };\n};\nvar constructBarlowGenericTCo15 = function (dictConstructBarlow) {\n return function (dictStrong) {\n return {\n constructBarlowGeneric: function (v) {\n var $169 = Data_Lens_Barlow_Generic[\"_ProductLeft\"](dictStrong);\n var $170 = Data_Lens_Barlow_Generic[\"_Argument\"](dictStrong.Profunctor0());\n var $171 = constructBarlow(dictConstructBarlow)(Type_Proxy[\"Proxy\"].value);\n return function ($172) {\n return $169($170($171($172)));\n };\n }\n };\n };\n};\nvar constructBarlowGenericTCo16 = function (dictConstructBarlow) {\n return function (dictProfunctor) {\n return {\n constructBarlowGeneric: function (v) {\n var $173 = Data_Lens_Barlow_Generic[\"_Argument\"](dictProfunctor);\n var $174 = constructBarlow(dictConstructBarlow)(Type_Proxy[\"Proxy\"].value);\n return function ($175) {\n return $173($174($175));\n };\n }\n };\n };\n};\nvar constructBarlowTConsExcla = function (dictConstructBarlow) {\n return function () {\n return function (dictProfunctor) {\n return {\n constructBarlow: function (v) {\n var $176 = Data_Lens_Iso_Newtype[\"_Newtype\"]()()(dictProfunctor);\n var $177 = constructBarlow(dictConstructBarlow)(Type_Proxy[\"Proxy\"].value);\n return function ($178) {\n return $176($177($178));\n };\n }\n };\n };\n };\n};\nvar constructBarlowTConsLeftA1 = function (dictConstructBarlow) {\n return function (dictChoice) {\n return {\n constructBarlow: function (v) {\n var $179 = Data_Lens_Prism_Either[\"_Left\"](dictChoice);\n var $180 = constructBarlow(dictConstructBarlow)(Type_Proxy[\"Proxy\"].value);\n return function ($181) {\n return $179($180($181));\n };\n }\n };\n };\n};\nvar constructBarlowTConsPlus = function (dictConstructBarlow) {\n return function (dictWander) {\n return function (dictTraversable) {\n return {\n constructBarlow: function (v) {\n var $182 = Data_Lens_Traversal.traversed(dictTraversable)(dictWander);\n var $183 = constructBarlow(dictConstructBarlow)(Type_Proxy[\"Proxy\"].value);\n return function ($184) {\n return $182($183($184));\n };\n }\n };\n };\n };\n};\nvar constructBarlowTConsQuest1 = function (dictConstructBarlow) {\n return function (dictChoice) {\n return {\n constructBarlow: function (v) {\n var $185 = Data_Lens_Prism_Maybe[\"_Just\"](dictChoice);\n var $186 = constructBarlow(dictConstructBarlow)(Type_Proxy[\"Proxy\"].value);\n return function ($187) {\n return $185($186($187));\n };\n }\n };\n };\n};\nvar constructBarlowTConsRecor1 = function (dictIsSymbol) {\n return function (dictConstructBarlow) {\n return function () {\n return function () {\n return function (dictStrong) {\n return {\n constructBarlow: function (v) {\n var $188 = Data_Lens_Record.prop(dictIsSymbol)()()(Type_Proxy[\"Proxy\"].value)(dictStrong);\n var $189 = constructBarlow(dictConstructBarlow)(Type_Proxy[\"Proxy\"].value);\n return function ($190) {\n return $188($189($190));\n };\n }\n };\n };\n };\n };\n };\n};\nvar constructBarlowTConsRight1 = function (dictConstructBarlow) {\n return function (dictChoice) {\n return {\n constructBarlow: function (v) {\n var $191 = Data_Lens_Prism_Either[\"_Right\"](dictChoice);\n var $192 = constructBarlow(dictConstructBarlow)(Type_Proxy[\"Proxy\"].value);\n return function ($193) {\n return $191($192($193));\n };\n }\n };\n };\n};\nexport {\n constructBarlow,\n constructBarlowGeneric,\n constructBarlowGenericTCo7,\n constructBarlowGenericTCo6,\n constructBarlowGenericTCo12,\n constructBarlowGenericTCo8,\n constructBarlowGenericTCo5,\n constructBarlowGenericTCo4,\n constructBarlowGenericTCo13,\n constructBarlowGenericTCo9,\n constructBarlowGenericTCo3,\n constructBarlowGenericTCo2,\n constructBarlowGenericTCo14,\n constructBarlowGenericTCo10,\n constructBarlowGenericTCo1,\n constructBarlowGenericTCo15,\n constructBarlowGenericTCo,\n constructBarlowGenericTCo16,\n constructBarlowGenericTCo11,\n constructBarlowTConsQuest,\n constructBarlowTConsRight,\n constructBarlowTConsLeftA,\n constructBarlowTConsPlusT,\n constructBarlowNilExclamationMark,\n constructBarlowTConsRecor,\n constructBarlowTConsQuest1,\n constructBarlowTConsRight1,\n constructBarlowTConsLeftA1,\n constructBarlowTConsPlus,\n constructBarlowTConsExcla,\n constructBarlowTConsRecor1,\n constructBarlow1\n};\n","// Generated by purs version 0.15.2\nimport * as Data_Lens_Barlow_Construction from \"../Data.Lens.Barlow.Construction/index.js\";\nimport * as Type_Proxy from \"../Type.Proxy/index.js\";\nvar key = /* #__PURE__ */ (function () {\n return Type_Proxy[\"Proxy\"].value;\n})();\nvar barlowInstance = function () {\n return function (dictConstructBarlow) {\n return {\n barlow: function (v) {\n return Data_Lens_Barlow_Construction.constructBarlow(dictConstructBarlow)(Type_Proxy[\"Proxy\"].value);\n }\n };\n };\n};\nvar barlow = function (dict) {\n return dict.barlow;\n};\nexport {\n barlow,\n key,\n barlowInstance\n};\n","// Generated by purs version 0.15.2\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Generic_Rep from \"../Data.Generic.Rep/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nimport * as Data_Show from \"../Data.Show/index.js\";\nimport * as Data_Symbol from \"../Data.Symbol/index.js\";\nimport * as Type_Proxy from \"../Type.Proxy/index.js\";\nvar genericShowArgsNoArguments = {\n genericShowArgs: function (v) {\n return [ ];\n }\n};\nvar genericShowArgsArgument = function (dictShow) {\n return {\n genericShowArgs: function (v) {\n return [ Data_Show.show(dictShow)(v) ];\n }\n };\n};\nvar genericShowArgs = function (dict) {\n return dict.genericShowArgs;\n};\nvar genericShowArgsProduct = function (dictGenericShowArgs) {\n return function (dictGenericShowArgs1) {\n return {\n genericShowArgs: function (v) {\n return Data_Semigroup.append(Data_Semigroup.semigroupArray)(genericShowArgs(dictGenericShowArgs)(v.value0))(genericShowArgs(dictGenericShowArgs1)(v.value1));\n }\n };\n };\n};\nvar genericShowConstructor = function (dictGenericShowArgs) {\n return function (dictIsSymbol) {\n return {\n \"genericShow'\": function (v) {\n var ctor = Data_Symbol.reflectSymbol(dictIsSymbol)(Type_Proxy[\"Proxy\"].value);\n var v1 = genericShowArgs(dictGenericShowArgs)(v);\n if (v1.length === 0) {\n return ctor;\n };\n return \"(\" + ($foreign.intercalate(\" \")(Data_Semigroup.append(Data_Semigroup.semigroupArray)([ ctor ])(v1)) + \")\");\n }\n };\n };\n};\nvar genericShow$prime = function (dict) {\n return dict[\"genericShow'\"];\n};\nvar genericShowNoConstructors = {\n \"genericShow'\": function (a) {\n return genericShow$prime(genericShowNoConstructors)(a);\n }\n};\nvar genericShowSum = function (dictGenericShow) {\n return function (dictGenericShow1) {\n return {\n \"genericShow'\": function (v) {\n if (v instanceof Data_Generic_Rep.Inl) {\n return genericShow$prime(dictGenericShow)(v.value0);\n };\n if (v instanceof Data_Generic_Rep.Inr) {\n return genericShow$prime(dictGenericShow1)(v.value0);\n };\n throw new Error(\"Failed pattern match at Data.Show.Generic (line 26, column 1 - line 28, column 40): \" + [ v.constructor.name ]);\n }\n };\n };\n};\nvar genericShow = function (dictGeneric) {\n return function (dictGenericShow) {\n return function (x) {\n return genericShow$prime(dictGenericShow)(Data_Generic_Rep.from(dictGeneric)(x));\n };\n };\n};\nexport {\n genericShow$prime,\n genericShow,\n genericShowArgs,\n genericShowNoConstructors,\n genericShowArgsNoArguments,\n genericShowSum,\n genericShowArgsProduct,\n genericShowConstructor,\n genericShowArgsArgument\n};\n","export const intercalate = function (separator) {\n return function (xs) {\n return xs.join(separator);\n };\n};\n","/* global Symbol */\n\nvar hasArrayFrom = typeof Array.from === \"function\";\nvar hasStringIterator =\n typeof Symbol !== \"undefined\" &&\n Symbol != null &&\n typeof Symbol.iterator !== \"undefined\" &&\n typeof String.prototype[Symbol.iterator] === \"function\";\nvar hasFromCodePoint = typeof String.prototype.fromCodePoint === \"function\";\nvar hasCodePointAt = typeof String.prototype.codePointAt === \"function\";\n\nexport const _unsafeCodePointAt0 = function (fallback) {\n return hasCodePointAt\n ? function (str) { return str.codePointAt(0); }\n : fallback;\n};\n\nexport const _codePointAt = function (fallback) {\n return function (Just) {\n return function (Nothing) {\n return function (unsafeCodePointAt0) {\n return function (index) {\n return function (str) {\n var length = str.length;\n if (index < 0 || index >= length) return Nothing;\n if (hasStringIterator) {\n var iter = str[Symbol.iterator]();\n for (var i = index;; --i) {\n var o = iter.next();\n if (o.done) return Nothing;\n if (i === 0) return Just(unsafeCodePointAt0(o.value));\n }\n }\n return fallback(index)(str);\n };\n };\n };\n };\n };\n};\n\nexport const _countPrefix = function (fallback) {\n return function (unsafeCodePointAt0) {\n if (hasStringIterator) {\n return function (pred) {\n return function (str) {\n var iter = str[Symbol.iterator]();\n for (var cpCount = 0; ; ++cpCount) {\n var o = iter.next();\n if (o.done) return cpCount;\n var cp = unsafeCodePointAt0(o.value);\n if (!pred(cp)) return cpCount;\n }\n };\n };\n }\n return fallback;\n };\n};\n\nexport const _fromCodePointArray = function (singleton) {\n return hasFromCodePoint\n ? function (cps) {\n // Function.prototype.apply will fail for very large second parameters,\n // so we don't use it for arrays with 10,000 or more entries.\n if (cps.length < 10e3) {\n return String.fromCodePoint.apply(String, cps);\n }\n return cps.map(singleton).join(\"\");\n }\n : function (cps) {\n return cps.map(singleton).join(\"\");\n };\n};\n\nexport const _singleton = function (fallback) {\n return hasFromCodePoint ? String.fromCodePoint : fallback;\n};\n\nexport const _take = function (fallback) {\n return function (n) {\n if (hasStringIterator) {\n return function (str) {\n var accum = \"\";\n var iter = str[Symbol.iterator]();\n for (var i = 0; i < n; ++i) {\n var o = iter.next();\n if (o.done) return accum;\n accum += o.value;\n }\n return accum;\n };\n }\n return fallback(n);\n };\n};\n\nexport const _toCodePointArray = function (fallback) {\n return function (unsafeCodePointAt0) {\n if (hasArrayFrom) {\n return function (str) {\n return Array.from(str, unsafeCodePointAt0);\n };\n }\n return fallback;\n };\n};\n","// Generated by purs version 0.15.2\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Array from \"../Data.Array/index.js\";\nimport * as Data_Boolean from \"../Data.Boolean/index.js\";\nimport * as Data_Bounded from \"../Data.Bounded/index.js\";\nimport * as Data_Enum from \"../Data.Enum/index.js\";\nimport * as Data_EuclideanRing from \"../Data.EuclideanRing/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Int from \"../Data.Int/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Data_String_CodeUnits from \"../Data.String.CodeUnits/index.js\";\nimport * as Data_String_Common from \"../Data.String.Common/index.js\";\nimport * as Data_String_Unsafe from \"../Data.String.Unsafe/index.js\";\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nimport * as Data_Unfoldable from \"../Data.Unfoldable/index.js\";\nvar $runtime_lazy = function (name, moduleName, init) {\n var state = 0;\n var val;\n return function (lineNumber) {\n if (state === 2) return val;\n if (state === 1) throw new ReferenceError(name + \" was needed before it finished initializing (module \" + moduleName + \", line \" + lineNumber + \")\", moduleName, lineNumber);\n state = 1;\n val = init();\n state = 2;\n return val;\n };\n};\nvar CodePoint = function (x) {\n return x;\n};\nvar unsurrogate = function (lead) {\n return function (trail) {\n return (((lead - 55296 | 0) * 1024 | 0) + (trail - 56320 | 0) | 0) + 65536 | 0;\n };\n};\nvar showCodePoint = {\n show: function (v) {\n return \"(CodePoint 0x\" + (Data_String_Common.toUpper(Data_Int.toStringAs(Data_Int.hexadecimal)(v)) + \")\");\n }\n};\nvar isTrail = function (cu) {\n return 56320 <= cu && cu <= 57343;\n};\nvar isLead = function (cu) {\n return 55296 <= cu && cu <= 56319;\n};\nvar uncons = function (s) {\n var v = Data_String_CodeUnits.length(s);\n if (v === 0) {\n return Data_Maybe.Nothing.value;\n };\n if (v === 1) {\n return new Data_Maybe.Just({\n head: Data_Enum.fromEnum(Data_Enum.boundedEnumChar)(Data_String_Unsafe.charAt(0)(s)),\n tail: \"\"\n });\n };\n var cu1 = Data_Enum.fromEnum(Data_Enum.boundedEnumChar)(Data_String_Unsafe.charAt(1)(s));\n var cu0 = Data_Enum.fromEnum(Data_Enum.boundedEnumChar)(Data_String_Unsafe.charAt(0)(s));\n var $21 = isLead(cu0) && isTrail(cu1);\n if ($21) {\n return new Data_Maybe.Just({\n head: unsurrogate(cu0)(cu1),\n tail: Data_String_CodeUnits.drop(2)(s)\n });\n };\n return new Data_Maybe.Just({\n head: cu0,\n tail: Data_String_CodeUnits.drop(1)(s)\n });\n};\nvar unconsButWithTuple = function (s) {\n return Data_Functor.map(Data_Maybe.functorMaybe)(function (v) {\n return new Data_Tuple.Tuple(v.head, v.tail);\n })(uncons(s));\n};\nvar toCodePointArrayFallback = function (s) {\n return Data_Unfoldable.unfoldr(Data_Unfoldable.unfoldableArray)(unconsButWithTuple)(s);\n};\nvar unsafeCodePointAt0Fallback = function (s) {\n var cu0 = Data_Enum.fromEnum(Data_Enum.boundedEnumChar)(Data_String_Unsafe.charAt(0)(s));\n var $25 = isLead(cu0) && Data_String_CodeUnits.length(s) > 1;\n if ($25) {\n var cu1 = Data_Enum.fromEnum(Data_Enum.boundedEnumChar)(Data_String_Unsafe.charAt(1)(s));\n var $26 = isTrail(cu1);\n if ($26) {\n return unsurrogate(cu0)(cu1);\n };\n return cu0;\n };\n return cu0;\n};\nvar unsafeCodePointAt0 = /* #__PURE__ */ $foreign[\"_unsafeCodePointAt0\"](unsafeCodePointAt0Fallback);\nvar toCodePointArray = /* #__PURE__ */ $foreign[\"_toCodePointArray\"](toCodePointArrayFallback)(unsafeCodePointAt0);\nvar length = function ($52) {\n return Data_Array.length(toCodePointArray($52));\n};\nvar lastIndexOf = function (p) {\n return function (s) {\n return Data_Functor.map(Data_Maybe.functorMaybe)(function (i) {\n return length(Data_String_CodeUnits.take(i)(s));\n })(Data_String_CodeUnits.lastIndexOf(p)(s));\n };\n};\nvar indexOf = function (p) {\n return function (s) {\n return Data_Functor.map(Data_Maybe.functorMaybe)(function (i) {\n return length(Data_String_CodeUnits.take(i)(s));\n })(Data_String_CodeUnits.indexOf(p)(s));\n };\n};\nvar fromCharCode = /* #__PURE__ */ (function () {\n var $53 = Data_Enum.toEnumWithDefaults(Data_Enum.boundedEnumChar)(Data_Bounded.bottom(Data_Bounded.boundedChar))(Data_Bounded.top(Data_Bounded.boundedChar));\n return function ($54) {\n return Data_String_CodeUnits.singleton($53($54));\n };\n})();\nvar singletonFallback = function (v) {\n if (v <= 65535) {\n return fromCharCode(v);\n };\n var lead = Data_EuclideanRing.div(Data_EuclideanRing.euclideanRingInt)(v - 65536 | 0)(1024) + 55296 | 0;\n var trail = Data_EuclideanRing.mod(Data_EuclideanRing.euclideanRingInt)(v - 65536 | 0)(1024) + 56320 | 0;\n return fromCharCode(lead) + fromCharCode(trail);\n};\nvar fromCodePointArray = /* #__PURE__ */ $foreign[\"_fromCodePointArray\"](singletonFallback);\nvar singleton = /* #__PURE__ */ $foreign[\"_singleton\"](singletonFallback);\nvar takeFallback = function (n) {\n return function (v) {\n if (n < 1) {\n return \"\";\n };\n var v1 = uncons(v);\n if (v1 instanceof Data_Maybe.Just) {\n return singleton(v1.value0.head) + takeFallback(n - 1 | 0)(v1.value0.tail);\n };\n return v;\n };\n};\nvar take = /* #__PURE__ */ $foreign[\"_take\"](takeFallback);\nvar lastIndexOf$prime = function (p) {\n return function (i) {\n return function (s) {\n var i$prime = Data_String_CodeUnits.length(take(i)(s));\n return Data_Functor.map(Data_Maybe.functorMaybe)(function (k) {\n return length(Data_String_CodeUnits.take(k)(s));\n })(Data_String_CodeUnits[\"lastIndexOf$prime\"](p)(i$prime)(s));\n };\n };\n};\nvar splitAt = function (i) {\n return function (s) {\n var before = take(i)(s);\n return {\n before: before,\n after: Data_String_CodeUnits.drop(Data_String_CodeUnits.length(before))(s)\n };\n };\n};\nvar eqCodePoint = {\n eq: function (x) {\n return function (y) {\n return x === y;\n };\n }\n};\nvar ordCodePoint = {\n compare: function (x) {\n return function (y) {\n return Data_Ord.compare(Data_Ord.ordInt)(x)(y);\n };\n },\n Eq0: function () {\n return eqCodePoint;\n }\n};\nvar drop = function (n) {\n return function (s) {\n return Data_String_CodeUnits.drop(Data_String_CodeUnits.length(take(n)(s)))(s);\n };\n};\nvar indexOf$prime = function (p) {\n return function (i) {\n return function (s) {\n var s$prime = drop(i)(s);\n return Data_Functor.map(Data_Maybe.functorMaybe)(function (k) {\n return i + length(Data_String_CodeUnits.take(k)(s$prime)) | 0;\n })(Data_String_CodeUnits.indexOf(p)(s$prime));\n };\n };\n};\nvar countTail = function ($copy_p) {\n return function ($copy_s) {\n return function ($copy_accum) {\n var $tco_var_p = $copy_p;\n var $tco_var_s = $copy_s;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(p, s, accum) {\n var v = uncons(s);\n if (v instanceof Data_Maybe.Just) {\n var $39 = p(v.value0.head);\n if ($39) {\n $tco_var_p = p;\n $tco_var_s = v.value0.tail;\n $copy_accum = accum + 1 | 0;\n return;\n };\n $tco_done = true;\n return accum;\n };\n $tco_done = true;\n return accum;\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_p, $tco_var_s, $copy_accum);\n };\n return $tco_result;\n };\n };\n};\nvar countFallback = function (p) {\n return function (s) {\n return countTail(p)(s)(0);\n };\n};\nvar countPrefix = /* #__PURE__ */ $foreign[\"_countPrefix\"](countFallback)(unsafeCodePointAt0);\nvar dropWhile = function (p) {\n return function (s) {\n return drop(countPrefix(p)(s))(s);\n };\n};\nvar takeWhile = function (p) {\n return function (s) {\n return take(countPrefix(p)(s))(s);\n };\n};\nvar codePointFromChar = /* #__PURE__ */ (function () {\n var $55 = Data_Enum.fromEnum(Data_Enum.boundedEnumChar);\n return function ($56) {\n return CodePoint($55($56));\n };\n})();\nvar codePointAtFallback = function ($copy_n) {\n return function ($copy_s) {\n var $tco_var_n = $copy_n;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(n, s) {\n var v = uncons(s);\n if (v instanceof Data_Maybe.Just) {\n var $44 = n === 0;\n if ($44) {\n $tco_done = true;\n return new Data_Maybe.Just(v.value0.head);\n };\n $tco_var_n = n - 1 | 0;\n $copy_s = v.value0.tail;\n return;\n };\n $tco_done = true;\n return Data_Maybe.Nothing.value;\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_n, $copy_s);\n };\n return $tco_result;\n };\n};\nvar codePointAt = function (v) {\n return function (v1) {\n if (v < 0) {\n return Data_Maybe.Nothing.value;\n };\n if (v === 0 && v1 === \"\") {\n return Data_Maybe.Nothing.value;\n };\n if (v === 0) {\n return new Data_Maybe.Just(unsafeCodePointAt0(v1));\n };\n return $foreign[\"_codePointAt\"](codePointAtFallback)(Data_Maybe.Just.create)(Data_Maybe.Nothing.value)(unsafeCodePointAt0)(v)(v1);\n };\n};\nvar boundedCodePoint = {\n bottom: 0,\n top: 1114111,\n Ord0: function () {\n return ordCodePoint;\n }\n};\nvar boundedEnumCodePoint = /* #__PURE__ */ (function () {\n return {\n cardinality: 1114111 + 1 | 0,\n fromEnum: function (v) {\n return v;\n },\n toEnum: function (n) {\n if (n >= 0 && n <= 1114111) {\n return new Data_Maybe.Just(n);\n };\n if (Data_Boolean.otherwise) {\n return Data_Maybe.Nothing.value;\n };\n throw new Error(\"Failed pattern match at Data.String.CodePoints (line 63, column 1 - line 68, column 26): \" + [ n.constructor.name ]);\n },\n Bounded0: function () {\n return boundedCodePoint;\n },\n Enum1: function () {\n return $lazy_enumCodePoint(0);\n }\n };\n})();\nvar $lazy_enumCodePoint = /* #__PURE__ */ $runtime_lazy(\"enumCodePoint\", \"Data.String.CodePoints\", function () {\n return {\n succ: Data_Enum.defaultSucc(Data_Enum.toEnum(boundedEnumCodePoint))(Data_Enum.fromEnum(boundedEnumCodePoint)),\n pred: Data_Enum.defaultPred(Data_Enum.toEnum(boundedEnumCodePoint))(Data_Enum.fromEnum(boundedEnumCodePoint)),\n Ord0: function () {\n return ordCodePoint;\n }\n };\n});\nvar enumCodePoint = /* #__PURE__ */ $lazy_enumCodePoint(59);\nexport {\n codePointFromChar,\n singleton,\n fromCodePointArray,\n toCodePointArray,\n codePointAt,\n uncons,\n length,\n countPrefix,\n indexOf,\n indexOf$prime,\n lastIndexOf,\n lastIndexOf$prime,\n take,\n takeWhile,\n drop,\n dropWhile,\n splitAt,\n eqCodePoint,\n ordCodePoint,\n showCodePoint,\n boundedCodePoint,\n enumCodePoint,\n boundedEnumCodePoint\n};\nexport {\n contains,\n stripPrefix,\n stripSuffix\n} from \"../Data.String.CodeUnits/index.js\";\n","export const showRegexImpl = function (r) {\n return \"\" + r;\n};\n\nexport const regexImpl = function (left) {\n return function (right) {\n return function (s1) {\n return function (s2) {\n try {\n return right(new RegExp(s1, s2));\n } catch (e) {\n return left(e.message);\n }\n };\n };\n };\n};\n\nexport const source = function (r) {\n return r.source;\n};\n\nexport const flagsImpl = function (r) {\n return {\n multiline: r.multiline,\n ignoreCase: r.ignoreCase,\n global: r.global,\n dotAll: r.dotAll,\n sticky: !!r.sticky,\n unicode: !!r.unicode\n };\n};\n\nexport const test = function (r) {\n return function (s) {\n var lastIndex = r.lastIndex;\n var result = r.test(s);\n r.lastIndex = lastIndex;\n return result;\n };\n};\n\nexport const _match = function (just) {\n return function (nothing) {\n return function (r) {\n return function (s) {\n var m = s.match(r);\n if (m == null || m.length === 0) {\n return nothing;\n } else {\n for (var i = 0; i < m.length; i++) {\n m[i] = m[i] == null ? nothing : just(m[i]);\n }\n return just(m);\n }\n };\n };\n };\n};\n\nexport const replace = function (r) {\n return function (s1) {\n return function (s2) {\n return s2.replace(r, s1);\n };\n };\n};\n\nexport const _replaceBy = function (just) {\n return function (nothing) {\n return function (r) {\n return function (f) {\n return function (s) {\n return s.replace(r, function (match) {\n var groups = [];\n var group, i = 1;\n while (typeof (group = arguments[i++]) !== \"number\") {\n groups.push(group == null ? nothing : just(group));\n }\n return f(match)(groups);\n });\n };\n };\n };\n };\n};\n\nexport const _search = function (just) {\n return function (nothing) {\n return function (r) {\n return function (s) {\n var result = s.search(r);\n return result === -1 ? nothing : just(result);\n };\n };\n };\n};\n\nexport const split = function (r) {\n return function (s) {\n return s.split(r);\n };\n};\n","// Generated by purs version 0.15.2\nimport * as Control_Alternative from \"../Control.Alternative/index.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nimport * as Data_String_Common from \"../Data.String.Common/index.js\";\nvar RegexFlags = function (x) {\n return x;\n};\nvar unicode = {\n global: false,\n ignoreCase: false,\n multiline: false,\n dotAll: false,\n sticky: false,\n unicode: true\n};\nvar sticky = {\n global: false,\n ignoreCase: false,\n multiline: false,\n dotAll: false,\n sticky: true,\n unicode: false\n};\nvar showRegexFlags = {\n show: function (v) {\n var usedFlags = Data_Semigroup.append(Data_Semigroup.semigroupArray)([ ])(Data_Semigroup.append(Data_Semigroup.semigroupArray)(Data_Functor.voidLeft(Data_Functor.functorArray)(Control_Alternative.guard(Control_Alternative.alternativeArray)(v.global))(\"global\"))(Data_Semigroup.append(Data_Semigroup.semigroupArray)(Data_Functor.voidLeft(Data_Functor.functorArray)(Control_Alternative.guard(Control_Alternative.alternativeArray)(v.ignoreCase))(\"ignoreCase\"))(Data_Semigroup.append(Data_Semigroup.semigroupArray)(Data_Functor.voidLeft(Data_Functor.functorArray)(Control_Alternative.guard(Control_Alternative.alternativeArray)(v.multiline))(\"multiline\"))(Data_Semigroup.append(Data_Semigroup.semigroupArray)(Data_Functor.voidLeft(Data_Functor.functorArray)(Control_Alternative.guard(Control_Alternative.alternativeArray)(v.dotAll))(\"dotAll\"))(Data_Semigroup.append(Data_Semigroup.semigroupArray)(Data_Functor.voidLeft(Data_Functor.functorArray)(Control_Alternative.guard(Control_Alternative.alternativeArray)(v.sticky))(\"sticky\"))(Data_Functor.voidLeft(Data_Functor.functorArray)(Control_Alternative.guard(Control_Alternative.alternativeArray)(v.unicode))(\"unicode\")))))));\n var $4 = Data_Eq.eq(Data_Eq.eqArray(Data_Eq.eqString))(usedFlags)([ ]);\n if ($4) {\n return \"noFlags\";\n };\n return \"(\" + (Data_String_Common.joinWith(\" <> \")(usedFlags) + \")\");\n }\n};\nvar semigroupRegexFlags = {\n append: function (v) {\n return function (v1) {\n return {\n global: v.global || v1.global,\n ignoreCase: v.ignoreCase || v1.ignoreCase,\n multiline: v.multiline || v1.multiline,\n dotAll: v.dotAll || v1.dotAll,\n sticky: v.sticky || v1.sticky,\n unicode: v.unicode || v1.unicode\n };\n };\n }\n};\nvar noFlags = {\n global: false,\n ignoreCase: false,\n multiline: false,\n dotAll: false,\n sticky: false,\n unicode: false\n};\nvar newtypeRegexFlags = {\n Coercible0: function () {\n return undefined;\n }\n};\nvar multiline = {\n global: false,\n ignoreCase: false,\n multiline: true,\n dotAll: false,\n sticky: false,\n unicode: false\n};\nvar monoidRegexFlags = {\n mempty: noFlags,\n Semigroup0: function () {\n return semigroupRegexFlags;\n }\n};\nvar ignoreCase = {\n global: false,\n ignoreCase: true,\n multiline: false,\n dotAll: false,\n sticky: false,\n unicode: false\n};\nvar global = {\n global: true,\n ignoreCase: false,\n multiline: false,\n dotAll: false,\n sticky: false,\n unicode: false\n};\nvar eqRegexFlags = /* #__PURE__ */ Data_Eq.eqRec()(/* #__PURE__ */ Data_Eq.eqRowCons(/* #__PURE__ */ Data_Eq.eqRowCons(/* #__PURE__ */ Data_Eq.eqRowCons(/* #__PURE__ */ Data_Eq.eqRowCons(/* #__PURE__ */ Data_Eq.eqRowCons(/* #__PURE__ */ Data_Eq.eqRowCons(Data_Eq.eqRowNil)()({\n reflectSymbol: function () {\n return \"unicode\";\n }\n})(Data_Eq.eqBoolean))()({\n reflectSymbol: function () {\n return \"sticky\";\n }\n})(Data_Eq.eqBoolean))()({\n reflectSymbol: function () {\n return \"multiline\";\n }\n})(Data_Eq.eqBoolean))()({\n reflectSymbol: function () {\n return \"ignoreCase\";\n }\n})(Data_Eq.eqBoolean))()({\n reflectSymbol: function () {\n return \"global\";\n }\n})(Data_Eq.eqBoolean))()({\n reflectSymbol: function () {\n return \"dotAll\";\n }\n})(Data_Eq.eqBoolean));\nvar dotAll = {\n global: false,\n ignoreCase: false,\n multiline: false,\n dotAll: true,\n sticky: false,\n unicode: false\n};\nexport {\n RegexFlags,\n noFlags,\n global,\n ignoreCase,\n multiline,\n sticky,\n unicode,\n dotAll,\n newtypeRegexFlags,\n semigroupRegexFlags,\n monoidRegexFlags,\n eqRegexFlags,\n showRegexFlags\n};\n","// Generated by purs version 0.15.2\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Either from \"../Data.Either/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_String_CodeUnits from \"../Data.String.CodeUnits/index.js\";\nimport * as Data_String_Regex_Flags from \"../Data.String.Regex.Flags/index.js\";\nvar showRegex = {\n show: $foreign.showRegexImpl\n};\nvar search = /* #__PURE__ */ (function () {\n return $foreign[\"_search\"](Data_Maybe.Just.create)(Data_Maybe.Nothing.value);\n})();\nvar replace$prime = /* #__PURE__ */ (function () {\n return $foreign[\"_replaceBy\"](Data_Maybe.Just.create)(Data_Maybe.Nothing.value);\n})();\nvar renderFlags = function (v) {\n return (function () {\n if (v.global) {\n return \"g\";\n };\n return \"\";\n })() + ((function () {\n if (v.ignoreCase) {\n return \"i\";\n };\n return \"\";\n })() + ((function () {\n if (v.multiline) {\n return \"m\";\n };\n return \"\";\n })() + ((function () {\n if (v.dotAll) {\n return \"s\";\n };\n return \"\";\n })() + ((function () {\n if (v.sticky) {\n return \"y\";\n };\n return \"\";\n })() + (function () {\n if (v.unicode) {\n return \"u\";\n };\n return \"\";\n })()))));\n};\nvar regex = function (s) {\n return function (f) {\n return $foreign.regexImpl(Data_Either.Left.create)(Data_Either.Right.create)(s)(renderFlags(f));\n };\n};\nvar parseFlags = function (s) {\n return {\n global: Data_String_CodeUnits.contains(\"g\")(s),\n ignoreCase: Data_String_CodeUnits.contains(\"i\")(s),\n multiline: Data_String_CodeUnits.contains(\"m\")(s),\n dotAll: Data_String_CodeUnits.contains(\"s\")(s),\n sticky: Data_String_CodeUnits.contains(\"y\")(s),\n unicode: Data_String_CodeUnits.contains(\"u\")(s)\n };\n};\nvar match = /* #__PURE__ */ (function () {\n return $foreign[\"_match\"](Data_Maybe.Just.create)(Data_Maybe.Nothing.value);\n})();\nvar flags = function ($8) {\n return Data_String_Regex_Flags.RegexFlags($foreign.flagsImpl($8));\n};\nexport {\n source,\n test,\n replace,\n split\n} from \"./foreign.js\";\nexport {\n regex,\n flags,\n renderFlags,\n parseFlags,\n match,\n replace$prime,\n search,\n showRegex\n};\n","// Generated by purs version 0.15.2\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Data_Either from \"../Data.Either/index.js\";\nimport * as Data_String_Regex from \"../Data.String.Regex/index.js\";\nimport * as Partial_Unsafe from \"../Partial.Unsafe/index.js\";\nvar unsafeRegex = function (s) {\n return function (f) {\n return Data_Either.either(Partial_Unsafe.unsafeCrashWith)(Control_Category.identity(Control_Category.categoryFn))(Data_String_Regex.regex(s)(f));\n };\n};\nexport {\n unsafeRegex\n};\n","// Generated by purs version 0.15.2\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Array from \"../Data.Array/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Show from \"../Data.Show/index.js\";\nimport * as Data_String_CodePoints from \"../Data.String.CodePoints/index.js\";\nimport * as Data_String_CodeUnits from \"../Data.String.CodeUnits/index.js\";\nimport * as Data_String_Common from \"../Data.String.Common/index.js\";\nimport * as Data_String_Regex from \"../Data.String.Regex/index.js\";\nimport * as Data_String_Regex_Flags from \"../Data.String.Regex.Flags/index.js\";\nimport * as Data_String_Regex_Unsafe from \"../Data.String.Regex.Unsafe/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nvar NFC = /* #__PURE__ */ (function () {\n function NFC() {\n\n };\n NFC.value = new NFC();\n return NFC;\n})();\nvar NFD = /* #__PURE__ */ (function () {\n function NFD() {\n\n };\n NFD.value = new NFD();\n return NFD;\n})();\nvar NFKC = /* #__PURE__ */ (function () {\n function NFKC() {\n\n };\n NFKC.value = new NFKC();\n return NFKC;\n})();\nvar NFKD = /* #__PURE__ */ (function () {\n function NFKD() {\n\n };\n NFKD.value = new NFKD();\n return NFKD;\n})();\nvar words = function (s) {\n return $foreign.wordsImpl(s);\n};\nvar unsafeRepeat = function (n) {\n return function (s) {\n return $foreign.unsafeRepeatImpl(n, s);\n };\n};\nvar unsafeCodePointAt$prime = function (n) {\n return function (s) {\n return $foreign.unsafeCodePointAtPrimeImpl(n, s);\n };\n};\nvar unsafeCodePointAt = function (n) {\n return function (s) {\n return $foreign.unsafeCodePointAtImpl(n, s);\n };\n};\nvar trimStart = function (s) {\n return s.trimStart(Data_Unit.unit);\n};\nvar trimEnd = function (s) {\n return s.trimEnd(Data_Unit.unit);\n};\nvar toCharArray = function (s) {\n return $foreign.toCharArrayImpl(s);\n};\nvar stripDiacritics = function (s) {\n return $foreign.stripDiacriticsImpl(s);\n};\nvar stripChars = function (chars) {\n return function (s) {\n return $foreign.stripCharsImpl(chars, s);\n };\n};\nvar startsWith$prime = function (searchString) {\n return function (position) {\n return function (s) {\n return $foreign.startsWithPrimeImpl(searchString, position, s);\n };\n };\n};\nvar startsWith = function (searchString) {\n return function (s) {\n return $foreign.startsWithImpl(searchString, s);\n };\n};\nvar showNormalizationForm = {\n show: function (v) {\n if (v instanceof NFC) {\n return \"NFC\";\n };\n if (v instanceof NFD) {\n return \"NFD\";\n };\n if (v instanceof NFKC) {\n return \"NFKC\";\n };\n if (v instanceof NFKD) {\n return \"NFKD\";\n };\n throw new Error(\"Failed pattern match at Data.String.Utils (line 264, column 1 - line 268, column 21): \" + [ v.constructor.name ]);\n }\n};\nvar repeat = function (n) {\n return function (s) {\n return $foreign.repeatImpl(Data_Maybe.Just.create, Data_Maybe.Nothing.value, n, s);\n };\n};\nvar padStart$prime = function (n) {\n return function (s) {\n return $foreign.padStartPrimeImpl(n, s);\n };\n};\nvar padStart = function (n) {\n return function (s) {\n var numberOfCodeUnits = Data_String_CodeUnits.length(s);\n var numberOfCodePoints = Data_String_CodePoints.length(s);\n return padStart$prime((n + numberOfCodeUnits | 0) - numberOfCodePoints | 0)(s);\n };\n};\nvar padEnd$prime = function (n) {\n return function (s) {\n return $foreign.padEndPrimeImpl(n, s);\n };\n};\nvar padEnd = function (n) {\n return function (s) {\n var numberOfCodeUnits = Data_String_CodeUnits.length(s);\n var numberOfCodePoints = Data_String_CodePoints.length(s);\n return padEnd$prime((n + numberOfCodeUnits | 0) - numberOfCodePoints | 0)(s);\n };\n};\nvar normalize$prime = function (nf) {\n return function (s) {\n return $foreign.normalizePrimeImpl(Data_Show.show(showNormalizationForm)(nf), s);\n };\n};\nvar normalize = function (s) {\n return $foreign.normalizeImpl(s);\n};\nvar lines = function (s) {\n return $foreign.linesImpl(s);\n};\nvar stripMarginWith = function (delimiter) {\n var go = function (line) {\n var trimmed = trimStart(line);\n var $2 = startsWith(delimiter)(trimmed);\n if ($2) {\n return Data_String_CodePoints.drop(Data_String_CodePoints.length(delimiter))(trimmed);\n };\n return line;\n };\n var $3 = Data_String_Common.joinWith(\"\\x0a\");\n var $4 = Data_Functor.map(Data_Functor.functorArray)(go);\n return function ($5) {\n return $3($4(lines(Data_String_Common.trim($5))));\n };\n};\nvar stripMargin = /* #__PURE__ */ stripMarginWith(\"|\");\nvar length = function () {\n return function (s) {\n return $foreign.lengthImpl(s);\n };\n};\nvar includes$prime = function (needle) {\n return function (position) {\n return function (haystack) {\n return $foreign.includesPrimeImpl(needle, position, haystack);\n };\n };\n};\nvar includes = function (searchString) {\n return function (s) {\n return $foreign.includesImpl(searchString, s);\n };\n};\nvar fromCharArray = function (arr) {\n return $foreign.fromCharArrayImpl(arr);\n};\nvar mapChars = function (f) {\n var $6 = Data_Functor.map(Data_Functor.functorArray)(f);\n return function ($7) {\n return fromCharArray($6(toCharArray($7)));\n };\n};\nvar filter = function (p) {\n var $8 = Data_Array.filter(p);\n return function ($9) {\n return fromCharArray($8(toCharArray($9)));\n };\n};\nvar escapeRegex = function (s) {\n return $foreign.escapeRegexImpl(s);\n};\nvar replaceAll = function () {\n var mkRegex = function (str) {\n return Data_String_Regex_Unsafe.unsafeRegex(escapeRegex(str))(Data_String_Regex_Flags.global);\n };\n return function ($10) {\n return Data_String_Regex.replace(mkRegex($10));\n };\n};\nvar endsWith$prime = function (searchString) {\n return function (position) {\n return function (s) {\n return $foreign.endsWithPrimeImpl(searchString, position, s);\n };\n };\n};\nvar endsWith = function (searchString) {\n return function (s) {\n return $foreign.endsWithImpl(searchString, s);\n };\n};\nvar codePointAt$prime = function (n) {\n return function (s) {\n return $foreign.codePointAtPrimeImpl(Data_Maybe.Just.create, Data_Maybe.Nothing.value, n, s);\n };\n};\nvar codePointAt = function () {\n return function (n) {\n return function (s) {\n return $foreign.codePointAtImpl(Data_Maybe.Just.create, Data_Maybe.Nothing.value, n, s);\n };\n };\n};\nvar charAt = function (n) {\n return function (str) {\n return Data_Array.index(toCharArray(str))(n);\n };\n};\nexport {\n NFC,\n NFD,\n NFKC,\n NFKD,\n charAt,\n codePointAt,\n codePointAt$prime,\n endsWith,\n endsWith$prime,\n escapeRegex,\n filter,\n fromCharArray,\n includes,\n includes$prime,\n length,\n lines,\n mapChars,\n normalize,\n normalize$prime,\n padEnd,\n padEnd$prime,\n padStart,\n padStart$prime,\n repeat,\n replaceAll,\n startsWith,\n startsWith$prime,\n stripChars,\n stripDiacritics,\n stripMargin,\n stripMarginWith,\n toCharArray,\n trimEnd,\n trimStart,\n unsafeCodePointAt,\n unsafeCodePointAt$prime,\n unsafeRepeat,\n words,\n showNormalizationForm\n};\n","\"use strict\";\n\nexport function codePointAtImpl (just, nothing, i, s) {\n var codePointArray = Array.from(s);\n var isWithinRange = i >= 0 && i < codePointArray.length;\n\n return isWithinRange ? just(codePointArray[i].codePointAt(0)) : nothing;\n}\n\nexport function codePointAtPrimeImpl (just, nothing, i, s) {\n return i >= 0 && i < s.length ? just(s.codePointAt(i)) : nothing;\n}\n\nexport function endsWithImpl (searchString, s) {\n return s.endsWith(searchString);\n}\n\nexport function endsWithPrimeImpl (searchString, position, s) {\n return s.endsWith(searchString, position);\n}\n\nexport function escapeRegexImpl (str) {\n return str.replace(/[.*+?^${}()|[\\]\\-\\\\]/g, \"\\\\$&\");\n}\n\nexport function fromCharArrayImpl (array) {\n return array.join(\"\");\n}\n\nexport function includesImpl (searchString, str) {\n return str.includes(searchString);\n}\n\nexport function includesPrimeImpl (needle, position, haystack) {\n // For negative `position` values, we search from the beginning of the\n // string. This is in accordance with the native\n // `String.prototype.include` function.\n var pos = Math.max(0, position);\n\n // Converting to arrays takes care of any surrogate code points\n var needleA = Array.from(needle);\n var haystackA = Array.from(haystack).slice(pos);\n var needleALen = needleA.length;\n\n var maxIndex = haystackA.length + 1 - needleALen;\n var found = false;\n var i;\n\n // Naive implementation, at some point we should check whether Boyer-Moore\n // or Knuth-Morris-Pratt are worthwhile\n for (i = 0; i < maxIndex; i++) {\n if (needleA.every(function (e, j) { return e === haystackA[i+j]; })) {\n found = true;\n break;\n }\n }\n\n return found;\n}\n\nexport function lengthImpl (str) {\n return Array.from(str).length;\n}\n\nexport function linesImpl (str) {\n // See http://www.unicode.org/reports/tr18/#RL1.6\n return str.split(/\\r\\n|[\\n\\v\\f\\r\\u0085\\u2028\\u2029]/);\n}\n\nexport function normalizeImpl (str) {\n return str.normalize();\n}\n\nexport function normalizePrimeImpl (normalizationForm, str) {\n return str.normalize(normalizationForm);\n}\n\nexport function padEndPrimeImpl (targetLength, str) {\n return str.padEnd(targetLength);\n}\n\nexport function padStartPrimeImpl (targetLength, str) {\n return str.padStart(targetLength);\n}\n\nexport function repeatImpl (just, nothing, n, str) {\n var result;\n\n try {\n result = just(str.repeat(n));\n }\n catch (error) {\n result = nothing;\n }\n\n return result;\n}\n\nexport function startsWithImpl (searchString, s) {\n return s.startsWith(searchString);\n}\n\nexport function startsWithPrimeImpl (searchString, position, s) {\n return s.startsWith(searchString, position);\n}\n\nexport function stripCharsImpl (chars, s) {\n return s.replace(RegExp(\"[\" + escapeRegexImpl(chars) + \"]\", \"g\"), \"\");\n}\n\nexport function stripDiacriticsImpl (str) {\n return str.normalize(\"NFD\").replace(/[\\u0300-\\u036f]/g, \"\");\n}\n\nexport function toCharArrayImpl (str) {\n return Array.from(str);\n}\n\nexport function unsafeCodePointAtImpl (i, s) {\n var codePointArray = Array.from(s);\n var isWithinRange = i >= 0 && i < codePointArray.length;\n\n if (isWithinRange) {\n return codePointArray[i].codePointAt(0);\n }\n else {\n throw new Error(\"Data.String.Utils.unsafeCodePointAt: Invalid index\");\n }\n}\n\nexport function unsafeCodePointAtPrimeImpl (i, s) {\n if (i >= 0 && i < s.length) {\n return s.codePointAt(i);\n }\n else {\n throw new Error(\"Data.String.Utils.unsafeCodePointAt': Invalid index\");\n }\n}\n\nexport function unsafeRepeatImpl (n, str) {\n try {\n return str.repeat(n);\n }\n catch (error) {\n throw new Error(\"Data.String.Utils.unsafeRepeat: Invalid count\");\n }\n}\n\nexport function wordsImpl (s) {\n // Split at every Unicode whitespace character (25 as of Unicode 12.1)\n return s.split(/[\\u000a-\\u000d\\u0085\\u2028\\u2029\\u0009\\u0020\\u00a0\\u1680\\u2000-\\u200a\\u202f\\u205f\\u3000]+/);\n}\n","// Generated by purs version 0.15.2\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Apply from \"../Control.Apply/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Control_Monad from \"../Control.Monad/index.js\";\nimport * as Control_Monad_Cont_Class from \"../Control.Monad.Cont.Class/index.js\";\nimport * as Control_Monad_Error_Class from \"../Control.Monad.Error.Class/index.js\";\nimport * as Control_Monad_Reader_Class from \"../Control.Monad.Reader.Class/index.js\";\nimport * as Control_Monad_Rec_Class from \"../Control.Monad.Rec.Class/index.js\";\nimport * as Control_Monad_State_Class from \"../Control.Monad.State.Class/index.js\";\nimport * as Control_Monad_Trans_Class from \"../Control.Monad.Trans.Class/index.js\";\nimport * as Control_Monad_Writer_Class from \"../Control.Monad.Writer.Class/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Monoid from \"../Data.Monoid/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nimport * as Effect_Class from \"../Effect.Class/index.js\";\nvar MaybeT = function (x) {\n return x;\n};\nvar runMaybeT = function (v) {\n return v;\n};\nvar newtypeMaybeT = {\n Coercible0: function () {\n return undefined;\n }\n};\nvar monadTransMaybeT = {\n lift: function (dictMonad) {\n var $71 = Control_Monad.liftM1(dictMonad)(Data_Maybe.Just.create);\n return function ($72) {\n return MaybeT($71($72));\n };\n }\n};\nvar mapMaybeT = function (f) {\n return function (v) {\n return f(v);\n };\n};\nvar functorMaybeT = function (dictFunctor) {\n return {\n map: function (f) {\n return function (v) {\n return Data_Functor.map(dictFunctor)(Data_Functor.map(Data_Maybe.functorMaybe)(f))(v);\n };\n }\n };\n};\nvar monadMaybeT = function (dictMonad) {\n return {\n Applicative0: function () {\n return applicativeMaybeT(dictMonad);\n },\n Bind1: function () {\n return bindMaybeT(dictMonad);\n }\n };\n};\nvar bindMaybeT = function (dictMonad) {\n return {\n bind: function (v) {\n return function (f) {\n return Control_Bind.bind(dictMonad.Bind1())(v)(function (v1) {\n if (v1 instanceof Data_Maybe.Nothing) {\n return Control_Applicative.pure(dictMonad.Applicative0())(Data_Maybe.Nothing.value);\n };\n if (v1 instanceof Data_Maybe.Just) {\n var v2 = f(v1.value0);\n return v2;\n };\n throw new Error(\"Failed pattern match at Control.Monad.Maybe.Trans (line 54, column 11 - line 56, column 42): \" + [ v1.constructor.name ]);\n });\n };\n },\n Apply0: function () {\n return applyMaybeT(dictMonad);\n }\n };\n};\nvar applyMaybeT = function (dictMonad) {\n return {\n apply: Control_Monad.ap(monadMaybeT(dictMonad)),\n Functor0: function () {\n return functorMaybeT(((dictMonad.Bind1()).Apply0()).Functor0());\n }\n };\n};\nvar applicativeMaybeT = function (dictMonad) {\n return {\n pure: (function () {\n var $73 = Control_Applicative.pure(dictMonad.Applicative0());\n return function ($74) {\n return MaybeT($73(Data_Maybe.Just.create($74)));\n };\n })(),\n Apply0: function () {\n return applyMaybeT(dictMonad);\n }\n };\n};\nvar semigroupMaybeT = function (dictMonad) {\n return function (dictSemigroup) {\n return {\n append: Control_Apply.lift2(applyMaybeT(dictMonad))(Data_Semigroup.append(dictSemigroup))\n };\n };\n};\nvar monadAskMaybeT = function (dictMonadAsk) {\n return {\n ask: Control_Monad_Trans_Class.lift(monadTransMaybeT)(dictMonadAsk.Monad0())(Control_Monad_Reader_Class.ask(dictMonadAsk)),\n Monad0: function () {\n return monadMaybeT(dictMonadAsk.Monad0());\n }\n };\n};\nvar monadReaderMaybeT = function (dictMonadReader) {\n return {\n local: function (f) {\n return mapMaybeT(Control_Monad_Reader_Class.local(dictMonadReader)(f));\n },\n MonadAsk0: function () {\n return monadAskMaybeT(dictMonadReader.MonadAsk0());\n }\n };\n};\nvar monadContMaybeT = function (dictMonadCont) {\n return {\n callCC: function (f) {\n return Control_Monad_Cont_Class.callCC(dictMonadCont)(function (c) {\n var v = f(function (a) {\n return c(new Data_Maybe.Just(a));\n });\n return v;\n });\n },\n Monad0: function () {\n return monadMaybeT(dictMonadCont.Monad0());\n }\n };\n};\nvar monadEffectMaybe = function (dictMonadEffect) {\n return {\n liftEffect: (function () {\n var $75 = Control_Monad_Trans_Class.lift(monadTransMaybeT)(dictMonadEffect.Monad0());\n var $76 = Effect_Class.liftEffect(dictMonadEffect);\n return function ($77) {\n return $75($76($77));\n };\n })(),\n Monad0: function () {\n return monadMaybeT(dictMonadEffect.Monad0());\n }\n };\n};\nvar monadRecMaybeT = function (dictMonadRec) {\n return {\n tailRecM: function (f) {\n var $78 = Control_Monad_Rec_Class.tailRecM(dictMonadRec)(function (a) {\n var v = f(a);\n return Control_Bind.bind((dictMonadRec.Monad0()).Bind1())(v)(function (m$prime) {\n return Control_Applicative.pure((dictMonadRec.Monad0()).Applicative0())((function () {\n if (m$prime instanceof Data_Maybe.Nothing) {\n return new Control_Monad_Rec_Class.Done(Data_Maybe.Nothing.value);\n };\n if (m$prime instanceof Data_Maybe.Just && m$prime.value0 instanceof Control_Monad_Rec_Class.Loop) {\n return new Control_Monad_Rec_Class.Loop(m$prime.value0.value0);\n };\n if (m$prime instanceof Data_Maybe.Just && m$prime.value0 instanceof Control_Monad_Rec_Class.Done) {\n return new Control_Monad_Rec_Class.Done(new Data_Maybe.Just(m$prime.value0.value0));\n };\n throw new Error(\"Failed pattern match at Control.Monad.Maybe.Trans (line 82, column 16 - line 85, column 43): \" + [ m$prime.constructor.name ]);\n })());\n });\n });\n return function ($79) {\n return MaybeT($78($79));\n };\n },\n Monad0: function () {\n return monadMaybeT(dictMonadRec.Monad0());\n }\n };\n};\nvar monadStateMaybeT = function (dictMonadState) {\n return {\n state: function (f) {\n return Control_Monad_Trans_Class.lift(monadTransMaybeT)(dictMonadState.Monad0())(Control_Monad_State_Class.state(dictMonadState)(f));\n },\n Monad0: function () {\n return monadMaybeT(dictMonadState.Monad0());\n }\n };\n};\nvar monadTellMaybeT = function (dictMonadTell) {\n return {\n tell: (function () {\n var $80 = Control_Monad_Trans_Class.lift(monadTransMaybeT)(dictMonadTell.Monad1());\n var $81 = Control_Monad_Writer_Class.tell(dictMonadTell);\n return function ($82) {\n return $80($81($82));\n };\n })(),\n Semigroup0: dictMonadTell.Semigroup0,\n Monad1: function () {\n return monadMaybeT(dictMonadTell.Monad1());\n }\n };\n};\nvar monadWriterMaybeT = function (dictMonadWriter) {\n return {\n listen: mapMaybeT(function (m) {\n return Control_Bind.bind(((dictMonadWriter.MonadTell1()).Monad1()).Bind1())(Control_Monad_Writer_Class.listen(dictMonadWriter)(m))(function (v) {\n return Control_Applicative.pure(((dictMonadWriter.MonadTell1()).Monad1()).Applicative0())(Data_Functor.map(Data_Maybe.functorMaybe)(function (r) {\n return new Data_Tuple.Tuple(r, v.value1);\n })(v.value0));\n });\n }),\n pass: mapMaybeT(function (m) {\n return Control_Monad_Writer_Class.pass(dictMonadWriter)(Control_Bind.bind(((dictMonadWriter.MonadTell1()).Monad1()).Bind1())(m)(function (a) {\n return Control_Applicative.pure(((dictMonadWriter.MonadTell1()).Monad1()).Applicative0())((function () {\n if (a instanceof Data_Maybe.Nothing) {\n return new Data_Tuple.Tuple(Data_Maybe.Nothing.value, Control_Category.identity(Control_Category.categoryFn));\n };\n if (a instanceof Data_Maybe.Just) {\n return new Data_Tuple.Tuple(new Data_Maybe.Just(a.value0.value0), a.value0.value1);\n };\n throw new Error(\"Failed pattern match at Control.Monad.Maybe.Trans (line 119, column 10 - line 121, column 43): \" + [ a.constructor.name ]);\n })());\n }));\n }),\n Monoid0: dictMonadWriter.Monoid0,\n MonadTell1: function () {\n return monadTellMaybeT(dictMonadWriter.MonadTell1());\n }\n };\n};\nvar monadThrowMaybeT = function (dictMonadThrow) {\n return {\n throwError: function (e) {\n return Control_Monad_Trans_Class.lift(monadTransMaybeT)(dictMonadThrow.Monad0())(Control_Monad_Error_Class.throwError(dictMonadThrow)(e));\n },\n Monad0: function () {\n return monadMaybeT(dictMonadThrow.Monad0());\n }\n };\n};\nvar monadErrorMaybeT = function (dictMonadError) {\n return {\n catchError: function (v) {\n return function (h) {\n return Control_Monad_Error_Class.catchError(dictMonadError)(v)(function (a) {\n var v1 = h(a);\n return v1;\n });\n };\n },\n MonadThrow0: function () {\n return monadThrowMaybeT(dictMonadError.MonadThrow0());\n }\n };\n};\nvar monoidMaybeT = function (dictMonad) {\n return function (dictMonoid) {\n return {\n mempty: Control_Applicative.pure(applicativeMaybeT(dictMonad))(Data_Monoid.mempty(dictMonoid)),\n Semigroup0: function () {\n return semigroupMaybeT(dictMonad)(dictMonoid.Semigroup0());\n }\n };\n };\n};\nvar altMaybeT = function (dictMonad) {\n return {\n alt: function (v) {\n return function (v1) {\n return Control_Bind.bind(dictMonad.Bind1())(v)(function (m) {\n if (m instanceof Data_Maybe.Nothing) {\n return v1;\n };\n return Control_Applicative.pure(dictMonad.Applicative0())(m);\n });\n };\n },\n Functor0: function () {\n return functorMaybeT(((dictMonad.Bind1()).Apply0()).Functor0());\n }\n };\n};\nvar plusMaybeT = function (dictMonad) {\n return {\n empty: Control_Applicative.pure(dictMonad.Applicative0())(Data_Maybe.Nothing.value),\n Alt0: function () {\n return altMaybeT(dictMonad);\n }\n };\n};\nvar alternativeMaybeT = function (dictMonad) {\n return {\n Applicative0: function () {\n return applicativeMaybeT(dictMonad);\n },\n Plus1: function () {\n return plusMaybeT(dictMonad);\n }\n };\n};\nvar monadPlusMaybeT = function (dictMonad) {\n return {\n Monad0: function () {\n return monadMaybeT(dictMonad);\n },\n Alternative1: function () {\n return alternativeMaybeT(dictMonad);\n }\n };\n};\nexport {\n MaybeT,\n runMaybeT,\n mapMaybeT,\n newtypeMaybeT,\n functorMaybeT,\n applyMaybeT,\n applicativeMaybeT,\n bindMaybeT,\n monadMaybeT,\n monadTransMaybeT,\n altMaybeT,\n plusMaybeT,\n alternativeMaybeT,\n monadPlusMaybeT,\n monadRecMaybeT,\n monadEffectMaybe,\n monadContMaybeT,\n monadThrowMaybeT,\n monadErrorMaybeT,\n monadAskMaybeT,\n monadReaderMaybeT,\n monadStateMaybeT,\n monadTellMaybeT,\n monadWriterMaybeT,\n semigroupMaybeT,\n monoidMaybeT\n};\nexport {\n lift\n} from \"../Control.Monad.Trans.Class/index.js\";\n","// Generated by purs version 0.15.2\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Control_Monad_Maybe_Trans from \"../Control.Monad.Maybe.Trans/index.js\";\nimport * as Data_Array from \"../Data.Array/index.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_List_Types from \"../Data.List.Types/index.js\";\nimport * as Data_Monoid from \"../Data.Monoid/index.js\";\nimport * as Data_String_Regex from \"../Data.String.Regex/index.js\";\nimport * as Data_String_Regex_Flags from \"../Data.String.Regex.Flags/index.js\";\nimport * as Data_String_Regex_Unsafe from \"../Data.String.Regex.Unsafe/index.js\";\nimport * as Data_Traversable from \"../Data.Traversable/index.js\";\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nvar unsafeTestRegex = function (patternString) {\n return function (text) {\n return Data_String_Regex.test(Data_String_Regex_Unsafe.unsafeRegex(patternString)(Data_String_Regex_Flags.noFlags))(text);\n };\n};\nvar succ$prime = function (dict) {\n return dict[\"succ'\"];\n};\nvar print = function (dict) {\n return dict.print;\n};\nvar pred$prime = function (dict) {\n return dict[\"pred'\"];\n};\nvar mapMaybeT = function (dictMonad) {\n return function (f) {\n return function (array) {\n return Control_Bind.bind(dictMonad.Bind1())(Data_Traversable.traverse(Data_Traversable.traversableArray)(dictMonad.Applicative0())(function ($31) {\n return Control_Monad_Maybe_Trans.runMaybeT(f($31));\n })(array))(function (maybes) {\n return Control_Bind.bind(dictMonad.Bind1())(Control_Applicative.pure(dictMonad.Applicative0())(Data_Array.mapMaybe(Control_Category.identity(Control_Category.categoryFn))(maybes)))(function (values) {\n return Control_Applicative.pure(dictMonad.Applicative0())(values);\n });\n });\n };\n };\n};\nvar mapMaybeM = function (dictMonad) {\n return function (f) {\n return function (array) {\n return Control_Bind.bind(dictMonad.Bind1())(Data_Traversable.traverse(Data_Traversable.traversableArray)(dictMonad.Applicative0())(f)(array))(function (maybes) {\n return Control_Bind.bind(dictMonad.Bind1())(Control_Applicative.pure(dictMonad.Applicative0())(Data_Array.mapMaybe(Control_Category.identity(Control_Category.categoryFn))(maybes)))(function (values) {\n return Control_Applicative.pure(dictMonad.Applicative0())(values);\n });\n });\n };\n };\n};\nvar hoistMaybeT$prime = function (dictMonad) {\n return function (maybeT) {\n return Control_Bind.bind(dictMonad.Bind1())(Control_Monad_Maybe_Trans.runMaybeT(maybeT))(function (maybeA) {\n return Control_Applicative.pure(dictMonad.Applicative0())(new Data_Tuple.Tuple(maybeA, Data_Monoid.mempty(Data_Monoid.monoidArray)));\n });\n };\n};\nvar hoistMaybe$prime = function (dictMonad) {\n return function (maybe) {\n return Control_Applicative.pure(dictMonad.Applicative0())(new Data_Tuple.Tuple(maybe, Data_Monoid.mempty(Data_Monoid.monoidArray)));\n };\n};\nvar foreachM = function (dictMonadState) {\n return function (v) {\n return function (v1) {\n if (v instanceof Data_List_Types.Nil) {\n return Control_Applicative.pure((dictMonadState.Monad0()).Applicative0())(Data_Unit.unit);\n };\n if (v instanceof Data_List_Types.Cons) {\n return Control_Bind.discard(Control_Bind.discardUnit)((dictMonadState.Monad0()).Bind1())(v1(v.value0))(function () {\n return foreachM(dictMonadState)(v.value1)(v1);\n });\n };\n throw new Error(\"Failed pattern match at Utils (line 47, column 1 - line 47, column 78): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n };\n};\nvar foreach$prime = function ($copy_state) {\n return function ($copy_v) {\n return function ($copy_v1) {\n var $tco_var_state = $copy_state;\n var $tco_var_v = $copy_v;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(state, v, v1) {\n if (v instanceof Data_List_Types.Nil) {\n $tco_done = true;\n return state;\n };\n if (v instanceof Data_List_Types.Cons) {\n var nextState = v1(state)(v.value0);\n $tco_var_state = nextState;\n $tco_var_v = v.value1;\n $copy_v1 = v1;\n return;\n };\n throw new Error(\"Failed pattern match at Utils (line 41, column 1 - line 41, column 58): \" + [ state.constructor.name, v.constructor.name, v1.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_state, $tco_var_v, $copy_v1);\n };\n return $tco_result;\n };\n };\n};\nvar foreach = function (v) {\n return function (v1) {\n return function (v2) {\n if (v1 instanceof Data_List_Types.Nil) {\n return Data_List_Types.Nil.value;\n };\n if (v1 instanceof Data_List_Types.Cons) {\n var next = v2(v)(v1.value0);\n return new Data_List_Types.Cons(Data_Tuple.snd(next), foreach(Data_Tuple.fst(next))(v1.value1)(v2));\n };\n throw new Error(\"Failed pattern match at Utils (line 35, column 1 - line 35, column 72): \" + [ v.constructor.name, v1.constructor.name, v2.constructor.name ]);\n };\n };\n};\nvar applyUntilIdempotent = function ($copy_dictEq) {\n return function ($copy_f) {\n return function ($copy_x) {\n var $tco_var_dictEq = $copy_dictEq;\n var $tco_var_f = $copy_f;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(dictEq, f, x) {\n var result = f(x);\n var $30 = Data_Eq.eq(dictEq)(result)(x);\n if ($30) {\n $tco_done = true;\n return result;\n };\n $tco_var_dictEq = dictEq;\n $tco_var_f = f;\n $copy_x = result;\n return;\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_dictEq, $tco_var_f, $copy_x);\n };\n return $tco_result;\n };\n };\n};\nexport {\n pred$prime,\n print,\n succ$prime,\n applyUntilIdempotent,\n unsafeTestRegex,\n foreach,\n foreach$prime,\n foreachM,\n mapMaybeM,\n mapMaybeT,\n hoistMaybe$prime,\n hoistMaybeT$prime\n};\n","// Generated by purs version 0.15.2\nimport * as Data_Bounded_Generic from \"../Data.Bounded.Generic/index.js\";\nimport * as Data_Enum from \"../Data.Enum/index.js\";\nimport * as Data_Enum_Generic from \"../Data.Enum.Generic/index.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Foldable from \"../Data.Foldable/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Generic_Rep from \"../Data.Generic.Rep/index.js\";\nimport * as Data_Lens_Barlow from \"../Data.Lens.Barlow/index.js\";\nimport * as Data_Lens_Barlow_Construction from \"../Data.Lens.Barlow.Construction/index.js\";\nimport * as Data_Lens_Prism from \"../Data.Lens.Prism/index.js\";\nimport * as Data_List from \"../Data.List/index.js\";\nimport * as Data_List_Types from \"../Data.List.Types/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Data_Ordering from \"../Data.Ordering/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nimport * as Data_Show from \"../Data.Show/index.js\";\nimport * as Data_Show_Generic from \"../Data.Show.Generic/index.js\";\nimport * as Data_String_Common from \"../Data.String.Common/index.js\";\nimport * as Data_String_Utils from \"../Data.String.Utils/index.js\";\nimport * as Utils from \"../Utils/index.js\";\nvar Transposition = function (x) {\n return x;\n};\nvar Title = /* #__PURE__ */ (function () {\n function Title(value0) {\n this.value0 = value0;\n };\n Title.create = function (value0) {\n return new Title(value0);\n };\n return Title;\n})();\nvar TitleOther = /* #__PURE__ */ (function () {\n function TitleOther(value0) {\n this.value0 = value0;\n };\n TitleOther.create = function (value0) {\n return new TitleOther(value0);\n };\n return TitleOther;\n})();\nvar Spaced = function (x) {\n return x;\n};\nvar A = /* #__PURE__ */ (function () {\n function A() {\n\n };\n A.value = new A();\n return A;\n})();\nvar B = /* #__PURE__ */ (function () {\n function B() {\n\n };\n B.value = new B();\n return B;\n})();\nvar C = /* #__PURE__ */ (function () {\n function C() {\n\n };\n C.value = new C();\n return C;\n})();\nvar D = /* #__PURE__ */ (function () {\n function D() {\n\n };\n D.value = new D();\n return D;\n})();\nvar E = /* #__PURE__ */ (function () {\n function E() {\n\n };\n E.value = new E();\n return E;\n})();\nvar F = /* #__PURE__ */ (function () {\n function F() {\n\n };\n F.value = new F();\n return F;\n})();\nvar G = /* #__PURE__ */ (function () {\n function G() {\n\n };\n G.value = new G();\n return G;\n})();\nvar NoteLetter = function (x) {\n return x;\n};\nvar Note = function (x) {\n return x;\n};\nvar Prefix = /* #__PURE__ */ (function () {\n function Prefix(value0) {\n this.value0 = value0;\n };\n Prefix.create = function (value0) {\n return new Prefix(value0);\n };\n return Prefix;\n})();\nvar Tuning = /* #__PURE__ */ (function () {\n function Tuning(value0) {\n this.value0 = value0;\n };\n Tuning.create = function (value0) {\n return new Tuning(value0);\n };\n return Tuning;\n})();\nvar TimelineConnection = /* #__PURE__ */ (function () {\n function TimelineConnection(value0) {\n this.value0 = value0;\n };\n TimelineConnection.create = function (value0) {\n return new TimelineConnection(value0);\n };\n return TimelineConnection;\n})();\nvar TimelineSep = /* #__PURE__ */ (function () {\n function TimelineSep(value0) {\n this.value0 = value0;\n };\n TimelineSep.create = function (value0) {\n return new TimelineSep(value0);\n };\n return TimelineSep;\n})();\nvar TimelineSpace = /* #__PURE__ */ (function () {\n function TimelineSpace(value0) {\n this.value0 = value0;\n };\n TimelineSpace.create = function (value0) {\n return new TimelineSpace(value0);\n };\n return TimelineSpace;\n})();\nvar Fret = /* #__PURE__ */ (function () {\n function Fret(value0) {\n this.value0 = value0;\n };\n Fret.create = function (value0) {\n return new Fret(value0);\n };\n return Fret;\n})();\nvar Special = /* #__PURE__ */ (function () {\n function Special(value0) {\n this.value0 = value0;\n };\n Special.create = function (value0) {\n return new Special(value0);\n };\n return Special;\n})();\nvar Suffix = /* #__PURE__ */ (function () {\n function Suffix(value0) {\n this.value0 = value0;\n };\n Suffix.create = function (value0) {\n return new Suffix(value0);\n };\n return Suffix;\n})();\nvar Header = /* #__PURE__ */ (function () {\n function Header(value0) {\n this.value0 = value0;\n };\n Header.create = function (value0) {\n return new Header(value0);\n };\n return Header;\n})();\nvar HeaderSuffix = /* #__PURE__ */ (function () {\n function HeaderSuffix(value0) {\n this.value0 = value0;\n };\n HeaderSuffix.create = function (value0) {\n return new HeaderSuffix(value0);\n };\n return HeaderSuffix;\n})();\nvar ChordMod = function (x) {\n return x;\n};\nvar ChordFret = /* #__PURE__ */ (function () {\n function ChordFret(value0) {\n this.value0 = value0;\n };\n ChordFret.create = function (value0) {\n return new ChordFret(value0);\n };\n return ChordFret;\n})();\nvar ChordSpecial = /* #__PURE__ */ (function () {\n function ChordSpecial(value0) {\n this.value0 = value0;\n };\n ChordSpecial.create = function (value0) {\n return new ChordSpecial(value0);\n };\n return ChordSpecial;\n})();\nvar Chord = function (x) {\n return x;\n};\nvar ChordLineChord = /* #__PURE__ */ (function () {\n function ChordLineChord(value0) {\n this.value0 = value0;\n };\n ChordLineChord.create = function (value0) {\n return new ChordLineChord(value0);\n };\n return ChordLineChord;\n})();\nvar ChordComment = /* #__PURE__ */ (function () {\n function ChordComment(value0) {\n this.value0 = value0;\n };\n ChordComment.create = function (value0) {\n return new ChordComment(value0);\n };\n return ChordComment;\n})();\nvar Text = /* #__PURE__ */ (function () {\n function Text(value0) {\n this.value0 = value0;\n };\n Text.create = function (value0) {\n return new Text(value0);\n };\n return Text;\n})();\nvar Spaces = /* #__PURE__ */ (function () {\n function Spaces(value0) {\n this.value0 = value0;\n };\n Spaces.create = function (value0) {\n return new Spaces(value0);\n };\n return Spaces;\n})();\nvar TextLineChord = /* #__PURE__ */ (function () {\n function TextLineChord(value0) {\n this.value0 = value0;\n };\n TextLineChord.create = function (value0) {\n return new TextLineChord(value0);\n };\n return TextLineChord;\n})();\nvar ChordLegend = /* #__PURE__ */ (function () {\n function ChordLegend(value0) {\n this.value0 = value0;\n };\n ChordLegend.create = function (value0) {\n return new ChordLegend(value0);\n };\n return ChordLegend;\n})();\nvar TitleLine = /* #__PURE__ */ (function () {\n function TitleLine(value0) {\n this.value0 = value0;\n };\n TitleLine.create = function (value0) {\n return new TitleLine(value0);\n };\n return TitleLine;\n})();\nvar HeaderLine = /* #__PURE__ */ (function () {\n function HeaderLine(value0) {\n this.value0 = value0;\n };\n HeaderLine.create = function (value0) {\n return new HeaderLine(value0);\n };\n return HeaderLine;\n})();\nvar TablatureLine = /* #__PURE__ */ (function () {\n function TablatureLine(value0) {\n this.value0 = value0;\n };\n TablatureLine.create = function (value0) {\n return new TablatureLine(value0);\n };\n return TablatureLine;\n})();\nvar ChordLine = /* #__PURE__ */ (function () {\n function ChordLine(value0) {\n this.value0 = value0;\n };\n ChordLine.create = function (value0) {\n return new ChordLine(value0);\n };\n return ChordLine;\n})();\nvar TextLine = /* #__PURE__ */ (function () {\n function TextLine(value0) {\n this.value0 = value0;\n };\n TextLine.create = function (value0) {\n return new TextLine(value0);\n };\n return TextLine;\n})();\nvar showTransposition = {\n show: function (v) {\n var $117 = v >= 0;\n if ($117) {\n return \"+\" + Data_Show.show(Data_Show.showInt)(v);\n };\n return Data_Show.show(Data_Show.showInt)(v);\n }\n};\nvar showTitleLineElem = {\n show: function (v) {\n if (v instanceof Title) {\n return v.value0;\n };\n if (v instanceof TitleOther) {\n return v.value0;\n };\n throw new Error(\"Failed pattern match at TablatureDocument (line 301, column 1 - line 303, column 36): \" + [ v.constructor.name ]);\n }\n};\nvar showHeaderLineElem = {\n show: function (v) {\n if (v instanceof Header) {\n return v.value0;\n };\n if (v instanceof HeaderSuffix) {\n return v.value0;\n };\n throw new Error(\"Failed pattern match at TablatureDocument (line 297, column 1 - line 299, column 38): \" + [ v.constructor.name ]);\n }\n};\nvar showChordMod = {\n show: function (v) {\n return v.pre + (v.interval + v.post);\n }\n};\nvar printSpaced = function (dictPrint) {\n return {\n print: function (v) {\n return Utils.print(dictPrint)(v.elem) + Data_Maybe.fromMaybe(\"\")(Data_String_Utils.repeat(v.spaceSuffix)(\" \"));\n }\n };\n};\nvar printChordMod = {\n print: function (v) {\n return v.pre + (v.interval + v.post);\n }\n};\nvar newtypeSpaced_ = {\n Coercible0: function () {\n return undefined;\n }\n};\nvar newtypeNote_ = {\n Coercible0: function () {\n return undefined;\n }\n};\nvar newtypeNoteLetter_ = {\n Coercible0: function () {\n return undefined;\n }\n};\nvar newtypeChord_ = {\n Coercible0: function () {\n return undefined;\n }\n};\nvar genericTitleLineElem_ = {\n to: function (x) {\n if (x instanceof Data_Generic_Rep.Inl) {\n return new Title(x.value0);\n };\n if (x instanceof Data_Generic_Rep.Inr) {\n return new TitleOther(x.value0);\n };\n throw new Error(\"Failed pattern match at TablatureDocument (line 70, column 1 - line 70, column 40): \" + [ x.constructor.name ]);\n },\n from: function (x) {\n if (x instanceof Title) {\n return new Data_Generic_Rep.Inl(x.value0);\n };\n if (x instanceof TitleOther) {\n return new Data_Generic_Rep.Inr(x.value0);\n };\n throw new Error(\"Failed pattern match at TablatureDocument (line 70, column 1 - line 70, column 40): \" + [ x.constructor.name ]);\n }\n};\nvar genericTablatureDocumentL = {\n to: function (x) {\n if (x instanceof Data_Generic_Rep.Inl) {\n return new TitleLine(x.value0);\n };\n if (x instanceof Data_Generic_Rep.Inr && x.value0 instanceof Data_Generic_Rep.Inl) {\n return new HeaderLine(x.value0.value0);\n };\n if (x instanceof Data_Generic_Rep.Inr && (x.value0 instanceof Data_Generic_Rep.Inr && x.value0.value0 instanceof Data_Generic_Rep.Inl)) {\n return new TablatureLine(x.value0.value0.value0);\n };\n if (x instanceof Data_Generic_Rep.Inr && (x.value0 instanceof Data_Generic_Rep.Inr && (x.value0.value0 instanceof Data_Generic_Rep.Inr && x.value0.value0.value0 instanceof Data_Generic_Rep.Inl))) {\n return new ChordLine(x.value0.value0.value0.value0);\n };\n if (x instanceof Data_Generic_Rep.Inr && (x.value0 instanceof Data_Generic_Rep.Inr && (x.value0.value0 instanceof Data_Generic_Rep.Inr && x.value0.value0.value0 instanceof Data_Generic_Rep.Inr))) {\n return new TextLine(x.value0.value0.value0.value0);\n };\n throw new Error(\"Failed pattern match at TablatureDocument (line 29, column 1 - line 29, column 48): \" + [ x.constructor.name ]);\n },\n from: function (x) {\n if (x instanceof TitleLine) {\n return new Data_Generic_Rep.Inl(x.value0);\n };\n if (x instanceof HeaderLine) {\n return new Data_Generic_Rep.Inr(new Data_Generic_Rep.Inl(x.value0));\n };\n if (x instanceof TablatureLine) {\n return new Data_Generic_Rep.Inr(new Data_Generic_Rep.Inr(new Data_Generic_Rep.Inl(x.value0)));\n };\n if (x instanceof ChordLine) {\n return new Data_Generic_Rep.Inr(new Data_Generic_Rep.Inr(new Data_Generic_Rep.Inr(new Data_Generic_Rep.Inl(x.value0))));\n };\n if (x instanceof TextLine) {\n return new Data_Generic_Rep.Inr(new Data_Generic_Rep.Inr(new Data_Generic_Rep.Inr(new Data_Generic_Rep.Inr(x.value0))));\n };\n throw new Error(\"Failed pattern match at TablatureDocument (line 29, column 1 - line 29, column 48): \" + [ x.constructor.name ]);\n }\n};\nvar genericNoteLetterPrimitiv = {\n to: function (x) {\n if (x instanceof Data_Generic_Rep.Inl) {\n return A.value;\n };\n if (x instanceof Data_Generic_Rep.Inr && x.value0 instanceof Data_Generic_Rep.Inl) {\n return B.value;\n };\n if (x instanceof Data_Generic_Rep.Inr && (x.value0 instanceof Data_Generic_Rep.Inr && x.value0.value0 instanceof Data_Generic_Rep.Inl)) {\n return C.value;\n };\n if (x instanceof Data_Generic_Rep.Inr && (x.value0 instanceof Data_Generic_Rep.Inr && (x.value0.value0 instanceof Data_Generic_Rep.Inr && x.value0.value0.value0 instanceof Data_Generic_Rep.Inl))) {\n return D.value;\n };\n if (x instanceof Data_Generic_Rep.Inr && (x.value0 instanceof Data_Generic_Rep.Inr && (x.value0.value0 instanceof Data_Generic_Rep.Inr && (x.value0.value0.value0 instanceof Data_Generic_Rep.Inr && x.value0.value0.value0.value0 instanceof Data_Generic_Rep.Inl)))) {\n return E.value;\n };\n if (x instanceof Data_Generic_Rep.Inr && (x.value0 instanceof Data_Generic_Rep.Inr && (x.value0.value0 instanceof Data_Generic_Rep.Inr && (x.value0.value0.value0 instanceof Data_Generic_Rep.Inr && (x.value0.value0.value0.value0 instanceof Data_Generic_Rep.Inr && x.value0.value0.value0.value0.value0 instanceof Data_Generic_Rep.Inl))))) {\n return F.value;\n };\n if (x instanceof Data_Generic_Rep.Inr && (x.value0 instanceof Data_Generic_Rep.Inr && (x.value0.value0 instanceof Data_Generic_Rep.Inr && (x.value0.value0.value0 instanceof Data_Generic_Rep.Inr && (x.value0.value0.value0.value0 instanceof Data_Generic_Rep.Inr && x.value0.value0.value0.value0.value0 instanceof Data_Generic_Rep.Inr))))) {\n return G.value;\n };\n throw new Error(\"Failed pattern match at TablatureDocument (line 209, column 1 - line 209, column 46): \" + [ x.constructor.name ]);\n },\n from: function (x) {\n if (x instanceof A) {\n return new Data_Generic_Rep.Inl(Data_Generic_Rep.NoArguments.value);\n };\n if (x instanceof B) {\n return new Data_Generic_Rep.Inr(new Data_Generic_Rep.Inl(Data_Generic_Rep.NoArguments.value));\n };\n if (x instanceof C) {\n return new Data_Generic_Rep.Inr(new Data_Generic_Rep.Inr(new Data_Generic_Rep.Inl(Data_Generic_Rep.NoArguments.value)));\n };\n if (x instanceof D) {\n return new Data_Generic_Rep.Inr(new Data_Generic_Rep.Inr(new Data_Generic_Rep.Inr(new Data_Generic_Rep.Inl(Data_Generic_Rep.NoArguments.value))));\n };\n if (x instanceof E) {\n return new Data_Generic_Rep.Inr(new Data_Generic_Rep.Inr(new Data_Generic_Rep.Inr(new Data_Generic_Rep.Inr(new Data_Generic_Rep.Inl(Data_Generic_Rep.NoArguments.value)))));\n };\n if (x instanceof F) {\n return new Data_Generic_Rep.Inr(new Data_Generic_Rep.Inr(new Data_Generic_Rep.Inr(new Data_Generic_Rep.Inr(new Data_Generic_Rep.Inr(new Data_Generic_Rep.Inl(Data_Generic_Rep.NoArguments.value))))));\n };\n if (x instanceof G) {\n return new Data_Generic_Rep.Inr(new Data_Generic_Rep.Inr(new Data_Generic_Rep.Inr(new Data_Generic_Rep.Inr(new Data_Generic_Rep.Inr(new Data_Generic_Rep.Inr(Data_Generic_Rep.NoArguments.value))))));\n };\n throw new Error(\"Failed pattern match at TablatureDocument (line 209, column 1 - line 209, column 46): \" + [ x.constructor.name ]);\n }\n};\nvar printNoteLetterPrimitive = {\n print: /* #__PURE__ */ Data_Show_Generic.genericShow(genericNoteLetterPrimitiv)(/* #__PURE__ */ Data_Show_Generic.genericShowSum(/* #__PURE__ */ Data_Show_Generic.genericShowConstructor(Data_Show_Generic.genericShowArgsNoArguments)({\n reflectSymbol: function () {\n return \"A\";\n }\n }))(/* #__PURE__ */ Data_Show_Generic.genericShowSum(/* #__PURE__ */ Data_Show_Generic.genericShowConstructor(Data_Show_Generic.genericShowArgsNoArguments)({\n reflectSymbol: function () {\n return \"B\";\n }\n }))(/* #__PURE__ */ Data_Show_Generic.genericShowSum(/* #__PURE__ */ Data_Show_Generic.genericShowConstructor(Data_Show_Generic.genericShowArgsNoArguments)({\n reflectSymbol: function () {\n return \"C\";\n }\n }))(/* #__PURE__ */ Data_Show_Generic.genericShowSum(/* #__PURE__ */ Data_Show_Generic.genericShowConstructor(Data_Show_Generic.genericShowArgsNoArguments)({\n reflectSymbol: function () {\n return \"D\";\n }\n }))(/* #__PURE__ */ Data_Show_Generic.genericShowSum(/* #__PURE__ */ Data_Show_Generic.genericShowConstructor(Data_Show_Generic.genericShowArgsNoArguments)({\n reflectSymbol: function () {\n return \"E\";\n }\n }))(/* #__PURE__ */ Data_Show_Generic.genericShowSum(/* #__PURE__ */ Data_Show_Generic.genericShowConstructor(Data_Show_Generic.genericShowArgsNoArguments)({\n reflectSymbol: function () {\n return \"F\";\n }\n }))(/* #__PURE__ */ Data_Show_Generic.genericShowConstructor(Data_Show_Generic.genericShowArgsNoArguments)({\n reflectSymbol: function () {\n return \"G\";\n }\n }))))))))\n};\nvar printNoteLetter = {\n print: function (v) {\n var uppercase = Utils.print(printNoteLetterPrimitive)(v.primitive);\n if (v.lowercase) {\n return Data_String_Common.toLower(uppercase);\n };\n return uppercase;\n }\n};\nvar printNote = {\n print: function (v) {\n return Utils.print(printNoteLetter)(v.letter) + v.mod;\n }\n};\nvar printChord = {\n print: function (v) {\n return Utils.print(printNote)(v.root) + (v.type + (Data_Foldable.foldr(Data_List_Types.foldableList)(Data_Semigroup.append(Data_Semigroup.semigroupString))(\"\")(Data_Functor.map(Data_List_Types.functorList)(function (v1) {\n return v1.pre + (v1.interval + v1.post);\n })(v.mods)) + Data_Maybe.fromMaybe(\"\")(Data_Functor.mapFlipped(Data_Maybe.functorMaybe)(v.bass)(Utils.print(printNote)))));\n }\n};\nvar showChordLineElem = {\n show: function (v) {\n if (v instanceof ChordLineChord) {\n return Utils.print(printSpaced(printChord))(v.value0);\n };\n if (v instanceof ChordComment) {\n return v.value0;\n };\n throw new Error(\"Failed pattern match at TablatureDocument (line 290, column 1 - line 292, column 38): \" + [ v.constructor.name ]);\n }\n};\nvar showTextLineElem = {\n show: function (v) {\n if (v instanceof Text) {\n return v.value0;\n };\n if (v instanceof Spaces) {\n return v.value0;\n };\n if (v instanceof TextLineChord) {\n return Utils.print(printSpaced(printChord))(v.value0);\n };\n if (v instanceof ChordLegend) {\n return \"legend\";\n };\n throw new Error(\"Failed pattern match at TablatureDocument (line 284, column 1 - line 288, column 34): \" + [ v.constructor.name ]);\n }\n};\nvar printTablatureLineElem = {\n print: function (v) {\n if (v instanceof Prefix) {\n return v.value0;\n };\n if (v instanceof Tuning) {\n return Utils.print(printSpaced(printNote))(v.value0);\n };\n if (v instanceof TimelineSep) {\n return v.value0;\n };\n if (v instanceof TimelineConnection) {\n return v.value0;\n };\n if (v instanceof TimelineSpace) {\n return v.value0;\n };\n if (v instanceof Fret) {\n return v.value0;\n };\n if (v instanceof Special) {\n return v.value0;\n };\n if (v instanceof Suffix) {\n return v.value0;\n };\n throw new Error(\"Failed pattern match at TablatureDocument (line 274, column 1 - line 282, column 33): \" + [ v.constructor.name ]);\n }\n};\nvar showTablatureLineElem = {\n show: /* #__PURE__ */ Utils.print(printTablatureLineElem)\n};\nvar showTablatureDocumentLine = {\n show: function (v) {\n if (v instanceof TitleLine) {\n return \"Title: \" + Data_Show.show(Data_List_Types.showList(showTitleLineElem))(v.value0);\n };\n if (v instanceof TablatureLine) {\n return \"Tab: \" + Data_Show.show(Data_List_Types.showList(showTablatureLineElem))(v.value0);\n };\n if (v instanceof TextLine) {\n return \"Text: \" + Data_Show.show(Data_List_Types.showList(showTextLineElem))(v.value0);\n };\n if (v instanceof ChordLine) {\n return \"Chords: \" + Data_Show.show(Data_List_Types.showList(showChordLineElem))(v.value0);\n };\n if (v instanceof HeaderLine) {\n return \"Header: \" + Data_Show.show(Data_List_Types.showList(showHeaderLineElem))(v.value0);\n };\n throw new Error(\"Failed pattern match at TablatureDocument (line 264, column 1 - line 269, column 53): \" + [ v.constructor.name ]);\n }\n};\nvar eqTransposition = {\n eq: function (v) {\n return function (v1) {\n return v === v1;\n };\n }\n};\nvar ordTransposition = {\n compare: function (v) {\n return function (v1) {\n return Data_Ord.compare(Data_Ord.ordInt)(v)(v1);\n };\n },\n Eq0: function () {\n return eqTransposition;\n }\n};\nvar eqNoteLetterPrimitive = {\n eq: function (x) {\n return function (y) {\n if (x instanceof A && y instanceof A) {\n return true;\n };\n if (x instanceof B && y instanceof B) {\n return true;\n };\n if (x instanceof C && y instanceof C) {\n return true;\n };\n if (x instanceof D && y instanceof D) {\n return true;\n };\n if (x instanceof E && y instanceof E) {\n return true;\n };\n if (x instanceof F && y instanceof F) {\n return true;\n };\n if (x instanceof G && y instanceof G) {\n return true;\n };\n return false;\n };\n }\n};\nvar ordNoteLetterPrimitive = {\n compare: function (x) {\n return function (y) {\n if (x instanceof A && y instanceof A) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof A) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof A) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof B && y instanceof B) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof B) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof B) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof C && y instanceof C) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof C) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof C) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof D && y instanceof D) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof D) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof D) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof E && y instanceof E) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof E) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof E) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof F && y instanceof F) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof F) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof F) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof G && y instanceof G) {\n return Data_Ordering.EQ.value;\n };\n throw new Error(\"Failed pattern match at TablatureDocument (line 0, column 0 - line 0, column 0): \" + [ x.constructor.name, y.constructor.name ]);\n };\n },\n Eq0: function () {\n return eqNoteLetterPrimitive;\n }\n};\nvar eqNoteLetter = {\n eq: function (x) {\n return function (y) {\n return x.lowercase === y.lowercase && Data_Eq.eq(eqNoteLetterPrimitive)(x.primitive)(y.primitive);\n };\n }\n};\nvar ordNoteLetter = {\n compare: function (v) {\n return function (v1) {\n return Data_Ord.compare(ordNoteLetterPrimitive)(v.primitive)(v1.primitive);\n };\n },\n Eq0: function () {\n return eqNoteLetter;\n }\n};\nvar eqNote = {\n eq: function (x) {\n return function (y) {\n return Data_Eq.eq(eqNoteLetter)(x.letter)(y.letter) && x.mod === y.mod;\n };\n }\n};\nvar eqChordMod = {\n eq: function (x) {\n return function (y) {\n return x.interval === y.interval && x.post === y.post && x.pre === y.pre;\n };\n }\n};\nvar eqChord = {\n eq: function (x) {\n return function (y) {\n return Data_Eq.eq(Data_Maybe.eqMaybe(eqNote))(x.bass)(y.bass) && Data_Eq.eq(Data_List_Types.eqList(eqChordMod))(x.mods)(y.mods) && Data_Eq.eq(eqNote)(x.root)(y.root) && x.type === y.type;\n };\n }\n};\nvar enumNoteLetterPrimitive = {\n succ: function (v) {\n if (v instanceof G) {\n return new Data_Maybe.Just(A.value);\n };\n return Data_Enum_Generic.genericSucc(genericNoteLetterPrimitiv)(Data_Enum_Generic.genericEnumSum(Data_Enum_Generic.genericEnumConstructor(Data_Enum_Generic.genericEnumNoArguments))(Data_Bounded_Generic.genericTopConstructor(Data_Bounded_Generic.genericTopNoArguments))(Data_Enum_Generic.genericEnumSum(Data_Enum_Generic.genericEnumConstructor(Data_Enum_Generic.genericEnumNoArguments))(Data_Bounded_Generic.genericTopConstructor(Data_Bounded_Generic.genericTopNoArguments))(Data_Enum_Generic.genericEnumSum(Data_Enum_Generic.genericEnumConstructor(Data_Enum_Generic.genericEnumNoArguments))(Data_Bounded_Generic.genericTopConstructor(Data_Bounded_Generic.genericTopNoArguments))(Data_Enum_Generic.genericEnumSum(Data_Enum_Generic.genericEnumConstructor(Data_Enum_Generic.genericEnumNoArguments))(Data_Bounded_Generic.genericTopConstructor(Data_Bounded_Generic.genericTopNoArguments))(Data_Enum_Generic.genericEnumSum(Data_Enum_Generic.genericEnumConstructor(Data_Enum_Generic.genericEnumNoArguments))(Data_Bounded_Generic.genericTopConstructor(Data_Bounded_Generic.genericTopNoArguments))(Data_Enum_Generic.genericEnumSum(Data_Enum_Generic.genericEnumConstructor(Data_Enum_Generic.genericEnumNoArguments))(Data_Bounded_Generic.genericTopConstructor(Data_Bounded_Generic.genericTopNoArguments))(Data_Enum_Generic.genericEnumConstructor(Data_Enum_Generic.genericEnumNoArguments))(Data_Bounded_Generic.genericBottomConstructor(Data_Bounded_Generic.genericBottomNoArguments)))(Data_Bounded_Generic.genericBottomSum(Data_Bounded_Generic.genericBottomConstructor(Data_Bounded_Generic.genericBottomNoArguments))))(Data_Bounded_Generic.genericBottomSum(Data_Bounded_Generic.genericBottomConstructor(Data_Bounded_Generic.genericBottomNoArguments))))(Data_Bounded_Generic.genericBottomSum(Data_Bounded_Generic.genericBottomConstructor(Data_Bounded_Generic.genericBottomNoArguments))))(Data_Bounded_Generic.genericBottomSum(Data_Bounded_Generic.genericBottomConstructor(Data_Bounded_Generic.genericBottomNoArguments))))(Data_Bounded_Generic.genericBottomSum(Data_Bounded_Generic.genericBottomConstructor(Data_Bounded_Generic.genericBottomNoArguments))))(v);\n },\n pred: function (v) {\n if (v instanceof A) {\n return new Data_Maybe.Just(G.value);\n };\n return Data_Enum_Generic.genericPred(genericNoteLetterPrimitiv)(Data_Enum_Generic.genericEnumSum(Data_Enum_Generic.genericEnumConstructor(Data_Enum_Generic.genericEnumNoArguments))(Data_Bounded_Generic.genericTopConstructor(Data_Bounded_Generic.genericTopNoArguments))(Data_Enum_Generic.genericEnumSum(Data_Enum_Generic.genericEnumConstructor(Data_Enum_Generic.genericEnumNoArguments))(Data_Bounded_Generic.genericTopConstructor(Data_Bounded_Generic.genericTopNoArguments))(Data_Enum_Generic.genericEnumSum(Data_Enum_Generic.genericEnumConstructor(Data_Enum_Generic.genericEnumNoArguments))(Data_Bounded_Generic.genericTopConstructor(Data_Bounded_Generic.genericTopNoArguments))(Data_Enum_Generic.genericEnumSum(Data_Enum_Generic.genericEnumConstructor(Data_Enum_Generic.genericEnumNoArguments))(Data_Bounded_Generic.genericTopConstructor(Data_Bounded_Generic.genericTopNoArguments))(Data_Enum_Generic.genericEnumSum(Data_Enum_Generic.genericEnumConstructor(Data_Enum_Generic.genericEnumNoArguments))(Data_Bounded_Generic.genericTopConstructor(Data_Bounded_Generic.genericTopNoArguments))(Data_Enum_Generic.genericEnumSum(Data_Enum_Generic.genericEnumConstructor(Data_Enum_Generic.genericEnumNoArguments))(Data_Bounded_Generic.genericTopConstructor(Data_Bounded_Generic.genericTopNoArguments))(Data_Enum_Generic.genericEnumConstructor(Data_Enum_Generic.genericEnumNoArguments))(Data_Bounded_Generic.genericBottomConstructor(Data_Bounded_Generic.genericBottomNoArguments)))(Data_Bounded_Generic.genericBottomSum(Data_Bounded_Generic.genericBottomConstructor(Data_Bounded_Generic.genericBottomNoArguments))))(Data_Bounded_Generic.genericBottomSum(Data_Bounded_Generic.genericBottomConstructor(Data_Bounded_Generic.genericBottomNoArguments))))(Data_Bounded_Generic.genericBottomSum(Data_Bounded_Generic.genericBottomConstructor(Data_Bounded_Generic.genericBottomNoArguments))))(Data_Bounded_Generic.genericBottomSum(Data_Bounded_Generic.genericBottomConstructor(Data_Bounded_Generic.genericBottomNoArguments))))(Data_Bounded_Generic.genericBottomSum(Data_Bounded_Generic.genericBottomConstructor(Data_Bounded_Generic.genericBottomNoArguments))))(v);\n },\n Ord0: function () {\n return ordNoteLetterPrimitive;\n }\n};\nvar cyclicEnumNoteLetterPrimi = {\n \"succ'\": function (x) {\n return Data_Maybe.fromJust()(Data_Enum.succ(enumNoteLetterPrimitive)(x));\n },\n \"pred'\": function (x) {\n return Data_Maybe.fromJust()(Data_Enum.pred(enumNoteLetterPrimitive)(x));\n },\n Enum0: function () {\n return enumNoteLetterPrimitive;\n }\n};\nvar succTransposition = function (v) {\n return v + 1 | 0;\n};\nvar predTransposition = function (v) {\n return v - 1 | 0;\n};\nvar identityTransposition = 0;\nvar getTitle = function (tablatureDocument) {\n var isTitleLine = function (v) {\n if (v instanceof TitleLine) {\n return true;\n };\n return false;\n };\n var isTitle = function (v) {\n if (v instanceof Title) {\n return true;\n };\n return false;\n };\n var findElement = function (p) {\n return function (l) {\n var v = Data_List.findIndex(p)(l);\n if (v instanceof Data_Maybe.Nothing) {\n return Data_Maybe.Nothing.value;\n };\n if (v instanceof Data_Maybe.Just) {\n var v1 = Data_List.index(l)(v.value0);\n if (v1 instanceof Data_Maybe.Nothing) {\n return Data_Maybe.Nothing.value;\n };\n if (v1 instanceof Data_Maybe.Just) {\n return new Data_Maybe.Just(v1.value0);\n };\n throw new Error(\"Failed pattern match at TablatureDocument (line 50, column 21 - line 52, column 31): \" + [ v1.constructor.name ]);\n };\n throw new Error(\"Failed pattern match at TablatureDocument (line 48, column 5 - line 52, column 31): \" + [ v.constructor.name ]);\n };\n };\n var v = findElement(isTitleLine)(tablatureDocument);\n if (v instanceof Data_Maybe.Just && v.value0 instanceof TitleLine) {\n var v1 = findElement(isTitle)(v.value0.value0);\n if (v1 instanceof Data_Maybe.Just && v1.value0 instanceof Title) {\n return new Data_Maybe.Just(v1.value0.value0);\n };\n return Data_Maybe.Nothing.value;\n };\n return Data_Maybe.Nothing.value;\n};\nvar fromString = function (v) {\n if (v === \"A\") {\n return new Data_Maybe.Just(A.value);\n };\n if (v === \"B\") {\n return new Data_Maybe.Just(B.value);\n };\n if (v === \"C\") {\n return new Data_Maybe.Just(C.value);\n };\n if (v === \"D\") {\n return new Data_Maybe.Just(D.value);\n };\n if (v === \"E\") {\n return new Data_Maybe.Just(E.value);\n };\n if (v === \"F\") {\n return new Data_Maybe.Just(F.value);\n };\n if (v === \"G\") {\n return new Data_Maybe.Just(G.value);\n };\n return Data_Maybe.Nothing.value;\n};\nvar _type = function (dictStrong) {\n return Data_Lens_Barlow.barlow(Data_Lens_Barlow.barlowInstance()(Data_Lens_Barlow_Construction.constructBarlowTConsExcla(Data_Lens_Barlow_Construction.constructBarlowTConsRecor({\n reflectSymbol: function () {\n return \"type\";\n }\n })()()(dictStrong))()(dictStrong.Profunctor0())))(Data_Lens_Barlow.key);\n};\nvar _spaceSuffix = function (dictStrong) {\n return Data_Lens_Barlow.barlow(Data_Lens_Barlow.barlowInstance()(Data_Lens_Barlow_Construction.constructBarlowTConsExcla(Data_Lens_Barlow_Construction.constructBarlowTConsRecor({\n reflectSymbol: function () {\n return \"spaceSuffix\";\n }\n })()()(dictStrong))()(dictStrong.Profunctor0())))(Data_Lens_Barlow.key);\n};\nvar _root = function (dictStrong) {\n return Data_Lens_Barlow.barlow(Data_Lens_Barlow.barlowInstance()(Data_Lens_Barlow_Construction.constructBarlowTConsExcla(Data_Lens_Barlow_Construction.constructBarlowTConsRecor({\n reflectSymbol: function () {\n return \"root\";\n }\n })()()(dictStrong))()(dictStrong.Profunctor0())))(Data_Lens_Barlow.key);\n};\nvar _primitive = function (dictStrong) {\n return Data_Lens_Barlow.barlow(Data_Lens_Barlow.barlowInstance()(Data_Lens_Barlow_Construction.constructBarlowTConsExcla(Data_Lens_Barlow_Construction.constructBarlowTConsRecor1({\n reflectSymbol: function () {\n return \"letter\";\n }\n })(Data_Lens_Barlow_Construction.constructBarlowTConsExcla(Data_Lens_Barlow_Construction.constructBarlowTConsRecor({\n reflectSymbol: function () {\n return \"primitive\";\n }\n })()()(dictStrong))()(dictStrong.Profunctor0()))()()(dictStrong))()(dictStrong.Profunctor0())))(Data_Lens_Barlow.key);\n};\nvar _mods = function (dictStrong) {\n return Data_Lens_Barlow.barlow(Data_Lens_Barlow.barlowInstance()(Data_Lens_Barlow_Construction.constructBarlowTConsExcla(Data_Lens_Barlow_Construction.constructBarlowTConsRecor({\n reflectSymbol: function () {\n return \"mods\";\n }\n })()()(dictStrong))()(dictStrong.Profunctor0())))(Data_Lens_Barlow.key);\n};\nvar _mod = function (dictStrong) {\n return Data_Lens_Barlow.barlow(Data_Lens_Barlow.barlowInstance()(Data_Lens_Barlow_Construction.constructBarlowTConsExcla(Data_Lens_Barlow_Construction.constructBarlowTConsRecor({\n reflectSymbol: function () {\n return \"mod\";\n }\n })()()(dictStrong))()(dictStrong.Profunctor0())))(Data_Lens_Barlow.key);\n};\nvar _lowercase = function (dictStrong) {\n return Data_Lens_Barlow.barlow(Data_Lens_Barlow.barlowInstance()(Data_Lens_Barlow_Construction.constructBarlowTConsExcla(Data_Lens_Barlow_Construction.constructBarlowTConsRecor1({\n reflectSymbol: function () {\n return \"letter\";\n }\n })(Data_Lens_Barlow_Construction.constructBarlowTConsExcla(Data_Lens_Barlow_Construction.constructBarlowTConsRecor({\n reflectSymbol: function () {\n return \"lowercase\";\n }\n })()()(dictStrong))()(dictStrong.Profunctor0()))()()(dictStrong))()(dictStrong.Profunctor0())))(Data_Lens_Barlow.key);\n};\nvar _letter = function (dictStrong) {\n return Data_Lens_Barlow.barlow(Data_Lens_Barlow.barlowInstance()(Data_Lens_Barlow_Construction.constructBarlowTConsExcla(Data_Lens_Barlow_Construction.constructBarlowTConsRecor({\n reflectSymbol: function () {\n return \"letter\";\n }\n })()()(dictStrong))()(dictStrong.Profunctor0())))(Data_Lens_Barlow.key);\n};\nvar _elem = function (dictStrong) {\n return Data_Lens_Barlow.barlow(Data_Lens_Barlow.barlowInstance()(Data_Lens_Barlow_Construction.constructBarlowTConsExcla(Data_Lens_Barlow_Construction.constructBarlowTConsRecor({\n reflectSymbol: function () {\n return \"elem\";\n }\n })()()(dictStrong))()(dictStrong.Profunctor0())))(Data_Lens_Barlow.key);\n};\nvar _bass = function (dictStrong) {\n return Data_Lens_Barlow.barlow(Data_Lens_Barlow.barlowInstance()(Data_Lens_Barlow_Construction.constructBarlowTConsExcla(Data_Lens_Barlow_Construction.constructBarlowTConsRecor({\n reflectSymbol: function () {\n return \"bass\";\n }\n })()()(dictStrong))()(dictStrong.Profunctor0())))(Data_Lens_Barlow.key);\n};\nvar _Tuning = function (dictChoice) {\n return Data_Lens_Prism[\"prism$prime\"](Tuning.create)(function (v) {\n if (v instanceof Tuning) {\n return new Data_Maybe.Just(v.value0);\n };\n return Data_Maybe.Nothing.value;\n })(dictChoice);\n};\nvar _TitleLine = function (dictChoice) {\n return Data_Lens_Barlow.barlow(Data_Lens_Barlow.barlowInstance()(Data_Lens_Barlow_Construction.constructBarlow1(genericTablatureDocumentL)(Data_Lens_Barlow_Construction.constructBarlowGenericTCo4(dictChoice))(dictChoice.Profunctor0())))(Data_Lens_Barlow.key);\n};\nvar _Title = function (dictConstructBarlow) {\n return Data_Lens_Barlow.barlow(Data_Lens_Barlow.barlowInstance()(dictConstructBarlow))(Data_Lens_Barlow.key);\n};\nvar _TextLineChord = function (dictChoice) {\n return Data_Lens_Prism[\"prism$prime\"](TextLineChord.create)(function (v) {\n if (v instanceof TextLineChord) {\n return new Data_Maybe.Just(v.value0);\n };\n return Data_Maybe.Nothing.value;\n })(dictChoice);\n};\nvar _TextLine = function (dictChoice) {\n return Data_Lens_Barlow.barlow(Data_Lens_Barlow.barlowInstance()(Data_Lens_Barlow_Construction.constructBarlow1(genericTablatureDocumentL)(Data_Lens_Barlow_Construction.constructBarlowGenericTCo10(Data_Lens_Barlow_Construction.constructBarlowGenericTCo10(Data_Lens_Barlow_Construction.constructBarlowGenericTCo10(Data_Lens_Barlow_Construction.constructBarlowGenericTCo2(dictChoice))(dictChoice))(dictChoice))(dictChoice))(dictChoice.Profunctor0())))(Data_Lens_Barlow.key);\n};\nvar _TablatureLine = function (dictChoice) {\n return Data_Lens_Barlow.barlow(Data_Lens_Barlow.barlowInstance()(Data_Lens_Barlow_Construction.constructBarlow1(genericTablatureDocumentL)(Data_Lens_Barlow_Construction.constructBarlowGenericTCo10(Data_Lens_Barlow_Construction.constructBarlowGenericTCo10(Data_Lens_Barlow_Construction.constructBarlowGenericTCo4(dictChoice))(dictChoice))(dictChoice))(dictChoice.Profunctor0())))(Data_Lens_Barlow.key);\n};\nvar _ChordLineChord = function (dictChoice) {\n return Data_Lens_Prism[\"prism$prime\"](ChordLineChord.create)(function (v) {\n if (v instanceof ChordLineChord) {\n return new Data_Maybe.Just(v.value0);\n };\n return Data_Maybe.Nothing.value;\n })(dictChoice);\n};\nvar _ChordLine = function (dictChoice) {\n return Data_Lens_Barlow.barlow(Data_Lens_Barlow.barlowInstance()(Data_Lens_Barlow_Construction.constructBarlow1(genericTablatureDocumentL)(Data_Lens_Barlow_Construction.constructBarlowGenericTCo10(Data_Lens_Barlow_Construction.constructBarlowGenericTCo10(Data_Lens_Barlow_Construction.constructBarlowGenericTCo10(Data_Lens_Barlow_Construction.constructBarlowGenericTCo4(dictChoice))(dictChoice))(dictChoice))(dictChoice))(dictChoice.Profunctor0())))(Data_Lens_Barlow.key);\n};\nexport {\n TitleLine,\n HeaderLine,\n TablatureLine,\n ChordLine,\n TextLine,\n getTitle,\n _TitleLine,\n _TablatureLine,\n _ChordLine,\n _TextLine,\n Title,\n TitleOther,\n _Title,\n Header,\n HeaderSuffix,\n Prefix,\n Tuning,\n TimelineConnection,\n TimelineSep,\n TimelineSpace,\n Fret,\n Special,\n Suffix,\n _Tuning,\n Text,\n Spaces,\n TextLineChord,\n ChordLegend,\n _TextLineChord,\n ChordFret,\n ChordSpecial,\n ChordLineChord,\n ChordComment,\n _ChordLineChord,\n Spaced,\n _elem,\n _spaceSuffix,\n Chord,\n _root,\n _type,\n _bass,\n _mods,\n ChordMod,\n Note,\n _letter,\n _mod,\n NoteLetter,\n _primitive,\n _lowercase,\n A,\n B,\n C,\n D,\n E,\n F,\n G,\n fromString,\n Transposition,\n identityTransposition,\n succTransposition,\n predTransposition,\n genericTablatureDocumentL,\n genericTitleLineElem_,\n newtypeSpaced_,\n printSpaced,\n newtypeChord_,\n eqChord,\n printChord,\n printNote,\n printChordMod,\n eqChordMod,\n newtypeNote_,\n eqNote,\n newtypeNoteLetter_,\n eqNoteLetterPrimitive,\n ordNoteLetterPrimitive,\n genericNoteLetterPrimitiv,\n enumNoteLetterPrimitive,\n cyclicEnumNoteLetterPrimi,\n printNoteLetterPrimitive,\n eqNoteLetter,\n ordNoteLetter,\n printNoteLetter,\n showTransposition,\n eqTransposition,\n ordTransposition,\n showTablatureDocumentLine,\n showTablatureLineElem,\n printTablatureLineElem,\n showTextLineElem,\n showChordLineElem,\n showChordMod,\n showHeaderLineElem,\n showTitleLineElem\n};\n","// Generated by purs version 0.15.2\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Apply from \"../Control.Apply/index.js\";\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Data_Array from \"../Data.Array/index.js\";\nimport * as Data_Either from \"../Data.Either/index.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Foldable from \"../Data.Foldable/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_HeytingAlgebra from \"../Data.HeytingAlgebra/index.js\";\nimport * as Data_Lens_Internal_Forget from \"../Data.Lens.Internal.Forget/index.js\";\nimport * as Data_Lens_Types from \"../Data.Lens.Types/index.js\";\nimport * as Data_List_Types from \"../Data.List.Types/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Maybe_First from \"../Data.Maybe.First/index.js\";\nimport * as Data_Maybe_Last from \"../Data.Maybe.Last/index.js\";\nimport * as Data_Monoid from \"../Data.Monoid/index.js\";\nimport * as Data_Monoid_Additive from \"../Data.Monoid.Additive/index.js\";\nimport * as Data_Monoid_Conj from \"../Data.Monoid.Conj/index.js\";\nimport * as Data_Monoid_Disj from \"../Data.Monoid.Disj/index.js\";\nimport * as Data_Monoid_Dual from \"../Data.Monoid.Dual/index.js\";\nimport * as Data_Monoid_Endo from \"../Data.Monoid.Endo/index.js\";\nimport * as Data_Monoid_Multiplicative from \"../Data.Monoid.Multiplicative/index.js\";\nimport * as Data_Newtype from \"../Data.Newtype/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Data_Profunctor from \"../Data.Profunctor/index.js\";\nimport * as Data_Profunctor_Choice from \"../Data.Profunctor.Choice/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nvar $runtime_lazy = function (name, moduleName, init) {\n var state = 0;\n var val;\n return function (lineNumber) {\n if (state === 2) return val;\n if (state === 1) throw new ReferenceError(name + \" was needed before it finished initializing (module \" + moduleName + \", line \" + lineNumber + \")\", moduleName, lineNumber);\n state = 1;\n val = init();\n state = 2;\n return val;\n };\n};\nvar unfolded = function (dictMonoid) {\n return function (f) {\n return function (p) {\n var $lazy_go = $runtime_lazy(\"go\", \"Data.Lens.Fold\", function () {\n var $44 = Data_Maybe.maybe(Data_Monoid.mempty(dictMonoid))(function (v) {\n return Data_Semigroup.append(dictMonoid.Semigroup0())(Data_Newtype.unwrap()(p)(v.value0))($lazy_go(232)(v.value1));\n });\n return function ($45) {\n return $44(f($45));\n };\n });\n var go = $lazy_go(232);\n return go;\n };\n };\n};\nvar replicated = function (dictMonoid) {\n return function (i) {\n return function (v) {\n var go = function (v1) {\n return function (v2) {\n if (v1 === 0) {\n return Data_Monoid.mempty(Data_Monoid.monoidFn(dictMonoid));\n };\n return Data_Semigroup.append(Data_Semigroup.semigroupFn(dictMonoid.Semigroup0()))(v2)(go(v1 - 1 | 0)(v2));\n };\n };\n return go(i)(v);\n };\n };\n};\nvar ifoldMapOf = function (p) {\n return function (f) {\n return Data_Newtype.unwrap()(p(Data_Tuple.uncurry(f)));\n };\n};\nvar ifoldlOf = function (p) {\n return function (f) {\n return function (r) {\n var $46 = Data_Function.flip(Data_Newtype.unwrap())(r);\n var $47 = Data_Newtype.unwrap();\n var $48 = ifoldMapOf(p)(function (i) {\n var $50 = Data_Function.flip(f(i));\n return function ($51) {\n return Data_Monoid_Dual.Dual(Data_Monoid_Endo.Endo($50($51)));\n };\n });\n return function ($49) {\n return $46($47($48($49)));\n };\n };\n };\n};\nvar ifoldrOf = function (p) {\n return function (f) {\n return function (r) {\n var $52 = Data_Function.flip(Data_Newtype.unwrap())(r);\n var $53 = ifoldMapOf(p)(function (i) {\n var $55 = f(i);\n return function ($56) {\n return Data_Monoid_Endo.Endo($55($56));\n };\n });\n return function ($54) {\n return $52($53($54));\n };\n };\n };\n};\nvar itoListOf = function (p) {\n return ifoldrOf(p)(function (i) {\n return function (x) {\n return function (xs) {\n return new Data_List_Types.Cons(new Data_Tuple.Tuple(i, x), xs);\n };\n };\n })(Data_List_Types.Nil.value);\n};\nvar itraverseOf_ = function (dictApplicative) {\n return function (p) {\n return function (f) {\n return ifoldrOf(p)(function (i) {\n return function (a) {\n return function (fu) {\n return Control_Apply.applySecond(dictApplicative.Apply0())(Data_Functor[\"void\"]((dictApplicative.Apply0()).Functor0())(f(i)(a)))(fu);\n };\n };\n })(Control_Applicative.pure(dictApplicative)(Data_Unit.unit));\n };\n };\n};\nvar iforOf_ = function (dictApplicative) {\n var $57 = itraverseOf_(dictApplicative);\n return function ($58) {\n return Data_Function.flip($57($58));\n };\n};\nvar ifindOf = function (p) {\n return function (f) {\n return ifoldrOf(p)(function (i) {\n return function (a) {\n return Data_Maybe.maybe((function () {\n var $38 = f(i)(a);\n if ($38) {\n return new Data_Maybe.Just(a);\n };\n return Data_Maybe.Nothing.value;\n })())(Data_Maybe.Just.create);\n };\n })(Data_Maybe.Nothing.value);\n };\n};\nvar ianyOf = function (dictHeytingAlgebra) {\n return function (p) {\n return function (f) {\n var $59 = Data_Newtype.unwrap();\n var $60 = ifoldMapOf(p)(function (i) {\n var $62 = f(i);\n return function ($63) {\n return Data_Monoid_Disj.Disj($62($63));\n };\n });\n return function ($61) {\n return $59($60($61));\n };\n };\n };\n};\nvar iallOf = function (dictHeytingAlgebra) {\n return function (p) {\n return function (f) {\n var $64 = Data_Newtype.unwrap();\n var $65 = ifoldMapOf(p)(function (i) {\n var $67 = f(i);\n return function ($68) {\n return Data_Monoid_Conj.Conj($67($68));\n };\n });\n return function ($66) {\n return $64($65($66));\n };\n };\n };\n};\nvar folded = function (dictMonoid) {\n return function (dictFoldable) {\n return function (v) {\n return Data_Foldable.foldMap(dictFoldable)(dictMonoid)(v);\n };\n };\n};\nvar foldMapOf = /* #__PURE__ */ Data_Newtype.under()()(Data_Lens_Internal_Forget.Forget);\nvar foldOf = function (p) {\n return foldMapOf(p)(Control_Category.identity(Control_Category.categoryFn));\n};\nvar foldlOf = function (p) {\n return function (f) {\n return function (r) {\n var $69 = Data_Function.flip(Data_Newtype.unwrap())(r);\n var $70 = Data_Newtype.unwrap();\n var $71 = foldMapOf(p)((function () {\n var $73 = Data_Function.flip(f);\n return function ($74) {\n return Data_Monoid_Dual.Dual(Data_Monoid_Endo.Endo($73($74)));\n };\n })());\n return function ($72) {\n return $69($70($71($72)));\n };\n };\n };\n};\nvar foldrOf = function (p) {\n return function (f) {\n return function (r) {\n var $75 = Data_Function.flip(Data_Newtype.unwrap())(r);\n var $76 = foldMapOf(p)(function ($78) {\n return Data_Monoid_Endo.Endo(f($78));\n });\n return function ($77) {\n return $75($76($77));\n };\n };\n };\n};\nvar maximumOf = function (dictOrd) {\n return function (p) {\n var max = function (a) {\n return function (b) {\n var $40 = Data_Ord.greaterThan(dictOrd)(a)(b);\n if ($40) {\n return a;\n };\n return b;\n };\n };\n return foldrOf(p)(function (a) {\n var $79 = Data_Maybe.maybe(a)(max(a));\n return function ($80) {\n return Data_Maybe.Just.create($79($80));\n };\n })(Data_Maybe.Nothing.value);\n };\n};\nvar minimumOf = function (dictOrd) {\n return function (p) {\n var min = function (a) {\n return function (b) {\n var $41 = Data_Ord.lessThan(dictOrd)(a)(b);\n if ($41) {\n return a;\n };\n return b;\n };\n };\n return foldrOf(p)(function (a) {\n var $81 = Data_Maybe.maybe(a)(min(a));\n return function ($82) {\n return Data_Maybe.Just.create($81($82));\n };\n })(Data_Maybe.Nothing.value);\n };\n};\nvar toListOf = function (p) {\n return foldrOf(p)(Data_List_Types.Cons.create)(Data_List_Types.Nil.value);\n};\nvar toArrayOf = function (p) {\n var $83 = Data_Array.fromFoldable(Data_List_Types.foldableList);\n var $84 = toListOf(p);\n return function ($85) {\n return $83($84($85));\n };\n};\nvar toArrayOfOn = function (s) {\n return function (p) {\n return toArrayOf(p)(s);\n };\n};\nvar toListOfOn = function (s) {\n return function (p) {\n return toListOf(p)(s);\n };\n};\nvar traverseOf_ = function (dictApplicative) {\n return function (p) {\n return function (f) {\n return foldrOf(p)(function (a) {\n return function (fu) {\n return Control_Apply.applySecond(dictApplicative.Apply0())(Data_Functor[\"void\"]((dictApplicative.Apply0()).Functor0())(f(a)))(fu);\n };\n })(Control_Applicative.pure(dictApplicative)(Data_Unit.unit));\n };\n };\n};\nvar has = function (dictHeytingAlgebra) {\n return function (p) {\n var $86 = Data_Newtype.unwrap();\n var $87 = foldMapOf(p)(Data_Function[\"const\"](Data_HeytingAlgebra.tt(dictHeytingAlgebra)));\n return function ($88) {\n return $86($87($88));\n };\n };\n};\nvar hasn$primet = function (dictHeytingAlgebra) {\n return function (p) {\n var $89 = Data_Newtype.unwrap();\n var $90 = foldMapOf(p)(Data_Function[\"const\"](Data_HeytingAlgebra.ff(dictHeytingAlgebra)));\n return function ($91) {\n return $89($90($91));\n };\n };\n};\nvar lastOf = function (p) {\n var $92 = Data_Newtype.unwrap();\n var $93 = foldMapOf(p)(function ($95) {\n return Data_Maybe_Last.Last(Data_Maybe.Just.create($95));\n });\n return function ($94) {\n return $92($93($94));\n };\n};\nvar lengthOf = function (p) {\n var $96 = Data_Newtype.unwrap();\n var $97 = foldMapOf(p)(Data_Function[\"const\"](1));\n return function ($98) {\n return $96($97($98));\n };\n};\nvar preview = function (p) {\n var $99 = Data_Newtype.unwrap();\n var $100 = foldMapOf(p)(function ($102) {\n return Data_Maybe_First.First(Data_Maybe.Just.create($102));\n });\n return function ($101) {\n return $99($100($101));\n };\n};\nvar previewOn = function (s) {\n return function (p) {\n return preview(p)(s);\n };\n};\nvar productOf = function (dictSemiring) {\n return function (p) {\n var $103 = Data_Newtype.unwrap();\n var $104 = foldMapOf(p)(Data_Monoid_Multiplicative.Multiplicative);\n return function ($105) {\n return $103($104($105));\n };\n };\n};\nvar sequenceOf_ = function (dictApplicative) {\n return function (p) {\n var $106 = Data_Function.flip(Data_Newtype.unwrap())(Control_Applicative.pure(dictApplicative)(Data_Unit.unit));\n var $107 = foldMapOf(p)(function (f) {\n return function (v) {\n return Control_Apply.applySecond(dictApplicative.Apply0())(f)(v);\n };\n });\n return function ($108) {\n return $106($107($108));\n };\n };\n};\nvar sumOf = function (dictSemiring) {\n return function (p) {\n var $109 = Data_Newtype.unwrap();\n var $110 = foldMapOf(p)(Data_Monoid_Additive.Additive);\n return function ($111) {\n return $109($110($111));\n };\n };\n};\nvar firstOf = function (p) {\n var $112 = Data_Newtype.unwrap();\n var $113 = foldMapOf(p)(function ($115) {\n return Data_Maybe_First.First(Data_Maybe.Just.create($115));\n });\n return function ($114) {\n return $112($113($114));\n };\n};\nvar findOf = function (p) {\n return function (f) {\n return foldrOf(p)(function (a) {\n return Data_Maybe.maybe((function () {\n var $42 = f(a);\n if ($42) {\n return new Data_Maybe.Just(a);\n };\n return Data_Maybe.Nothing.value;\n })())(Data_Maybe.Just.create);\n })(Data_Maybe.Nothing.value);\n };\n};\nvar filtered = function (dictChoice) {\n return function (f) {\n var $116 = Data_Profunctor.dimap(dictChoice.Profunctor0())(function (x) {\n var $43 = f(x);\n if ($43) {\n return new Data_Either.Right(x);\n };\n return new Data_Either.Left(x);\n })(Data_Either.either(Control_Category.identity(Control_Category.categoryFn))(Control_Category.identity(Control_Category.categoryFn)));\n var $117 = Data_Profunctor_Choice.right(dictChoice);\n return function ($118) {\n return $116($117($118));\n };\n };\n};\nvar anyOf = function (dictHeytingAlgebra) {\n return function (p) {\n return function (f) {\n var $119 = Data_Newtype.unwrap();\n var $120 = foldMapOf(p)(function ($122) {\n return Data_Monoid_Disj.Disj(f($122));\n });\n return function ($121) {\n return $119($120($121));\n };\n };\n };\n};\nvar elemOf = function (dictEq) {\n return function (p) {\n return function (a) {\n return anyOf(Data_HeytingAlgebra.heytingAlgebraBoolean)(p)(function (v) {\n return Data_Eq.eq(dictEq)(v)(a);\n });\n };\n };\n};\nvar orOf = function (dictHeytingAlgebra) {\n return function (p) {\n return anyOf(dictHeytingAlgebra)(p)(Control_Category.identity(Control_Category.categoryFn));\n };\n};\nvar allOf = function (dictHeytingAlgebra) {\n return function (p) {\n return function (f) {\n var $123 = Data_Newtype.unwrap();\n var $124 = foldMapOf(p)(function ($126) {\n return Data_Monoid_Conj.Conj(f($126));\n });\n return function ($125) {\n return $123($124($125));\n };\n };\n };\n};\nvar andOf = function (dictHeytingAlgebra) {\n return function (p) {\n return allOf(dictHeytingAlgebra)(p)(Control_Category.identity(Control_Category.categoryFn));\n };\n};\nvar notElemOf = function (dictEq) {\n return function (p) {\n return function (a) {\n return allOf(Data_HeytingAlgebra.heytingAlgebraBoolean)(p)(function (v) {\n return Data_Eq.notEq(dictEq)(v)(a);\n });\n };\n };\n};\nexport {\n previewOn,\n toListOfOn,\n preview,\n foldOf,\n foldMapOf,\n foldrOf,\n foldlOf,\n toListOf,\n firstOf,\n lastOf,\n maximumOf,\n minimumOf,\n allOf,\n anyOf,\n andOf,\n orOf,\n elemOf,\n notElemOf,\n sumOf,\n productOf,\n lengthOf,\n findOf,\n sequenceOf_,\n traverseOf_,\n has,\n hasn$primet,\n replicated,\n filtered,\n folded,\n unfolded,\n toArrayOf,\n toArrayOfOn,\n ifoldMapOf,\n ifoldrOf,\n ifoldlOf,\n iallOf,\n ianyOf,\n ifindOf,\n itoListOf,\n itraverseOf_,\n iforOf_\n};\n","// Generated by purs version 0.15.2\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Control_Monad_State_Class from \"../Control.Monad.State.Class/index.js\";\nimport * as Data_Lens_Types from \"../Data.Lens.Types/index.js\";\nimport * as Data_Newtype from \"../Data.Newtype/index.js\";\nimport * as Data_Profunctor_Strong from \"../Data.Profunctor.Strong/index.js\";\nvar view = function (l) {\n return Data_Newtype.unwrap()(l(Control_Category.identity(Control_Category.categoryFn)));\n};\nvar viewOn = function (s) {\n return function (l) {\n return view(l)(s);\n };\n};\nvar use = function (dictMonadState) {\n return function (p) {\n return Control_Monad_State_Class.gets(dictMonadState)(function (v) {\n return viewOn(v)(p);\n });\n };\n};\nvar to = function (f) {\n return function (p) {\n var $3 = Data_Newtype.unwrap()(p);\n return function ($4) {\n return $3(f($4));\n };\n };\n};\nvar takeBoth = function (l) {\n return function (r) {\n return to(Data_Profunctor_Strong.fanout(Control_Category.categoryFn)(Data_Profunctor_Strong.strongFn)(view(l))(view(r)));\n };\n};\nvar iview = function (l) {\n return Data_Newtype.unwrap()(l(Control_Category.identity(Control_Category.categoryFn)));\n};\nvar iuse = function (dictMonadState) {\n return function (p) {\n return Control_Monad_State_Class.gets(dictMonadState)(iview(p));\n };\n};\nvar cloneGetter = function (g) {\n return to(view(g));\n};\nexport {\n viewOn,\n view,\n to,\n takeBoth,\n use,\n iview,\n iuse,\n cloneGetter\n};\nexport {\n Indexed\n} from \"../Data.Lens.Types/index.js\";\n","// Generated by purs version 0.15.2\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_HeytingAlgebra from \"../Data.HeytingAlgebra/index.js\";\nimport * as Data_Int from \"../Data.Int/index.js\";\nimport * as Data_Lens_Fold from \"../Data.Lens.Fold/index.js\";\nimport * as Data_Lens_Getter from \"../Data.Lens.Getter/index.js\";\nimport * as Data_Lens_Internal_Forget from \"../Data.Lens.Internal.Forget/index.js\";\nimport * as Data_Lens_Internal_Wander from \"../Data.Lens.Internal.Wander/index.js\";\nimport * as Data_Lens_Prism_Maybe from \"../Data.Lens.Prism.Maybe/index.js\";\nimport * as Data_Lens_Setter from \"../Data.Lens.Setter/index.js\";\nimport * as Data_Lens_Traversal from \"../Data.Lens.Traversal/index.js\";\nimport * as Data_List from \"../Data.List/index.js\";\nimport * as Data_List_Types from \"../Data.List.Types/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Monoid_Additive from \"../Data.Monoid.Additive/index.js\";\nimport * as Data_Monoid_Disj from \"../Data.Monoid.Disj/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Data_Profunctor_Choice from \"../Data.Profunctor.Choice/index.js\";\nimport * as Data_Profunctor_Strong from \"../Data.Profunctor.Strong/index.js\";\nimport * as Data_Ring from \"../Data.Ring/index.js\";\nimport * as Data_Semiring from \"../Data.Semiring/index.js\";\nimport * as Data_Show from \"../Data.Show/index.js\";\nimport * as Data_String_CodeUnits from \"../Data.String.CodeUnits/index.js\";\nimport * as Data_String_Common from \"../Data.String.Common/index.js\";\nimport * as Data_String_Utils from \"../Data.String.Utils/index.js\";\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nimport * as TablatureDocument from \"../TablatureDocument/index.js\";\nimport * as Utils from \"../Utils/index.js\";\nvar Flat = /* #__PURE__ */ (function () {\n function Flat() {\n\n };\n Flat.value = new Flat();\n return Flat;\n})();\nvar Sharp = /* #__PURE__ */ (function () {\n function Sharp() {\n\n };\n Sharp.value = new Sharp();\n return Sharp;\n})();\nvar Default = /* #__PURE__ */ (function () {\n function Default() {\n\n };\n Default.value = new Default();\n return Default;\n})();\nvar eqNoteOrientation = {\n eq: function (x) {\n return function (y) {\n if (x instanceof Flat && y instanceof Flat) {\n return true;\n };\n if (x instanceof Sharp && y instanceof Sharp) {\n return true;\n };\n if (x instanceof Default && y instanceof Default) {\n return true;\n };\n return false;\n };\n }\n};\nvar revertFalsePositiveChords = /* #__PURE__ */ (function () {\n var isPotentiallyAmbiguousChord = function (v) {\n if (v instanceof TablatureDocument.TextLineChord) {\n return Utils.unsafeTestRegex(\"^([Aa][Mm]?|[DdGg]o|[a-z]|Bob)$\")(Utils.print(TablatureDocument.printChord)(v.value0.elem));\n };\n return false;\n };\n var isUnambiguousChord = function (elem) {\n if (elem instanceof TablatureDocument.TextLineChord) {\n return !isPotentiallyAmbiguousChord(elem);\n };\n return false;\n };\n var rewriteElement = function (v) {\n if (v instanceof TablatureDocument.TextLineChord) {\n var $35 = isPotentiallyAmbiguousChord(v);\n if ($35) {\n return new TablatureDocument.Text(Utils.print(TablatureDocument.printSpaced(TablatureDocument.printChord))(v.value0));\n };\n return v;\n };\n return v;\n };\n var isChordLegend = function (v) {\n if (v instanceof TablatureDocument.ChordLegend) {\n return true;\n };\n return false;\n };\n var containsChordLegend = function (line) {\n return Data_Lens_Fold.anyOf(Data_HeytingAlgebra.heytingAlgebraBoolean)((function () {\n var $86 = TablatureDocument[\"_TextLine\"](Data_Lens_Internal_Forget.choiceForget(Data_Monoid_Disj.monoidDisj(Data_HeytingAlgebra.heytingAlgebraBoolean)));\n var $87 = Data_Lens_Traversal.traversed(Data_List_Types.traversableList)(Data_Lens_Internal_Forget.wanderForget(Data_Monoid_Disj.monoidDisj(Data_HeytingAlgebra.heytingAlgebraBoolean)));\n return function ($88) {\n return $86($87($88));\n };\n })())(isChordLegend)(line);\n };\n var containsAtLeastOneUnambiguousChord = function (line) {\n return Data_Lens_Fold.anyOf(Data_HeytingAlgebra.heytingAlgebraBoolean)((function () {\n var $89 = TablatureDocument[\"_TextLine\"](Data_Lens_Internal_Forget.choiceForget(Data_Monoid_Disj.monoidDisj(Data_HeytingAlgebra.heytingAlgebraBoolean)));\n var $90 = Data_Lens_Traversal.traversed(Data_List_Types.traversableList)(Data_Lens_Internal_Forget.wanderForget(Data_Monoid_Disj.monoidDisj(Data_HeytingAlgebra.heytingAlgebraBoolean)));\n return function ($91) {\n return $89($90($91));\n };\n })())(isUnambiguousChord)(line);\n };\n var containsAtLeastFourAmbiguousChords = function (line) {\n return Data_Lens_Fold.lengthOf((function () {\n var $92 = TablatureDocument[\"_TextLine\"](Data_Lens_Internal_Forget.choiceForget(Data_Monoid_Additive.monoidAdditive(Data_Semiring.semiringInt)));\n var $93 = Data_Lens_Traversal.traversed(Data_List_Types.traversableList)(Data_Lens_Internal_Forget.wanderForget(Data_Monoid_Additive.monoidAdditive(Data_Semiring.semiringInt)));\n var $94 = Data_Lens_Fold.filtered(Data_Lens_Internal_Forget.choiceForget(Data_Monoid_Additive.monoidAdditive(Data_Semiring.semiringInt)))(isPotentiallyAmbiguousChord);\n return function ($95) {\n return $92($93($94($95)));\n };\n })())(line) > 3;\n };\n var rewriteLine = function (line) {\n var $39 = containsChordLegend(line) || (containsAtLeastFourAmbiguousChords(line) || containsAtLeastOneUnambiguousChord(line));\n if ($39) {\n return line;\n };\n return Data_Lens_Setter.over((function () {\n var $96 = TablatureDocument[\"_TextLine\"](Data_Profunctor_Choice.choiceFn);\n var $97 = Data_Lens_Traversal.traversed(Data_List_Types.traversableList)(Data_Lens_Internal_Wander.wanderFunction);\n return function ($98) {\n return $96($97($98));\n };\n })())(rewriteElement)(line);\n };\n return Data_Functor.map(Data_List_Types.functorList)(rewriteLine);\n})();\nvar liftMappingSpaced = function (dictPrint) {\n return function (mapping) {\n return function (v) {\n var newElem = mapping(v.elem);\n var newSuffix = (v.spaceSuffix + Data_String_CodeUnits.length(Utils.print(dictPrint)(v.elem)) | 0) - Data_String_CodeUnits.length(Utils.print(dictPrint)(newElem)) | 0;\n return {\n elem: newElem,\n spaceSuffix: newSuffix\n };\n };\n };\n};\nvar fixTimeLine = function (settings) {\n return function (doc) {\n var rewriteTablatureLineElem = function (v) {\n if (v instanceof TablatureDocument.TimelineConnection) {\n return new TablatureDocument.TimelineConnection(Data_String_Common.replaceAll(\"\\u2014\")(\"-\")(Data_String_Common.replaceAll(\" \")(\"-\")(v.value0)));\n };\n if (v instanceof TablatureDocument.TimelineSep) {\n return new TablatureDocument.TimelineSep(Data_String_Common.replaceAll(\"[\")(\"|\")(Data_String_Common.replaceAll(\"]\")(\"|\")(v.value0)));\n };\n return v;\n };\n var rewriteLine = function (v) {\n if (v instanceof TablatureDocument.TablatureLine) {\n return new TablatureDocument.TablatureLine(Data_Functor.map(Data_List_Types.functorList)(rewriteTablatureLineElem)(v.value0));\n };\n return v;\n };\n var $47 = !settings.normalizeTabs;\n if ($47) {\n return doc;\n };\n return Data_Functor.map(Data_List_Types.functorList)(rewriteLine)(doc);\n };\n};\nvar dozenalizeFrets = function (settings) {\n return function (doc) {\n var toDozenalString = function (s) {\n var v = Data_Int.fromString(s);\n if (v instanceof Data_Maybe.Nothing) {\n return s;\n };\n if (v instanceof Data_Maybe.Just) {\n var dozenal = Data_Maybe.fromMaybe(Data_Int.decimal)(Data_Int.radix(12));\n var $49 = v.value0 > 25;\n if ($49) {\n return Data_Show.show(Data_Show.showInt)(v.value0);\n };\n return Data_String_Common.replaceAll(\"b\")(\"\\u218b\")(Data_String_Common.replaceAll(\"a\")(\"\\u218a\")(Data_Int.toStringAs(dozenal)(v.value0)));\n };\n throw new Error(\"Failed pattern match at TablatureRewriter (line 259, column 5 - line 268, column 47): \" + [ v.constructor.name ]);\n };\n var rewriteTablatureLineElems = function (elems) {\n return Utils.foreach(0)(elems)(function (pendingDashes) {\n return function (elem) {\n if (elem instanceof TablatureDocument.TimelineConnection) {\n return new Data_Tuple.Tuple(0, new TablatureDocument.TimelineConnection(Data_Maybe.fromMaybe(\"\")(Data_String_Utils.repeat(pendingDashes)(\"-\")) + elem.value0));\n };\n if (elem instanceof TablatureDocument.Fret) {\n var fretString = toDozenalString(elem.value0);\n return Data_Function.flip(Data_Tuple.Tuple.create)(new TablatureDocument.Fret(fretString))((function () {\n var $53 = fretString === \"\\u218a\" || fretString === \"\\u218b\";\n if ($53) {\n return pendingDashes + 1 | 0;\n };\n return pendingDashes;\n })());\n };\n return new Data_Tuple.Tuple(pendingDashes, elem);\n };\n });\n };\n var rewriteLine = function (v) {\n if (v instanceof TablatureDocument.TablatureLine) {\n return new TablatureDocument.TablatureLine(rewriteTablatureLineElems(v.value0));\n };\n return v;\n };\n var $57 = !settings.dozenalizeTabs;\n if ($57) {\n return doc;\n };\n return Data_Functor.map(Data_List_Types.functorList)(rewriteLine)(doc);\n };\n};\nvar canonicalizeNote = function (settings) {\n var toUpperCase = function (note) {\n return Data_Lens_Setter.set(TablatureDocument[\"_lowercase\"](Data_Profunctor_Strong.strongFn))(false)(note);\n };\n var toPreferredOrientation = function (note) {\n if (settings.noteOrientation instanceof Default) {\n var v = Data_Lens_Getter.view(TablatureDocument[\"_mod\"](Data_Lens_Internal_Forget.strongForget))(note);\n if (v === \"#\") {\n var v1 = Data_Lens_Getter.view(TablatureDocument[\"_primitive\"](Data_Lens_Internal_Forget.strongForget))(note);\n if (v1 instanceof TablatureDocument.A) {\n return Data_Lens_Setter.set(TablatureDocument[\"_primitive\"](Data_Profunctor_Strong.strongFn))(TablatureDocument.B.value)(Data_Lens_Setter.set(TablatureDocument[\"_mod\"](Data_Profunctor_Strong.strongFn))(\"b\")(note));\n };\n if (v1 instanceof TablatureDocument.D) {\n return Data_Lens_Setter.set(TablatureDocument[\"_primitive\"](Data_Profunctor_Strong.strongFn))(TablatureDocument.E.value)(Data_Lens_Setter.set(TablatureDocument[\"_mod\"](Data_Profunctor_Strong.strongFn))(\"b\")(note));\n };\n if (v1 instanceof TablatureDocument.G) {\n return Data_Lens_Setter.set(TablatureDocument[\"_primitive\"](Data_Profunctor_Strong.strongFn))(TablatureDocument.A.value)(Data_Lens_Setter.set(TablatureDocument[\"_mod\"](Data_Profunctor_Strong.strongFn))(\"b\")(note));\n };\n return note;\n };\n if (v === \"b\") {\n var v1 = Data_Lens_Getter.view(TablatureDocument[\"_primitive\"](Data_Lens_Internal_Forget.strongForget))(note);\n if (v1 instanceof TablatureDocument.D) {\n return Data_Lens_Setter.set(TablatureDocument[\"_primitive\"](Data_Profunctor_Strong.strongFn))(TablatureDocument.C.value)(Data_Lens_Setter.set(TablatureDocument[\"_mod\"](Data_Profunctor_Strong.strongFn))(\"#\")(note));\n };\n if (v1 instanceof TablatureDocument.G) {\n return Data_Lens_Setter.set(TablatureDocument[\"_primitive\"](Data_Profunctor_Strong.strongFn))(TablatureDocument.F.value)(Data_Lens_Setter.set(TablatureDocument[\"_mod\"](Data_Profunctor_Strong.strongFn))(\"#\")(note));\n };\n return note;\n };\n return note;\n };\n if (settings.noteOrientation instanceof Flat) {\n var v = Data_Lens_Getter.view(TablatureDocument[\"_mod\"](Data_Lens_Internal_Forget.strongForget))(note);\n if (v === \"#\") {\n var v1 = Data_Lens_Getter.view(TablatureDocument[\"_primitive\"](Data_Lens_Internal_Forget.strongForget))(note);\n if (v1 instanceof TablatureDocument.A) {\n return Data_Lens_Setter.set(TablatureDocument[\"_primitive\"](Data_Profunctor_Strong.strongFn))(TablatureDocument.B.value)(Data_Lens_Setter.set(TablatureDocument[\"_mod\"](Data_Profunctor_Strong.strongFn))(\"b\")(note));\n };\n if (v1 instanceof TablatureDocument.C) {\n return Data_Lens_Setter.set(TablatureDocument[\"_primitive\"](Data_Profunctor_Strong.strongFn))(TablatureDocument.D.value)(Data_Lens_Setter.set(TablatureDocument[\"_mod\"](Data_Profunctor_Strong.strongFn))(\"b\")(note));\n };\n if (v1 instanceof TablatureDocument.D) {\n return Data_Lens_Setter.set(TablatureDocument[\"_primitive\"](Data_Profunctor_Strong.strongFn))(TablatureDocument.E.value)(Data_Lens_Setter.set(TablatureDocument[\"_mod\"](Data_Profunctor_Strong.strongFn))(\"b\")(note));\n };\n if (v1 instanceof TablatureDocument.F) {\n return Data_Lens_Setter.set(TablatureDocument[\"_primitive\"](Data_Profunctor_Strong.strongFn))(TablatureDocument.G.value)(Data_Lens_Setter.set(TablatureDocument[\"_mod\"](Data_Profunctor_Strong.strongFn))(\"b\")(note));\n };\n if (v1 instanceof TablatureDocument.G) {\n return Data_Lens_Setter.set(TablatureDocument[\"_primitive\"](Data_Profunctor_Strong.strongFn))(TablatureDocument.A.value)(Data_Lens_Setter.set(TablatureDocument[\"_mod\"](Data_Profunctor_Strong.strongFn))(\"b\")(note));\n };\n return note;\n };\n return note;\n };\n if (settings.noteOrientation instanceof Sharp) {\n var v = Data_Lens_Getter.view(TablatureDocument[\"_mod\"](Data_Lens_Internal_Forget.strongForget))(note);\n if (v === \"b\") {\n var v1 = Data_Lens_Getter.view(TablatureDocument[\"_primitive\"](Data_Lens_Internal_Forget.strongForget))(note);\n if (v1 instanceof TablatureDocument.A) {\n return Data_Lens_Setter.set(TablatureDocument[\"_primitive\"](Data_Profunctor_Strong.strongFn))(TablatureDocument.G.value)(Data_Lens_Setter.set(TablatureDocument[\"_mod\"](Data_Profunctor_Strong.strongFn))(\"#\")(note));\n };\n if (v1 instanceof TablatureDocument.B) {\n return Data_Lens_Setter.set(TablatureDocument[\"_primitive\"](Data_Profunctor_Strong.strongFn))(TablatureDocument.A.value)(Data_Lens_Setter.set(TablatureDocument[\"_mod\"](Data_Profunctor_Strong.strongFn))(\"#\")(note));\n };\n if (v1 instanceof TablatureDocument.D) {\n return Data_Lens_Setter.set(TablatureDocument[\"_primitive\"](Data_Profunctor_Strong.strongFn))(TablatureDocument.C.value)(Data_Lens_Setter.set(TablatureDocument[\"_mod\"](Data_Profunctor_Strong.strongFn))(\"#\")(note));\n };\n if (v1 instanceof TablatureDocument.E) {\n return Data_Lens_Setter.set(TablatureDocument[\"_primitive\"](Data_Profunctor_Strong.strongFn))(TablatureDocument.D.value)(Data_Lens_Setter.set(TablatureDocument[\"_mod\"](Data_Profunctor_Strong.strongFn))(\"#\")(note));\n };\n if (v1 instanceof TablatureDocument.G) {\n return Data_Lens_Setter.set(TablatureDocument[\"_primitive\"](Data_Profunctor_Strong.strongFn))(TablatureDocument.F.value)(Data_Lens_Setter.set(TablatureDocument[\"_mod\"](Data_Profunctor_Strong.strongFn))(\"#\")(note));\n };\n return note;\n };\n return note;\n };\n throw new Error(\"Failed pattern match at TablatureRewriter (line 147, column 5 - line 179, column 20): \" + [ settings.noteOrientation.constructor.name ]);\n };\n var reduceSharps = function (note) {\n var substitute = function (p) {\n var v = Data_String_CodeUnits.stripPrefix(p)(Data_Lens_Getter.view(TablatureDocument[\"_mod\"](Data_Lens_Internal_Forget.strongForget))(note));\n if (v instanceof Data_Maybe.Nothing) {\n return note;\n };\n if (v instanceof Data_Maybe.Just) {\n return Data_Lens_Setter.over(TablatureDocument[\"_primitive\"](Data_Profunctor_Strong.strongFn))(Utils[\"succ$prime\"](TablatureDocument.cyclicEnumNoteLetterPrimi))(Data_Lens_Setter.set(TablatureDocument[\"_mod\"](Data_Profunctor_Strong.strongFn))(v.value0)(note));\n };\n throw new Error(\"Failed pattern match at TablatureRewriter (line 137, column 20 - line 139, column 68): \" + [ v.constructor.name ]);\n };\n var $68 = Data_Eq.eq(TablatureDocument.eqNoteLetterPrimitive)(Data_Lens_Getter.view(TablatureDocument[\"_primitive\"](Data_Lens_Internal_Forget.strongForget))(note))(TablatureDocument.B.value) || Data_Eq.eq(TablatureDocument.eqNoteLetterPrimitive)(Data_Lens_Getter.view(TablatureDocument[\"_primitive\"](Data_Lens_Internal_Forget.strongForget))(note))(TablatureDocument.E.value);\n if ($68) {\n return substitute(\"#\");\n };\n return substitute(\"##\");\n };\n var reduceFlats = function (note) {\n var substitute = function (p) {\n var v = Data_String_CodeUnits.stripPrefix(p)(Data_Lens_Getter.view(TablatureDocument[\"_mod\"](Data_Lens_Internal_Forget.strongForget))(note));\n if (v instanceof Data_Maybe.Nothing) {\n return note;\n };\n if (v instanceof Data_Maybe.Just) {\n return Data_Lens_Setter.over(TablatureDocument[\"_primitive\"](Data_Profunctor_Strong.strongFn))(Utils[\"pred$prime\"](TablatureDocument.cyclicEnumNoteLetterPrimi))(Data_Lens_Setter.set(TablatureDocument[\"_mod\"](Data_Profunctor_Strong.strongFn))(v.value0)(note));\n };\n throw new Error(\"Failed pattern match at TablatureRewriter (line 143, column 20 - line 145, column 68): \" + [ v.constructor.name ]);\n };\n var $71 = Data_Eq.eq(TablatureDocument.eqNoteLetterPrimitive)(Data_Lens_Getter.view(TablatureDocument[\"_primitive\"](Data_Lens_Internal_Forget.strongForget))(note))(TablatureDocument.C.value) || Data_Eq.eq(TablatureDocument.eqNoteLetterPrimitive)(Data_Lens_Getter.view(TablatureDocument[\"_primitive\"](Data_Lens_Internal_Forget.strongForget))(note))(TablatureDocument.F.value);\n if ($71) {\n return substitute(\"b\");\n };\n return substitute(\"bb\");\n };\n var collapseRedundants = function (note) {\n return Data_Lens_Setter.over(TablatureDocument[\"_mod\"](Data_Profunctor_Strong.strongFn))((function () {\n var $99 = Data_String_Common.replace(\"b#\")(\"\");\n var $100 = Data_String_Common.replace(\"#b\")(\"\");\n return function ($101) {\n return $99($100($101));\n };\n })())(note);\n };\n var $102 = Utils.applyUntilIdempotent(TablatureDocument.eqNote)(reduceFlats);\n var $103 = Utils.applyUntilIdempotent(TablatureDocument.eqNote)(reduceSharps);\n var $104 = Utils.applyUntilIdempotent(TablatureDocument.eqNote)(collapseRedundants);\n return function ($105) {\n return toUpperCase(toPreferredOrientation($102($103($104($105)))));\n };\n};\nvar transposeNote = function (settings) {\n var appendSuffix = function (suffix) {\n return Data_Lens_Setter.over(TablatureDocument[\"_mod\"](Data_Profunctor_Strong.strongFn))(function (v) {\n return v + suffix;\n });\n };\n if (settings.transposition === 0) {\n return Control_Category.identity(Control_Category.categoryFn);\n };\n if (settings.transposition > 0) {\n var $106 = canonicalizeNote(settings);\n var $107 = appendSuffix(Data_Maybe.fromMaybe(\"\")(Data_String_Utils.repeat(settings.transposition)(\"#\")));\n return function ($108) {\n return $106($107($108));\n };\n };\n var $109 = canonicalizeNote(settings);\n var $110 = appendSuffix(Data_Maybe.fromMaybe(\"\")(Data_String_Utils.repeat(Data_Ord.abs(Data_Ord.ordInt)(Data_Ring.ringInt)(settings.transposition))(\"b\")));\n return function ($111) {\n return $109($110($111));\n };\n};\nvar transposeTuning = function (settings) {\n var noteMapping = (function () {\n var $112 = (function () {\n if (settings.normalizeChords) {\n return canonicalizeNote(settings);\n };\n return Control_Category.identity(Control_Category.categoryFn);\n })();\n var $113 = transposeNote(settings);\n return function ($114) {\n return $112($113($114));\n };\n })();\n var rewriteLine = Data_Lens_Setter.over((function () {\n var $115 = TablatureDocument[\"_TablatureLine\"](Data_Profunctor_Choice.choiceFn);\n var $116 = Data_Lens_Traversal.traversed(Data_List_Types.traversableList)(Data_Lens_Internal_Wander.wanderFunction);\n var $117 = TablatureDocument[\"_Tuning\"](Data_Profunctor_Choice.choiceFn);\n return function ($118) {\n return $115($116($117($118)));\n };\n })())(liftMappingSpaced(TablatureDocument.printNote)(noteMapping));\n return Data_Functor.map(Data_List_Types.functorList)(rewriteLine);\n};\nvar applyChordMapping = function (chordMapping) {\n var mapping = liftMappingSpaced(TablatureDocument.printChord)(chordMapping);\n var rewriteChordsInChordLine = Data_Lens_Setter.over((function () {\n var $119 = TablatureDocument[\"_TextLine\"](Data_Profunctor_Choice.choiceFn);\n var $120 = Data_Lens_Traversal.traversed(Data_List_Types.traversableList)(Data_Lens_Internal_Wander.wanderFunction);\n var $121 = TablatureDocument[\"_TextLineChord\"](Data_Profunctor_Choice.choiceFn);\n return function ($122) {\n return $119($120($121($122)));\n };\n })())(mapping);\n var rewriteChordsInTextLine = Data_Lens_Setter.over((function () {\n var $123 = TablatureDocument[\"_ChordLine\"](Data_Profunctor_Choice.choiceFn);\n var $124 = Data_Lens_Traversal.traversed(Data_List_Types.traversableList)(Data_Lens_Internal_Wander.wanderFunction);\n var $125 = TablatureDocument[\"_ChordLineChord\"](Data_Profunctor_Choice.choiceFn);\n return function ($126) {\n return $123($124($125($126)));\n };\n })())(mapping);\n return Data_Functor.map(Data_List_Types.functorList)(function ($127) {\n return rewriteChordsInChordLine(rewriteChordsInTextLine($127));\n });\n};\nvar dozenalizeChords = function (settings) {\n return function (doc) {\n var dozenalize = (function () {\n var $128 = Data_String_Common.replaceAll(\"13\")(\"11\");\n var $129 = Data_String_Common.replaceAll(\"11\")(\"\\u218b\");\n return function ($130) {\n return $128($129($130));\n };\n })();\n var rewriteChord = function (v) {\n var newType = dozenalize(v.type);\n var newMods = Data_Functor.map(Data_List_Types.functorList)(function (v1) {\n return {\n pre: v1.pre,\n interval: dozenalize(v1.interval),\n post: v1.post\n };\n })(v.mods);\n return {\n root: v.root,\n type: newType,\n mods: newMods,\n bass: v.bass\n };\n };\n var $76 = !settings.dozenalizeChords;\n if ($76) {\n return doc;\n };\n return applyChordMapping(rewriteChord)(doc);\n };\n};\nvar transposeChords = function (settings) {\n var noteMapping = (function () {\n var $131 = (function () {\n if (settings.normalizeChords) {\n return canonicalizeNote(settings);\n };\n return Control_Category.identity(Control_Category.categoryFn);\n })();\n var $132 = transposeNote(settings);\n return function ($133) {\n return $131($132($133));\n };\n })();\n var chordMapping = (function () {\n var $134 = Data_Lens_Setter.over((function () {\n var $137 = TablatureDocument[\"_bass\"](Data_Profunctor_Strong.strongFn);\n var $138 = Data_Lens_Prism_Maybe[\"_Just\"](Data_Profunctor_Choice.choiceFn);\n return function ($139) {\n return $137($138($139));\n };\n })())(noteMapping);\n var $135 = Data_Lens_Setter.over(TablatureDocument[\"_root\"](Data_Profunctor_Strong.strongFn))(noteMapping);\n return function ($136) {\n return $134($135($136));\n };\n })();\n return applyChordMapping(chordMapping);\n};\nvar addMissingClosingPipe = function (settings) {\n return function (doc) {\n var rewriteLastTimelinePiece = function (string) {\n var $78 = Data_Eq.notEq(Data_Maybe.eqMaybe(Data_Eq.eqChar))(Data_String_CodeUnits.charAt(Data_String_CodeUnits.length(string) - 1 | 0)(string))(new Data_Maybe.Just(\"|\"));\n if ($78) {\n return string + \"|\";\n };\n return string;\n };\n var rewriteTablatureLine = function (elems) {\n return Data_List.reverse(Utils.foreach(false)(Data_List.reverse(elems))(function (done) {\n return function (elem) {\n if (elem instanceof TablatureDocument.TimelineSep) {\n return new Data_Tuple.Tuple(true, elem);\n };\n if (elem instanceof TablatureDocument.TimelineConnection) {\n return new Data_Tuple.Tuple(true, (function () {\n if (done) {\n return elem;\n };\n return new TablatureDocument.TimelineSep(rewriteLastTimelinePiece(elem.value0));\n })());\n };\n return new Data_Tuple.Tuple(done, elem);\n };\n }));\n };\n var rewriteLine = function (v) {\n if (v instanceof TablatureDocument.TablatureLine) {\n return new TablatureDocument.TablatureLine(rewriteTablatureLine(v.value0));\n };\n return v;\n };\n var $85 = !settings.normalizeTabs;\n if ($85) {\n return doc;\n };\n return Data_Functor.map(Data_List_Types.functorList)(rewriteLine)(doc);\n };\n};\nvar rewriteTablatureDocument = function (settings) {\n var $140 = transposeTuning(settings);\n var $141 = transposeChords(settings);\n var $142 = dozenalizeFrets(settings);\n var $143 = dozenalizeChords(settings);\n var $144 = addMissingClosingPipe(settings);\n var $145 = fixTimeLine(settings);\n var $146 = Control_Category.identity(Control_Category.categoryFn);\n return function ($147) {\n return $140($141($142($143($144($145(revertFalsePositiveChords($146($147))))))));\n };\n};\nexport {\n Flat,\n Sharp,\n Default,\n rewriteTablatureDocument,\n revertFalsePositiveChords,\n liftMappingSpaced,\n applyChordMapping,\n transposeChords,\n transposeTuning,\n transposeNote,\n canonicalizeNote,\n fixTimeLine,\n addMissingClosingPipe,\n dozenalizeChords,\n dozenalizeFrets,\n eqNoteOrientation\n};\n","// Generated by purs version 0.15.2\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Apply from \"../Control.Apply/index.js\";\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Data_Array from \"../Data.Array/index.js\";\nimport * as Data_Int from \"../Data.Int/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Show from \"../Data.Show/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nimport * as Effect from \"../Effect/index.js\";\nimport * as Effect_Class from \"../Effect.Class/index.js\";\nimport * as Effect_Console from \"../Effect.Console/index.js\";\nimport * as LZString from \"../LZString/index.js\";\nimport * as LocationString from \"../LocationString/index.js\";\nimport * as TablatureDocument from \"../TablatureDocument/index.js\";\nimport * as TablatureRewriter from \"../TablatureRewriter/index.js\";\nvar setAppQueryString = function (params) {\n return LocationString.setQueryComponents(Data_Array.mapMaybe(Control_Category.identity(Control_Category.categoryFn))([ (function () {\n if (params.noteOrientation instanceof TablatureRewriter.Default) {\n return Data_Maybe.Nothing.value;\n };\n if (params.noteOrientation instanceof TablatureRewriter.Flat) {\n return new Data_Maybe.Just(\"o=0\");\n };\n if (params.noteOrientation instanceof TablatureRewriter.Sharp) {\n return new Data_Maybe.Just(\"o=1\");\n };\n throw new Error(\"Failed pattern match at AppUrl (line 74, column 5 - line 77, column 26): \" + [ params.noteOrientation.constructor.name ]);\n })(), (function () {\n if (params.transposition === 0) {\n return Data_Maybe.Nothing.value;\n };\n return new Data_Maybe.Just(\"t=\" + Data_Show.show(Data_Show.showInt)(params.transposition));\n })() ]));\n};\nvar saveTablatureToUrl = function (tablatureText) {\n var v = LZString.compressToEncodedURIComponent(tablatureText);\n if (v instanceof Data_Maybe.Just) {\n return Effect_Class.liftEffect(Effect_Class.monadEffectEffect)(LocationString.setFragmentString(v.value0));\n };\n if (v instanceof Data_Maybe.Nothing) {\n return Effect_Class.liftEffect(Effect_Class.monadEffectEffect)(Effect_Console.error(\"Could not save tablature to URL\"));\n };\n throw new Error(\"Failed pattern match at AppUrl (line 23, column 3 - line 25, column 80): \" + [ v.constructor.name ]);\n};\nvar resetUrlParams = /* #__PURE__ */ LocationString.setQueryComponents([ ]);\nvar redirectToUrlInFragment = function __do() {\n var compressedUrl = LocationString.getFragmentString();\n var v = LZString.decompressFromEncodedURIComponent(compressedUrl);\n if (v instanceof Data_Maybe.Just) {\n return LocationString.setLocationString(v.value0)();\n };\n return Control_Apply.applySecond(Effect.applyEffect)(Effect_Console.error(\"Could not load decompressed shortlink URL\"))(Control_Applicative.pure(Effect.applicativeEffect)(Data_Unit.unit))();\n};\nvar getTranspositionFromUrl = function __do() {\n var maybeTransposition = LocationString.getQueryParam(\"t\")();\n if (maybeTransposition instanceof Data_Maybe.Nothing) {\n return Data_Maybe.Nothing.value;\n };\n if (maybeTransposition instanceof Data_Maybe.Just) {\n var v = Data_Int.fromString(maybeTransposition.value0);\n if (v instanceof Data_Maybe.Just) {\n return new Data_Maybe.Just(v.value0);\n };\n return Control_Apply.applySecond(Effect.applyEffect)(Effect_Console.error(\"Could not parse transposition parameter\"))(Control_Applicative.pure(Effect.applicativeEffect)(Data_Maybe.Nothing.value))();\n };\n throw new Error(\"Failed pattern match at AppUrl (line 45, column 3 - line 50, column 87): \" + [ maybeTransposition.constructor.name ]);\n};\nvar getTablatureTextFromUrl = function __do() {\n var fragment = Effect_Class.liftEffect(Effect_Class.monadEffectEffect)(LocationString.getFragmentString)();\n var $15 = fragment === \"\" || fragment === \"#\";\n if ($15) {\n return \"\";\n };\n var v = LZString.decompressFromEncodedURIComponent(fragment);\n if (v instanceof Data_Maybe.Just) {\n return v.value0;\n };\n if (v instanceof Data_Maybe.Nothing) {\n return Control_Apply.applySecond(Effect.applyEffect)(Effect_Console.error(\"Could not load tablature from URL\"))(Control_Applicative.pure(Effect.applicativeEffect)(\"\"))();\n };\n throw new Error(\"Failed pattern match at AppUrl (line 31, column 8 - line 33, column 78): \" + [ v.constructor.name ]);\n};\nvar getNoteOrientationFromUrl = function __do() {\n var maybeNoteOrientation = LocationString.getQueryParam(\"o\")();\n if (maybeNoteOrientation instanceof Data_Maybe.Nothing) {\n return Data_Maybe.Nothing.value;\n };\n if (maybeNoteOrientation instanceof Data_Maybe.Just) {\n var v = Data_Int.fromString(maybeNoteOrientation.value0);\n if (v instanceof Data_Maybe.Just && v.value0 === 0) {\n return new Data_Maybe.Just(TablatureRewriter.Flat.value);\n };\n if (v instanceof Data_Maybe.Just && v.value0 === 1) {\n return new Data_Maybe.Just(TablatureRewriter.Sharp.value);\n };\n return Control_Apply.applySecond(Effect.applyEffect)(Effect_Console.error(\"Could not parse note orientation parameter\"))(Control_Applicative.pure(Effect.applicativeEffect)(Data_Maybe.Nothing.value))();\n };\n throw new Error(\"Failed pattern match at AppUrl (line 55, column 3 - line 61, column 90): \" + [ maybeNoteOrientation.constructor.name ]);\n};\nvar getAppUrlParams = function __do() {\n var maybeTransposition = getTranspositionFromUrl();\n var maybeNoteOrientation = getNoteOrientationFromUrl();\n return {\n transposition: Data_Maybe.fromMaybe(TablatureDocument.identityTransposition)(maybeTransposition),\n noteOrientation: Data_Maybe.fromMaybe(TablatureRewriter.Default.value)(maybeNoteOrientation)\n };\n};\nexport {\n saveTablatureToUrl,\n getTablatureTextFromUrl,\n redirectToUrlInFragment,\n getTranspositionFromUrl,\n getNoteOrientationFromUrl,\n getAppUrlParams,\n setAppQueryString,\n resetUrlParams\n};\n","// Generated by purs version 0.15.2\nimport * as Data_Bounded_Generic from \"../Data.Bounded.Generic/index.js\";\nimport * as Data_Enum_Generic from \"../Data.Enum.Generic/index.js\";\nimport * as Data_Generic_Rep from \"../Data.Generic.Rep/index.js\";\nimport * as Data_Ordering from \"../Data.Ordering/index.js\";\nvar Slowest = /* #__PURE__ */ (function () {\n function Slowest() {\n\n };\n Slowest.value = new Slowest();\n return Slowest;\n})();\nvar Slower = /* #__PURE__ */ (function () {\n function Slower() {\n\n };\n Slower.value = new Slower();\n return Slower;\n})();\nvar Slow = /* #__PURE__ */ (function () {\n function Slow() {\n\n };\n Slow.value = new Slow();\n return Slow;\n})();\nvar Normal = /* #__PURE__ */ (function () {\n function Normal() {\n\n };\n Normal.value = new Normal();\n return Normal;\n})();\nvar Fast = /* #__PURE__ */ (function () {\n function Fast() {\n\n };\n Fast.value = new Fast();\n return Fast;\n})();\nvar Fastest = /* #__PURE__ */ (function () {\n function Fastest() {\n\n };\n Fastest.value = new Fastest();\n return Fastest;\n})();\nvar printAutoscrollSpeed = {\n print: function (v) {\n if (v instanceof Slowest) {\n return \"(0.2)\";\n };\n if (v instanceof Slower) {\n return \"(0.4)\";\n };\n if (v instanceof Slow) {\n return \"(0.6)\";\n };\n if (v instanceof Normal) {\n return \"(1.0)\";\n };\n if (v instanceof Fast) {\n return \"(2.0)\";\n };\n if (v instanceof Fastest) {\n return \"(4.0)\";\n };\n throw new Error(\"Failed pattern match at AutoscrollSpeed (line 18, column 1 - line 24, column 26): \" + [ v.constructor.name ]);\n }\n};\nvar speedToIntervalPixelDelta = function (v) {\n if (v instanceof Slowest) {\n return 1;\n };\n if (v instanceof Slower) {\n return 1;\n };\n if (v instanceof Slow) {\n return 1;\n };\n if (v instanceof Normal) {\n return 1;\n };\n if (v instanceof Fast) {\n return 1;\n };\n if (v instanceof Fastest) {\n return 2;\n };\n throw new Error(\"Failed pattern match at AutoscrollSpeed (line 41, column 1 - line 41, column 52): \" + [ v.constructor.name ]);\n};\nvar speedToIntervalMs = function (v) {\n if (v instanceof Slowest) {\n return 400;\n };\n if (v instanceof Slower) {\n return 200;\n };\n if (v instanceof Slow) {\n return 120;\n };\n if (v instanceof Normal) {\n return 80;\n };\n if (v instanceof Fast) {\n return 40;\n };\n if (v instanceof Fastest) {\n return 40;\n };\n throw new Error(\"Failed pattern match at AutoscrollSpeed (line 33, column 1 - line 33, column 44): \" + [ v.constructor.name ]);\n};\nvar genericAutoscrollSpeed = {\n to: function (x) {\n if (x instanceof Data_Generic_Rep.Inl) {\n return Slowest.value;\n };\n if (x instanceof Data_Generic_Rep.Inr && x.value0 instanceof Data_Generic_Rep.Inl) {\n return Slower.value;\n };\n if (x instanceof Data_Generic_Rep.Inr && (x.value0 instanceof Data_Generic_Rep.Inr && x.value0.value0 instanceof Data_Generic_Rep.Inl)) {\n return Slow.value;\n };\n if (x instanceof Data_Generic_Rep.Inr && (x.value0 instanceof Data_Generic_Rep.Inr && (x.value0.value0 instanceof Data_Generic_Rep.Inr && x.value0.value0.value0 instanceof Data_Generic_Rep.Inl))) {\n return Normal.value;\n };\n if (x instanceof Data_Generic_Rep.Inr && (x.value0 instanceof Data_Generic_Rep.Inr && (x.value0.value0 instanceof Data_Generic_Rep.Inr && (x.value0.value0.value0 instanceof Data_Generic_Rep.Inr && x.value0.value0.value0.value0 instanceof Data_Generic_Rep.Inl)))) {\n return Fast.value;\n };\n if (x instanceof Data_Generic_Rep.Inr && (x.value0 instanceof Data_Generic_Rep.Inr && (x.value0.value0 instanceof Data_Generic_Rep.Inr && (x.value0.value0.value0 instanceof Data_Generic_Rep.Inr && x.value0.value0.value0.value0 instanceof Data_Generic_Rep.Inr)))) {\n return Fastest.value;\n };\n throw new Error(\"Failed pattern match at AutoscrollSpeed (line 28, column 1 - line 28, column 68): \" + [ x.constructor.name ]);\n },\n from: function (x) {\n if (x instanceof Slowest) {\n return new Data_Generic_Rep.Inl(Data_Generic_Rep.NoArguments.value);\n };\n if (x instanceof Slower) {\n return new Data_Generic_Rep.Inr(new Data_Generic_Rep.Inl(Data_Generic_Rep.NoArguments.value));\n };\n if (x instanceof Slow) {\n return new Data_Generic_Rep.Inr(new Data_Generic_Rep.Inr(new Data_Generic_Rep.Inl(Data_Generic_Rep.NoArguments.value)));\n };\n if (x instanceof Normal) {\n return new Data_Generic_Rep.Inr(new Data_Generic_Rep.Inr(new Data_Generic_Rep.Inr(new Data_Generic_Rep.Inl(Data_Generic_Rep.NoArguments.value))));\n };\n if (x instanceof Fast) {\n return new Data_Generic_Rep.Inr(new Data_Generic_Rep.Inr(new Data_Generic_Rep.Inr(new Data_Generic_Rep.Inr(new Data_Generic_Rep.Inl(Data_Generic_Rep.NoArguments.value)))));\n };\n if (x instanceof Fastest) {\n return new Data_Generic_Rep.Inr(new Data_Generic_Rep.Inr(new Data_Generic_Rep.Inr(new Data_Generic_Rep.Inr(new Data_Generic_Rep.Inr(Data_Generic_Rep.NoArguments.value)))));\n };\n throw new Error(\"Failed pattern match at AutoscrollSpeed (line 28, column 1 - line 28, column 68): \" + [ x.constructor.name ]);\n }\n};\nvar eqAutoscrollSpeed = {\n eq: function (x) {\n return function (y) {\n if (x instanceof Slowest && y instanceof Slowest) {\n return true;\n };\n if (x instanceof Slower && y instanceof Slower) {\n return true;\n };\n if (x instanceof Slow && y instanceof Slow) {\n return true;\n };\n if (x instanceof Normal && y instanceof Normal) {\n return true;\n };\n if (x instanceof Fast && y instanceof Fast) {\n return true;\n };\n if (x instanceof Fastest && y instanceof Fastest) {\n return true;\n };\n return false;\n };\n }\n};\nvar ordAutoscrollSpeed = {\n compare: function (x) {\n return function (y) {\n if (x instanceof Slowest && y instanceof Slowest) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof Slowest) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof Slowest) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof Slower && y instanceof Slower) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof Slower) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof Slower) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof Slow && y instanceof Slow) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof Slow) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof Slow) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof Normal && y instanceof Normal) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof Normal) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof Normal) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof Fast && y instanceof Fast) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof Fast) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof Fast) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof Fastest && y instanceof Fastest) {\n return Data_Ordering.EQ.value;\n };\n throw new Error(\"Failed pattern match at AutoscrollSpeed (line 0, column 0 - line 0, column 0): \" + [ x.constructor.name, y.constructor.name ]);\n };\n },\n Eq0: function () {\n return eqAutoscrollSpeed;\n }\n};\nvar enumAutoscrollSpeed = {\n succ: /* #__PURE__ */ Data_Enum_Generic.genericSucc(genericAutoscrollSpeed)(/* #__PURE__ */ Data_Enum_Generic.genericEnumSum(/* #__PURE__ */ Data_Enum_Generic.genericEnumConstructor(Data_Enum_Generic.genericEnumNoArguments))(/* #__PURE__ */ Data_Bounded_Generic.genericTopConstructor(Data_Bounded_Generic.genericTopNoArguments))(/* #__PURE__ */ Data_Enum_Generic.genericEnumSum(/* #__PURE__ */ Data_Enum_Generic.genericEnumConstructor(Data_Enum_Generic.genericEnumNoArguments))(/* #__PURE__ */ Data_Bounded_Generic.genericTopConstructor(Data_Bounded_Generic.genericTopNoArguments))(/* #__PURE__ */ Data_Enum_Generic.genericEnumSum(/* #__PURE__ */ Data_Enum_Generic.genericEnumConstructor(Data_Enum_Generic.genericEnumNoArguments))(/* #__PURE__ */ Data_Bounded_Generic.genericTopConstructor(Data_Bounded_Generic.genericTopNoArguments))(/* #__PURE__ */ Data_Enum_Generic.genericEnumSum(/* #__PURE__ */ Data_Enum_Generic.genericEnumConstructor(Data_Enum_Generic.genericEnumNoArguments))(/* #__PURE__ */ Data_Bounded_Generic.genericTopConstructor(Data_Bounded_Generic.genericTopNoArguments))(/* #__PURE__ */ Data_Enum_Generic.genericEnumSum(/* #__PURE__ */ Data_Enum_Generic.genericEnumConstructor(Data_Enum_Generic.genericEnumNoArguments))(/* #__PURE__ */ Data_Bounded_Generic.genericTopConstructor(Data_Bounded_Generic.genericTopNoArguments))(/* #__PURE__ */ Data_Enum_Generic.genericEnumConstructor(Data_Enum_Generic.genericEnumNoArguments))(/* #__PURE__ */ Data_Bounded_Generic.genericBottomConstructor(Data_Bounded_Generic.genericBottomNoArguments)))(/* #__PURE__ */ Data_Bounded_Generic.genericBottomSum(/* #__PURE__ */ Data_Bounded_Generic.genericBottomConstructor(Data_Bounded_Generic.genericBottomNoArguments))))(/* #__PURE__ */ Data_Bounded_Generic.genericBottomSum(/* #__PURE__ */ Data_Bounded_Generic.genericBottomConstructor(Data_Bounded_Generic.genericBottomNoArguments))))(/* #__PURE__ */ Data_Bounded_Generic.genericBottomSum(/* #__PURE__ */ Data_Bounded_Generic.genericBottomConstructor(Data_Bounded_Generic.genericBottomNoArguments))))(/* #__PURE__ */ Data_Bounded_Generic.genericBottomSum(/* #__PURE__ */ Data_Bounded_Generic.genericBottomConstructor(Data_Bounded_Generic.genericBottomNoArguments)))),\n pred: /* #__PURE__ */ Data_Enum_Generic.genericPred(genericAutoscrollSpeed)(/* #__PURE__ */ Data_Enum_Generic.genericEnumSum(/* #__PURE__ */ Data_Enum_Generic.genericEnumConstructor(Data_Enum_Generic.genericEnumNoArguments))(/* #__PURE__ */ Data_Bounded_Generic.genericTopConstructor(Data_Bounded_Generic.genericTopNoArguments))(/* #__PURE__ */ Data_Enum_Generic.genericEnumSum(/* #__PURE__ */ Data_Enum_Generic.genericEnumConstructor(Data_Enum_Generic.genericEnumNoArguments))(/* #__PURE__ */ Data_Bounded_Generic.genericTopConstructor(Data_Bounded_Generic.genericTopNoArguments))(/* #__PURE__ */ Data_Enum_Generic.genericEnumSum(/* #__PURE__ */ Data_Enum_Generic.genericEnumConstructor(Data_Enum_Generic.genericEnumNoArguments))(/* #__PURE__ */ Data_Bounded_Generic.genericTopConstructor(Data_Bounded_Generic.genericTopNoArguments))(/* #__PURE__ */ Data_Enum_Generic.genericEnumSum(/* #__PURE__ */ Data_Enum_Generic.genericEnumConstructor(Data_Enum_Generic.genericEnumNoArguments))(/* #__PURE__ */ Data_Bounded_Generic.genericTopConstructor(Data_Bounded_Generic.genericTopNoArguments))(/* #__PURE__ */ Data_Enum_Generic.genericEnumSum(/* #__PURE__ */ Data_Enum_Generic.genericEnumConstructor(Data_Enum_Generic.genericEnumNoArguments))(/* #__PURE__ */ Data_Bounded_Generic.genericTopConstructor(Data_Bounded_Generic.genericTopNoArguments))(/* #__PURE__ */ Data_Enum_Generic.genericEnumConstructor(Data_Enum_Generic.genericEnumNoArguments))(/* #__PURE__ */ Data_Bounded_Generic.genericBottomConstructor(Data_Bounded_Generic.genericBottomNoArguments)))(/* #__PURE__ */ Data_Bounded_Generic.genericBottomSum(/* #__PURE__ */ Data_Bounded_Generic.genericBottomConstructor(Data_Bounded_Generic.genericBottomNoArguments))))(/* #__PURE__ */ Data_Bounded_Generic.genericBottomSum(/* #__PURE__ */ Data_Bounded_Generic.genericBottomConstructor(Data_Bounded_Generic.genericBottomNoArguments))))(/* #__PURE__ */ Data_Bounded_Generic.genericBottomSum(/* #__PURE__ */ Data_Bounded_Generic.genericBottomConstructor(Data_Bounded_Generic.genericBottomNoArguments))))(/* #__PURE__ */ Data_Bounded_Generic.genericBottomSum(/* #__PURE__ */ Data_Bounded_Generic.genericBottomConstructor(Data_Bounded_Generic.genericBottomNoArguments)))),\n Ord0: function () {\n return ordAutoscrollSpeed;\n }\n};\nexport {\n Slowest,\n Slower,\n Slow,\n Normal,\n Fast,\n Fastest,\n speedToIntervalMs,\n speedToIntervalPixelDelta,\n printAutoscrollSpeed,\n eqAutoscrollSpeed,\n ordAutoscrollSpeed,\n genericAutoscrollSpeed,\n enumAutoscrollSpeed\n};\n","// Generated by purs version 0.15.2\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Control_Monad_State_Class from \"../Control.Monad.State.Class/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Lens_Getter from \"../Data.Lens.Getter/index.js\";\nimport * as Data_Lens_Internal_Forget from \"../Data.Lens.Internal.Forget/index.js\";\nimport * as Data_Lens_Setter from \"../Data.Lens.Setter/index.js\";\nimport * as Data_List_Types from \"../Data.List.Types/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Profunctor_Strong from \"../Data.Profunctor.Strong/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nimport * as Utils from \"../Utils/index.js\";\nvar Flush = /* #__PURE__ */ (function () {\n function Flush(value0) {\n this.value0 = value0;\n };\n Flush.create = function (value0) {\n return new Flush(value0);\n };\n return Flush;\n})();\nvar Fetch = /* #__PURE__ */ (function () {\n function Fetch(value0) {\n this.value0 = value0;\n };\n Fetch.create = function (value0) {\n return new Fetch(value0);\n };\n return Fetch;\n})();\nvar Cached = /* #__PURE__ */ (function () {\n function Cached(value0) {\n this.value0 = value0;\n };\n Cached.create = function (value0) {\n return new Cached(value0);\n };\n return Cached;\n})();\nvar NoValue = /* #__PURE__ */ (function () {\n function NoValue() {\n\n };\n NoValue.value = new NoValue();\n return NoValue;\n})();\nvar AnyEntryKey = function (x) {\n return x;\n};\nvar EntryKey = function (x) {\n return x;\n};\nvar runFlush = function (v) {\n return v.value0;\n};\nvar runFetch = function (v) {\n return v.value0;\n};\nvar runEntryKey = function (v) {\n return function (dictStrong) {\n return v(dictStrong);\n };\n};\nvar viewEntry$prime = function (key) {\n return Data_Lens_Getter.view(runEntryKey(key)(Data_Lens_Internal_Forget.strongForget));\n};\nvar viewEntry = function (dictMonadState) {\n return function (key) {\n return Data_Functor.mapFlipped((((dictMonadState.Monad0()).Bind1()).Apply0()).Functor0())(Control_Monad_State_Class.get(dictMonadState))(viewEntry$prime(key));\n };\n};\nvar peek$prime = function (_key) {\n return function (state) {\n var entry = viewEntry$prime(_key)(state);\n return entry.value;\n };\n};\nvar peek = function (_key) {\n return function (state) {\n var entry = viewEntry$prime(_key)(state);\n if (entry.value instanceof NoValue) {\n return entry[\"default\"];\n };\n if (entry.value instanceof Cached) {\n return entry.value.value0;\n };\n throw new Error(\"Failed pattern match at Cache (line 86, column 3 - line 88, column 28): \" + [ entry.value.constructor.name ]);\n };\n};\nvar overEntry = function (dictMonadState) {\n return function (key) {\n return function (f) {\n return Control_Bind.bind((dictMonadState.Monad0()).Bind1())(Data_Functor.mapFlipped((((dictMonadState.Monad0()).Bind1()).Apply0()).Functor0())(Control_Monad_State_Class.get(dictMonadState))(Data_Lens_Setter.over(runEntryKey(key)(Data_Profunctor_Strong.strongFn))(f)))(Control_Monad_State_Class.put(dictMonadState));\n };\n };\n};\nvar read = function (dictMonadState) {\n return function (cache) {\n return Control_Bind.bind((dictMonadState.Monad0()).Bind1())(viewEntry(dictMonadState)(cache.entry))(function (entry) {\n if (entry.value instanceof Cached) {\n return Control_Applicative.pure((dictMonadState.Monad0()).Applicative0())(entry.value.value0);\n };\n if (entry.value instanceof NoValue) {\n return Control_Bind.bind((dictMonadState.Monad0()).Bind1())(runFetch(cache.fetch))(function (maybeValue) {\n return Control_Bind.bind((dictMonadState.Monad0()).Bind1())(Control_Applicative.pure((dictMonadState.Monad0()).Applicative0())(Data_Maybe.fromMaybe(entry[\"default\"])(maybeValue)))(function (value) {\n return Control_Bind.discard(Control_Bind.discardUnit)((dictMonadState.Monad0()).Bind1())(overEntry(dictMonadState)(cache.entry)(function (v) {\n return {\n value: new Cached(value),\n \"default\": v[\"default\"],\n dependants: v.dependants\n };\n }))(function () {\n return Control_Applicative.pure((dictMonadState.Monad0()).Applicative0())(value);\n });\n });\n });\n };\n throw new Error(\"Failed pattern match at Cache (line 124, column 3 - line 130, column 17): \" + [ entry.value.constructor.name ]);\n });\n };\n};\nvar mkAnyEntryKey = function (x) {\n return function (f) {\n return f(x);\n };\n};\nvar mapAnyEntryKey = function (f) {\n return function (v) {\n return v(f);\n };\n};\nvar invalidateDependants = function (dictMonadState) {\n return function (entry) {\n return Utils.foreachM(dictMonadState)(entry.dependants)(mapAnyEntryKey(invalidate(dictMonadState)));\n };\n};\nvar invalidate = function (dictMonadState) {\n return function (_key) {\n return Control_Bind.bind((dictMonadState.Monad0()).Bind1())(viewEntry(dictMonadState)(_key))(function (entry) {\n if (entry.value instanceof NoValue) {\n return Control_Applicative.pure((dictMonadState.Monad0()).Applicative0())(Data_Unit.unit);\n };\n if (entry.value instanceof Cached) {\n return Control_Bind.discard(Control_Bind.discardUnit)((dictMonadState.Monad0()).Bind1())(overEntry(dictMonadState)(_key)(function (v) {\n return {\n value: NoValue.value,\n \"default\": v[\"default\"],\n dependants: Data_List_Types.Nil.value\n };\n }))(function () {\n return invalidateDependants(dictMonadState)(entry);\n });\n };\n throw new Error(\"Failed pattern match at Cache (line 95, column 3 - line 99, column 33): \" + [ entry.value.constructor.name ]);\n });\n };\n};\nvar write = function (dictMonadState) {\n return function (cache) {\n return function (value) {\n return Control_Bind.bind((dictMonadState.Monad0()).Bind1())(viewEntry(dictMonadState)(cache.entry))(function (entry) {\n return Control_Bind.discard(Control_Bind.discardUnit)((dictMonadState.Monad0()).Bind1())(runFlush(cache.flush)(value))(function () {\n return Control_Bind.discard(Control_Bind.discardUnit)((dictMonadState.Monad0()).Bind1())(invalidateDependants(dictMonadState)(entry))(function () {\n return overEntry(dictMonadState)(cache.entry)(function (v) {\n return {\n value: new Cached(value),\n \"default\": v[\"default\"],\n dependants: v.dependants\n };\n });\n });\n });\n });\n };\n };\n};\nvar buildCache = function ($$default) {\n return {\n value: NoValue.value,\n \"default\": $$default,\n dependants: Data_List_Types.Nil.value\n };\n};\nvar addDependant = function (dictMonadState) {\n return function (dependency) {\n return function (_dependant) {\n return overEntry(dictMonadState)(dependency.entry)(function (entry) {\n return {\n value: entry.value,\n \"default\": entry[\"default\"],\n dependants: new Data_List_Types.Cons(mkAnyEntryKey(_dependant), entry.dependants)\n };\n });\n };\n };\n};\nvar subscribe = function (dictMonadState) {\n return function (_dependant) {\n return function (dependency) {\n return Control_Bind.bind((dictMonadState.Monad0()).Bind1())(read(dictMonadState)(dependency))(function (dependencyValue) {\n return Control_Bind.discard(Control_Bind.discardUnit)((dictMonadState.Monad0()).Bind1())(addDependant(dictMonadState)(dependency)(_dependant))(function () {\n return Control_Applicative.pure((dictMonadState.Monad0()).Applicative0())(dependencyValue);\n });\n });\n };\n };\n};\nexport {\n Cached,\n NoValue,\n AnyEntryKey,\n mkAnyEntryKey,\n mapAnyEntryKey,\n buildCache,\n EntryKey,\n runEntryKey,\n viewEntry$prime,\n viewEntry,\n overEntry,\n Fetch,\n runFetch,\n Flush,\n runFlush,\n peek$prime,\n peek,\n invalidate,\n invalidateDependants,\n subscribe,\n addDependant,\n write,\n read\n};\n","// Generated by purs version 0.15.2\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Show from \"../Data.Show/index.js\";\nvar setLocalStorageBoolean = function (key) {\n return function (value) {\n return $foreign.setLocalStorage(key)(Data_Show.show(Data_Show.showBoolean)(value));\n };\n};\nvar getLocalStorageBoolean = function (key) {\n return function __do() {\n var result = $foreign.getLocalStorage(key)();\n if (result === \"true\") {\n return new Data_Maybe.Just(true);\n };\n if (result === \"false\") {\n return new Data_Maybe.Just(false);\n };\n return Data_Maybe.Nothing.value;\n };\n};\nvar getLocalStorageBooleanWithDefault = function (key) {\n return function ($$default) {\n return function __do() {\n var result = getLocalStorageBoolean(key)();\n if (result instanceof Data_Maybe.Nothing) {\n return $$default;\n };\n if (result instanceof Data_Maybe.Just) {\n return result.value0;\n };\n throw new Error(\"Failed pattern match at LocalStorage (line 25, column 3 - line 27, column 27): \" + [ result.constructor.name ]);\n };\n };\n};\nexport {\n setLocalStorage,\n getLocalStorage\n} from \"./foreign.js\";\nexport {\n getLocalStorageBoolean,\n setLocalStorageBoolean,\n getLocalStorageBooleanWithDefault\n};\n","'use strict';\n\nfunction setLocalStorage(key) {\n return function (value) {\n return function () {\n window.localStorage.setItem(key, value);\n }\n }\n}\n\nfunction getLocalStorage(key) {\n return function () {\n return window.localStorage.getItem(key);\n }\n}\n\nexport { setLocalStorage, getLocalStorage }\n","export const unsafePerformEffect = function (f) {\n return f();\n};\n","export const foldr1Impl = function (f) {\n return function (xs) {\n var acc = xs[xs.length - 1];\n for (var i = xs.length - 2; i >= 0; i--) {\n acc = f(xs[i])(acc);\n }\n return acc;\n };\n};\n\nexport const foldl1Impl = function (f) {\n return function (xs) {\n var acc = xs[0];\n var len = xs.length;\n for (var i = 1; i < len; i++) {\n acc = f(acc)(xs[i]);\n }\n return acc;\n };\n};\n\nexport const traverse1Impl = function () {\n function Cont(fn) {\n this.fn = fn;\n }\n\n var emptyList = {};\n\n var ConsCell = function (head, tail) {\n this.head = head;\n this.tail = tail;\n };\n\n function finalCell(head) {\n return new ConsCell(head, emptyList);\n }\n\n function consList(x) {\n return function (xs) {\n return new ConsCell(x, xs);\n };\n }\n\n function listToArray(list) {\n var arr = [];\n var xs = list;\n while (xs !== emptyList) {\n arr.push(xs.head);\n xs = xs.tail;\n }\n return arr;\n }\n\n return function (apply) {\n return function (map) {\n return function (f) {\n var buildFrom = function (x, ys) {\n return apply(map(consList)(f(x)))(ys);\n };\n\n var go = function (acc, currentLen, xs) {\n if (currentLen === 0) {\n return acc;\n } else {\n var last = xs[currentLen - 1];\n return new Cont(function () {\n var built = go(buildFrom(last, acc), currentLen - 1, xs);\n return built;\n });\n }\n };\n\n return function (array) {\n var acc = map(finalCell)(f(array[array.length - 1]));\n var result = go(acc, array.length - 1, array);\n while (result instanceof Cont) {\n result = result.fn();\n }\n\n return map(listToArray)(result);\n };\n };\n };\n };\n}();\n","// Generated by purs version 0.15.2\nimport * as $foreign from \"./foreign.js\";\nimport * as Control_Alt from \"../Control.Alt/index.js\";\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Apply from \"../Control.Apply/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Control_Monad from \"../Control.Monad/index.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Foldable from \"../Data.Foldable/index.js\";\nimport * as Data_FoldableWithIndex from \"../Data.FoldableWithIndex/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_FunctorWithIndex from \"../Data.FunctorWithIndex/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nimport * as Data_Semigroup_Foldable from \"../Data.Semigroup.Foldable/index.js\";\nimport * as Data_Semigroup_Traversable from \"../Data.Semigroup.Traversable/index.js\";\nimport * as Data_Show from \"../Data.Show/index.js\";\nimport * as Data_Traversable from \"../Data.Traversable/index.js\";\nimport * as Data_TraversableWithIndex from \"../Data.TraversableWithIndex/index.js\";\nimport * as Data_Unfoldable1 from \"../Data.Unfoldable1/index.js\";\nvar NonEmptyArray = function (x) {\n return x;\n};\nvar unfoldable1NonEmptyArray = Data_Unfoldable1.unfoldable1Array;\nvar traversableWithIndexNonEmptyArray = Data_TraversableWithIndex.traversableWithIndexArray;\nvar traversableNonEmptyArray = Data_Traversable.traversableArray;\nvar showNonEmptyArray = function (dictShow) {\n return {\n show: function (v) {\n return \"(NonEmptyArray \" + (Data_Show.show(Data_Show.showArray(dictShow))(v) + \")\");\n }\n };\n};\nvar semigroupNonEmptyArray = Data_Semigroup.semigroupArray;\nvar ordNonEmptyArray = function (dictOrd) {\n return Data_Ord.ordArray(dictOrd);\n};\nvar ord1NonEmptyArray = Data_Ord.ord1Array;\nvar monadNonEmptyArray = Control_Monad.monadArray;\nvar functorWithIndexNonEmptyArray = Data_FunctorWithIndex.functorWithIndexArray;\nvar functorNonEmptyArray = Data_Functor.functorArray;\nvar foldableWithIndexNonEmptyArray = Data_FoldableWithIndex.foldableWithIndexArray;\nvar foldableNonEmptyArray = Data_Foldable.foldableArray;\nvar foldable1NonEmptyArray = {\n foldMap1: function (dictSemigroup) {\n return Data_Semigroup_Foldable.foldMap1DefaultL(foldable1NonEmptyArray)(functorNonEmptyArray)(dictSemigroup);\n },\n foldr1: $foreign.foldr1Impl,\n foldl1: $foreign.foldl1Impl,\n Foldable0: function () {\n return foldableNonEmptyArray;\n }\n};\nvar traversable1NonEmptyArray = {\n traverse1: function (dictApply) {\n return $foreign.traverse1Impl(Control_Apply.apply(dictApply))(Data_Functor.map(dictApply.Functor0()));\n },\n sequence1: function (dictApply) {\n return Data_Semigroup_Traversable.sequence1Default(traversable1NonEmptyArray)(dictApply);\n },\n Foldable10: function () {\n return foldable1NonEmptyArray;\n },\n Traversable1: function () {\n return traversableNonEmptyArray;\n }\n};\nvar eqNonEmptyArray = function (dictEq) {\n return Data_Eq.eqArray(dictEq);\n};\nvar eq1NonEmptyArray = Data_Eq.eq1Array;\nvar bindNonEmptyArray = Control_Bind.bindArray;\nvar applyNonEmptyArray = Control_Apply.applyArray;\nvar applicativeNonEmptyArray = Control_Applicative.applicativeArray;\nvar altNonEmptyArray = Control_Alt.altArray;\nexport {\n NonEmptyArray,\n showNonEmptyArray,\n eqNonEmptyArray,\n eq1NonEmptyArray,\n ordNonEmptyArray,\n ord1NonEmptyArray,\n semigroupNonEmptyArray,\n functorNonEmptyArray,\n functorWithIndexNonEmptyArray,\n foldableNonEmptyArray,\n foldableWithIndexNonEmptyArray,\n foldable1NonEmptyArray,\n unfoldable1NonEmptyArray,\n traversableNonEmptyArray,\n traversableWithIndexNonEmptyArray,\n traversable1NonEmptyArray,\n applyNonEmptyArray,\n applicativeNonEmptyArray,\n bindNonEmptyArray,\n monadNonEmptyArray,\n altNonEmptyArray\n};\n","// Generated by purs version 0.15.2\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Data_Array from \"../Data.Array/index.js\";\nimport * as Data_Array_NonEmpty_Internal from \"../Data.Array.NonEmpty.Internal/index.js\";\nimport * as Data_Bifunctor from \"../Data.Bifunctor/index.js\";\nimport * as Data_Boolean from \"../Data.Boolean/index.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_NonEmpty from \"../Data.NonEmpty/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nimport * as Data_Semigroup_Foldable from \"../Data.Semigroup.Foldable/index.js\";\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nimport * as Data_Unfoldable1 from \"../Data.Unfoldable1/index.js\";\nimport * as Unsafe_Coerce from \"../Unsafe.Coerce/index.js\";\nvar unsafeFromArrayF = Unsafe_Coerce.unsafeCoerce;\nvar unsafeFromArray = Data_Array_NonEmpty_Internal.NonEmptyArray;\nvar toArray = function (v) {\n return v;\n};\nvar unionBy$prime = function (eq) {\n return function (xs) {\n var $45 = Data_Array.unionBy(eq)(toArray(xs));\n return function ($46) {\n return unsafeFromArray($45($46));\n };\n };\n};\nvar union$prime = function (dictEq) {\n return unionBy$prime(Data_Eq.eq(dictEq));\n};\nvar unionBy = function (eq) {\n return function (xs) {\n var $47 = unionBy$prime(eq)(xs);\n return function ($48) {\n return $47(toArray($48));\n };\n };\n};\nvar union = function (dictEq) {\n return unionBy(Data_Eq.eq(dictEq));\n};\nvar unzip = /* #__PURE__ */ (function () {\n var $49 = Data_Bifunctor.bimap(Data_Bifunctor.bifunctorTuple)(unsafeFromArray)(unsafeFromArray);\n return function ($50) {\n return $49(Data_Array.unzip(toArray($50)));\n };\n})();\nvar updateAt = function (i) {\n return function (x) {\n var $51 = Data_Array.updateAt(i)(x);\n return function ($52) {\n return unsafeFromArrayF($51(toArray($52)));\n };\n };\n};\nvar zip = function (xs) {\n return function (ys) {\n return unsafeFromArray(Data_Array.zip(toArray(xs))(toArray(ys)));\n };\n};\nvar zipWith = function (f) {\n return function (xs) {\n return function (ys) {\n return unsafeFromArray(Data_Array.zipWith(f)(toArray(xs))(toArray(ys)));\n };\n };\n};\nvar zipWithA = function (dictApplicative) {\n return function (f) {\n return function (xs) {\n return function (ys) {\n return unsafeFromArrayF(Data_Array.zipWithA(dictApplicative)(f)(toArray(xs))(toArray(ys)));\n };\n };\n };\n};\nvar splitAt = function (i) {\n return function (xs) {\n return Data_Array.splitAt(i)(toArray(xs));\n };\n};\nvar some = function (dictAlternative) {\n return function (dictLazy) {\n var $53 = Data_Array.some(dictAlternative)(dictLazy);\n return function ($54) {\n return unsafeFromArrayF($53($54));\n };\n };\n};\nvar snoc$prime = function (xs) {\n return function (x) {\n return unsafeFromArray(Data_Array.snoc(xs)(x));\n };\n};\nvar snoc = function (xs) {\n return function (x) {\n return unsafeFromArray(Data_Array.snoc(toArray(xs))(x));\n };\n};\nvar singleton = function ($55) {\n return unsafeFromArray(Data_Array.singleton($55));\n};\nvar replicate = function (i) {\n return function (x) {\n return unsafeFromArray(Data_Array.replicate(Data_Ord.max(Data_Ord.ordInt)(1)(i))(x));\n };\n};\nvar range = function (x) {\n return function (y) {\n return unsafeFromArray(Data_Array.range(x)(y));\n };\n};\nvar modifyAt = function (i) {\n return function (f) {\n var $56 = Data_Array.modifyAt(i)(f);\n return function ($57) {\n return unsafeFromArrayF($56(toArray($57)));\n };\n };\n};\nvar intersectBy$prime = function (eq) {\n return function (xs) {\n return Data_Array.intersectBy(eq)(toArray(xs));\n };\n};\nvar intersectBy = function (eq) {\n return function (xs) {\n var $58 = intersectBy$prime(eq)(xs);\n return function ($59) {\n return $58(toArray($59));\n };\n };\n};\nvar intersect$prime = function (dictEq) {\n return intersectBy$prime(Data_Eq.eq(dictEq));\n};\nvar intersect = function (dictEq) {\n return intersectBy(Data_Eq.eq(dictEq));\n};\nvar intercalate = function (dictSemigroup) {\n return Data_Semigroup_Foldable.intercalate(Data_Array_NonEmpty_Internal.foldable1NonEmptyArray)(dictSemigroup);\n};\nvar insertAt = function (i) {\n return function (x) {\n var $60 = Data_Array.insertAt(i)(x);\n return function ($61) {\n return unsafeFromArrayF($60(toArray($61)));\n };\n };\n};\nvar fromFoldable1 = function (dictFoldable1) {\n var $62 = Data_Array.fromFoldable(dictFoldable1.Foldable0());\n return function ($63) {\n return unsafeFromArray($62($63));\n };\n};\nvar fromArray = function (xs) {\n if (Data_Array.length(xs) > 0) {\n return new Data_Maybe.Just(unsafeFromArray(xs));\n };\n if (Data_Boolean.otherwise) {\n return Data_Maybe.Nothing.value;\n };\n throw new Error(\"Failed pattern match at Data.Array.NonEmpty (line 157, column 1 - line 157, column 58): \" + [ xs.constructor.name ]);\n};\nvar fromFoldable = function (dictFoldable) {\n var $64 = Data_Array.fromFoldable(dictFoldable);\n return function ($65) {\n return fromArray($64($65));\n };\n};\nvar foldr1 = /* #__PURE__ */ Data_Semigroup_Foldable.foldr1(Data_Array_NonEmpty_Internal.foldable1NonEmptyArray);\nvar foldl1 = /* #__PURE__ */ Data_Semigroup_Foldable.foldl1(Data_Array_NonEmpty_Internal.foldable1NonEmptyArray);\nvar foldMap1 = function (dictSemigroup) {\n return Data_Semigroup_Foldable.foldMap1(Data_Array_NonEmpty_Internal.foldable1NonEmptyArray)(dictSemigroup);\n};\nvar fold1 = function (dictSemigroup) {\n return Data_Semigroup_Foldable.fold1(Data_Array_NonEmpty_Internal.foldable1NonEmptyArray)(dictSemigroup);\n};\nvar difference$prime = function (dictEq) {\n return function (xs) {\n return Data_Array.difference(dictEq)(toArray(xs));\n };\n};\nvar cons$prime = function (x) {\n return function (xs) {\n return unsafeFromArray(Data_Array.cons(x)(xs));\n };\n};\nvar fromNonEmpty = function (v) {\n return cons$prime(v.value0)(v.value1);\n};\nvar concatMap = /* #__PURE__ */ Data_Function.flip(/* #__PURE__ */ Control_Bind.bind(Data_Array_NonEmpty_Internal.bindNonEmptyArray));\nvar concat = /* #__PURE__ */ (function () {\n var $66 = Data_Functor.map(Data_Array_NonEmpty_Internal.functorNonEmptyArray)(toArray);\n return function ($67) {\n return unsafeFromArray(Data_Array.concat(toArray($66($67))));\n };\n})();\nvar appendArray = function (xs) {\n return function (ys) {\n return unsafeFromArray(Data_Semigroup.append(Data_Semigroup.semigroupArray)(toArray(xs))(ys));\n };\n};\nvar alterAt = function (i) {\n return function (f) {\n var $68 = Data_Array.alterAt(i)(f);\n return function ($69) {\n return $68(toArray($69));\n };\n };\n};\nvar adaptMaybe = function (f) {\n var $70 = Data_Maybe.fromJust();\n return function ($71) {\n return $70(f(toArray($71)));\n };\n};\nvar head = /* #__PURE__ */ adaptMaybe(Data_Array.head);\nvar init = /* #__PURE__ */ adaptMaybe(Data_Array.init);\nvar last = /* #__PURE__ */ adaptMaybe(Data_Array.last);\nvar tail = /* #__PURE__ */ adaptMaybe(Data_Array.tail);\nvar uncons = /* #__PURE__ */ adaptMaybe(Data_Array.uncons);\nvar toNonEmpty = function ($72) {\n return (function (v) {\n return new Data_NonEmpty.NonEmpty(v.head, v.tail);\n })(uncons($72));\n};\nvar unsnoc = /* #__PURE__ */ adaptMaybe(Data_Array.unsnoc);\nvar adaptAny = function (f) {\n return function ($73) {\n return f(toArray($73));\n };\n};\nvar all = function (p) {\n return adaptAny(Data_Array.all(p));\n};\nvar any = function (p) {\n return adaptAny(Data_Array.any(p));\n};\nvar catMaybes = /* #__PURE__ */ adaptAny(Data_Array.catMaybes);\nvar $$delete = function (dictEq) {\n return function (x) {\n return adaptAny(Data_Array[\"delete\"](dictEq)(x));\n };\n};\nvar deleteAt = function (i) {\n return adaptAny(Data_Array.deleteAt(i));\n};\nvar deleteBy = function (f) {\n return function (x) {\n return adaptAny(Data_Array.deleteBy(f)(x));\n };\n};\nvar difference = function (dictEq) {\n return function (xs) {\n return adaptAny(difference$prime(dictEq)(xs));\n };\n};\nvar drop = function (i) {\n return adaptAny(Data_Array.drop(i));\n};\nvar dropEnd = function (i) {\n return adaptAny(Data_Array.dropEnd(i));\n};\nvar dropWhile = function (f) {\n return adaptAny(Data_Array.dropWhile(f));\n};\nvar elem = function (dictEq) {\n return function (x) {\n return adaptAny(Data_Array.elem(dictEq)(x));\n };\n};\nvar elemIndex = function (dictEq) {\n return function (x) {\n return adaptAny(Data_Array.elemIndex(dictEq)(x));\n };\n};\nvar elemLastIndex = function (dictEq) {\n return function (x) {\n return adaptAny(Data_Array.elemLastIndex(dictEq)(x));\n };\n};\nvar filter = function (f) {\n return adaptAny(Data_Array.filter(f));\n};\nvar filterA = function (dictApplicative) {\n return function (f) {\n return adaptAny(Data_Array.filterA(dictApplicative)(f));\n };\n};\nvar find = function (p) {\n return adaptAny(Data_Array.find(p));\n};\nvar findIndex = function (p) {\n return adaptAny(Data_Array.findIndex(p));\n};\nvar findLastIndex = function (x) {\n return adaptAny(Data_Array.findLastIndex(x));\n};\nvar findMap = function (p) {\n return adaptAny(Data_Array.findMap(p));\n};\nvar foldM = function (dictMonad) {\n return function (f) {\n return function (acc) {\n return adaptAny(Data_Array.foldM(dictMonad)(f)(acc));\n };\n };\n};\nvar foldRecM = function (dictMonadRec) {\n return function (f) {\n return function (acc) {\n return adaptAny(Data_Array.foldRecM(dictMonadRec)(f)(acc));\n };\n };\n};\nvar index = /* #__PURE__ */ adaptAny(Data_Array.index);\nvar length = /* #__PURE__ */ adaptAny(Data_Array.length);\nvar mapMaybe = function (f) {\n return adaptAny(Data_Array.mapMaybe(f));\n};\nvar notElem = function (dictEq) {\n return function (x) {\n return adaptAny(Data_Array.notElem(dictEq)(x));\n };\n};\nvar partition = function (f) {\n return adaptAny(Data_Array.partition(f));\n};\nvar slice = function (start) {\n return function (end) {\n return adaptAny(Data_Array.slice(start)(end));\n };\n};\nvar span = function (f) {\n return adaptAny(Data_Array.span(f));\n};\nvar take = function (i) {\n return adaptAny(Data_Array.take(i));\n};\nvar takeEnd = function (i) {\n return adaptAny(Data_Array.takeEnd(i));\n};\nvar takeWhile = function (f) {\n return adaptAny(Data_Array.takeWhile(f));\n};\nvar toUnfoldable = function (dictUnfoldable) {\n return adaptAny(Data_Array.toUnfoldable(dictUnfoldable));\n};\nvar unsafeAdapt = function (f) {\n var $74 = adaptAny(f);\n return function ($75) {\n return unsafeFromArray($74($75));\n };\n};\nvar cons = function (x) {\n return unsafeAdapt(Data_Array.cons(x));\n};\nvar group = function (dictEq) {\n return unsafeAdapt(Data_Array.group(dictEq));\n};\nvar groupAllBy = function (op) {\n return unsafeAdapt(Data_Array.groupAllBy(op));\n};\nvar groupAll = function (dictOrd) {\n return groupAllBy(Data_Ord.compare(dictOrd));\n};\nvar groupBy = function (op) {\n return unsafeAdapt(Data_Array.groupBy(op));\n};\nvar insert = function (dictOrd) {\n return function (x) {\n return unsafeAdapt(Data_Array.insert(dictOrd)(x));\n };\n};\nvar insertBy = function (f) {\n return function (x) {\n return unsafeAdapt(Data_Array.insertBy(f)(x));\n };\n};\nvar intersperse = function (x) {\n return unsafeAdapt(Data_Array.intersperse(x));\n};\nvar mapWithIndex = function (f) {\n return unsafeAdapt(Data_Array.mapWithIndex(f));\n};\nvar modifyAtIndices = function (dictFoldable) {\n return function (is) {\n return function (f) {\n return unsafeAdapt(Data_Array.modifyAtIndices(dictFoldable)(is)(f));\n };\n };\n};\nvar nub = function (dictOrd) {\n return unsafeAdapt(Data_Array.nub(dictOrd));\n};\nvar nubBy = function (f) {\n return unsafeAdapt(Data_Array.nubBy(f));\n};\nvar nubByEq = function (f) {\n return unsafeAdapt(Data_Array.nubByEq(f));\n};\nvar nubEq = function (dictEq) {\n return unsafeAdapt(Data_Array.nubEq(dictEq));\n};\nvar reverse = /* #__PURE__ */ unsafeAdapt(Data_Array.reverse);\nvar scanl = function (f) {\n return function (x) {\n return unsafeAdapt(Data_Array.scanl(f)(x));\n };\n};\nvar scanr = function (f) {\n return function (x) {\n return unsafeAdapt(Data_Array.scanr(f)(x));\n };\n};\nvar sort = function (dictOrd) {\n return unsafeAdapt(Data_Array.sort(dictOrd));\n};\nvar sortBy = function (f) {\n return unsafeAdapt(Data_Array.sortBy(f));\n};\nvar sortWith = function (dictOrd) {\n return function (f) {\n return unsafeAdapt(Data_Array.sortWith(dictOrd)(f));\n };\n};\nvar updateAtIndices = function (dictFoldable) {\n return function (pairs) {\n return unsafeAdapt(Data_Array.updateAtIndices(dictFoldable)(pairs));\n };\n};\nvar unsafeIndex = function () {\n return adaptAny(Data_Array.unsafeIndex());\n};\nvar toUnfoldable1 = function (dictUnfoldable1) {\n return function (xs) {\n var len = length(xs);\n var f = function (i) {\n return new Data_Tuple.Tuple(unsafeIndex()(xs)(i), (function () {\n var $44 = i < (len - 1 | 0);\n if ($44) {\n return new Data_Maybe.Just(i + 1 | 0);\n };\n return Data_Maybe.Nothing.value;\n })());\n };\n return Data_Unfoldable1.unfoldr1(dictUnfoldable1)(f)(0);\n };\n};\nexport {\n fromArray,\n fromNonEmpty,\n toArray,\n toNonEmpty,\n fromFoldable,\n fromFoldable1,\n toUnfoldable,\n toUnfoldable1,\n singleton,\n range,\n replicate,\n some,\n length,\n cons,\n cons$prime,\n snoc,\n snoc$prime,\n appendArray,\n insert,\n insertBy,\n head,\n last,\n tail,\n init,\n uncons,\n unsnoc,\n index,\n elem,\n notElem,\n elemIndex,\n elemLastIndex,\n find,\n findMap,\n findIndex,\n findLastIndex,\n insertAt,\n deleteAt,\n updateAt,\n updateAtIndices,\n modifyAt,\n modifyAtIndices,\n alterAt,\n intersperse,\n reverse,\n concat,\n concatMap,\n filter,\n partition,\n splitAt,\n filterA,\n mapMaybe,\n catMaybes,\n mapWithIndex,\n foldl1,\n foldr1,\n foldMap1,\n fold1,\n intercalate,\n scanl,\n scanr,\n sort,\n sortBy,\n sortWith,\n slice,\n take,\n takeEnd,\n takeWhile,\n drop,\n dropEnd,\n dropWhile,\n span,\n group,\n groupAll,\n groupBy,\n groupAllBy,\n nub,\n nubBy,\n nubEq,\n nubByEq,\n union,\n union$prime,\n unionBy,\n unionBy$prime,\n $$delete as delete,\n deleteBy,\n difference,\n difference$prime,\n intersect,\n intersect$prime,\n intersectBy,\n intersectBy$prime,\n zipWith,\n zipWithA,\n zip,\n unzip,\n any,\n all,\n foldM,\n foldRecM,\n unsafeIndex\n};\n","// Generated by purs version 0.15.2\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Apply from \"../Control.Apply/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Control_Monad_Rec_Class from \"../Control.Monad.Rec.Class/index.js\";\nimport * as Data_Boolean from \"../Data.Boolean/index.js\";\nimport * as Data_Either from \"../Data.Either/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Monoid from \"../Data.Monoid/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nimport * as Data_Show from \"../Data.Show/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nvar Parser = function (x) {\n return x;\n};\nvar unParser = function (v) {\n return v;\n};\nvar runParser = function (v) {\n return function (s) {\n return Data_Functor.map(Data_Either.functorEither)(function (v1) {\n return v1.result;\n })(v({\n substring: s,\n position: 0\n }));\n };\n};\nvar printParserError = function (rec) {\n return rec.error + (\"; pos = \" + Data_Show.show(Data_Show.showInt)(rec.pos));\n};\nvar lazyParser = {\n defer: function (f) {\n return function (str) {\n return unParser(f(Data_Unit.unit))(str);\n };\n }\n};\nvar functorParser = {\n map: function (f) {\n return function (v) {\n var $55 = Data_Functor.map(Data_Either.functorEither)(function (v1) {\n return {\n result: f(v1.result),\n suffix: v1.suffix\n };\n });\n return function ($56) {\n return $55(v($56));\n };\n };\n }\n};\nvar fail = function (error) {\n return function (v) {\n return new Data_Either.Left({\n pos: v.position,\n error: error\n });\n };\n};\nvar applyParser = {\n apply: function (v) {\n return function (v1) {\n return function (s) {\n return Control_Bind.bind(Data_Either.bindEither)(v(s))(function (v2) {\n return Control_Bind.bind(Data_Either.bindEither)(v1(v2.suffix))(function (v3) {\n return Control_Applicative.pure(Data_Either.applicativeEither)({\n result: v2.result(v3.result),\n suffix: v3.suffix\n });\n });\n });\n };\n };\n },\n Functor0: function () {\n return functorParser;\n }\n};\nvar bindParser = {\n bind: function (v) {\n return function (f) {\n return function (s) {\n return Control_Bind.bind(Data_Either.bindEither)(v(s))(function (v1) {\n return unParser(f(v1.result))(v1.suffix);\n });\n };\n };\n },\n Apply0: function () {\n return applyParser;\n }\n};\nvar semigroupParser = function (dictSemigroup) {\n return {\n append: Control_Apply.lift2(applyParser)(Data_Semigroup.append(dictSemigroup))\n };\n};\nvar applicativeParser = {\n pure: function (a) {\n return function (s) {\n return new Data_Either.Right({\n result: a,\n suffix: s\n });\n };\n },\n Apply0: function () {\n return applyParser;\n }\n};\nvar monadParser = {\n Applicative0: function () {\n return applicativeParser;\n },\n Bind1: function () {\n return bindParser;\n }\n};\nvar monadRecParser = {\n tailRecM: function (f) {\n return function (a) {\n var split = function (v) {\n if (v.result instanceof Control_Monad_Rec_Class.Loop) {\n return new Control_Monad_Rec_Class.Loop({\n state: v.result.value0,\n str: v.suffix\n });\n };\n if (v.result instanceof Control_Monad_Rec_Class.Done) {\n return new Control_Monad_Rec_Class.Done({\n result: v.result.value0,\n suffix: v.suffix\n });\n };\n throw new Error(\"Failed pattern match at StringParser.Parser (line 87, column 5 - line 87, column 68): \" + [ v.constructor.name ]);\n };\n return function (str) {\n return Control_Monad_Rec_Class.tailRecM(Control_Monad_Rec_Class.monadRecEither)(function (st) {\n return Data_Functor.map(Data_Either.functorEither)(split)(unParser(f(st.state))(st.str));\n })({\n state: a,\n str: str\n });\n };\n };\n },\n Monad0: function () {\n return monadParser;\n }\n};\nvar monoidParser = function (dictMonoid) {\n return {\n mempty: Control_Applicative.pure(applicativeParser)(Data_Monoid.mempty(dictMonoid)),\n Semigroup0: function () {\n return semigroupParser(dictMonoid.Semigroup0());\n }\n };\n};\nvar altParser = {\n alt: function (v) {\n return function (v1) {\n return function (s) {\n var v2 = v(s);\n if (v2 instanceof Data_Either.Left) {\n if (s.position === v2.value0.pos) {\n return v1(s);\n };\n if (Data_Boolean.otherwise) {\n return new Data_Either.Left({\n error: v2.value0.error,\n pos: v2.value0.pos\n });\n };\n };\n return v2;\n };\n };\n },\n Functor0: function () {\n return functorParser;\n }\n};\nvar plusParser = {\n empty: /* #__PURE__ */ fail(\"No alternative\"),\n Alt0: function () {\n return altParser;\n }\n};\nvar alternativeParser = {\n Applicative0: function () {\n return applicativeParser;\n },\n Plus1: function () {\n return plusParser;\n }\n};\nvar monadPlusParser = {\n Monad0: function () {\n return monadParser;\n },\n Alternative1: function () {\n return alternativeParser;\n }\n};\nexport {\n Parser,\n unParser,\n runParser,\n printParserError,\n fail,\n functorParser,\n applyParser,\n applicativeParser,\n altParser,\n plusParser,\n alternativeParser,\n bindParser,\n monadParser,\n monadPlusParser,\n monadRecParser,\n lazyParser,\n semigroupParser,\n monoidParser\n};\n","// Generated by purs version 0.15.2\nimport * as Control_Alt from \"../Control.Alt/index.js\";\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Apply from \"../Control.Apply/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Control_Lazy from \"../Control.Lazy/index.js\";\nimport * as Control_Monad_Rec_Class from \"../Control.Monad.Rec.Class/index.js\";\nimport * as Data_Either from \"../Data.Either/index.js\";\nimport * as Data_Foldable from \"../Data.Foldable/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_List from \"../Data.List/index.js\";\nimport * as Data_List_NonEmpty from \"../Data.List.NonEmpty/index.js\";\nimport * as Data_List_Types from \"../Data.List.Types/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_NonEmpty from \"../Data.NonEmpty/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nimport * as StringParser_Parser from \"../StringParser.Parser/index.js\";\nvar withError = function (p) {\n return function (msg) {\n return Control_Alt.alt(StringParser_Parser.altParser)(p)(StringParser_Parser.fail(msg));\n };\n};\nvar $$try = function (v) {\n return function (s) {\n var v1 = v(s);\n if (v1 instanceof Data_Either.Left) {\n return new Data_Either.Left({\n pos: s.position,\n error: v1.value0.error\n });\n };\n return v1;\n };\n};\nvar optional = function (p) {\n return Control_Alt.alt(StringParser_Parser.altParser)(Control_Bind.bind(StringParser_Parser.bindParser)(p)(function (v) {\n return Control_Applicative.pure(StringParser_Parser.applicativeParser)(Data_Unit.unit);\n }))(Control_Applicative.pure(StringParser_Parser.applicativeParser)(Data_Unit.unit));\n};\nvar option = function (a) {\n return function (p) {\n return Control_Alt.alt(StringParser_Parser.altParser)(p)(Control_Applicative.pure(StringParser_Parser.applicativeParser)(a));\n };\n};\nvar optionMaybe = function (p) {\n return option(Data_Maybe.Nothing.value)(Data_Functor.map(StringParser_Parser.functorParser)(Data_Maybe.Just.create)(p));\n};\nvar lookAhead = function (v) {\n return function (s) {\n var v1 = v(s);\n if (v1 instanceof Data_Either.Right) {\n return new Data_Either.Right({\n result: v1.value0.result,\n suffix: s\n });\n };\n return v1;\n };\n};\nvar tryAhead = function ($20) {\n return $$try(lookAhead($20));\n};\nvar cons$prime = function (h) {\n return function (t) {\n return new Data_NonEmpty.NonEmpty(h, t);\n };\n};\nvar sepEndBy1 = function (p) {\n return function (sep) {\n return Control_Bind.bind(StringParser_Parser.bindParser)(p)(function (a) {\n return Control_Alt.alt(StringParser_Parser.altParser)(Control_Bind.bind(StringParser_Parser.bindParser)(sep)(function () {\n return Control_Bind.bind(StringParser_Parser.bindParser)(sepEndBy(p)(sep))(function (as) {\n return Control_Applicative.pure(StringParser_Parser.applicativeParser)(cons$prime(a)(as));\n });\n }))(Control_Applicative.pure(StringParser_Parser.applicativeParser)(Data_List_NonEmpty.singleton(a)));\n });\n };\n};\nvar sepEndBy = function (p) {\n return function (sep) {\n return Control_Alt.alt(StringParser_Parser.altParser)(Data_Functor.mapFlipped(StringParser_Parser.functorParser)(sepEndBy1(p)(sep))(Data_List_NonEmpty.toList))(Control_Alt.alt(StringParser_Parser.altParser)(Data_Functor.voidLeft(StringParser_Parser.functorParser)(sep)(Data_List_Types.Nil.value))(Control_Applicative.pure(StringParser_Parser.applicativeParser)(Data_List_Types.Nil.value)));\n };\n};\nvar choice = function (dictFoldable) {\n return Data_Foldable.foldl(dictFoldable)(Control_Alt.alt(StringParser_Parser.altParser))(StringParser_Parser.fail(\"Nothing to parse\"));\n};\nvar chainr1$prime = function (p) {\n return function (f) {\n return function (a) {\n return Control_Alt.alt(StringParser_Parser.altParser)(Control_Bind.bind(StringParser_Parser.bindParser)(f)(function (f$prime) {\n return Control_Bind.bind(StringParser_Parser.bindParser)(chainr1(p)(f))(function (a$prime) {\n return Control_Applicative.pure(StringParser_Parser.applicativeParser)(f$prime(a)(a$prime));\n });\n }))(Control_Applicative.pure(StringParser_Parser.applicativeParser)(a));\n };\n };\n};\nvar chainr1 = function (p) {\n return function (f) {\n return Control_Bind.bind(StringParser_Parser.bindParser)(p)(function (a) {\n return chainr1$prime(p)(f)(a);\n });\n };\n};\nvar chainr = function (p) {\n return function (f) {\n return function (a) {\n return Control_Alt.alt(StringParser_Parser.altParser)(chainr1(p)(f))(Control_Applicative.pure(StringParser_Parser.applicativeParser)(a));\n };\n };\n};\nvar chainl1$prime = function (p) {\n return function (f) {\n return function (a) {\n return Control_Alt.alt(StringParser_Parser.altParser)(Control_Bind.bind(StringParser_Parser.bindParser)(f)(function (f$prime) {\n return Control_Bind.bind(StringParser_Parser.bindParser)(p)(function (a$prime) {\n return chainl1$prime(p)(f)(f$prime(a)(a$prime));\n });\n }))(Control_Applicative.pure(StringParser_Parser.applicativeParser)(a));\n };\n };\n};\nvar chainl1 = function (p) {\n return function (f) {\n return Control_Bind.bind(StringParser_Parser.bindParser)(p)(function (a) {\n return chainl1$prime(p)(f)(a);\n });\n };\n};\nvar chainl = function (p) {\n return function (f) {\n return function (a) {\n return Control_Alt.alt(StringParser_Parser.altParser)(chainl1(p)(f))(Control_Applicative.pure(StringParser_Parser.applicativeParser)(a));\n };\n };\n};\nvar between = function (open) {\n return function (close) {\n return function (p) {\n return Control_Apply.applyFirst(StringParser_Parser.applyParser)(Control_Apply.applySecond(StringParser_Parser.applyParser)(open)(p))(close);\n };\n };\n};\nvar assertConsume = function (v) {\n return function (s) {\n var v1 = v(s);\n if (v1 instanceof Data_Either.Right) {\n var $18 = s.position < v1.value0.suffix.position;\n if ($18) {\n return new Data_Either.Right(v1.value0);\n };\n return new Data_Either.Left({\n pos: s.position,\n error: \"Consumed no input.\"\n });\n };\n return v1;\n };\n};\nvar many = /* #__PURE__ */ (function () {\n var $21 = Data_List.manyRec(StringParser_Parser.monadRecParser)(StringParser_Parser.alternativeParser);\n return function ($22) {\n return $21(assertConsume($22));\n };\n})();\nvar many1 = function (p) {\n return Control_Apply.apply(StringParser_Parser.applyParser)(Data_Functor.map(StringParser_Parser.functorParser)(cons$prime)(p))(many(p));\n};\nvar endBy1 = function (p) {\n return function (sep) {\n return many1(Control_Apply.applyFirst(StringParser_Parser.applyParser)(p)(sep));\n };\n};\nvar endBy = function (p) {\n return function (sep) {\n return Control_Alt.alt(StringParser_Parser.altParser)(Data_Functor.mapFlipped(StringParser_Parser.functorParser)(endBy1(p)(sep))(Data_List_NonEmpty.toList))(Data_Functor.voidLeft(StringParser_Parser.functorParser)(sep)(Data_List_Types.Nil.value));\n };\n};\nvar sepBy1 = function (p) {\n return function (sep) {\n return Control_Bind.bind(StringParser_Parser.bindParser)(p)(function (a) {\n return Control_Bind.bind(StringParser_Parser.bindParser)(many(Control_Apply.applySecond(StringParser_Parser.applyParser)(sep)(p)))(function (as) {\n return Control_Applicative.pure(StringParser_Parser.applicativeParser)(cons$prime(a)(as));\n });\n });\n };\n};\nvar sepBy = function (p) {\n return function (sep) {\n return Control_Alt.alt(StringParser_Parser.altParser)(Data_Functor.map(StringParser_Parser.functorParser)(Data_List_NonEmpty.toList)(sepBy1(p)(sep)))(Control_Applicative.pure(StringParser_Parser.applicativeParser)(Data_List_Types.Nil.value));\n };\n};\nvar many1Till = function (p) {\n return function (end) {\n var ending = function (acc) {\n return Control_Bind.bind(StringParser_Parser.bindParser)(end)(function () {\n return Control_Applicative.pure(StringParser_Parser.applicativeParser)(new Control_Monad_Rec_Class.Done(Data_List_NonEmpty.reverse(acc)));\n });\n };\n var $$continue = function (acc) {\n return Control_Bind.bind(StringParser_Parser.bindParser)(assertConsume(p))(function (c) {\n return Control_Applicative.pure(StringParser_Parser.applicativeParser)(new Control_Monad_Rec_Class.Loop(Data_List_NonEmpty.cons(c)(acc)));\n });\n };\n var inner = function (acc) {\n return Control_Alt.alt(StringParser_Parser.altParser)(ending(acc))($$continue(acc));\n };\n return Control_Bind.bind(StringParser_Parser.bindParser)(p)(function (x) {\n return Control_Monad_Rec_Class.tailRecM(StringParser_Parser.monadRecParser)(inner)(Control_Applicative.pure(Data_List_Types.applicativeNonEmptyList)(x));\n });\n };\n};\nvar manyTill = function (p) {\n return function (end) {\n return Control_Alt.alt(StringParser_Parser.altParser)(Control_Apply.applySecond(StringParser_Parser.applyParser)(end)(Control_Applicative.pure(StringParser_Parser.applicativeParser)(Data_List_Types.Nil.value)))(Data_Functor.map(StringParser_Parser.functorParser)(Data_List_NonEmpty.toList)(many1Till(p)(end)));\n };\n};\nexport {\n $$try as try,\n lookAhead,\n tryAhead,\n many,\n many1,\n manyTill,\n many1Till,\n assertConsume,\n withError,\n between,\n option,\n optional,\n optionMaybe,\n sepBy,\n sepBy1,\n sepEndBy,\n sepEndBy1,\n endBy1,\n endBy,\n chainr,\n chainl,\n chainl1,\n chainr1,\n choice\n};\nexport {\n fix\n} from \"../Control.Lazy/index.js\";\n","// Generated by purs version 0.15.2\nimport * as Control_Alt from \"../Control.Alt/index.js\";\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Data_Array from \"../Data.Array/index.js\";\nimport * as Data_Array_NonEmpty from \"../Data.Array.NonEmpty/index.js\";\nimport * as Data_Char from \"../Data.Char/index.js\";\nimport * as Data_Either from \"../Data.Either/index.js\";\nimport * as Data_Enum from \"../Data.Enum/index.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Foldable from \"../Data.Foldable/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_List_Types from \"../Data.List.Types/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Monoid from \"../Data.Monoid/index.js\";\nimport * as Data_Show from \"../Data.Show/index.js\";\nimport * as Data_String_CodePoints from \"../Data.String.CodePoints/index.js\";\nimport * as Data_String_CodeUnits from \"../Data.String.CodeUnits/index.js\";\nimport * as Data_String_Regex from \"../Data.String.Regex/index.js\";\nimport * as Data_String_Regex_Flags from \"../Data.String.Regex.Flags/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nimport * as StringParser_CodeUnits from \"../StringParser.CodeUnits/index.js\";\nimport * as StringParser_Combinators from \"../StringParser.Combinators/index.js\";\nimport * as StringParser_Parser from \"../StringParser.Parser/index.js\";\nvar upperCaseChar = /* #__PURE__ */ StringParser_Combinators[\"try\"](/* #__PURE__ */ Control_Bind.bind(StringParser_Parser.bindParser)(StringParser_CodeUnits.anyChar)(function (c) {\n var $12 = Data_Foldable.elem(Data_Foldable.foldableArray)(Data_Eq.eqInt)(Data_Char.toCharCode(c))(Data_Array.range(65)(90));\n if ($12) {\n return Control_Applicative.pure(StringParser_Parser.applicativeParser)(c);\n };\n return StringParser_Parser.fail(\"Expected an upper case character but found \" + Data_Show.show(Data_Show.showChar)(c));\n}));\nvar string = function (pattern) {\n return function (v) {\n var length = Data_String_CodePoints.length(pattern);\n var v1 = Data_String_CodePoints.splitAt(length)(v.substring);\n var $15 = v1.before === pattern;\n if ($15) {\n return new Data_Either.Right({\n result: pattern,\n suffix: {\n substring: v1.after,\n position: v.position + length | 0\n }\n });\n };\n return new Data_Either.Left({\n pos: v.position,\n error: \"Expected '\" + (pattern + \"'.\")\n });\n };\n};\nvar regex = function (pat) {\n var pattern = \"^(\" + (pat + \")\");\n var matchRegex = function (r) {\n return function (v) {\n var v1 = Data_Functor.map(Data_Maybe.functorMaybe)(Data_Array_NonEmpty.head)(Data_String_Regex.match(r)(v.substring));\n if (v1 instanceof Data_Maybe.Just && v1.value0 instanceof Data_Maybe.Just) {\n return new Data_Either.Right({\n result: v1.value0.value0,\n suffix: {\n substring: Data_String_CodePoints.drop(Data_String_CodePoints.length(v1.value0.value0))(v.substring),\n position: v.position + Data_String_CodePoints.length(v1.value0.value0) | 0\n }\n });\n };\n return new Data_Either.Left({\n pos: v.position,\n error: \"no match\"\n });\n };\n };\n var v = Data_String_Regex.regex(pattern)(Data_String_Regex_Flags.noFlags);\n if (v instanceof Data_Either.Left) {\n return StringParser_Parser.fail(\"StringParser.String.regex': illegal regex \" + pat);\n };\n if (v instanceof Data_Either.Right) {\n return matchRegex(v.value0);\n };\n throw new Error(\"Failed pattern match at StringParser.CodePoints (line 158, column 3 - line 162, column 19): \" + [ v.constructor.name ]);\n};\nvar lowerCaseChar = /* #__PURE__ */ StringParser_Combinators[\"try\"](/* #__PURE__ */ Control_Bind.bind(StringParser_Parser.bindParser)(StringParser_CodeUnits.anyChar)(function (c) {\n var $29 = Data_Foldable.elem(Data_Foldable.foldableArray)(Data_Eq.eqInt)(Data_Char.toCharCode(c))(Data_Array.range(97)(122));\n if ($29) {\n return Control_Applicative.pure(StringParser_Parser.applicativeParser)(c);\n };\n return StringParser_Parser.fail(\"Expected a lower case character but found \" + Data_Show.show(Data_Show.showChar)(c));\n}));\nvar eof = function (s) {\n if (0 < Data_String_CodePoints.length(s.substring)) {\n return new Data_Either.Left({\n pos: s.position,\n error: \"Expected EOF\"\n });\n };\n return new Data_Either.Right({\n result: Data_Unit.unit,\n suffix: s\n });\n};\nvar anyLetter = /* #__PURE__ */ Control_Alt.alt(StringParser_Parser.altParser)(lowerCaseChar)(/* #__PURE__ */ StringParser_Combinators.withError(upperCaseChar)(\"Expected a letter\"));\nvar anyDigit = /* #__PURE__ */ StringParser_Combinators[\"try\"](/* #__PURE__ */ Control_Bind.bind(StringParser_Parser.bindParser)(StringParser_CodeUnits.anyChar)(function (c) {\n var $33 = c >= \"0\" && c <= \"9\";\n if ($33) {\n return Control_Applicative.pure(StringParser_Parser.applicativeParser)(c);\n };\n return StringParser_Parser.fail(\"Character \" + (Data_Show.show(Data_Show.showChar)(c) + \" is not a digit\"));\n}));\nvar anyCodePoint = function (v) {\n var v1 = Data_String_CodePoints.uncons(v.substring);\n if (v1 instanceof Data_Maybe.Nothing) {\n return new Data_Either.Left({\n pos: v.position,\n error: \"Unexpected EOF\"\n });\n };\n if (v1 instanceof Data_Maybe.Just) {\n return new Data_Either.Right({\n result: v1.value0.head,\n suffix: {\n substring: v1.value0.tail,\n position: v.position + 1 | 0\n }\n });\n };\n throw new Error(\"Failed pattern match at StringParser.CodePoints (line 72, column 3 - line 74, column 103): \" + [ v1.constructor.name ]);\n};\nvar satisfyCodePoint = function (f) {\n return StringParser_Combinators[\"try\"](Control_Bind.bind(StringParser_Parser.bindParser)(anyCodePoint)(function (cp) {\n var $41 = f(cp);\n if ($41) {\n return Control_Applicative.pure(StringParser_Parser.applicativeParser)(cp);\n };\n return StringParser_Parser.fail(\"Code point \" + (Data_Show.show(Data_String_CodePoints.showCodePoint)(cp) + \" did not satisfy predicate\"));\n }));\n};\nvar codePoint = function (c) {\n return StringParser_Combinators.withError(satisfyCodePoint(function (v) {\n return Data_Eq.eq(Data_String_CodePoints.eqCodePoint)(v)(c);\n }))(\"Could not match code point \" + Data_Show.show(Data_String_CodePoints.showCodePoint)(c));\n};\nvar anyChar = /* #__PURE__ */ (function () {\n var notAChar = function (cc) {\n return StringParser_Parser.fail(\"Code point \" + (Data_Show.show(Data_Show.showInt)(cc) + \" is not a character\"));\n };\n return Control_Bind.bind(StringParser_Parser.bindParser)(Data_Functor.mapFlipped(StringParser_Parser.functorParser)(anyCodePoint)(Data_Enum.fromEnum(Data_String_CodePoints.boundedEnumCodePoint)))(function (cc) {\n var v = Data_Char.fromCharCode(cc);\n if (v instanceof Data_Maybe.Just) {\n var $43 = cc > 65535;\n if ($43) {\n return notAChar(cc);\n };\n return Control_Applicative.pure(StringParser_Parser.applicativeParser)(v.value0);\n };\n if (v instanceof Data_Maybe.Nothing) {\n return notAChar(cc);\n };\n throw new Error(\"Failed pattern match at StringParser.CodePoints (line 57, column 3 - line 65, column 27): \" + [ v.constructor.name ]);\n });\n})();\nvar satisfy = function (f) {\n return StringParser_Combinators[\"try\"](Control_Bind.bind(StringParser_Parser.bindParser)(anyChar)(function (c) {\n var $45 = f(c);\n if ($45) {\n return Control_Applicative.pure(StringParser_Parser.applicativeParser)(c);\n };\n return StringParser_Parser.fail(\"Character \" + (Data_Show.show(Data_Show.showChar)(c) + \" did not satisfy predicate\"));\n }));\n};\nvar $$char = function (c) {\n return StringParser_Combinators.withError(satisfy(function (v) {\n return v === c;\n }))(\"Could not match character \" + Data_Show.show(Data_Show.showChar)(c));\n};\nvar noneOf = function (dictFoldable) {\n var $46 = Data_Function.flip(Data_Foldable.notElem(dictFoldable)(Data_Eq.eqChar));\n return function ($47) {\n return satisfy($46($47));\n };\n};\nvar oneOf = function (dictFoldable) {\n var $48 = Data_Function.flip(Data_Foldable.elem(dictFoldable)(Data_Eq.eqChar));\n return function ($49) {\n return satisfy($48($49));\n };\n};\nvar whiteSpace = /* #__PURE__ */ Control_Bind.bind(StringParser_Parser.bindParser)(/* #__PURE__ */ StringParser_Combinators.many(/* #__PURE__ */ satisfy(function (c) {\n return c === \"\\x0a\" || (c === \"\\x0d\" || (c === \" \" || c === \"\\x09\"));\n})))(function (cs) {\n return Control_Applicative.pure(StringParser_Parser.applicativeParser)(Data_Foldable.foldMap(Data_List_Types.foldableList)(Data_Monoid.monoidString)(Data_String_CodeUnits.singleton)(cs));\n});\nvar skipSpaces = /* #__PURE__ */ Data_Functor[\"void\"](StringParser_Parser.functorParser)(whiteSpace);\nvar alphaNum = /* #__PURE__ */ Control_Alt.alt(StringParser_Parser.altParser)(anyLetter)(/* #__PURE__ */ StringParser_Combinators.withError(anyDigit)(\"Expected a letter or a number\"));\nexport {\n eof,\n anyChar,\n anyCodePoint,\n anyDigit,\n string,\n satisfy,\n satisfyCodePoint,\n $$char as char,\n codePoint,\n whiteSpace,\n skipSpaces,\n oneOf,\n noneOf,\n lowerCaseChar,\n upperCaseChar,\n anyLetter,\n alphaNum,\n regex\n};\n","// Generated by purs version 0.15.2\nimport * as Control_Alt from \"../Control.Alt/index.js\";\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Apply from \"../Control.Apply/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Data_Either from \"../Data.Either/index.js\";\nimport * as Data_Foldable from \"../Data.Foldable/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_List from \"../Data.List/index.js\";\nimport * as Data_List_Types from \"../Data.List.Types/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Monoid from \"../Data.Monoid/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nimport * as Data_Semiring from \"../Data.Semiring/index.js\";\nimport * as Data_Show from \"../Data.Show/index.js\";\nimport * as Data_String_CodePoints from \"../Data.String.CodePoints/index.js\";\nimport * as Data_String_Common from \"../Data.String.Common/index.js\";\nimport * as Data_String_Regex from \"../Data.String.Regex/index.js\";\nimport * as Data_String_Regex_Flags from \"../Data.String.Regex.Flags/index.js\";\nimport * as Data_String_Regex_Unsafe from \"../Data.String.Regex.Unsafe/index.js\";\nimport * as Data_String_Utils from \"../Data.String.Utils/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nimport * as Effect_Console from \"../Effect.Console/index.js\";\nimport * as Effect_Unsafe from \"../Effect.Unsafe/index.js\";\nimport * as StringParser_CodePoints from \"../StringParser.CodePoints/index.js\";\nimport * as StringParser_Combinators from \"../StringParser.Combinators/index.js\";\nimport * as StringParser_Parser from \"../StringParser.Parser/index.js\";\nimport * as TablatureDocument from \"../TablatureDocument/index.js\";\nimport * as Utils from \"../Utils/index.js\";\nvar $runtime_lazy = function (name, moduleName, init) {\n var state = 0;\n var val;\n return function (lineNumber) {\n if (state === 2) return val;\n if (state === 1) throw new ReferenceError(name + \" was needed before it finished initializing (module \" + moduleName + \", line \" + lineNumber + \")\", moduleName, lineNumber);\n state = 1;\n val = init();\n state = 2;\n return val;\n };\n};\nvar tryRunParser = function (dictShow) {\n return function (parser) {\n return function (inputString) {\n var v = StringParser_Parser.unParser(Control_Apply.applyFirst(StringParser_Parser.applyParser)(parser)(StringParser_CodePoints.eof))({\n substring: inputString,\n position: 0\n });\n if (v instanceof Data_Either.Left) {\n var msg = \"Position: \" + (Data_Show.show(Data_Show.showInt)(v.value0.pos) + (\"\\x0aError: \" + (Data_Show.show(Data_Show.showString)(v.value0.error) + (\"\\x0aIn input string: \" + (inputString + (\"\\x0aWith unparsed suffix: \" + Data_Show.show(Data_Show.showString)(Data_String_CodePoints.drop(v.value0.pos)(inputString))))))));\n return (function (v1) {\n return Data_Maybe.Nothing.value;\n })(Effect_Unsafe.unsafePerformEffect(Effect_Console.error(msg)));\n };\n if (v instanceof Data_Either.Right) {\n return Control_Applicative.pure(Data_Maybe.applicativeMaybe)(v.value0.result);\n };\n throw new Error(\"Failed pattern match at TablatureParser (line 227, column 3 - line 237, column 33): \" + [ v.constructor.name ]);\n };\n };\n};\nvar sanitizeInput = function (inputString) {\n return Data_String_Regex.replace(Data_String_Regex_Unsafe.unsafeRegex(\"[ \\x09]+\\x0a\")(Data_String_Regex_Flags.global))(\"\\x0a\")(Data_String_Regex.replace(Data_String_Regex_Unsafe.unsafeRegex(\"\\x0d\")(Data_String_Regex_Flags.global))(\"\")(inputString));\n};\nvar parseWord = /* #__PURE__ */ (function () {\n return Data_Functor.mapFlipped(StringParser_Parser.functorParser)(StringParser_CodePoints.regex(\"(? bkeys.length) return GT;\n var keys = akeys.concat(bkeys).sort();\n for (var j = 0; j < keys.length; j++) {\n var k = keys[j];\n if (a[k] === undefined) return LT;\n else if (b[k] === undefined) return GT;\n var ck = _compare(EQ, GT, LT, a[k], b[k]);\n if (ck !== EQ) return ck;\n }\n return EQ;\n }\n }\n}\n","export function _copyST(m) {\n return function () {\n var r = {};\n for (var k in m) {\n if (hasOwnProperty.call(m, k)) {\n r[k] = m[k];\n }\n }\n return r;\n };\n}\n\nexport const empty = {};\n\nexport function runST(f) {\n return f();\n}\n\nexport function _fmapObject(m0, f) {\n var m = {};\n for (var k in m0) {\n if (hasOwnProperty.call(m0, k)) {\n m[k] = f(m0[k]);\n }\n }\n return m;\n}\n\nexport function _mapWithKey(m0, f) {\n var m = {};\n for (var k in m0) {\n if (hasOwnProperty.call(m0, k)) {\n m[k] = f(k)(m0[k]);\n }\n }\n return m;\n}\n\nexport function _foldM(bind) {\n return function (f) {\n return function (mz) {\n return function (m) {\n var acc = mz;\n function g(k) {\n return function (z) {\n return f(z)(k)(m[k]);\n };\n }\n for (var k in m) {\n if (hasOwnProperty.call(m, k)) {\n acc = bind(acc)(g(k));\n }\n }\n return acc;\n };\n };\n };\n}\n\nexport function _foldSCObject(m, z, f, fromMaybe) {\n var acc = z;\n for (var k in m) {\n if (hasOwnProperty.call(m, k)) {\n var maybeR = f(acc)(k)(m[k]);\n var r = fromMaybe(null)(maybeR);\n if (r === null) return acc;\n else acc = r;\n }\n }\n return acc;\n}\n\nexport function all(f) {\n return function (m) {\n for (var k in m) {\n if (hasOwnProperty.call(m, k) && !f(k)(m[k])) return false;\n }\n return true;\n };\n}\n\nexport function size(m) {\n var s = 0;\n for (var k in m) {\n if (hasOwnProperty.call(m, k)) {\n ++s;\n }\n }\n return s;\n}\n\nexport function _lookup(no, yes, k, m) {\n return k in m ? yes(m[k]) : no;\n}\n\nexport function _lookupST(no, yes, k, m) {\n return function () {\n return k in m ? yes(m[k]) : no;\n };\n}\n\nexport function toArrayWithKey(f) {\n return function (m) {\n var r = [];\n for (var k in m) {\n if (hasOwnProperty.call(m, k)) {\n r.push(f(k)(m[k]));\n }\n }\n return r;\n };\n}\n\nexport const keys = Object.keys || toArrayWithKey(function (k) {\n return function () { return k; };\n});\n","const newImpl = function () {\n return {};\n};\nexport { newImpl as new };\n\nexport function peekImpl(just) {\n return function (nothing) {\n return function (k) {\n return function (m) {\n return function () {\n return {}.hasOwnProperty.call(m, k) ? just(m[k]) : nothing;\n };\n };\n };\n };\n}\n\nexport function poke(k) {\n return function (v) {\n return function (m) {\n return function () {\n m[k] = v;\n return m;\n };\n };\n };\n}\n\nconst deleteImpl = function (k) {\n return function (m) {\n return function () {\n delete m[k];\n return m;\n };\n };\n};\nexport { deleteImpl as delete };\n","// Generated by purs version 0.15.2\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nvar peek = /* #__PURE__ */ (function () {\n return $foreign.peekImpl(Data_Maybe.Just.create)(Data_Maybe.Nothing.value);\n})();\nexport {\n new,\n poke,\n delete\n} from \"./foreign.js\";\nexport {\n peek\n};\n","// Generated by purs version 0.15.2\nimport * as $foreign from \"./foreign.js\";\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Apply from \"../Control.Apply/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Control_Monad_ST_Internal from \"../Control.Monad.ST.Internal/index.js\";\nimport * as Data_Array from \"../Data.Array/index.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Foldable from \"../Data.Foldable/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Function_Uncurried from \"../Data.Function.Uncurried/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Monoid from \"../Data.Monoid/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nimport * as Data_Show from \"../Data.Show/index.js\";\nimport * as Data_Traversable from \"../Data.Traversable/index.js\";\nimport * as Data_TraversableWithIndex from \"../Data.TraversableWithIndex/index.js\";\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nimport * as Data_Unfoldable from \"../Data.Unfoldable/index.js\";\nimport * as Foreign_Object_ST from \"../Foreign.Object.ST/index.js\";\nimport * as Unsafe_Coerce from \"../Unsafe.Coerce/index.js\";\nvar values = /* #__PURE__ */ $foreign.toArrayWithKey(function (v) {\n return function (v1) {\n return v1;\n };\n});\nvar toUnfoldable = function (dictUnfoldable) {\n var $35 = Data_Array.toUnfoldable(dictUnfoldable);\n var $36 = $foreign.toArrayWithKey(Data_Tuple.Tuple.create);\n return function ($37) {\n return $35($36($37));\n };\n};\nvar toAscUnfoldable = function (dictUnfoldable) {\n var $38 = Data_Array.toUnfoldable(dictUnfoldable);\n var $39 = Data_Array.sortWith(Data_Ord.ordString)(Data_Tuple.fst);\n var $40 = $foreign.toArrayWithKey(Data_Tuple.Tuple.create);\n return function ($41) {\n return $38($39($40($41)));\n };\n};\nvar toAscArray = /* #__PURE__ */ toAscUnfoldable(Data_Unfoldable.unfoldableArray);\nvar toArray = /* #__PURE__ */ (function () {\n return $foreign.toArrayWithKey(Data_Tuple.Tuple.create);\n})();\nvar thawST = $foreign[\"_copyST\"];\nvar singleton = function (k) {\n return function (v) {\n return $foreign.runST(Control_Bind.bindFlipped(Control_Monad_ST_Internal.bindST)(Foreign_Object_ST.poke(k)(v))(Foreign_Object_ST[\"new\"]));\n };\n};\nvar showObject = function (dictShow) {\n return {\n show: function (m) {\n return \"(fromFoldable \" + (Data_Show.show(Data_Show.showArray(Data_Tuple.showTuple(Data_Show.showString)(dictShow)))(toArray(m)) + \")\");\n }\n };\n};\nvar mutate = function (f) {\n return function (m) {\n return $foreign.runST(function __do() {\n var s = thawST(m)();\n f(s)();\n return s;\n });\n };\n};\nvar member = /* #__PURE__ */ Data_Function_Uncurried.runFn4($foreign[\"_lookup\"])(false)(/* #__PURE__ */ Data_Function[\"const\"](true));\nvar mapWithKey = function (f) {\n return function (m) {\n return $foreign[\"_mapWithKey\"](m, f);\n };\n};\nvar lookup = /* #__PURE__ */ (function () {\n return Data_Function_Uncurried.runFn4($foreign[\"_lookup\"])(Data_Maybe.Nothing.value)(Data_Maybe.Just.create);\n})();\nvar isSubmap = function (dictEq) {\n return function (m1) {\n return function (m2) {\n var f = function (k) {\n return function (v) {\n return $foreign[\"_lookup\"](false, Data_Eq.eq(dictEq)(v), k, m2);\n };\n };\n return $foreign.all(f)(m1);\n };\n };\n};\nvar isEmpty = /* #__PURE__ */ $foreign.all(function (v) {\n return function (v1) {\n return false;\n };\n});\nvar insert = function (k) {\n return function (v) {\n return mutate(Foreign_Object_ST.poke(k)(v));\n };\n};\nvar functorObject = {\n map: function (f) {\n return function (m) {\n return $foreign[\"_fmapObject\"](m, f);\n };\n }\n};\nvar functorWithIndexObject = {\n mapWithIndex: mapWithKey,\n Functor0: function () {\n return functorObject;\n }\n};\nvar fromHomogeneous = function () {\n return Unsafe_Coerce.unsafeCoerce;\n};\nvar fromFoldableWith = function (dictFoldable) {\n return function (f) {\n return function (l) {\n return $foreign.runST(function __do() {\n var s = Foreign_Object_ST[\"new\"]();\n Data_Foldable.for_(Control_Monad_ST_Internal.applicativeST)(dictFoldable)(l)(function (v) {\n return function __do() {\n var v$prime = $foreign[\"_lookupST\"](v.value1, f(v.value1), v.value0, s)();\n return Foreign_Object_ST.poke(v.value0)(v$prime)(s)();\n };\n })();\n return s;\n });\n };\n };\n};\nvar fromFoldable = function (dictFoldable) {\n return function (l) {\n return $foreign.runST(function __do() {\n var s = Foreign_Object_ST[\"new\"]();\n Control_Monad_ST_Internal.foreach(Data_Array.fromFoldable(dictFoldable)(l))(function (v) {\n return Data_Functor[\"void\"](Control_Monad_ST_Internal.functorST)(Foreign_Object_ST.poke(v.value0)(v.value1)(s));\n })();\n return s;\n });\n };\n};\nvar freezeST = $foreign[\"_copyST\"];\nvar foldMaybe = function (f) {\n return function (z) {\n return function (m) {\n return $foreign[\"_foldSCObject\"](m, z, f, Data_Maybe.fromMaybe);\n };\n };\n};\nvar foldM = function (dictMonad) {\n return function (f) {\n return function (z) {\n return $foreign[\"_foldM\"](Control_Bind.bind(dictMonad.Bind1()))(f)(Control_Applicative.pure(dictMonad.Applicative0())(z));\n };\n };\n};\nvar union = function (m) {\n return mutate(function (s) {\n return foldM(Control_Monad_ST_Internal.monadST)(function (s$prime) {\n return function (k) {\n return function (v) {\n return Foreign_Object_ST.poke(k)(v)(s$prime);\n };\n };\n })(s)(m);\n });\n};\nvar unions = function (dictFoldable) {\n return Data_Foldable.foldl(dictFoldable)(union)($foreign.empty);\n};\nvar unionWith = function (f) {\n return function (m1) {\n return function (m2) {\n return mutate(function (s1) {\n return foldM(Control_Monad_ST_Internal.monadST)(function (s2) {\n return function (k) {\n return function (v1) {\n return Foreign_Object_ST.poke(k)($foreign[\"_lookup\"](v1, function (v2) {\n return f(v1)(v2);\n }, k, m2))(s2);\n };\n };\n })(s1)(m1);\n })(m2);\n };\n };\n};\nvar semigroupObject = function (dictSemigroup) {\n return {\n append: unionWith(Data_Semigroup.append(dictSemigroup))\n };\n};\nvar monoidObject = function (dictSemigroup) {\n return {\n mempty: $foreign.empty,\n Semigroup0: function () {\n return semigroupObject(dictSemigroup);\n }\n };\n};\nvar fold = /* #__PURE__ */ $foreign[\"_foldM\"](Data_Function.applyFlipped);\nvar foldMap = function (dictMonoid) {\n return function (f) {\n return fold(function (acc) {\n return function (k) {\n return function (v) {\n return Data_Semigroup.append(dictMonoid.Semigroup0())(acc)(f(k)(v));\n };\n };\n })(Data_Monoid.mempty(dictMonoid));\n };\n};\nvar foldableObject = {\n foldl: function (f) {\n return fold(function (z) {\n return function (v) {\n return f(z);\n };\n });\n },\n foldr: function (f) {\n return function (z) {\n return function (m) {\n return Data_Foldable.foldr(Data_Foldable.foldableArray)(f)(z)(values(m));\n };\n };\n },\n foldMap: function (dictMonoid) {\n return function (f) {\n return foldMap(dictMonoid)(Data_Function[\"const\"](f));\n };\n }\n};\nvar foldableWithIndexObject = {\n foldlWithIndex: function (f) {\n return fold(Data_Function.flip(f));\n },\n foldrWithIndex: function (f) {\n return function (z) {\n return function (m) {\n return Data_Foldable.foldr(Data_Foldable.foldableArray)(Data_Tuple.uncurry(f))(z)($foreign.toArrayWithKey(Data_Tuple.Tuple.create)(m));\n };\n };\n },\n foldMapWithIndex: function (dictMonoid) {\n return foldMap(dictMonoid);\n },\n Foldable0: function () {\n return foldableObject;\n }\n};\nvar traversableWithIndexObject = {\n traverseWithIndex: function (dictApplicative) {\n return function (f) {\n return function (ms) {\n return fold(function (acc) {\n return function (k) {\n return function (v) {\n return Control_Apply.apply(dictApplicative.Apply0())(Data_Functor.map((dictApplicative.Apply0()).Functor0())(Data_Function.flip(insert(k)))(acc))(f(k)(v));\n };\n };\n })(Control_Applicative.pure(dictApplicative)($foreign.empty))(ms);\n };\n };\n },\n FunctorWithIndex0: function () {\n return functorWithIndexObject;\n },\n FoldableWithIndex1: function () {\n return foldableWithIndexObject;\n },\n Traversable2: function () {\n return traversableObject;\n }\n};\nvar traversableObject = {\n traverse: function (dictApplicative) {\n var $42 = Data_TraversableWithIndex.traverseWithIndex(traversableWithIndexObject)(dictApplicative);\n return function ($43) {\n return $42(Data_Function[\"const\"]($43));\n };\n },\n sequence: function (dictApplicative) {\n return Data_Traversable.traverse(traversableObject)(dictApplicative)(Control_Category.identity(Control_Category.categoryFn));\n },\n Functor0: function () {\n return functorObject;\n },\n Foldable1: function () {\n return foldableObject;\n }\n};\nvar filterWithKey = function (predicate) {\n return function (m) {\n var go = (function () {\n var step = function (acc) {\n return function (k) {\n return function (v) {\n var $32 = predicate(k)(v);\n if ($32) {\n return Foreign_Object_ST.poke(k)(v)(acc);\n };\n return Control_Applicative.pure(Control_Monad_ST_Internal.applicativeST)(acc);\n };\n };\n };\n return function __do() {\n var m$prime = Foreign_Object_ST[\"new\"]();\n return foldM(Control_Monad_ST_Internal.monadST)(step)(m$prime)(m)();\n };\n })();\n return $foreign.runST(go);\n };\n};\nvar filterKeys = function (predicate) {\n return filterWithKey(function ($44) {\n return Data_Function[\"const\"](predicate($44));\n });\n};\nvar filter = function (predicate) {\n return filterWithKey(Data_Function[\"const\"](predicate));\n};\nvar eqObject = function (dictEq) {\n return {\n eq: function (m1) {\n return function (m2) {\n return isSubmap(dictEq)(m1)(m2) && isSubmap(dictEq)(m2)(m1);\n };\n }\n };\n};\nvar ordObject = function (dictOrd) {\n return {\n compare: function (m1) {\n return function (m2) {\n return Data_Ord.compare(Data_Ord.ordArray(Data_Tuple.ordTuple(Data_Ord.ordString)(dictOrd)))(toAscArray(m1))(toAscArray(m2));\n };\n },\n Eq0: function () {\n return eqObject(dictOrd.Eq0());\n }\n };\n};\nvar eq1Object = {\n eq1: function (dictEq) {\n return Data_Eq.eq(eqObject(dictEq));\n }\n};\nvar $$delete = function (k) {\n return mutate(Foreign_Object_ST[\"delete\"](k));\n};\nvar pop = function (k) {\n return function (m) {\n return Data_Functor.mapFlipped(Data_Maybe.functorMaybe)(lookup(k)(m))(function (a) {\n return new Data_Tuple.Tuple(a, $$delete(k)(m));\n });\n };\n};\nvar alter = function (f) {\n return function (k) {\n return function (m) {\n var v = f(lookup(k)(m));\n if (v instanceof Data_Maybe.Nothing) {\n return $$delete(k)(m);\n };\n if (v instanceof Data_Maybe.Just) {\n return insert(k)(v.value0)(m);\n };\n throw new Error(\"Failed pattern match at Foreign.Object (line 209, column 15 - line 211, column 25): \" + [ v.constructor.name ]);\n };\n };\n};\nvar update = function (f) {\n return function (k) {\n return function (m) {\n return alter(Data_Maybe.maybe(Data_Maybe.Nothing.value)(f))(k)(m);\n };\n };\n};\nexport {\n empty,\n size,\n keys,\n all,\n runST,\n toArrayWithKey\n} from \"./foreign.js\";\nexport {\n isEmpty,\n singleton,\n insert,\n lookup,\n toUnfoldable,\n toAscUnfoldable,\n fromFoldable,\n fromFoldableWith,\n fromHomogeneous,\n $$delete as delete,\n pop,\n member,\n alter,\n update,\n mapWithKey,\n filterWithKey,\n filterKeys,\n filter,\n values,\n union,\n unionWith,\n unions,\n isSubmap,\n fold,\n foldMap,\n foldM,\n foldMaybe,\n thawST,\n freezeST,\n functorObject,\n functorWithIndexObject,\n foldableObject,\n foldableWithIndexObject,\n traversableObject,\n traversableWithIndexObject,\n eqObject,\n eq1Object,\n ordObject,\n showObject,\n semigroupObject,\n monoidObject\n};\n","// Generated by purs version 0.15.2\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Data_Ordering from \"../Data.Ordering/index.js\";\nimport * as Foreign_Object from \"../Foreign.Object/index.js\";\nvar verbJsonType = function (def) {\n return function (f) {\n return function (g) {\n return g(def)(f);\n };\n };\n};\nvar toJsonType = /* #__PURE__ */ (function () {\n return verbJsonType(Data_Maybe.Nothing.value)(Data_Maybe.Just.create);\n})();\nvar jsonZero = /* #__PURE__ */ $foreign.fromNumber(0.0);\nvar jsonTrue = /* #__PURE__ */ $foreign.fromBoolean(true);\nvar jsonSingletonObject = function (key) {\n return function (val) {\n return $foreign.fromObject(Foreign_Object.singleton(key)(val));\n };\n};\nvar jsonSingletonArray = function (j) {\n return $foreign.fromArray([ j ]);\n};\nvar jsonFalse = /* #__PURE__ */ $foreign.fromBoolean(false);\nvar jsonEmptyString = /* #__PURE__ */ $foreign.fromString(\"\");\nvar jsonEmptyObject = /* #__PURE__ */ $foreign.fromObject(Foreign_Object.empty);\nvar jsonEmptyArray = /* #__PURE__ */ $foreign.fromArray([ ]);\nvar isJsonType = /* #__PURE__ */ verbJsonType(false)(/* #__PURE__ */ Data_Function[\"const\"](true));\nvar ordJson = {\n compare: function (a) {\n return function (b) {\n return $foreign[\"_compare\"](Data_Ordering.EQ.value, Data_Ordering.GT.value, Data_Ordering.LT.value, a, b);\n };\n },\n Eq0: function () {\n return eqJson;\n }\n};\nvar eqJson = {\n eq: function (j1) {\n return function (j2) {\n return Data_Eq.eq(Data_Ordering.eqOrdering)(Data_Ord.compare(ordJson)(j1)(j2))(Data_Ordering.EQ.value);\n };\n }\n};\nvar eqJNull = {\n eq: function (v) {\n return function (v1) {\n return true;\n };\n }\n};\nvar ordJNull = {\n compare: function (v) {\n return function (v1) {\n return Data_Ordering.EQ.value;\n };\n },\n Eq0: function () {\n return eqJNull;\n }\n};\nvar caseJsonString = function (d) {\n return function (f) {\n return function (j) {\n return $foreign[\"_caseJson\"](Data_Function[\"const\"](d), Data_Function[\"const\"](d), Data_Function[\"const\"](d), f, Data_Function[\"const\"](d), Data_Function[\"const\"](d), j);\n };\n };\n};\nvar isString = /* #__PURE__ */ isJsonType(caseJsonString);\nvar toString = /* #__PURE__ */ toJsonType(caseJsonString);\nvar caseJsonObject = function (d) {\n return function (f) {\n return function (j) {\n return $foreign[\"_caseJson\"](Data_Function[\"const\"](d), Data_Function[\"const\"](d), Data_Function[\"const\"](d), Data_Function[\"const\"](d), Data_Function[\"const\"](d), f, j);\n };\n };\n};\nvar isObject = /* #__PURE__ */ isJsonType(caseJsonObject);\nvar toObject = /* #__PURE__ */ toJsonType(caseJsonObject);\nvar caseJsonNumber = function (d) {\n return function (f) {\n return function (j) {\n return $foreign[\"_caseJson\"](Data_Function[\"const\"](d), Data_Function[\"const\"](d), f, Data_Function[\"const\"](d), Data_Function[\"const\"](d), Data_Function[\"const\"](d), j);\n };\n };\n};\nvar isNumber = /* #__PURE__ */ isJsonType(caseJsonNumber);\nvar toNumber = /* #__PURE__ */ toJsonType(caseJsonNumber);\nvar caseJsonNull = function (d) {\n return function (f) {\n return function (j) {\n return $foreign[\"_caseJson\"](f, Data_Function[\"const\"](d), Data_Function[\"const\"](d), Data_Function[\"const\"](d), Data_Function[\"const\"](d), Data_Function[\"const\"](d), j);\n };\n };\n};\nvar isNull = /* #__PURE__ */ isJsonType(caseJsonNull);\nvar toNull = /* #__PURE__ */ toJsonType(caseJsonNull);\nvar caseJsonBoolean = function (d) {\n return function (f) {\n return function (j) {\n return $foreign[\"_caseJson\"](Data_Function[\"const\"](d), f, Data_Function[\"const\"](d), Data_Function[\"const\"](d), Data_Function[\"const\"](d), Data_Function[\"const\"](d), j);\n };\n };\n};\nvar isBoolean = /* #__PURE__ */ isJsonType(caseJsonBoolean);\nvar toBoolean = /* #__PURE__ */ toJsonType(caseJsonBoolean);\nvar caseJsonArray = function (d) {\n return function (f) {\n return function (j) {\n return $foreign[\"_caseJson\"](Data_Function[\"const\"](d), Data_Function[\"const\"](d), Data_Function[\"const\"](d), Data_Function[\"const\"](d), f, Data_Function[\"const\"](d), j);\n };\n };\n};\nvar isArray = /* #__PURE__ */ isJsonType(caseJsonArray);\nvar toArray = /* #__PURE__ */ toJsonType(caseJsonArray);\nvar caseJson = function (a) {\n return function (b) {\n return function (c) {\n return function (d) {\n return function (e) {\n return function (f) {\n return function (json) {\n return $foreign[\"_caseJson\"](a, b, c, d, e, f, json);\n };\n };\n };\n };\n };\n };\n};\nexport {\n fromBoolean,\n fromNumber,\n fromString,\n fromArray,\n fromObject,\n jsonNull,\n stringify,\n stringifyWithIndent\n} from \"./foreign.js\";\nexport {\n caseJson,\n caseJsonNull,\n caseJsonBoolean,\n caseJsonNumber,\n caseJsonString,\n caseJsonArray,\n caseJsonObject,\n isNull,\n isBoolean,\n isNumber,\n isString,\n isArray,\n isObject,\n toNull,\n toBoolean,\n toNumber,\n toString,\n toArray,\n toObject,\n jsonTrue,\n jsonFalse,\n jsonZero,\n jsonEmptyString,\n jsonEmptyArray,\n jsonSingletonArray,\n jsonEmptyObject,\n jsonSingletonObject,\n eqJson,\n ordJson\n};\n","// Generated by purs version 0.15.2\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Either from \"../Data.Either/index.js\";\nvar jsonParser = function (j) {\n return $foreign[\"_jsonParser\"](Data_Either.Left.create, Data_Either.Right.create, j);\n};\nexport {\n jsonParser\n};\n","export function _jsonParser(fail, succ, s) {\n try {\n return succ(JSON.parse(s));\n }\n catch (e) {\n return fail(e.message);\n }\n}\n","// A helper which transforms the result ofencodeURIComponent to be compliant\n// with RFC3896, as described in the MDN documentation here:\n//\n// https://web.archive.org/web/20201206001047/https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/encodeURIComponent\nfunction toRFC3896(input) {\n return input.replace(/[!'()*]/g, function (c) {\n return \"%\" + c.charCodeAt(0).toString(16);\n });\n}\n\nexport const _encodeURIComponent = function encode(fail, succeed, input) {\n try {\n return succeed(toRFC3896(encodeURIComponent(input)));\n } catch (err) {\n return fail(err);\n }\n};\n\nexport const _encodeFormURLComponent = function encode(fail, succeed, input) {\n try {\n return succeed(toRFC3896(encodeURIComponent(input)).replace(/%20/g, \"+\"));\n } catch (err) {\n return fail(err);\n }\n};\n\nfunction _decodeURIComponent(fail, succeed, input) {\n try {\n return succeed(decodeURIComponent(input));\n } catch (err) {\n return fail(err);\n }\n}\n\nexport {_decodeURIComponent};\n\nexport const _decodeFormURLComponent = function encode(fail, succeed, input) {\n return _decodeURIComponent(fail, succeed, input.replace(/\\+/g, \" \"));\n};\n","// Generated by purs version 0.15.2\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Function_Uncurried from \"../Data.Function.Uncurried/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nvar $$encodeURIComponent = /* #__PURE__ */ (function () {\n return Data_Function_Uncurried.runFn3($foreign[\"_encodeURIComponent\"])(Data_Function[\"const\"](Data_Maybe.Nothing.value))(Data_Maybe.Just.create);\n})();\nvar encodeFormURLComponent = /* #__PURE__ */ (function () {\n return Data_Function_Uncurried.runFn3($foreign[\"_encodeFormURLComponent\"])(Data_Function[\"const\"](Data_Maybe.Nothing.value))(Data_Maybe.Just.create);\n})();\nvar $$decodeURIComponent = /* #__PURE__ */ (function () {\n return Data_Function_Uncurried.runFn3($foreign[\"_decodeURIComponent\"])(Data_Function[\"const\"](Data_Maybe.Nothing.value))(Data_Maybe.Just.create);\n})();\nvar decodeFormURLComponent = /* #__PURE__ */ (function () {\n return Data_Function_Uncurried.runFn3($foreign[\"_decodeFormURLComponent\"])(Data_Function[\"const\"](Data_Maybe.Nothing.value))(Data_Maybe.Just.create);\n})();\nexport {\n $$encodeURIComponent as encodeURIComponent,\n encodeFormURLComponent,\n $$decodeURIComponent as decodeURIComponent,\n decodeFormURLComponent\n};\n","// Generated by purs version 0.15.2\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Apply from \"../Control.Apply/index.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Monoid from \"../Data.Monoid/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nimport * as Data_Show from \"../Data.Show/index.js\";\nimport * as Data_String_Common from \"../Data.String.Common/index.js\";\nimport * as Data_Traversable from \"../Data.Traversable/index.js\";\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nimport * as JSURI from \"../JSURI/index.js\";\nvar FormURLEncoded = function (x) {\n return x;\n};\nvar toArray = function (v) {\n return v;\n};\nvar showFormUrlEncoded = {\n show: function (v) {\n return \"(FormURLEncoded \" + (Data_Show.show(Data_Show.showArray(Data_Tuple.showTuple(Data_Show.showString)(Data_Maybe.showMaybe(Data_Show.showString))))(v) + \")\");\n }\n};\nvar semigroupFormUrlEncoded = Data_Semigroup.semigroupArray;\nvar ordFormUrlEncoded = /* #__PURE__ */ Data_Ord.ordArray(/* #__PURE__ */ Data_Tuple.ordTuple(Data_Ord.ordString)(/* #__PURE__ */ Data_Maybe.ordMaybe(Data_Ord.ordString)));\nvar newtypeFormUrlEncoded = {\n Coercible0: function () {\n return undefined;\n }\n};\nvar monoidFormUrlEncoded = Data_Monoid.monoidArray;\nvar fromArray = FormURLEncoded;\nvar eqFormUrlEncoded = /* #__PURE__ */ Data_Eq.eqArray(/* #__PURE__ */ Data_Tuple.eqTuple(Data_Eq.eqString)(/* #__PURE__ */ Data_Maybe.eqMaybe(Data_Eq.eqString)));\nvar encode = /* #__PURE__ */ (function () {\n var encodePart = function (v) {\n if (v.value1 instanceof Data_Maybe.Nothing) {\n return JSURI.encodeFormURLComponent(v.value0);\n };\n if (v.value1 instanceof Data_Maybe.Just) {\n return Control_Apply.apply(Data_Maybe.applyMaybe)(Data_Functor.map(Data_Maybe.functorMaybe)(function (key) {\n return function (val) {\n return key + (\"=\" + val);\n };\n })(JSURI.encodeFormURLComponent(v.value0)))(JSURI.encodeFormURLComponent(v.value1.value0));\n };\n throw new Error(\"Failed pattern match at Data.FormURLEncoded (line 37, column 16 - line 39, column 114): \" + [ v.constructor.name ]);\n };\n var $16 = Data_Functor.map(Data_Maybe.functorMaybe)(Data_String_Common.joinWith(\"&\"));\n var $17 = Data_Traversable.traverse(Data_Traversable.traversableArray)(Data_Maybe.applicativeMaybe)(encodePart);\n return function ($18) {\n return $16($17(toArray($18)));\n };\n})();\nvar decode = /* #__PURE__ */ (function () {\n var decodePart = (function () {\n var $19 = Data_String_Common.split(\"=\");\n return function ($20) {\n return (function (v) {\n if (v.length === 2) {\n return Control_Apply.apply(Data_Maybe.applyMaybe)(Data_Functor.map(Data_Maybe.functorMaybe)(function (key) {\n return function (val) {\n return new Data_Tuple.Tuple(key, new Data_Maybe.Just(val));\n };\n })(JSURI.decodeFormURLComponent(v[0])))(JSURI.decodeFormURLComponent(v[1]));\n };\n if (v.length === 1) {\n return Control_Apply.apply(Data_Maybe.applyMaybe)(Data_Functor.map(Data_Maybe.functorMaybe)(Data_Tuple.Tuple.create)(JSURI.decodeFormURLComponent(v[0])))(Control_Applicative.pure(Data_Maybe.applicativeMaybe)(Data_Maybe.Nothing.value));\n };\n return Data_Maybe.Nothing.value;\n })($19($20));\n };\n })();\n var $21 = Data_Functor.map(Data_Maybe.functorMaybe)(FormURLEncoded);\n var $22 = Data_Traversable.traverse(Data_Traversable.traversableArray)(Data_Maybe.applicativeMaybe)(decodePart);\n var $23 = Data_String_Common.split(\"&\");\n return function ($24) {\n return $21($22($23($24)));\n };\n})();\nexport {\n FormURLEncoded,\n fromArray,\n toArray,\n encode,\n decode,\n newtypeFormUrlEncoded,\n eqFormUrlEncoded,\n ordFormUrlEncoded,\n semigroupFormUrlEncoded,\n monoidFormUrlEncoded,\n showFormUrlEncoded\n};\n","// Generated by purs version 0.15.2\nimport * as Data_Either from \"../Data.Either/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Data_Ordering from \"../Data.Ordering/index.js\";\nimport * as Data_Show from \"../Data.Show/index.js\";\nimport * as Data_String_Common from \"../Data.String.Common/index.js\";\nvar OPTIONS = /* #__PURE__ */ (function () {\n function OPTIONS() {\n\n };\n OPTIONS.value = new OPTIONS();\n return OPTIONS;\n})();\nvar GET = /* #__PURE__ */ (function () {\n function GET() {\n\n };\n GET.value = new GET();\n return GET;\n})();\nvar HEAD = /* #__PURE__ */ (function () {\n function HEAD() {\n\n };\n HEAD.value = new HEAD();\n return HEAD;\n})();\nvar POST = /* #__PURE__ */ (function () {\n function POST() {\n\n };\n POST.value = new POST();\n return POST;\n})();\nvar PUT = /* #__PURE__ */ (function () {\n function PUT() {\n\n };\n PUT.value = new PUT();\n return PUT;\n})();\nvar DELETE = /* #__PURE__ */ (function () {\n function DELETE() {\n\n };\n DELETE.value = new DELETE();\n return DELETE;\n})();\nvar TRACE = /* #__PURE__ */ (function () {\n function TRACE() {\n\n };\n TRACE.value = new TRACE();\n return TRACE;\n})();\nvar CONNECT = /* #__PURE__ */ (function () {\n function CONNECT() {\n\n };\n CONNECT.value = new CONNECT();\n return CONNECT;\n})();\nvar PROPFIND = /* #__PURE__ */ (function () {\n function PROPFIND() {\n\n };\n PROPFIND.value = new PROPFIND();\n return PROPFIND;\n})();\nvar PROPPATCH = /* #__PURE__ */ (function () {\n function PROPPATCH() {\n\n };\n PROPPATCH.value = new PROPPATCH();\n return PROPPATCH;\n})();\nvar MKCOL = /* #__PURE__ */ (function () {\n function MKCOL() {\n\n };\n MKCOL.value = new MKCOL();\n return MKCOL;\n})();\nvar COPY = /* #__PURE__ */ (function () {\n function COPY() {\n\n };\n COPY.value = new COPY();\n return COPY;\n})();\nvar MOVE = /* #__PURE__ */ (function () {\n function MOVE() {\n\n };\n MOVE.value = new MOVE();\n return MOVE;\n})();\nvar LOCK = /* #__PURE__ */ (function () {\n function LOCK() {\n\n };\n LOCK.value = new LOCK();\n return LOCK;\n})();\nvar UNLOCK = /* #__PURE__ */ (function () {\n function UNLOCK() {\n\n };\n UNLOCK.value = new UNLOCK();\n return UNLOCK;\n})();\nvar PATCH = /* #__PURE__ */ (function () {\n function PATCH() {\n\n };\n PATCH.value = new PATCH();\n return PATCH;\n})();\nvar CustomMethod = function (x) {\n return x;\n};\nvar unCustomMethod = function (v) {\n return v;\n};\nvar showMethod = {\n show: function (v) {\n if (v instanceof OPTIONS) {\n return \"OPTIONS\";\n };\n if (v instanceof GET) {\n return \"GET\";\n };\n if (v instanceof HEAD) {\n return \"HEAD\";\n };\n if (v instanceof POST) {\n return \"POST\";\n };\n if (v instanceof PUT) {\n return \"PUT\";\n };\n if (v instanceof DELETE) {\n return \"DELETE\";\n };\n if (v instanceof TRACE) {\n return \"TRACE\";\n };\n if (v instanceof CONNECT) {\n return \"CONNECT\";\n };\n if (v instanceof PROPFIND) {\n return \"PROPFIND\";\n };\n if (v instanceof PROPPATCH) {\n return \"PROPPATCH\";\n };\n if (v instanceof MKCOL) {\n return \"MKCOL\";\n };\n if (v instanceof COPY) {\n return \"COPY\";\n };\n if (v instanceof MOVE) {\n return \"MOVE\";\n };\n if (v instanceof LOCK) {\n return \"LOCK\";\n };\n if (v instanceof UNLOCK) {\n return \"UNLOCK\";\n };\n if (v instanceof PATCH) {\n return \"PATCH\";\n };\n throw new Error(\"Failed pattern match at Data.HTTP.Method (line 43, column 1 - line 59, column 23): \" + [ v.constructor.name ]);\n }\n};\nvar showCustomMethod = {\n show: function (v) {\n return \"(CustomMethod \" + (Data_Show.show(Data_Show.showString)(v) + \")\");\n }\n};\nvar print = /* #__PURE__ */ Data_Either.either(/* #__PURE__ */ Data_Show.show(showMethod))(unCustomMethod);\nvar parse = function (handleMethod) {\n return function (handleUnknown) {\n return function (s) {\n var v = Data_String_Common.toUpper(s);\n if (v === \"OPTIONS\") {\n return handleMethod(OPTIONS.value);\n };\n if (v === \"GET\") {\n return handleMethod(GET.value);\n };\n if (v === \"HEAD\") {\n return handleMethod(HEAD.value);\n };\n if (v === \"POST\") {\n return handleMethod(POST.value);\n };\n if (v === \"PUT\") {\n return handleMethod(PUT.value);\n };\n if (v === \"DELETE\") {\n return handleMethod(DELETE.value);\n };\n if (v === \"TRACE\") {\n return handleMethod(TRACE.value);\n };\n if (v === \"CONNECT\") {\n return handleMethod(CONNECT.value);\n };\n if (v === \"PROPFIND\") {\n return handleMethod(PROPFIND.value);\n };\n if (v === \"PROPPATCH\") {\n return handleMethod(PROPPATCH.value);\n };\n if (v === \"MKCOL\") {\n return handleMethod(MKCOL.value);\n };\n if (v === \"COPY\") {\n return handleMethod(COPY.value);\n };\n if (v === \"MOVE\") {\n return handleMethod(MOVE.value);\n };\n if (v === \"LOCK\") {\n return handleMethod(LOCK.value);\n };\n if (v === \"UNLOCK\") {\n return handleMethod(UNLOCK.value);\n };\n if (v === \"PATCH\") {\n return handleMethod(PATCH.value);\n };\n return handleUnknown(v);\n };\n };\n};\nvar fromString = /* #__PURE__ */ (function () {\n return parse(Data_Either.Left.create)(function ($28) {\n return Data_Either.Right.create(CustomMethod($28));\n });\n})();\nvar eqMethod = {\n eq: function (x) {\n return function (y) {\n if (x instanceof OPTIONS && y instanceof OPTIONS) {\n return true;\n };\n if (x instanceof GET && y instanceof GET) {\n return true;\n };\n if (x instanceof HEAD && y instanceof HEAD) {\n return true;\n };\n if (x instanceof POST && y instanceof POST) {\n return true;\n };\n if (x instanceof PUT && y instanceof PUT) {\n return true;\n };\n if (x instanceof DELETE && y instanceof DELETE) {\n return true;\n };\n if (x instanceof TRACE && y instanceof TRACE) {\n return true;\n };\n if (x instanceof CONNECT && y instanceof CONNECT) {\n return true;\n };\n if (x instanceof PROPFIND && y instanceof PROPFIND) {\n return true;\n };\n if (x instanceof PROPPATCH && y instanceof PROPPATCH) {\n return true;\n };\n if (x instanceof MKCOL && y instanceof MKCOL) {\n return true;\n };\n if (x instanceof COPY && y instanceof COPY) {\n return true;\n };\n if (x instanceof MOVE && y instanceof MOVE) {\n return true;\n };\n if (x instanceof LOCK && y instanceof LOCK) {\n return true;\n };\n if (x instanceof UNLOCK && y instanceof UNLOCK) {\n return true;\n };\n if (x instanceof PATCH && y instanceof PATCH) {\n return true;\n };\n return false;\n };\n }\n};\nvar ordMethod = {\n compare: function (x) {\n return function (y) {\n if (x instanceof OPTIONS && y instanceof OPTIONS) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof OPTIONS) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof OPTIONS) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof GET && y instanceof GET) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof GET) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof GET) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof HEAD && y instanceof HEAD) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof HEAD) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof HEAD) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof POST && y instanceof POST) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof POST) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof POST) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof PUT && y instanceof PUT) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof PUT) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof PUT) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof DELETE && y instanceof DELETE) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof DELETE) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof DELETE) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof TRACE && y instanceof TRACE) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof TRACE) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof TRACE) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof CONNECT && y instanceof CONNECT) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof CONNECT) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof CONNECT) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof PROPFIND && y instanceof PROPFIND) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof PROPFIND) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof PROPFIND) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof PROPPATCH && y instanceof PROPPATCH) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof PROPPATCH) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof PROPPATCH) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof MKCOL && y instanceof MKCOL) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof MKCOL) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof MKCOL) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof COPY && y instanceof COPY) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof COPY) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof COPY) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof MOVE && y instanceof MOVE) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof MOVE) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof MOVE) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof LOCK && y instanceof LOCK) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof LOCK) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof LOCK) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof UNLOCK && y instanceof UNLOCK) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof UNLOCK) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof UNLOCK) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof PATCH && y instanceof PATCH) {\n return Data_Ordering.EQ.value;\n };\n throw new Error(\"Failed pattern match at Data.HTTP.Method (line 0, column 0 - line 0, column 0): \" + [ x.constructor.name, y.constructor.name ]);\n };\n },\n Eq0: function () {\n return eqMethod;\n }\n};\nvar eqCustomMethod = {\n eq: function (x) {\n return function (y) {\n return x === y;\n };\n }\n};\nvar ordCustomMethod = {\n compare: function (x) {\n return function (y) {\n return Data_Ord.compare(Data_Ord.ordString)(x)(y);\n };\n },\n Eq0: function () {\n return eqCustomMethod;\n }\n};\nexport {\n OPTIONS,\n GET,\n HEAD,\n POST,\n PUT,\n DELETE,\n TRACE,\n CONNECT,\n PROPFIND,\n PROPPATCH,\n MKCOL,\n COPY,\n MOVE,\n LOCK,\n UNLOCK,\n PATCH,\n unCustomMethod,\n fromString,\n print,\n eqMethod,\n ordMethod,\n showMethod,\n eqCustomMethod,\n ordCustomMethod,\n showCustomMethod\n};\n","/* eslint-disable no-eq-null, eqeqeq */\n\nconst nullImpl = null;\nexport { nullImpl as null };\n\nexport function nullable(a, r, f) {\n return a == null ? r : f(a);\n}\n\nexport function notNull(x) {\n return x;\n}\n","// Generated by purs version 0.15.2\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Data_Show from \"../Data.Show/index.js\";\nvar toNullable = /* #__PURE__ */ Data_Maybe.maybe($foreign[\"null\"])($foreign.notNull);\nvar toMaybe = function (n) {\n return $foreign.nullable(n, Data_Maybe.Nothing.value, Data_Maybe.Just.create);\n};\nvar showNullable = function (dictShow) {\n return {\n show: (function () {\n var $5 = Data_Maybe.maybe(\"null\")(Data_Show.show(dictShow));\n return function ($6) {\n return $5(toMaybe($6));\n };\n })()\n };\n};\nvar eqNullable = function (dictEq) {\n return {\n eq: Data_Function.on(Data_Eq.eq(Data_Maybe.eqMaybe(dictEq)))(toMaybe)\n };\n};\nvar ordNullable = function (dictOrd) {\n return {\n compare: Data_Function.on(Data_Ord.compare(Data_Maybe.ordMaybe(dictOrd)))(toMaybe),\n Eq0: function () {\n return eqNullable(dictOrd.Eq0());\n }\n };\n};\nvar eq1Nullable = {\n eq1: function (dictEq) {\n return Data_Eq.eq(eqNullable(dictEq));\n }\n};\nvar ord1Nullable = {\n compare1: function (dictOrd) {\n return Data_Ord.compare(ordNullable(dictOrd));\n },\n Eq10: function () {\n return eq1Nullable;\n }\n};\nexport {\n null,\n notNull\n} from \"./foreign.js\";\nexport {\n toMaybe,\n toNullable,\n showNullable,\n eqNullable,\n eq1Nullable,\n ordNullable,\n ord1Nullable\n};\n","/* globals setImmediate, clearImmediate, setTimeout, clearTimeout */\n/* eslint-disable no-unused-vars, no-prototype-builtins, no-use-before-define, no-unused-labels, no-param-reassign */\nvar Aff = function () {\n // A unique value for empty.\n var EMPTY = {};\n\n /*\n\n An awkward approximation. We elide evidence we would otherwise need in PS for\n efficiency sake.\n\n data Aff eff a\n = Pure a\n | Throw Error\n | Catch (Aff eff a) (Error -> Aff eff a)\n | Sync (Eff eff a)\n | Async ((Either Error a -> Eff eff Unit) -> Eff eff (Canceler eff))\n | forall b. Bind (Aff eff b) (b -> Aff eff a)\n | forall b. Bracket (Aff eff b) (BracketConditions eff b) (b -> Aff eff a)\n | forall b. Fork Boolean (Aff eff b) ?(Fiber eff b -> a)\n | Sequential (ParAff aff a)\n\n */\n var PURE = \"Pure\";\n var THROW = \"Throw\";\n var CATCH = \"Catch\";\n var SYNC = \"Sync\";\n var ASYNC = \"Async\";\n var BIND = \"Bind\";\n var BRACKET = \"Bracket\";\n var FORK = \"Fork\";\n var SEQ = \"Sequential\";\n\n /*\n\n data ParAff eff a\n = forall b. Map (b -> a) (ParAff eff b)\n | forall b. Apply (ParAff eff (b -> a)) (ParAff eff b)\n | Alt (ParAff eff a) (ParAff eff a)\n | ?Par (Aff eff a)\n\n */\n var MAP = \"Map\";\n var APPLY = \"Apply\";\n var ALT = \"Alt\";\n\n // Various constructors used in interpretation\n var CONS = \"Cons\"; // Cons-list, for stacks\n var RESUME = \"Resume\"; // Continue indiscriminately\n var RELEASE = \"Release\"; // Continue with bracket finalizers\n var FINALIZER = \"Finalizer\"; // A non-interruptible effect\n var FINALIZED = \"Finalized\"; // Marker for finalization\n var FORKED = \"Forked\"; // Reference to a forked fiber, with resumption stack\n var FIBER = \"Fiber\"; // Actual fiber reference\n var THUNK = \"Thunk\"; // Primed effect, ready to invoke\n\n function Aff(tag, _1, _2, _3) {\n this.tag = tag;\n this._1 = _1;\n this._2 = _2;\n this._3 = _3;\n }\n\n function AffCtr(tag) {\n var fn = function (_1, _2, _3) {\n return new Aff(tag, _1, _2, _3);\n };\n fn.tag = tag;\n return fn;\n }\n\n function nonCanceler(error) {\n return new Aff(PURE, void 0);\n }\n\n function runEff(eff) {\n try {\n eff();\n } catch (error) {\n setTimeout(function () {\n throw error;\n }, 0);\n }\n }\n\n function runSync(left, right, eff) {\n try {\n return right(eff());\n } catch (error) {\n return left(error);\n }\n }\n\n function runAsync(left, eff, k) {\n try {\n return eff(k)();\n } catch (error) {\n k(left(error))();\n return nonCanceler;\n }\n }\n\n var Scheduler = function () {\n var limit = 1024;\n var size = 0;\n var ix = 0;\n var queue = new Array(limit);\n var draining = false;\n\n function drain() {\n var thunk;\n draining = true;\n while (size !== 0) {\n size--;\n thunk = queue[ix];\n queue[ix] = void 0;\n ix = (ix + 1) % limit;\n thunk();\n }\n draining = false;\n }\n\n return {\n isDraining: function () {\n return draining;\n },\n enqueue: function (cb) {\n var i, tmp;\n if (size === limit) {\n tmp = draining;\n drain();\n draining = tmp;\n }\n\n queue[(ix + size) % limit] = cb;\n size++;\n\n if (!draining) {\n drain();\n }\n }\n };\n }();\n\n function Supervisor(util) {\n var fibers = {};\n var fiberId = 0;\n var count = 0;\n\n return {\n register: function (fiber) {\n var fid = fiberId++;\n fiber.onComplete({\n rethrow: true,\n handler: function (result) {\n return function () {\n count--;\n delete fibers[fid];\n };\n }\n })();\n fibers[fid] = fiber;\n count++;\n },\n isEmpty: function () {\n return count === 0;\n },\n killAll: function (killError, cb) {\n return function () {\n if (count === 0) {\n return cb();\n }\n\n var killCount = 0;\n var kills = {};\n\n function kill(fid) {\n kills[fid] = fibers[fid].kill(killError, function (result) {\n return function () {\n delete kills[fid];\n killCount--;\n if (util.isLeft(result) && util.fromLeft(result)) {\n setTimeout(function () {\n throw util.fromLeft(result);\n }, 0);\n }\n if (killCount === 0) {\n cb();\n }\n };\n })();\n }\n\n for (var k in fibers) {\n if (fibers.hasOwnProperty(k)) {\n killCount++;\n kill(k);\n }\n }\n\n fibers = {};\n fiberId = 0;\n count = 0;\n\n return function (error) {\n return new Aff(SYNC, function () {\n for (var k in kills) {\n if (kills.hasOwnProperty(k)) {\n kills[k]();\n }\n }\n });\n };\n };\n }\n };\n }\n\n // Fiber state machine\n var SUSPENDED = 0; // Suspended, pending a join.\n var CONTINUE = 1; // Interpret the next instruction.\n var STEP_BIND = 2; // Apply the next bind.\n var STEP_RESULT = 3; // Handle potential failure from a result.\n var PENDING = 4; // An async effect is running.\n var RETURN = 5; // The current stack has returned.\n var COMPLETED = 6; // The entire fiber has completed.\n\n function Fiber(util, supervisor, aff) {\n // Monotonically increasing tick, increased on each asynchronous turn.\n var runTick = 0;\n\n // The current branch of the state machine.\n var status = SUSPENDED;\n\n // The current point of interest for the state machine branch.\n var step = aff; // Successful step\n var fail = null; // Failure step\n var interrupt = null; // Asynchronous interrupt\n\n // Stack of continuations for the current fiber.\n var bhead = null;\n var btail = null;\n\n // Stack of attempts and finalizers for error recovery. Every `Cons` is also\n // tagged with current `interrupt` state. We use this to track which items\n // should be ignored or evaluated as a result of a kill.\n var attempts = null;\n\n // A special state is needed for Bracket, because it cannot be killed. When\n // we enter a bracket acquisition or finalizer, we increment the counter,\n // and then decrement once complete.\n var bracketCount = 0;\n\n // Each join gets a new id so they can be revoked.\n var joinId = 0;\n var joins = null;\n var rethrow = true;\n\n // Each invocation of `run` requires a tick. When an asynchronous effect is\n // resolved, we must check that the local tick coincides with the fiber\n // tick before resuming. This prevents multiple async continuations from\n // accidentally resuming the same fiber. A common example may be invoking\n // the provided callback in `makeAff` more than once, but it may also be an\n // async effect resuming after the fiber was already cancelled.\n function run(localRunTick) {\n var tmp, result, attempt;\n while (true) {\n tmp = null;\n result = null;\n attempt = null;\n\n switch (status) {\n case STEP_BIND:\n status = CONTINUE;\n try {\n step = bhead(step);\n if (btail === null) {\n bhead = null;\n } else {\n bhead = btail._1;\n btail = btail._2;\n }\n } catch (e) {\n status = RETURN;\n fail = util.left(e);\n step = null;\n }\n break;\n\n case STEP_RESULT:\n if (util.isLeft(step)) {\n status = RETURN;\n fail = step;\n step = null;\n } else if (bhead === null) {\n status = RETURN;\n } else {\n status = STEP_BIND;\n step = util.fromRight(step);\n }\n break;\n\n case CONTINUE:\n switch (step.tag) {\n case BIND:\n if (bhead) {\n btail = new Aff(CONS, bhead, btail);\n }\n bhead = step._2;\n status = CONTINUE;\n step = step._1;\n break;\n\n case PURE:\n if (bhead === null) {\n status = RETURN;\n step = util.right(step._1);\n } else {\n status = STEP_BIND;\n step = step._1;\n }\n break;\n\n case SYNC:\n status = STEP_RESULT;\n step = runSync(util.left, util.right, step._1);\n break;\n\n case ASYNC:\n status = PENDING;\n step = runAsync(util.left, step._1, function (result) {\n return function () {\n if (runTick !== localRunTick) {\n return;\n }\n runTick++;\n Scheduler.enqueue(function () {\n // It's possible to interrupt the fiber between enqueuing and\n // resuming, so we need to check that the runTick is still\n // valid.\n if (runTick !== localRunTick + 1) {\n return;\n }\n status = STEP_RESULT;\n step = result;\n run(runTick);\n });\n };\n });\n return;\n\n case THROW:\n status = RETURN;\n fail = util.left(step._1);\n step = null;\n break;\n\n // Enqueue the Catch so that we can call the error handler later on\n // in case of an exception.\n case CATCH:\n if (bhead === null) {\n attempts = new Aff(CONS, step, attempts, interrupt);\n } else {\n attempts = new Aff(CONS, step, new Aff(CONS, new Aff(RESUME, bhead, btail), attempts, interrupt), interrupt);\n }\n bhead = null;\n btail = null;\n status = CONTINUE;\n step = step._1;\n break;\n\n // Enqueue the Bracket so that we can call the appropriate handlers\n // after resource acquisition.\n case BRACKET:\n bracketCount++;\n if (bhead === null) {\n attempts = new Aff(CONS, step, attempts, interrupt);\n } else {\n attempts = new Aff(CONS, step, new Aff(CONS, new Aff(RESUME, bhead, btail), attempts, interrupt), interrupt);\n }\n bhead = null;\n btail = null;\n status = CONTINUE;\n step = step._1;\n break;\n\n case FORK:\n status = STEP_RESULT;\n tmp = Fiber(util, supervisor, step._2);\n if (supervisor) {\n supervisor.register(tmp);\n }\n if (step._1) {\n tmp.run();\n }\n step = util.right(tmp);\n break;\n\n case SEQ:\n status = CONTINUE;\n step = sequential(util, supervisor, step._1);\n break;\n }\n break;\n\n case RETURN:\n bhead = null;\n btail = null;\n // If the current stack has returned, and we have no other stacks to\n // resume or finalizers to run, the fiber has halted and we can\n // invoke all join callbacks. Otherwise we need to resume.\n if (attempts === null) {\n status = COMPLETED;\n step = interrupt || fail || step;\n } else {\n // The interrupt status for the enqueued item.\n tmp = attempts._3;\n attempt = attempts._1;\n attempts = attempts._2;\n\n switch (attempt.tag) {\n // We cannot recover from an unmasked interrupt. Otherwise we should\n // continue stepping, or run the exception handler if an exception\n // was raised.\n case CATCH:\n // We should compare the interrupt status as well because we\n // only want it to apply if there has been an interrupt since\n // enqueuing the catch.\n if (interrupt && interrupt !== tmp && bracketCount === 0) {\n status = RETURN;\n } else if (fail) {\n status = CONTINUE;\n step = attempt._2(util.fromLeft(fail));\n fail = null;\n }\n break;\n\n // We cannot resume from an unmasked interrupt or exception.\n case RESUME:\n // As with Catch, we only want to ignore in the case of an\n // interrupt since enqueing the item.\n if (interrupt && interrupt !== tmp && bracketCount === 0 || fail) {\n status = RETURN;\n } else {\n bhead = attempt._1;\n btail = attempt._2;\n status = STEP_BIND;\n step = util.fromRight(step);\n }\n break;\n\n // If we have a bracket, we should enqueue the handlers,\n // and continue with the success branch only if the fiber has\n // not been interrupted. If the bracket acquisition failed, we\n // should not run either.\n case BRACKET:\n bracketCount--;\n if (fail === null) {\n result = util.fromRight(step);\n // We need to enqueue the Release with the same interrupt\n // status as the Bracket that is initiating it.\n attempts = new Aff(CONS, new Aff(RELEASE, attempt._2, result), attempts, tmp);\n // We should only coninue as long as the interrupt status has not changed or\n // we are currently within a non-interruptable finalizer.\n if (interrupt === tmp || bracketCount > 0) {\n status = CONTINUE;\n step = attempt._3(result);\n }\n }\n break;\n\n // Enqueue the appropriate handler. We increase the bracket count\n // because it should not be cancelled.\n case RELEASE:\n attempts = new Aff(CONS, new Aff(FINALIZED, step, fail), attempts, interrupt);\n status = CONTINUE;\n // It has only been killed if the interrupt status has changed\n // since we enqueued the item, and the bracket count is 0. If the\n // bracket count is non-zero then we are in a masked state so it's\n // impossible to be killed.\n if (interrupt && interrupt !== tmp && bracketCount === 0) {\n step = attempt._1.killed(util.fromLeft(interrupt))(attempt._2);\n } else if (fail) {\n step = attempt._1.failed(util.fromLeft(fail))(attempt._2);\n } else {\n step = attempt._1.completed(util.fromRight(step))(attempt._2);\n }\n fail = null;\n bracketCount++;\n break;\n\n case FINALIZER:\n bracketCount++;\n attempts = new Aff(CONS, new Aff(FINALIZED, step, fail), attempts, interrupt);\n status = CONTINUE;\n step = attempt._1;\n break;\n\n case FINALIZED:\n bracketCount--;\n status = RETURN;\n step = attempt._1;\n fail = attempt._2;\n break;\n }\n }\n break;\n\n case COMPLETED:\n for (var k in joins) {\n if (joins.hasOwnProperty(k)) {\n rethrow = rethrow && joins[k].rethrow;\n runEff(joins[k].handler(step));\n }\n }\n joins = null;\n // If we have an interrupt and a fail, then the thread threw while\n // running finalizers. This should always rethrow in a fresh stack.\n if (interrupt && fail) {\n setTimeout(function () {\n throw util.fromLeft(fail);\n }, 0);\n // If we have an unhandled exception, and no other fiber has joined\n // then we need to throw the exception in a fresh stack.\n } else if (util.isLeft(step) && rethrow) {\n setTimeout(function () {\n // Guard on reathrow because a completely synchronous fiber can\n // still have an observer which was added after-the-fact.\n if (rethrow) {\n throw util.fromLeft(step);\n }\n }, 0);\n }\n return;\n case SUSPENDED:\n status = CONTINUE;\n break;\n case PENDING: return;\n }\n }\n }\n\n function onComplete(join) {\n return function () {\n if (status === COMPLETED) {\n rethrow = rethrow && join.rethrow;\n join.handler(step)();\n return function () {};\n }\n\n var jid = joinId++;\n joins = joins || {};\n joins[jid] = join;\n\n return function() {\n if (joins !== null) {\n delete joins[jid];\n }\n };\n };\n }\n\n function kill(error, cb) {\n return function () {\n if (status === COMPLETED) {\n cb(util.right(void 0))();\n return function () {};\n }\n\n var canceler = onComplete({\n rethrow: false,\n handler: function (/* unused */) {\n return cb(util.right(void 0));\n }\n })();\n\n switch (status) {\n case SUSPENDED:\n interrupt = util.left(error);\n status = COMPLETED;\n step = interrupt;\n run(runTick);\n break;\n case PENDING:\n if (interrupt === null) {\n interrupt = util.left(error);\n }\n if (bracketCount === 0) {\n if (status === PENDING) {\n attempts = new Aff(CONS, new Aff(FINALIZER, step(error)), attempts, interrupt);\n }\n status = RETURN;\n step = null;\n fail = null;\n run(++runTick);\n }\n break;\n default:\n if (interrupt === null) {\n interrupt = util.left(error);\n }\n if (bracketCount === 0) {\n status = RETURN;\n step = null;\n fail = null;\n }\n }\n\n return canceler;\n };\n }\n\n function join(cb) {\n return function () {\n var canceler = onComplete({\n rethrow: false,\n handler: cb\n })();\n if (status === SUSPENDED) {\n run(runTick);\n }\n return canceler;\n };\n }\n\n return {\n kill: kill,\n join: join,\n onComplete: onComplete,\n isSuspended: function () {\n return status === SUSPENDED;\n },\n run: function () {\n if (status === SUSPENDED) {\n if (!Scheduler.isDraining()) {\n Scheduler.enqueue(function () {\n run(runTick);\n });\n } else {\n run(runTick);\n }\n }\n }\n };\n }\n\n function runPar(util, supervisor, par, cb) {\n // Table of all forked fibers.\n var fiberId = 0;\n var fibers = {};\n\n // Table of currently running cancelers, as a product of `Alt` behavior.\n var killId = 0;\n var kills = {};\n\n // Error used for early cancelation on Alt branches.\n var early = new Error(\"[ParAff] Early exit\");\n\n // Error used to kill the entire tree.\n var interrupt = null;\n\n // The root pointer of the tree.\n var root = EMPTY;\n\n // Walks a tree, invoking all the cancelers. Returns the table of pending\n // cancellation fibers.\n function kill(error, par, cb) {\n var step = par;\n var head = null;\n var tail = null;\n var count = 0;\n var kills = {};\n var tmp, kid;\n\n loop: while (true) {\n tmp = null;\n\n switch (step.tag) {\n case FORKED:\n if (step._3 === EMPTY) {\n tmp = fibers[step._1];\n kills[count++] = tmp.kill(error, function (result) {\n return function () {\n count--;\n if (count === 0) {\n cb(result)();\n }\n };\n });\n }\n // Terminal case.\n if (head === null) {\n break loop;\n }\n // Go down the right side of the tree.\n step = head._2;\n if (tail === null) {\n head = null;\n } else {\n head = tail._1;\n tail = tail._2;\n }\n break;\n case MAP:\n step = step._2;\n break;\n case APPLY:\n case ALT:\n if (head) {\n tail = new Aff(CONS, head, tail);\n }\n head = step;\n step = step._1;\n break;\n }\n }\n\n if (count === 0) {\n cb(util.right(void 0))();\n } else {\n // Run the cancelation effects. We alias `count` because it's mutable.\n kid = 0;\n tmp = count;\n for (; kid < tmp; kid++) {\n kills[kid] = kills[kid]();\n }\n }\n\n return kills;\n }\n\n // When a fiber resolves, we need to bubble back up the tree with the\n // result, computing the applicative nodes.\n function join(result, head, tail) {\n var fail, step, lhs, rhs, tmp, kid;\n\n if (util.isLeft(result)) {\n fail = result;\n step = null;\n } else {\n step = result;\n fail = null;\n }\n\n loop: while (true) {\n lhs = null;\n rhs = null;\n tmp = null;\n kid = null;\n\n // We should never continue if the entire tree has been interrupted.\n if (interrupt !== null) {\n return;\n }\n\n // We've made it all the way to the root of the tree, which means\n // the tree has fully evaluated.\n if (head === null) {\n cb(fail || step)();\n return;\n }\n\n // The tree has already been computed, so we shouldn't try to do it\n // again. This should never happen.\n // TODO: Remove this?\n if (head._3 !== EMPTY) {\n return;\n }\n\n switch (head.tag) {\n case MAP:\n if (fail === null) {\n head._3 = util.right(head._1(util.fromRight(step)));\n step = head._3;\n } else {\n head._3 = fail;\n }\n break;\n case APPLY:\n lhs = head._1._3;\n rhs = head._2._3;\n // If we have a failure we should kill the other side because we\n // can't possible yield a result anymore.\n if (fail) {\n head._3 = fail;\n tmp = true;\n kid = killId++;\n\n kills[kid] = kill(early, fail === lhs ? head._2 : head._1, function (/* unused */) {\n return function () {\n delete kills[kid];\n if (tmp) {\n tmp = false;\n } else if (tail === null) {\n join(fail, null, null);\n } else {\n join(fail, tail._1, tail._2);\n }\n };\n });\n\n if (tmp) {\n tmp = false;\n return;\n }\n } else if (lhs === EMPTY || rhs === EMPTY) {\n // We can only proceed if both sides have resolved.\n return;\n } else {\n step = util.right(util.fromRight(lhs)(util.fromRight(rhs)));\n head._3 = step;\n }\n break;\n case ALT:\n lhs = head._1._3;\n rhs = head._2._3;\n // We can only proceed if both have resolved or we have a success\n if (lhs === EMPTY && util.isLeft(rhs) || rhs === EMPTY && util.isLeft(lhs)) {\n return;\n }\n // If both sides resolve with an error, we should continue with the\n // first error\n if (lhs !== EMPTY && util.isLeft(lhs) && rhs !== EMPTY && util.isLeft(rhs)) {\n fail = step === lhs ? rhs : lhs;\n step = null;\n head._3 = fail;\n } else {\n head._3 = step;\n tmp = true;\n kid = killId++;\n // Once a side has resolved, we need to cancel the side that is still\n // pending before we can continue.\n kills[kid] = kill(early, step === lhs ? head._2 : head._1, function (/* unused */) {\n return function () {\n delete kills[kid];\n if (tmp) {\n tmp = false;\n } else if (tail === null) {\n join(step, null, null);\n } else {\n join(step, tail._1, tail._2);\n }\n };\n });\n\n if (tmp) {\n tmp = false;\n return;\n }\n }\n break;\n }\n\n if (tail === null) {\n head = null;\n } else {\n head = tail._1;\n tail = tail._2;\n }\n }\n }\n\n function resolve(fiber) {\n return function (result) {\n return function () {\n delete fibers[fiber._1];\n fiber._3 = result;\n join(result, fiber._2._1, fiber._2._2);\n };\n };\n }\n\n // Walks the applicative tree, substituting non-applicative nodes with\n // `FORKED` nodes. In this tree, all applicative nodes use the `_3` slot\n // as a mutable slot for memoization. In an unresolved state, the `_3`\n // slot is `EMPTY`. In the cases of `ALT` and `APPLY`, we always walk\n // the left side first, because both operations are left-associative. As\n // we `RETURN` from those branches, we then walk the right side.\n function run() {\n var status = CONTINUE;\n var step = par;\n var head = null;\n var tail = null;\n var tmp, fid;\n\n loop: while (true) {\n tmp = null;\n fid = null;\n\n switch (status) {\n case CONTINUE:\n switch (step.tag) {\n case MAP:\n if (head) {\n tail = new Aff(CONS, head, tail);\n }\n head = new Aff(MAP, step._1, EMPTY, EMPTY);\n step = step._2;\n break;\n case APPLY:\n if (head) {\n tail = new Aff(CONS, head, tail);\n }\n head = new Aff(APPLY, EMPTY, step._2, EMPTY);\n step = step._1;\n break;\n case ALT:\n if (head) {\n tail = new Aff(CONS, head, tail);\n }\n head = new Aff(ALT, EMPTY, step._2, EMPTY);\n step = step._1;\n break;\n default:\n // When we hit a leaf value, we suspend the stack in the `FORKED`.\n // When the fiber resolves, it can bubble back up the tree.\n fid = fiberId++;\n status = RETURN;\n tmp = step;\n step = new Aff(FORKED, fid, new Aff(CONS, head, tail), EMPTY);\n tmp = Fiber(util, supervisor, tmp);\n tmp.onComplete({\n rethrow: false,\n handler: resolve(step)\n })();\n fibers[fid] = tmp;\n if (supervisor) {\n supervisor.register(tmp);\n }\n }\n break;\n case RETURN:\n // Terminal case, we are back at the root.\n if (head === null) {\n break loop;\n }\n // If we are done with the right side, we need to continue down the\n // left. Otherwise we should continue up the stack.\n if (head._1 === EMPTY) {\n head._1 = step;\n status = CONTINUE;\n step = head._2;\n head._2 = EMPTY;\n } else {\n head._2 = step;\n step = head;\n if (tail === null) {\n head = null;\n } else {\n head = tail._1;\n tail = tail._2;\n }\n }\n }\n }\n\n // Keep a reference to the tree root so it can be cancelled.\n root = step;\n\n for (fid = 0; fid < fiberId; fid++) {\n fibers[fid].run();\n }\n }\n\n // Cancels the entire tree. If there are already subtrees being canceled,\n // we need to first cancel those joins. We will then add fresh joins for\n // all pending branches including those that were in the process of being\n // canceled.\n function cancel(error, cb) {\n interrupt = util.left(error);\n var innerKills;\n for (var kid in kills) {\n if (kills.hasOwnProperty(kid)) {\n innerKills = kills[kid];\n for (kid in innerKills) {\n if (innerKills.hasOwnProperty(kid)) {\n innerKills[kid]();\n }\n }\n }\n }\n\n kills = null;\n var newKills = kill(error, root, cb);\n\n return function (killError) {\n return new Aff(ASYNC, function (killCb) {\n return function () {\n for (var kid in newKills) {\n if (newKills.hasOwnProperty(kid)) {\n newKills[kid]();\n }\n }\n return nonCanceler;\n };\n });\n };\n }\n\n run();\n\n return function (killError) {\n return new Aff(ASYNC, function (killCb) {\n return function () {\n return cancel(killError, killCb);\n };\n });\n };\n }\n\n function sequential(util, supervisor, par) {\n return new Aff(ASYNC, function (cb) {\n return function () {\n return runPar(util, supervisor, par, cb);\n };\n });\n }\n\n Aff.EMPTY = EMPTY;\n Aff.Pure = AffCtr(PURE);\n Aff.Throw = AffCtr(THROW);\n Aff.Catch = AffCtr(CATCH);\n Aff.Sync = AffCtr(SYNC);\n Aff.Async = AffCtr(ASYNC);\n Aff.Bind = AffCtr(BIND);\n Aff.Bracket = AffCtr(BRACKET);\n Aff.Fork = AffCtr(FORK);\n Aff.Seq = AffCtr(SEQ);\n Aff.ParMap = AffCtr(MAP);\n Aff.ParApply = AffCtr(APPLY);\n Aff.ParAlt = AffCtr(ALT);\n Aff.Fiber = Fiber;\n Aff.Supervisor = Supervisor;\n Aff.Scheduler = Scheduler;\n Aff.nonCanceler = nonCanceler;\n\n return Aff;\n}();\n\nexport const _pure = Aff.Pure;\nexport const _throwError = Aff.Throw;\n\nexport function _catchError(aff) {\n return function (k) {\n return Aff.Catch(aff, k);\n };\n}\n\nexport function _map(f) {\n return function (aff) {\n if (aff.tag === Aff.Pure.tag) {\n return Aff.Pure(f(aff._1));\n } else {\n return Aff.Bind(aff, function (value) {\n return Aff.Pure(f(value));\n });\n }\n };\n}\n\nexport function _bind(aff) {\n return function (k) {\n return Aff.Bind(aff, k);\n };\n}\n\nexport function _fork(immediate) {\n return function (aff) {\n return Aff.Fork(immediate, aff);\n };\n}\n\nexport const _liftEffect = Aff.Sync;\n\nexport function _parAffMap(f) {\n return function (aff) {\n return Aff.ParMap(f, aff);\n };\n}\n\nexport function _parAffApply(aff1) {\n return function (aff2) {\n return Aff.ParApply(aff1, aff2);\n };\n}\n\nexport function _parAffAlt(aff1) {\n return function (aff2) {\n return Aff.ParAlt(aff1, aff2);\n };\n}\n\nexport const makeAff = Aff.Async;\n\nexport function generalBracket(acquire) {\n return function (options) {\n return function (k) {\n return Aff.Bracket(acquire, options, k);\n };\n };\n}\n\nexport function _makeFiber(util, aff) {\n return function () {\n return Aff.Fiber(util, null, aff);\n };\n}\n\nexport function _makeSupervisedFiber(util, aff) {\n return function () {\n var supervisor = Aff.Supervisor(util);\n return {\n fiber: Aff.Fiber(util, supervisor, aff),\n supervisor: supervisor\n };\n };\n}\n\nexport function _killAll(error, supervisor, cb) {\n return supervisor.killAll(error, cb);\n}\n\nexport const _delay = function () {\n function setDelay(n, k) {\n if (n === 0 && typeof setImmediate !== \"undefined\") {\n return setImmediate(k);\n } else {\n return setTimeout(k, n);\n }\n }\n\n function clearDelay(n, t) {\n if (n === 0 && typeof clearImmediate !== \"undefined\") {\n return clearImmediate(t);\n } else {\n return clearTimeout(t);\n }\n }\n\n return function (right, ms) {\n return Aff.Async(function (cb) {\n return function () {\n var timer = setDelay(ms, cb(right()));\n return function () {\n return Aff.Sync(function () {\n return right(clearDelay(ms, timer));\n });\n };\n };\n });\n };\n}();\n\nexport const _sequential = Aff.Seq;\n","// Generated by purs version 0.15.2\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Apply from \"../Control.Apply/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Control_Monad_Cont_Class from \"../Control.Monad.Cont.Class/index.js\";\nimport * as Control_Monad_Reader_Class from \"../Control.Monad.Reader.Class/index.js\";\nimport * as Control_Monad_State_Class from \"../Control.Monad.State.Class/index.js\";\nimport * as Control_Monad_Trans_Class from \"../Control.Monad.Trans.Class/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Monoid from \"../Data.Monoid/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nimport * as Effect_Class from \"../Effect.Class/index.js\";\nvar ContT = function (x) {\n return x;\n};\nvar withContT = function (f) {\n return function (v) {\n return function (k) {\n return v(f(k));\n };\n };\n};\nvar runContT = function (v) {\n return function (k) {\n return v(k);\n };\n};\nvar newtypeContT = {\n Coercible0: function () {\n return undefined;\n }\n};\nvar monadTransContT = {\n lift: function (dictMonad) {\n return function (m) {\n return function (k) {\n return Control_Bind.bind(dictMonad.Bind1())(m)(k);\n };\n };\n }\n};\nvar mapContT = function (f) {\n return function (v) {\n return function (k) {\n return f(v(k));\n };\n };\n};\nvar functorContT = function (dictFunctor) {\n return {\n map: function (f) {\n return function (v) {\n return function (k) {\n return v(function (a) {\n return k(f(a));\n });\n };\n };\n }\n };\n};\nvar applyContT = function (dictApply) {\n return {\n apply: function (v) {\n return function (v1) {\n return function (k) {\n return v(function (g) {\n return v1(function (a) {\n return k(g(a));\n });\n });\n };\n };\n },\n Functor0: function () {\n return functorContT(dictApply.Functor0());\n }\n };\n};\nvar bindContT = function (dictBind) {\n return {\n bind: function (v) {\n return function (k) {\n return function (k$prime) {\n return v(function (a) {\n var v1 = k(a);\n return v1(k$prime);\n });\n };\n };\n },\n Apply0: function () {\n return applyContT(dictBind.Apply0());\n }\n };\n};\nvar semigroupContT = function (dictApply) {\n return function (dictSemigroup) {\n return {\n append: Control_Apply.lift2(applyContT(dictApply))(Data_Semigroup.append(dictSemigroup))\n };\n };\n};\nvar applicativeContT = function (dictApplicative) {\n return {\n pure: function (a) {\n return function (k) {\n return k(a);\n };\n },\n Apply0: function () {\n return applyContT(dictApplicative.Apply0());\n }\n };\n};\nvar monadContT = function (dictMonad) {\n return {\n Applicative0: function () {\n return applicativeContT(dictMonad.Applicative0());\n },\n Bind1: function () {\n return bindContT(dictMonad.Bind1());\n }\n };\n};\nvar monadAskContT = function (dictMonadAsk) {\n return {\n ask: Control_Monad_Trans_Class.lift(monadTransContT)(dictMonadAsk.Monad0())(Control_Monad_Reader_Class.ask(dictMonadAsk)),\n Monad0: function () {\n return monadContT(dictMonadAsk.Monad0());\n }\n };\n};\nvar monadReaderContT = function (dictMonadReader) {\n return {\n local: function (f) {\n return function (v) {\n return function (k) {\n return Control_Bind.bind(((dictMonadReader.MonadAsk0()).Monad0()).Bind1())(Control_Monad_Reader_Class.ask(dictMonadReader.MonadAsk0()))(function (r) {\n return Control_Monad_Reader_Class.local(dictMonadReader)(f)(v((function () {\n var $44 = Control_Monad_Reader_Class.local(dictMonadReader)(Data_Function[\"const\"](r));\n return function ($45) {\n return $44(k($45));\n };\n })()));\n });\n };\n };\n },\n MonadAsk0: function () {\n return monadAskContT(dictMonadReader.MonadAsk0());\n }\n };\n};\nvar monadContContT = function (dictMonad) {\n return {\n callCC: function (f) {\n return function (k) {\n var v = f(function (a) {\n return function (v1) {\n return k(a);\n };\n });\n return v(k);\n };\n },\n Monad0: function () {\n return monadContT(dictMonad);\n }\n };\n};\nvar monadEffectContT = function (dictMonadEffect) {\n return {\n liftEffect: (function () {\n var $46 = Control_Monad_Trans_Class.lift(monadTransContT)(dictMonadEffect.Monad0());\n var $47 = Effect_Class.liftEffect(dictMonadEffect);\n return function ($48) {\n return $46($47($48));\n };\n })(),\n Monad0: function () {\n return monadContT(dictMonadEffect.Monad0());\n }\n };\n};\nvar monadStateContT = function (dictMonadState) {\n return {\n state: (function () {\n var $49 = Control_Monad_Trans_Class.lift(monadTransContT)(dictMonadState.Monad0());\n var $50 = Control_Monad_State_Class.state(dictMonadState);\n return function ($51) {\n return $49($50($51));\n };\n })(),\n Monad0: function () {\n return monadContT(dictMonadState.Monad0());\n }\n };\n};\nvar monoidContT = function (dictApplicative) {\n return function (dictMonoid) {\n return {\n mempty: Control_Applicative.pure(applicativeContT(dictApplicative))(Data_Monoid.mempty(dictMonoid)),\n Semigroup0: function () {\n return semigroupContT(dictApplicative.Apply0())(dictMonoid.Semigroup0());\n }\n };\n };\n};\nexport {\n ContT,\n runContT,\n mapContT,\n withContT,\n newtypeContT,\n monadContContT,\n functorContT,\n applyContT,\n applicativeContT,\n bindContT,\n monadContT,\n monadTransContT,\n monadEffectContT,\n monadAskContT,\n monadReaderContT,\n monadStateContT,\n semigroupContT,\n monoidContT\n};\nexport {\n callCC\n} from \"../Control.Monad.Cont.Class/index.js\";\nexport {\n lift\n} from \"../Control.Monad.Trans.Class/index.js\";\n","// Generated by purs version 0.15.2\nimport * as Control_Alt from \"../Control.Alt/index.js\";\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Apply from \"../Control.Apply/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Control_Monad_Cont_Class from \"../Control.Monad.Cont.Class/index.js\";\nimport * as Control_Monad_Error_Class from \"../Control.Monad.Error.Class/index.js\";\nimport * as Control_Monad_Reader_Class from \"../Control.Monad.Reader.Class/index.js\";\nimport * as Control_Monad_Rec_Class from \"../Control.Monad.Rec.Class/index.js\";\nimport * as Control_Monad_State_Class from \"../Control.Monad.State.Class/index.js\";\nimport * as Control_Monad_Trans_Class from \"../Control.Monad.Trans.Class/index.js\";\nimport * as Control_Monad_Writer_Class from \"../Control.Monad.Writer.Class/index.js\";\nimport * as Control_Plus from \"../Control.Plus/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Monoid from \"../Data.Monoid/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nimport * as Effect_Class from \"../Effect.Class/index.js\";\nvar WriterT = function (x) {\n return x;\n};\nvar runWriterT = function (v) {\n return v;\n};\nvar newtypeWriterT = {\n Coercible0: function () {\n return undefined;\n }\n};\nvar monadTransWriterT = function (dictMonoid) {\n return {\n lift: function (dictMonad) {\n return function (m) {\n return Control_Bind.bind(dictMonad.Bind1())(m)(function (a) {\n return Control_Applicative.pure(dictMonad.Applicative0())(new Data_Tuple.Tuple(a, Data_Monoid.mempty(dictMonoid)));\n });\n };\n }\n };\n};\nvar mapWriterT = function (f) {\n return function (v) {\n return f(v);\n };\n};\nvar functorWriterT = function (dictFunctor) {\n return {\n map: function (f) {\n return mapWriterT(Data_Functor.map(dictFunctor)(function (v) {\n return new Data_Tuple.Tuple(f(v.value0), v.value1);\n }));\n }\n };\n};\nvar execWriterT = function (dictFunctor) {\n return function (v) {\n return Data_Functor.map(dictFunctor)(Data_Tuple.snd)(v);\n };\n};\nvar applyWriterT = function (dictSemigroup) {\n return function (dictApply) {\n return {\n apply: function (v) {\n return function (v1) {\n var k = function (v3) {\n return function (v4) {\n return new Data_Tuple.Tuple(v3.value0(v4.value0), Data_Semigroup.append(dictSemigroup)(v3.value1)(v4.value1));\n };\n };\n return Control_Apply.apply(dictApply)(Data_Functor.map(dictApply.Functor0())(k)(v))(v1);\n };\n },\n Functor0: function () {\n return functorWriterT(dictApply.Functor0());\n }\n };\n };\n};\nvar bindWriterT = function (dictSemigroup) {\n return function (dictBind) {\n return {\n bind: function (v) {\n return function (k) {\n return Control_Bind.bind(dictBind)(v)(function (v1) {\n var v2 = k(v1.value0);\n return Data_Functor.map((dictBind.Apply0()).Functor0())(function (v3) {\n return new Data_Tuple.Tuple(v3.value0, Data_Semigroup.append(dictSemigroup)(v1.value1)(v3.value1));\n })(v2);\n });\n };\n },\n Apply0: function () {\n return applyWriterT(dictSemigroup)(dictBind.Apply0());\n }\n };\n };\n};\nvar semigroupWriterT = function (dictApply) {\n return function (dictSemigroup) {\n return function (dictSemigroup1) {\n return {\n append: Control_Apply.lift2(applyWriterT(dictSemigroup)(dictApply))(Data_Semigroup.append(dictSemigroup1))\n };\n };\n };\n};\nvar applicativeWriterT = function (dictMonoid) {\n return function (dictApplicative) {\n return {\n pure: function (a) {\n return Control_Applicative.pure(dictApplicative)(new Data_Tuple.Tuple(a, Data_Monoid.mempty(dictMonoid)));\n },\n Apply0: function () {\n return applyWriterT(dictMonoid.Semigroup0())(dictApplicative.Apply0());\n }\n };\n };\n};\nvar monadWriterT = function (dictMonoid) {\n return function (dictMonad) {\n return {\n Applicative0: function () {\n return applicativeWriterT(dictMonoid)(dictMonad.Applicative0());\n },\n Bind1: function () {\n return bindWriterT(dictMonoid.Semigroup0())(dictMonad.Bind1());\n }\n };\n };\n};\nvar monadAskWriterT = function (dictMonoid) {\n return function (dictMonadAsk) {\n return {\n ask: Control_Monad_Trans_Class.lift(monadTransWriterT(dictMonoid))(dictMonadAsk.Monad0())(Control_Monad_Reader_Class.ask(dictMonadAsk)),\n Monad0: function () {\n return monadWriterT(dictMonoid)(dictMonadAsk.Monad0());\n }\n };\n };\n};\nvar monadReaderWriterT = function (dictMonoid) {\n return function (dictMonadReader) {\n return {\n local: function (f) {\n return mapWriterT(Control_Monad_Reader_Class.local(dictMonadReader)(f));\n },\n MonadAsk0: function () {\n return monadAskWriterT(dictMonoid)(dictMonadReader.MonadAsk0());\n }\n };\n };\n};\nvar monadContWriterT = function (dictMonoid) {\n return function (dictMonadCont) {\n return {\n callCC: function (f) {\n return Control_Monad_Cont_Class.callCC(dictMonadCont)(function (c) {\n var v = f(function (a) {\n return c(new Data_Tuple.Tuple(a, Data_Monoid.mempty(dictMonoid)));\n });\n return v;\n });\n },\n Monad0: function () {\n return monadWriterT(dictMonoid)(dictMonadCont.Monad0());\n }\n };\n };\n};\nvar monadEffectWriter = function (dictMonoid) {\n return function (dictMonadEffect) {\n return {\n liftEffect: (function () {\n var $122 = Control_Monad_Trans_Class.lift(monadTransWriterT(dictMonoid))(dictMonadEffect.Monad0());\n var $123 = Effect_Class.liftEffect(dictMonadEffect);\n return function ($124) {\n return $122($123($124));\n };\n })(),\n Monad0: function () {\n return monadWriterT(dictMonoid)(dictMonadEffect.Monad0());\n }\n };\n };\n};\nvar monadRecWriterT = function (dictMonoid) {\n return function (dictMonadRec) {\n return {\n tailRecM: function (f) {\n return function (a) {\n var f$prime = function (v) {\n var v1 = f(v.value0);\n return Control_Bind.bind((dictMonadRec.Monad0()).Bind1())(v1)(function (v2) {\n return Control_Applicative.pure((dictMonadRec.Monad0()).Applicative0())((function () {\n if (v2.value0 instanceof Control_Monad_Rec_Class.Loop) {\n return new Control_Monad_Rec_Class.Loop(new Data_Tuple.Tuple(v2.value0.value0, Data_Semigroup.append(dictMonoid.Semigroup0())(v.value1)(v2.value1)));\n };\n if (v2.value0 instanceof Control_Monad_Rec_Class.Done) {\n return new Control_Monad_Rec_Class.Done(new Data_Tuple.Tuple(v2.value0.value0, Data_Semigroup.append(dictMonoid.Semigroup0())(v.value1)(v2.value1)));\n };\n throw new Error(\"Failed pattern match at Control.Monad.Writer.Trans (line 83, column 16 - line 85, column 47): \" + [ v2.value0.constructor.name ]);\n })());\n });\n };\n return Control_Monad_Rec_Class.tailRecM(dictMonadRec)(f$prime)(new Data_Tuple.Tuple(a, Data_Monoid.mempty(dictMonoid)));\n };\n },\n Monad0: function () {\n return monadWriterT(dictMonoid)(dictMonadRec.Monad0());\n }\n };\n };\n};\nvar monadStateWriterT = function (dictMonoid) {\n return function (dictMonadState) {\n return {\n state: function (f) {\n return Control_Monad_Trans_Class.lift(monadTransWriterT(dictMonoid))(dictMonadState.Monad0())(Control_Monad_State_Class.state(dictMonadState)(f));\n },\n Monad0: function () {\n return monadWriterT(dictMonoid)(dictMonadState.Monad0());\n }\n };\n };\n};\nvar monadTellWriterT = function (dictMonoid) {\n return function (dictMonad) {\n return {\n tell: (function () {\n var $125 = Control_Applicative.pure(dictMonad.Applicative0());\n var $126 = Data_Tuple.Tuple.create(Data_Unit.unit);\n return function ($127) {\n return WriterT($125($126($127)));\n };\n })(),\n Semigroup0: dictMonoid.Semigroup0,\n Monad1: function () {\n return monadWriterT(dictMonoid)(dictMonad);\n }\n };\n };\n};\nvar monadWriterWriterT = function (dictMonoid) {\n return function (dictMonad) {\n return {\n listen: function (v) {\n return Control_Bind.bind(dictMonad.Bind1())(v)(function (v1) {\n return Control_Applicative.pure(dictMonad.Applicative0())(new Data_Tuple.Tuple(new Data_Tuple.Tuple(v1.value0, v1.value1), v1.value1));\n });\n },\n pass: function (v) {\n return Control_Bind.bind(dictMonad.Bind1())(v)(function (v1) {\n return Control_Applicative.pure(dictMonad.Applicative0())(new Data_Tuple.Tuple(v1.value0.value0, v1.value0.value1(v1.value1)));\n });\n },\n Monoid0: function () {\n return dictMonoid;\n },\n MonadTell1: function () {\n return monadTellWriterT(dictMonoid)(dictMonad);\n }\n };\n };\n};\nvar monadThrowWriterT = function (dictMonoid) {\n return function (dictMonadThrow) {\n return {\n throwError: function (e) {\n return Control_Monad_Trans_Class.lift(monadTransWriterT(dictMonoid))(dictMonadThrow.Monad0())(Control_Monad_Error_Class.throwError(dictMonadThrow)(e));\n },\n Monad0: function () {\n return monadWriterT(dictMonoid)(dictMonadThrow.Monad0());\n }\n };\n };\n};\nvar monadErrorWriterT = function (dictMonoid) {\n return function (dictMonadError) {\n return {\n catchError: function (v) {\n return function (h) {\n return Control_Monad_Error_Class.catchError(dictMonadError)(v)(function (e) {\n var v1 = h(e);\n return v1;\n });\n };\n },\n MonadThrow0: function () {\n return monadThrowWriterT(dictMonoid)(dictMonadError.MonadThrow0());\n }\n };\n };\n};\nvar monoidWriterT = function (dictApplicative) {\n return function (dictMonoid) {\n return function (dictMonoid1) {\n return {\n mempty: Control_Applicative.pure(applicativeWriterT(dictMonoid)(dictApplicative))(Data_Monoid.mempty(dictMonoid1)),\n Semigroup0: function () {\n return semigroupWriterT(dictApplicative.Apply0())(dictMonoid.Semigroup0())(dictMonoid1.Semigroup0());\n }\n };\n };\n };\n};\nvar altWriterT = function (dictAlt) {\n return {\n alt: function (v) {\n return function (v1) {\n return Control_Alt.alt(dictAlt)(v)(v1);\n };\n },\n Functor0: function () {\n return functorWriterT(dictAlt.Functor0());\n }\n };\n};\nvar plusWriterT = function (dictPlus) {\n return {\n empty: Control_Plus.empty(dictPlus),\n Alt0: function () {\n return altWriterT(dictPlus.Alt0());\n }\n };\n};\nvar alternativeWriterT = function (dictMonoid) {\n return function (dictAlternative) {\n return {\n Applicative0: function () {\n return applicativeWriterT(dictMonoid)(dictAlternative.Applicative0());\n },\n Plus1: function () {\n return plusWriterT(dictAlternative.Plus1());\n }\n };\n };\n};\nvar monadPlusWriterT = function (dictMonoid) {\n return function (dictMonadPlus) {\n return {\n Monad0: function () {\n return monadWriterT(dictMonoid)(dictMonadPlus.Monad0());\n },\n Alternative1: function () {\n return alternativeWriterT(dictMonoid)(dictMonadPlus.Alternative1());\n }\n };\n };\n};\nexport {\n WriterT,\n runWriterT,\n execWriterT,\n mapWriterT,\n newtypeWriterT,\n functorWriterT,\n applyWriterT,\n applicativeWriterT,\n altWriterT,\n plusWriterT,\n alternativeWriterT,\n bindWriterT,\n monadWriterT,\n monadRecWriterT,\n monadPlusWriterT,\n monadTransWriterT,\n monadEffectWriter,\n monadContWriterT,\n monadThrowWriterT,\n monadErrorWriterT,\n monadAskWriterT,\n monadReaderWriterT,\n monadStateWriterT,\n monadTellWriterT,\n monadWriterWriterT,\n semigroupWriterT,\n monoidWriterT\n};\nexport {\n lift\n} from \"../Control.Monad.Trans.Class/index.js\";\nexport {\n censor,\n listen,\n listens,\n pass,\n tell\n} from \"../Control.Monad.Writer.Class/index.js\";\n","// Generated by purs version 0.15.2\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Control_Monad_Cont_Trans from \"../Control.Monad.Cont.Trans/index.js\";\nimport * as Control_Monad_Except_Trans from \"../Control.Monad.Except.Trans/index.js\";\nimport * as Control_Monad_Maybe_Trans from \"../Control.Monad.Maybe.Trans/index.js\";\nimport * as Control_Monad_Reader_Trans from \"../Control.Monad.Reader.Trans/index.js\";\nimport * as Control_Monad_Writer_Trans from \"../Control.Monad.Writer.Trans/index.js\";\nimport * as Data_Either from \"../Data.Either/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Functor_Compose from \"../Data.Functor.Compose/index.js\";\nimport * as Data_Functor_Costar from \"../Data.Functor.Costar/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Profunctor_Star from \"../Data.Profunctor.Star/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nimport * as Effect_Class from \"../Effect.Class/index.js\";\nimport * as Effect_Ref from \"../Effect.Ref/index.js\";\nvar ParCont = function (x) {\n return x;\n};\nvar sequential = function (dict) {\n return dict.sequential;\n};\nvar parallel = function (dict) {\n return dict.parallel;\n};\nvar newtypeParCont = {\n Coercible0: function () {\n return undefined;\n }\n};\nvar monadParWriterT = function (dictMonoid) {\n return function (dictParallel) {\n return {\n parallel: Control_Monad_Writer_Trans.mapWriterT(parallel(dictParallel)),\n sequential: Control_Monad_Writer_Trans.mapWriterT(sequential(dictParallel)),\n Monad0: function () {\n return Control_Monad_Writer_Trans.monadWriterT(dictMonoid)(dictParallel.Monad0());\n },\n Applicative1: function () {\n return Control_Monad_Writer_Trans.applicativeWriterT(dictMonoid)(dictParallel.Applicative1());\n }\n };\n };\n};\nvar monadParStar = function (dictParallel) {\n return {\n parallel: function (v) {\n var $49 = parallel(dictParallel);\n return function ($50) {\n return $49(v($50));\n };\n },\n sequential: function (v) {\n var $51 = sequential(dictParallel);\n return function ($52) {\n return $51(v($52));\n };\n },\n Monad0: function () {\n return Data_Profunctor_Star.monadStar(dictParallel.Monad0());\n },\n Applicative1: function () {\n return Data_Profunctor_Star.applicativeStar(dictParallel.Applicative1());\n }\n };\n};\nvar monadParReaderT = function (dictParallel) {\n return {\n parallel: Control_Monad_Reader_Trans.mapReaderT(parallel(dictParallel)),\n sequential: Control_Monad_Reader_Trans.mapReaderT(sequential(dictParallel)),\n Monad0: function () {\n return Control_Monad_Reader_Trans.monadReaderT(dictParallel.Monad0());\n },\n Applicative1: function () {\n return Control_Monad_Reader_Trans.applicativeReaderT(dictParallel.Applicative1());\n }\n };\n};\nvar monadParMaybeT = function (dictParallel) {\n return {\n parallel: function (v) {\n return parallel(dictParallel)(v);\n },\n sequential: function (v) {\n return sequential(dictParallel)(v);\n },\n Monad0: function () {\n return Control_Monad_Maybe_Trans.monadMaybeT(dictParallel.Monad0());\n },\n Applicative1: function () {\n return Data_Functor_Compose.applicativeCompose(dictParallel.Applicative1())(Data_Maybe.applicativeMaybe);\n }\n };\n};\nvar monadParExceptT = function (dictParallel) {\n return {\n parallel: function (v) {\n return parallel(dictParallel)(v);\n },\n sequential: function (v) {\n return sequential(dictParallel)(v);\n },\n Monad0: function () {\n return Control_Monad_Except_Trans.monadExceptT(dictParallel.Monad0());\n },\n Applicative1: function () {\n return Data_Functor_Compose.applicativeCompose(dictParallel.Applicative1())(Data_Either.applicativeEither);\n }\n };\n};\nvar monadParCostar = function (dictParallel) {\n return {\n parallel: function (v) {\n var $53 = sequential(dictParallel);\n return function ($54) {\n return v($53($54));\n };\n },\n sequential: function (v) {\n var $55 = parallel(dictParallel);\n return function ($56) {\n return v($55($56));\n };\n },\n Monad0: function () {\n return Data_Functor_Costar.monadCostar;\n },\n Applicative1: function () {\n return Data_Functor_Costar.applicativeCostar;\n }\n };\n};\nvar monadParParCont = function (dictMonadEffect) {\n return {\n parallel: ParCont,\n sequential: function (v) {\n return v;\n },\n Monad0: function () {\n return Control_Monad_Cont_Trans.monadContT(dictMonadEffect.Monad0());\n },\n Applicative1: function () {\n return applicativeParCont(dictMonadEffect);\n }\n };\n};\nvar functorParCont = function (dictMonadEffect) {\n return {\n map: function (f) {\n var $57 = parallel(monadParParCont(dictMonadEffect));\n var $58 = Data_Functor.map(Control_Monad_Cont_Trans.functorContT((((dictMonadEffect.Monad0()).Bind1()).Apply0()).Functor0()))(f);\n var $59 = sequential(monadParParCont(dictMonadEffect));\n return function ($60) {\n return $57($58($59($60)));\n };\n }\n };\n};\nvar applyParCont = function (dictMonadEffect) {\n return {\n apply: function (v) {\n return function (v1) {\n return function (k) {\n return Control_Bind.bind((dictMonadEffect.Monad0()).Bind1())(Effect_Class.liftEffect(dictMonadEffect)(Effect_Ref[\"new\"](Data_Maybe.Nothing.value)))(function (ra) {\n return Control_Bind.bind((dictMonadEffect.Monad0()).Bind1())(Effect_Class.liftEffect(dictMonadEffect)(Effect_Ref[\"new\"](Data_Maybe.Nothing.value)))(function (rb) {\n return Control_Bind.discard(Control_Bind.discardUnit)((dictMonadEffect.Monad0()).Bind1())(Control_Monad_Cont_Trans.runContT(v)(function (a) {\n return Control_Bind.bind((dictMonadEffect.Monad0()).Bind1())(Effect_Class.liftEffect(dictMonadEffect)(Effect_Ref.read(rb)))(function (mb) {\n if (mb instanceof Data_Maybe.Nothing) {\n return Effect_Class.liftEffect(dictMonadEffect)(Effect_Ref.write(new Data_Maybe.Just(a))(ra));\n };\n if (mb instanceof Data_Maybe.Just) {\n return k(a(mb.value0));\n };\n throw new Error(\"Failed pattern match at Control.Parallel.Class (line 82, column 7 - line 84, column 26): \" + [ mb.constructor.name ]);\n });\n }))(function () {\n return Control_Monad_Cont_Trans.runContT(v1)(function (b) {\n return Control_Bind.bind((dictMonadEffect.Monad0()).Bind1())(Effect_Class.liftEffect(dictMonadEffect)(Effect_Ref.read(ra)))(function (ma) {\n if (ma instanceof Data_Maybe.Nothing) {\n return Effect_Class.liftEffect(dictMonadEffect)(Effect_Ref.write(new Data_Maybe.Just(b))(rb));\n };\n if (ma instanceof Data_Maybe.Just) {\n return k(ma.value0(b));\n };\n throw new Error(\"Failed pattern match at Control.Parallel.Class (line 88, column 7 - line 90, column 26): \" + [ ma.constructor.name ]);\n });\n });\n });\n });\n });\n };\n };\n },\n Functor0: function () {\n return functorParCont(dictMonadEffect);\n }\n };\n};\nvar applicativeParCont = function (dictMonadEffect) {\n return {\n pure: (function () {\n var $61 = parallel(monadParParCont(dictMonadEffect));\n var $62 = Control_Applicative.pure(Control_Monad_Cont_Trans.applicativeContT((dictMonadEffect.Monad0()).Applicative0()));\n return function ($63) {\n return $61($62($63));\n };\n })(),\n Apply0: function () {\n return applyParCont(dictMonadEffect);\n }\n };\n};\nvar altParCont = function (dictMonadEffect) {\n return {\n alt: function (v) {\n return function (v1) {\n return function (k) {\n return Control_Bind.bind((dictMonadEffect.Monad0()).Bind1())(Effect_Class.liftEffect(dictMonadEffect)(Effect_Ref[\"new\"](false)))(function (done) {\n return Control_Bind.discard(Control_Bind.discardUnit)((dictMonadEffect.Monad0()).Bind1())(Control_Monad_Cont_Trans.runContT(v)(function (a) {\n return Control_Bind.bind((dictMonadEffect.Monad0()).Bind1())(Effect_Class.liftEffect(dictMonadEffect)(Effect_Ref.read(done)))(function (b) {\n if (b) {\n return Control_Applicative.pure((dictMonadEffect.Monad0()).Applicative0())(Data_Unit.unit);\n };\n return Control_Bind.discard(Control_Bind.discardUnit)((dictMonadEffect.Monad0()).Bind1())(Effect_Class.liftEffect(dictMonadEffect)(Effect_Ref.write(true)(done)))(function () {\n return k(a);\n });\n });\n }))(function () {\n return Control_Monad_Cont_Trans.runContT(v1)(function (a) {\n return Control_Bind.bind((dictMonadEffect.Monad0()).Bind1())(Effect_Class.liftEffect(dictMonadEffect)(Effect_Ref.read(done)))(function (b) {\n if (b) {\n return Control_Applicative.pure((dictMonadEffect.Monad0()).Applicative0())(Data_Unit.unit);\n };\n return Control_Bind.discard(Control_Bind.discardUnit)((dictMonadEffect.Monad0()).Bind1())(Effect_Class.liftEffect(dictMonadEffect)(Effect_Ref.write(true)(done)))(function () {\n return k(a);\n });\n });\n });\n });\n });\n };\n };\n },\n Functor0: function () {\n return functorParCont(dictMonadEffect);\n }\n };\n};\nvar plusParCont = function (dictMonadEffect) {\n return {\n empty: function (v) {\n return Control_Applicative.pure((dictMonadEffect.Monad0()).Applicative0())(Data_Unit.unit);\n },\n Alt0: function () {\n return altParCont(dictMonadEffect);\n }\n };\n};\nvar alternativeParCont = function (dictMonadEffect) {\n return {\n Applicative0: function () {\n return applicativeParCont(dictMonadEffect);\n },\n Plus1: function () {\n return plusParCont(dictMonadEffect);\n }\n };\n};\nexport {\n parallel,\n sequential,\n ParCont,\n monadParExceptT,\n monadParReaderT,\n monadParWriterT,\n monadParMaybeT,\n monadParStar,\n monadParCostar,\n newtypeParCont,\n functorParCont,\n applyParCont,\n applicativeParCont,\n altParCont,\n plusParCont,\n alternativeParCont,\n monadParParCont\n};\n","// Generated by purs version 0.15.2\nimport * as Control_Apply from \"../Control.Apply/index.js\";\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Control_Parallel_Class from \"../Control.Parallel.Class/index.js\";\nimport * as Data_Foldable from \"../Data.Foldable/index.js\";\nimport * as Data_Traversable from \"../Data.Traversable/index.js\";\nvar parTraverse_ = function (dictParallel) {\n return function (dictFoldable) {\n return function (f) {\n var $17 = Control_Parallel_Class.sequential(dictParallel);\n var $18 = Data_Foldable.traverse_(dictParallel.Applicative1())(dictFoldable)((function () {\n var $20 = Control_Parallel_Class.parallel(dictParallel);\n return function ($21) {\n return $20(f($21));\n };\n })());\n return function ($19) {\n return $17($18($19));\n };\n };\n };\n};\nvar parTraverse = function (dictParallel) {\n return function (dictTraversable) {\n return function (f) {\n var $22 = Control_Parallel_Class.sequential(dictParallel);\n var $23 = Data_Traversable.traverse(dictTraversable)(dictParallel.Applicative1())((function () {\n var $25 = Control_Parallel_Class.parallel(dictParallel);\n return function ($26) {\n return $25(f($26));\n };\n })());\n return function ($24) {\n return $22($23($24));\n };\n };\n };\n};\nvar parSequence_ = function (dictParallel) {\n return function (dictFoldable) {\n return parTraverse_(dictParallel)(dictFoldable)(Control_Category.identity(Control_Category.categoryFn));\n };\n};\nvar parSequence = function (dictParallel) {\n return function (dictTraversable) {\n return parTraverse(dictParallel)(dictTraversable)(Control_Category.identity(Control_Category.categoryFn));\n };\n};\nvar parOneOfMap = function (dictParallel) {\n return function (dictAlternative) {\n return function (dictFoldable) {\n return function (dictFunctor) {\n return function (f) {\n var $27 = Control_Parallel_Class.sequential(dictParallel);\n var $28 = Data_Foldable.oneOfMap(dictFoldable)(dictAlternative.Plus1())((function () {\n var $30 = Control_Parallel_Class.parallel(dictParallel);\n return function ($31) {\n return $30(f($31));\n };\n })());\n return function ($29) {\n return $27($28($29));\n };\n };\n };\n };\n };\n};\nvar parOneOf = function (dictParallel) {\n return function (dictAlternative) {\n return function (dictFoldable) {\n return function (dictFunctor) {\n var $32 = Control_Parallel_Class.sequential(dictParallel);\n var $33 = Data_Foldable.oneOfMap(dictFoldable)(dictAlternative.Plus1())(Control_Parallel_Class.parallel(dictParallel));\n return function ($34) {\n return $32($33($34));\n };\n };\n };\n };\n};\nvar parApply = function (dictParallel) {\n return function (mf) {\n return function (ma) {\n return Control_Parallel_Class.sequential(dictParallel)(Control_Apply.apply((dictParallel.Applicative1()).Apply0())(Control_Parallel_Class.parallel(dictParallel)(mf))(Control_Parallel_Class.parallel(dictParallel)(ma)));\n };\n };\n};\nexport {\n parApply,\n parTraverse,\n parTraverse_,\n parSequence,\n parSequence_,\n parOneOf,\n parOneOfMap\n};\nexport {\n ParCont,\n parallel,\n sequential\n} from \"../Control.Parallel.Class/index.js\";\n","// Generated by purs version 0.15.2\nimport * as $foreign from \"./foreign.js\";\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Apply from \"../Control.Apply/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Control_Monad from \"../Control.Monad/index.js\";\nimport * as Control_Monad_Error_Class from \"../Control.Monad.Error.Class/index.js\";\nimport * as Control_Monad_Rec_Class from \"../Control.Monad.Rec.Class/index.js\";\nimport * as Control_Parallel from \"../Control.Parallel/index.js\";\nimport * as Control_Parallel_Class from \"../Control.Parallel.Class/index.js\";\nimport * as Control_Plus from \"../Control.Plus/index.js\";\nimport * as Data_Either from \"../Data.Either/index.js\";\nimport * as Data_Foldable from \"../Data.Foldable/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Monoid from \"../Data.Monoid/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nimport * as Data_Time_Duration from \"../Data.Time.Duration/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nimport * as Effect from \"../Effect/index.js\";\nimport * as Effect_Class from \"../Effect.Class/index.js\";\nimport * as Effect_Exception from \"../Effect.Exception/index.js\";\nimport * as Effect_Unsafe from \"../Effect.Unsafe/index.js\";\nimport * as Partial_Unsafe from \"../Partial.Unsafe/index.js\";\nimport * as Unsafe_Coerce from \"../Unsafe.Coerce/index.js\";\nvar $runtime_lazy = function (name, moduleName, init) {\n var state = 0;\n var val;\n return function (lineNumber) {\n if (state === 2) return val;\n if (state === 1) throw new ReferenceError(name + \" was needed before it finished initializing (module \" + moduleName + \", line \" + lineNumber + \")\", moduleName, lineNumber);\n state = 1;\n val = init();\n state = 2;\n return val;\n };\n};\nvar Fiber = function (x) {\n return x;\n};\nvar FFIUtil = function (x) {\n return x;\n};\nvar Canceler = function (x) {\n return x;\n};\nvar suspendAff = /* #__PURE__ */ $foreign[\"_fork\"](false);\nvar newtypeCanceler = {\n Coercible0: function () {\n return undefined;\n }\n};\nvar functorParAff = {\n map: $foreign[\"_parAffMap\"]\n};\nvar functorAff = {\n map: $foreign[\"_map\"]\n};\nvar forkAff = /* #__PURE__ */ $foreign[\"_fork\"](true);\nvar ffiUtil = /* #__PURE__ */ (function () {\n var unsafeFromRight = function (v) {\n if (v instanceof Data_Either.Right) {\n return v.value0;\n };\n if (v instanceof Data_Either.Left) {\n return Partial_Unsafe.unsafeCrashWith(\"unsafeFromRight: Left\");\n };\n throw new Error(\"Failed pattern match at Effect.Aff (line 407, column 21 - line 409, column 54): \" + [ v.constructor.name ]);\n };\n var unsafeFromLeft = function (v) {\n if (v instanceof Data_Either.Left) {\n return v.value0;\n };\n if (v instanceof Data_Either.Right) {\n return Partial_Unsafe.unsafeCrashWith(\"unsafeFromLeft: Right\");\n };\n throw new Error(\"Failed pattern match at Effect.Aff (line 402, column 20 - line 404, column 55): \" + [ v.constructor.name ]);\n };\n var isLeft = function (v) {\n if (v instanceof Data_Either.Left) {\n return true;\n };\n if (v instanceof Data_Either.Right) {\n return false;\n };\n throw new Error(\"Failed pattern match at Effect.Aff (line 397, column 12 - line 399, column 21): \" + [ v.constructor.name ]);\n };\n return {\n isLeft: isLeft,\n fromLeft: unsafeFromLeft,\n fromRight: unsafeFromRight,\n left: Data_Either.Left.create,\n right: Data_Either.Right.create\n };\n})();\nvar makeFiber = function (aff) {\n return $foreign[\"_makeFiber\"](ffiUtil, aff);\n};\nvar launchAff = function (aff) {\n return function __do() {\n var fiber = makeFiber(aff)();\n fiber.run();\n return fiber;\n };\n};\nvar launchAff_ = /* #__PURE__ */ (function () {\n var $39 = Data_Functor[\"void\"](Effect.functorEffect);\n return function ($40) {\n return $39(launchAff($40));\n };\n})();\nvar launchSuspendedAff = makeFiber;\nvar delay = function (v) {\n return $foreign[\"_delay\"](Data_Either.Right.create, v);\n};\nvar bracket = function (acquire) {\n return function (completed) {\n return $foreign.generalBracket(acquire)({\n killed: Data_Function[\"const\"](completed),\n failed: Data_Function[\"const\"](completed),\n completed: Data_Function[\"const\"](completed)\n });\n };\n};\nvar applyParAff = {\n apply: $foreign[\"_parAffApply\"],\n Functor0: function () {\n return functorParAff;\n }\n};\nvar semigroupParAff = function (dictSemigroup) {\n return {\n append: Control_Apply.lift2(applyParAff)(Data_Semigroup.append(dictSemigroup))\n };\n};\nvar monadAff = {\n Applicative0: function () {\n return applicativeAff;\n },\n Bind1: function () {\n return bindAff;\n }\n};\nvar bindAff = {\n bind: $foreign[\"_bind\"],\n Apply0: function () {\n return $lazy_applyAff(0);\n }\n};\nvar applicativeAff = {\n pure: $foreign[\"_pure\"],\n Apply0: function () {\n return $lazy_applyAff(0);\n }\n};\nvar $lazy_applyAff = /* #__PURE__ */ $runtime_lazy(\"applyAff\", \"Effect.Aff\", function () {\n return {\n apply: Control_Monad.ap(monadAff),\n Functor0: function () {\n return functorAff;\n }\n };\n});\nvar applyAff = /* #__PURE__ */ $lazy_applyAff(71);\nvar cancelWith = function (aff) {\n return function (v) {\n return $foreign.generalBracket(Control_Applicative.pure(applicativeAff)(Data_Unit.unit))({\n killed: function (e) {\n return function (v1) {\n return v(e);\n };\n },\n failed: Data_Function[\"const\"](Control_Applicative.pure(applicativeAff)),\n completed: Data_Function[\"const\"](Control_Applicative.pure(applicativeAff))\n })(Data_Function[\"const\"](aff));\n };\n};\nvar $$finally = function (fin) {\n return function (a) {\n return bracket(Control_Applicative.pure(applicativeAff)(Data_Unit.unit))(Data_Function[\"const\"](fin))(Data_Function[\"const\"](a));\n };\n};\nvar invincible = function (a) {\n return bracket(a)(Data_Function[\"const\"](Control_Applicative.pure(applicativeAff)(Data_Unit.unit)))(Control_Applicative.pure(applicativeAff));\n};\nvar lazyAff = {\n defer: function (f) {\n return Control_Bind.bind(bindAff)(Control_Applicative.pure(applicativeAff)(Data_Unit.unit))(f);\n }\n};\nvar semigroupAff = function (dictSemigroup) {\n return {\n append: Control_Apply.lift2(applyAff)(Data_Semigroup.append(dictSemigroup))\n };\n};\nvar monadEffectAff = {\n liftEffect: $foreign[\"_liftEffect\"],\n Monad0: function () {\n return monadAff;\n }\n};\nvar effectCanceler = /* #__PURE__ */ (function () {\n var $41 = Effect_Class.liftEffect(monadEffectAff);\n return function ($42) {\n return Canceler(Data_Function[\"const\"]($41($42)));\n };\n})();\nvar joinFiber = function (v) {\n return $foreign.makeAff(function (k) {\n return Data_Functor.map(Effect.functorEffect)(effectCanceler)(v.join(k));\n });\n};\nvar functorFiber = {\n map: function (f) {\n return function (t) {\n return Effect_Unsafe.unsafePerformEffect(makeFiber(Data_Functor.map(functorAff)(f)(joinFiber(t))));\n };\n }\n};\nvar applyFiber = {\n apply: function (t1) {\n return function (t2) {\n return Effect_Unsafe.unsafePerformEffect(makeFiber(Control_Apply.apply(applyAff)(joinFiber(t1))(joinFiber(t2))));\n };\n },\n Functor0: function () {\n return functorFiber;\n }\n};\nvar applicativeFiber = {\n pure: function (a) {\n return Effect_Unsafe.unsafePerformEffect(makeFiber(Control_Applicative.pure(applicativeAff)(a)));\n },\n Apply0: function () {\n return applyFiber;\n }\n};\nvar killFiber = function (e) {\n return function (v) {\n return Control_Bind.bind(bindAff)(Effect_Class.liftEffect(monadEffectAff)(v.isSuspended))(function (suspended) {\n if (suspended) {\n return Effect_Class.liftEffect(monadEffectAff)(Data_Functor[\"void\"](Effect.functorEffect)(v.kill(e, Data_Function[\"const\"](Control_Applicative.pure(Effect.applicativeEffect)(Data_Unit.unit)))));\n };\n return $foreign.makeAff(function (k) {\n return Data_Functor.map(Effect.functorEffect)(effectCanceler)(v.kill(e, k));\n });\n });\n };\n};\nvar fiberCanceler = /* #__PURE__ */ (function () {\n var $43 = Data_Function.flip(killFiber);\n return function ($44) {\n return Canceler($43($44));\n };\n})();\nvar monadThrowAff = {\n throwError: $foreign[\"_throwError\"],\n Monad0: function () {\n return monadAff;\n }\n};\nvar monadErrorAff = {\n catchError: $foreign[\"_catchError\"],\n MonadThrow0: function () {\n return monadThrowAff;\n }\n};\nvar attempt = /* #__PURE__ */ Control_Monad_Error_Class[\"try\"](monadErrorAff);\nvar runAff = function (k) {\n return function (aff) {\n return launchAff(Control_Bind.bindFlipped(bindAff)((function () {\n var $45 = Effect_Class.liftEffect(monadEffectAff);\n return function ($46) {\n return $45(k($46));\n };\n })())(Control_Monad_Error_Class[\"try\"](monadErrorAff)(aff)));\n };\n};\nvar runAff_ = function (k) {\n return function (aff) {\n return Data_Functor[\"void\"](Effect.functorEffect)(runAff(k)(aff));\n };\n};\nvar runSuspendedAff = function (k) {\n return function (aff) {\n return launchSuspendedAff(Control_Bind.bindFlipped(bindAff)((function () {\n var $47 = Effect_Class.liftEffect(monadEffectAff);\n return function ($48) {\n return $47(k($48));\n };\n })())(Control_Monad_Error_Class[\"try\"](monadErrorAff)(aff)));\n };\n};\nvar parallelAff = {\n parallel: Unsafe_Coerce.unsafeCoerce,\n sequential: $foreign[\"_sequential\"],\n Monad0: function () {\n return monadAff;\n },\n Applicative1: function () {\n return $lazy_applicativeParAff(0);\n }\n};\nvar $lazy_applicativeParAff = /* #__PURE__ */ $runtime_lazy(\"applicativeParAff\", \"Effect.Aff\", function () {\n return {\n pure: (function () {\n var $49 = Control_Parallel_Class.parallel(parallelAff);\n var $50 = Control_Applicative.pure(applicativeAff);\n return function ($51) {\n return $49($50($51));\n };\n })(),\n Apply0: function () {\n return applyParAff;\n }\n };\n});\nvar applicativeParAff = /* #__PURE__ */ $lazy_applicativeParAff(131);\nvar monoidParAff = function (dictMonoid) {\n return {\n mempty: Control_Applicative.pure(applicativeParAff)(Data_Monoid.mempty(dictMonoid)),\n Semigroup0: function () {\n return semigroupParAff(dictMonoid.Semigroup0());\n }\n };\n};\nvar semigroupCanceler = {\n append: function (v) {\n return function (v1) {\n return function (err) {\n return Control_Parallel.parSequence_(parallelAff)(Data_Foldable.foldableArray)([ v(err), v1(err) ]);\n };\n };\n }\n};\nvar supervise = function (aff) {\n var killError = Effect_Exception.error(\"[Aff] Child fiber outlived parent\");\n var killAll = function (err) {\n return function (sup) {\n return $foreign.makeAff(function (k) {\n return $foreign[\"_killAll\"](err, sup.supervisor, k(Control_Applicative.pure(Data_Either.applicativeEither)(Data_Unit.unit)));\n });\n };\n };\n var acquire = function __do() {\n var sup = $foreign[\"_makeSupervisedFiber\"](ffiUtil, aff)();\n sup.fiber.run();\n return sup;\n };\n return $foreign.generalBracket(Effect_Class.liftEffect(monadEffectAff)(acquire))({\n killed: function (err) {\n return function (sup) {\n return Control_Parallel.parSequence_(parallelAff)(Data_Foldable.foldableArray)([ killFiber(err)(sup.fiber), killAll(err)(sup) ]);\n };\n },\n failed: Data_Function[\"const\"](killAll(killError)),\n completed: Data_Function[\"const\"](killAll(killError))\n })(function ($52) {\n return joinFiber((function (v) {\n return v.fiber;\n })($52));\n });\n};\nvar monadRecAff = {\n tailRecM: function (k) {\n var go = function (a) {\n return Control_Bind.bind(bindAff)(k(a))(function (res) {\n if (res instanceof Control_Monad_Rec_Class.Done) {\n return Control_Applicative.pure(applicativeAff)(res.value0);\n };\n if (res instanceof Control_Monad_Rec_Class.Loop) {\n return go(res.value0);\n };\n throw new Error(\"Failed pattern match at Effect.Aff (line 102, column 7 - line 104, column 23): \" + [ res.constructor.name ]);\n });\n };\n return go;\n },\n Monad0: function () {\n return monadAff;\n }\n};\nvar monoidAff = function (dictMonoid) {\n return {\n mempty: Control_Applicative.pure(applicativeAff)(Data_Monoid.mempty(dictMonoid)),\n Semigroup0: function () {\n return semigroupAff(dictMonoid.Semigroup0());\n }\n };\n};\nvar nonCanceler = /* #__PURE__ */ Data_Function[\"const\"](/* #__PURE__ */ Control_Applicative.pure(applicativeAff)(Data_Unit.unit));\nvar monoidCanceler = {\n mempty: nonCanceler,\n Semigroup0: function () {\n return semigroupCanceler;\n }\n};\nvar never = /* #__PURE__ */ $foreign.makeAff(function (v) {\n return Control_Applicative.pure(Effect.applicativeEffect)(Data_Monoid.mempty(monoidCanceler));\n});\nvar apathize = /* #__PURE__ */ (function () {\n var $53 = Data_Functor.map(functorAff)(Data_Function[\"const\"](Data_Unit.unit));\n return function ($54) {\n return $53(attempt($54));\n };\n})();\nvar altParAff = {\n alt: $foreign[\"_parAffAlt\"],\n Functor0: function () {\n return functorParAff;\n }\n};\nvar altAff = {\n alt: function (a1) {\n return function (a2) {\n return Control_Monad_Error_Class.catchError(monadErrorAff)(a1)(Data_Function[\"const\"](a2));\n };\n },\n Functor0: function () {\n return functorAff;\n }\n};\nvar plusAff = {\n empty: /* #__PURE__ */ Control_Monad_Error_Class.throwError(monadThrowAff)(/* #__PURE__ */ Effect_Exception.error(\"Always fails\")),\n Alt0: function () {\n return altAff;\n }\n};\nvar plusParAff = {\n empty: /* #__PURE__ */ Control_Parallel_Class.parallel(parallelAff)(/* #__PURE__ */ Control_Plus.empty(plusAff)),\n Alt0: function () {\n return altParAff;\n }\n};\nvar alternativeParAff = {\n Applicative0: function () {\n return applicativeParAff;\n },\n Plus1: function () {\n return plusParAff;\n }\n};\nexport {\n makeAff,\n generalBracket\n} from \"./foreign.js\";\nexport {\n Canceler,\n launchAff,\n launchAff_,\n launchSuspendedAff,\n runAff,\n runAff_,\n runSuspendedAff,\n forkAff,\n suspendAff,\n supervise,\n attempt,\n apathize,\n delay,\n never,\n $$finally as finally,\n invincible,\n killFiber,\n joinFiber,\n cancelWith,\n bracket,\n nonCanceler,\n effectCanceler,\n fiberCanceler,\n functorAff,\n applyAff,\n applicativeAff,\n bindAff,\n monadAff,\n semigroupAff,\n monoidAff,\n altAff,\n plusAff,\n monadRecAff,\n monadThrowAff,\n monadErrorAff,\n monadEffectAff,\n lazyAff,\n functorParAff,\n applyParAff,\n applicativeParAff,\n semigroupParAff,\n monoidParAff,\n altParAff,\n plusParAff,\n alternativeParAff,\n parallelAff,\n functorFiber,\n applyFiber,\n applicativeFiber,\n newtypeCanceler,\n semigroupCanceler,\n monoidCanceler\n};\nexport {\n catchError,\n throwError,\n try\n} from \"../Control.Monad.Error.Class/index.js\";\nexport {\n parallel,\n sequential\n} from \"../Control.Parallel.Class/index.js\";\nexport {\n Milliseconds\n} from \"../Data.Time.Duration/index.js\";\nexport {\n error,\n message\n} from \"../Effect.Exception/index.js\";\n","export const mkEffectFn1 = function mkEffectFn1(fn) {\n return function(x) {\n return fn(x)();\n };\n};\n\nexport const mkEffectFn2 = function mkEffectFn2(fn) {\n return function(a, b) {\n return fn(a)(b)();\n };\n};\n\nexport const mkEffectFn3 = function mkEffectFn3(fn) {\n return function(a, b, c) {\n return fn(a)(b)(c)();\n };\n};\n\nexport const mkEffectFn4 = function mkEffectFn4(fn) {\n return function(a, b, c, d) {\n return fn(a)(b)(c)(d)();\n };\n};\n\nexport const mkEffectFn5 = function mkEffectFn5(fn) {\n return function(a, b, c, d, e) {\n return fn(a)(b)(c)(d)(e)();\n };\n};\n\nexport const mkEffectFn6 = function mkEffectFn6(fn) {\n return function(a, b, c, d, e, f) {\n return fn(a)(b)(c)(d)(e)(f)();\n };\n};\n\nexport const mkEffectFn7 = function mkEffectFn7(fn) {\n return function(a, b, c, d, e, f, g) {\n return fn(a)(b)(c)(d)(e)(f)(g)();\n };\n};\n\nexport const mkEffectFn8 = function mkEffectFn8(fn) {\n return function(a, b, c, d, e, f, g, h) {\n return fn(a)(b)(c)(d)(e)(f)(g)(h)();\n };\n};\n\nexport const mkEffectFn9 = function mkEffectFn9(fn) {\n return function(a, b, c, d, e, f, g, h, i) {\n return fn(a)(b)(c)(d)(e)(f)(g)(h)(i)();\n };\n};\n\nexport const mkEffectFn10 = function mkEffectFn10(fn) {\n return function(a, b, c, d, e, f, g, h, i, j) {\n return fn(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)();\n };\n};\n\nexport const runEffectFn1 = function runEffectFn1(fn) {\n return function(a) {\n return function() {\n return fn(a);\n };\n };\n};\n\nexport const runEffectFn2 = function runEffectFn2(fn) {\n return function(a) {\n return function(b) {\n return function() {\n return fn(a, b);\n };\n };\n };\n};\n\nexport const runEffectFn3 = function runEffectFn3(fn) {\n return function(a) {\n return function(b) {\n return function(c) {\n return function() {\n return fn(a, b, c);\n };\n };\n };\n };\n};\n\nexport const runEffectFn4 = function runEffectFn4(fn) {\n return function(a) {\n return function(b) {\n return function(c) {\n return function(d) {\n return function() {\n return fn(a, b, c, d);\n };\n };\n };\n };\n };\n};\n\nexport const runEffectFn5 = function runEffectFn5(fn) {\n return function(a) {\n return function(b) {\n return function(c) {\n return function(d) {\n return function(e) {\n return function() {\n return fn(a, b, c, d, e);\n };\n };\n };\n };\n };\n };\n};\n\nexport const runEffectFn6 = function runEffectFn6(fn) {\n return function(a) {\n return function(b) {\n return function(c) {\n return function(d) {\n return function(e) {\n return function(f) {\n return function() {\n return fn(a, b, c, d, e, f);\n };\n };\n };\n };\n };\n };\n };\n};\n\nexport const runEffectFn7 = function runEffectFn7(fn) {\n return function(a) {\n return function(b) {\n return function(c) {\n return function(d) {\n return function(e) {\n return function(f) {\n return function(g) {\n return function() {\n return fn(a, b, c, d, e, f, g);\n };\n };\n };\n };\n };\n };\n };\n };\n};\n\nexport const runEffectFn8 = function runEffectFn8(fn) {\n return function(a) {\n return function(b) {\n return function(c) {\n return function(d) {\n return function(e) {\n return function(f) {\n return function(g) {\n return function(h) {\n return function() {\n return fn(a, b, c, d, e, f, g, h);\n };\n };\n };\n };\n };\n };\n };\n };\n };\n};\n\nexport const runEffectFn9 = function runEffectFn9(fn) {\n return function(a) {\n return function(b) {\n return function(c) {\n return function(d) {\n return function(e) {\n return function(f) {\n return function(g) {\n return function(h) {\n return function(i) {\n return function() {\n return fn(a, b, c, d, e, f, g, h, i);\n };\n };\n };\n };\n };\n };\n };\n };\n };\n };\n};\n\nexport const runEffectFn10 = function runEffectFn10(fn) {\n return function(a) {\n return function(b) {\n return function(c) {\n return function(d) {\n return function(e) {\n return function(f) {\n return function(g) {\n return function(h) {\n return function(i) {\n return function(j) {\n return function() {\n return fn(a, b, c, d, e, f, g, h, i, j);\n };\n };\n };\n };\n };\n };\n };\n };\n };\n };\n };\n};\n","// Generated by purs version 0.15.2\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Monoid from \"../Data.Monoid/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nimport * as Effect from \"../Effect/index.js\";\nvar semigroupEffectFn9 = function (dictSemigroup) {\n return {\n append: function (f1) {\n return function (f2) {\n return $foreign.mkEffectFn9(function (a) {\n return function (b) {\n return function (c) {\n return function (d) {\n return function (e) {\n return function (f) {\n return function (g) {\n return function (h) {\n return function (i) {\n return Data_Semigroup.append(Effect.semigroupEffect(dictSemigroup))($foreign.runEffectFn9(f1)(a)(b)(c)(d)(e)(f)(g)(h)(i))($foreign.runEffectFn9(f2)(a)(b)(c)(d)(e)(f)(g)(h)(i));\n };\n };\n };\n };\n };\n };\n };\n };\n });\n };\n }\n };\n};\nvar semigroupEffectFn8 = function (dictSemigroup) {\n return {\n append: function (f1) {\n return function (f2) {\n return $foreign.mkEffectFn8(function (a) {\n return function (b) {\n return function (c) {\n return function (d) {\n return function (e) {\n return function (f) {\n return function (g) {\n return function (h) {\n return Data_Semigroup.append(Effect.semigroupEffect(dictSemigroup))($foreign.runEffectFn8(f1)(a)(b)(c)(d)(e)(f)(g)(h))($foreign.runEffectFn8(f2)(a)(b)(c)(d)(e)(f)(g)(h));\n };\n };\n };\n };\n };\n };\n };\n });\n };\n }\n };\n};\nvar semigroupEffectFn7 = function (dictSemigroup) {\n return {\n append: function (f1) {\n return function (f2) {\n return $foreign.mkEffectFn7(function (a) {\n return function (b) {\n return function (c) {\n return function (d) {\n return function (e) {\n return function (f) {\n return function (g) {\n return Data_Semigroup.append(Effect.semigroupEffect(dictSemigroup))($foreign.runEffectFn7(f1)(a)(b)(c)(d)(e)(f)(g))($foreign.runEffectFn7(f2)(a)(b)(c)(d)(e)(f)(g));\n };\n };\n };\n };\n };\n };\n });\n };\n }\n };\n};\nvar semigroupEffectFn6 = function (dictSemigroup) {\n return {\n append: function (f1) {\n return function (f2) {\n return $foreign.mkEffectFn6(function (a) {\n return function (b) {\n return function (c) {\n return function (d) {\n return function (e) {\n return function (f) {\n return Data_Semigroup.append(Effect.semigroupEffect(dictSemigroup))($foreign.runEffectFn6(f1)(a)(b)(c)(d)(e)(f))($foreign.runEffectFn6(f2)(a)(b)(c)(d)(e)(f));\n };\n };\n };\n };\n };\n });\n };\n }\n };\n};\nvar semigroupEffectFn5 = function (dictSemigroup) {\n return {\n append: function (f1) {\n return function (f2) {\n return $foreign.mkEffectFn5(function (a) {\n return function (b) {\n return function (c) {\n return function (d) {\n return function (e) {\n return Data_Semigroup.append(Effect.semigroupEffect(dictSemigroup))($foreign.runEffectFn5(f1)(a)(b)(c)(d)(e))($foreign.runEffectFn5(f2)(a)(b)(c)(d)(e));\n };\n };\n };\n };\n });\n };\n }\n };\n};\nvar semigroupEffectFn4 = function (dictSemigroup) {\n return {\n append: function (f1) {\n return function (f2) {\n return $foreign.mkEffectFn4(function (a) {\n return function (b) {\n return function (c) {\n return function (d) {\n return Data_Semigroup.append(Effect.semigroupEffect(dictSemigroup))($foreign.runEffectFn4(f1)(a)(b)(c)(d))($foreign.runEffectFn4(f2)(a)(b)(c)(d));\n };\n };\n };\n });\n };\n }\n };\n};\nvar semigroupEffectFn3 = function (dictSemigroup) {\n return {\n append: function (f1) {\n return function (f2) {\n return $foreign.mkEffectFn3(function (a) {\n return function (b) {\n return function (c) {\n return Data_Semigroup.append(Effect.semigroupEffect(dictSemigroup))($foreign.runEffectFn3(f1)(a)(b)(c))($foreign.runEffectFn3(f2)(a)(b)(c));\n };\n };\n });\n };\n }\n };\n};\nvar semigroupEffectFn2 = function (dictSemigroup) {\n return {\n append: function (f1) {\n return function (f2) {\n return $foreign.mkEffectFn2(function (a) {\n return function (b) {\n return Data_Semigroup.append(Effect.semigroupEffect(dictSemigroup))($foreign.runEffectFn2(f1)(a)(b))($foreign.runEffectFn2(f2)(a)(b));\n };\n });\n };\n }\n };\n};\nvar semigroupEffectFn10 = function (dictSemigroup) {\n return {\n append: function (f1) {\n return function (f2) {\n return $foreign.mkEffectFn10(function (a) {\n return function (b) {\n return function (c) {\n return function (d) {\n return function (e) {\n return function (f) {\n return function (g) {\n return function (h) {\n return function (i) {\n return function (j) {\n return Data_Semigroup.append(Effect.semigroupEffect(dictSemigroup))($foreign.runEffectFn10(f1)(a)(b)(c)(d)(e)(f)(g)(h)(i)(j))($foreign.runEffectFn10(f2)(a)(b)(c)(d)(e)(f)(g)(h)(i)(j));\n };\n };\n };\n };\n };\n };\n };\n };\n };\n });\n };\n }\n };\n};\nvar semigroupEffectFn1 = function (dictSemigroup) {\n return {\n append: function (f1) {\n return function (f2) {\n return $foreign.mkEffectFn1(function (a) {\n return Data_Semigroup.append(Effect.semigroupEffect(dictSemigroup))($foreign.runEffectFn1(f1)(a))($foreign.runEffectFn1(f2)(a));\n });\n };\n }\n };\n};\nvar monoidEffectFn9 = function (dictMonoid) {\n return {\n mempty: $foreign.mkEffectFn9(function (v) {\n return function (v1) {\n return function (v2) {\n return function (v3) {\n return function (v4) {\n return function (v5) {\n return function (v6) {\n return function (v7) {\n return function (v8) {\n return Data_Monoid.mempty(Effect.monoidEffect(dictMonoid));\n };\n };\n };\n };\n };\n };\n };\n };\n }),\n Semigroup0: function () {\n return semigroupEffectFn9(dictMonoid.Semigroup0());\n }\n };\n};\nvar monoidEffectFn8 = function (dictMonoid) {\n return {\n mempty: $foreign.mkEffectFn8(function (v) {\n return function (v1) {\n return function (v2) {\n return function (v3) {\n return function (v4) {\n return function (v5) {\n return function (v6) {\n return function (v7) {\n return Data_Monoid.mempty(Effect.monoidEffect(dictMonoid));\n };\n };\n };\n };\n };\n };\n };\n }),\n Semigroup0: function () {\n return semigroupEffectFn8(dictMonoid.Semigroup0());\n }\n };\n};\nvar monoidEffectFn7 = function (dictMonoid) {\n return {\n mempty: $foreign.mkEffectFn7(function (v) {\n return function (v1) {\n return function (v2) {\n return function (v3) {\n return function (v4) {\n return function (v5) {\n return function (v6) {\n return Data_Monoid.mempty(Effect.monoidEffect(dictMonoid));\n };\n };\n };\n };\n };\n };\n }),\n Semigroup0: function () {\n return semigroupEffectFn7(dictMonoid.Semigroup0());\n }\n };\n};\nvar monoidEffectFn6 = function (dictMonoid) {\n return {\n mempty: $foreign.mkEffectFn6(function (v) {\n return function (v1) {\n return function (v2) {\n return function (v3) {\n return function (v4) {\n return function (v5) {\n return Data_Monoid.mempty(Effect.monoidEffect(dictMonoid));\n };\n };\n };\n };\n };\n }),\n Semigroup0: function () {\n return semigroupEffectFn6(dictMonoid.Semigroup0());\n }\n };\n};\nvar monoidEffectFn5 = function (dictMonoid) {\n return {\n mempty: $foreign.mkEffectFn5(function (v) {\n return function (v1) {\n return function (v2) {\n return function (v3) {\n return function (v4) {\n return Data_Monoid.mempty(Effect.monoidEffect(dictMonoid));\n };\n };\n };\n };\n }),\n Semigroup0: function () {\n return semigroupEffectFn5(dictMonoid.Semigroup0());\n }\n };\n};\nvar monoidEffectFn4 = function (dictMonoid) {\n return {\n mempty: $foreign.mkEffectFn4(function (v) {\n return function (v1) {\n return function (v2) {\n return function (v3) {\n return Data_Monoid.mempty(Effect.monoidEffect(dictMonoid));\n };\n };\n };\n }),\n Semigroup0: function () {\n return semigroupEffectFn4(dictMonoid.Semigroup0());\n }\n };\n};\nvar monoidEffectFn3 = function (dictMonoid) {\n return {\n mempty: $foreign.mkEffectFn3(function (v) {\n return function (v1) {\n return function (v2) {\n return Data_Monoid.mempty(Effect.monoidEffect(dictMonoid));\n };\n };\n }),\n Semigroup0: function () {\n return semigroupEffectFn3(dictMonoid.Semigroup0());\n }\n };\n};\nvar monoidEffectFn2 = function (dictMonoid) {\n return {\n mempty: $foreign.mkEffectFn2(function (v) {\n return function (v1) {\n return Data_Monoid.mempty(Effect.monoidEffect(dictMonoid));\n };\n }),\n Semigroup0: function () {\n return semigroupEffectFn2(dictMonoid.Semigroup0());\n }\n };\n};\nvar monoidEffectFn10 = function (dictMonoid) {\n return {\n mempty: $foreign.mkEffectFn10(function (v) {\n return function (v1) {\n return function (v2) {\n return function (v3) {\n return function (v4) {\n return function (v5) {\n return function (v6) {\n return function (v7) {\n return function (v8) {\n return function (v9) {\n return Data_Monoid.mempty(Effect.monoidEffect(dictMonoid));\n };\n };\n };\n };\n };\n };\n };\n };\n };\n }),\n Semigroup0: function () {\n return semigroupEffectFn10(dictMonoid.Semigroup0());\n }\n };\n};\nvar monoidEffectFn1 = function (dictMonoid) {\n return {\n mempty: $foreign.mkEffectFn1(function (v) {\n return Data_Monoid.mempty(Effect.monoidEffect(dictMonoid));\n }),\n Semigroup0: function () {\n return semigroupEffectFn1(dictMonoid.Semigroup0());\n }\n };\n};\nexport {\n mkEffectFn1,\n mkEffectFn2,\n mkEffectFn3,\n mkEffectFn4,\n mkEffectFn5,\n mkEffectFn6,\n mkEffectFn7,\n mkEffectFn8,\n mkEffectFn9,\n mkEffectFn10,\n runEffectFn1,\n runEffectFn2,\n runEffectFn3,\n runEffectFn4,\n runEffectFn5,\n runEffectFn6,\n runEffectFn7,\n runEffectFn8,\n runEffectFn9,\n runEffectFn10\n} from \"./foreign.js\";\nexport {\n semigroupEffectFn1,\n semigroupEffectFn2,\n semigroupEffectFn3,\n semigroupEffectFn4,\n semigroupEffectFn5,\n semigroupEffectFn6,\n semigroupEffectFn7,\n semigroupEffectFn8,\n semigroupEffectFn9,\n semigroupEffectFn10,\n monoidEffectFn1,\n monoidEffectFn2,\n monoidEffectFn3,\n monoidEffectFn4,\n monoidEffectFn5,\n monoidEffectFn6,\n monoidEffectFn7,\n monoidEffectFn8,\n monoidEffectFn9,\n monoidEffectFn10\n};\n","// Generated by purs version 0.15.2\nimport * as $foreign from \"./foreign.js\";\nimport * as Affjax_RequestBody from \"../Affjax.RequestBody/index.js\";\nimport * as Affjax_RequestHeader from \"../Affjax.RequestHeader/index.js\";\nimport * as Affjax_ResponseFormat from \"../Affjax.ResponseFormat/index.js\";\nimport * as Affjax_ResponseHeader from \"../Affjax.ResponseHeader/index.js\";\nimport * as Control_Alt from \"../Control.Alt/index.js\";\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Control_Monad_Error_Class from \"../Control.Monad.Error.Class/index.js\";\nimport * as Control_Monad_Except from \"../Control.Monad.Except/index.js\";\nimport * as Control_Monad_Except_Trans from \"../Control.Monad.Except.Trans/index.js\";\nimport * as Data_Argonaut_Core from \"../Data.Argonaut.Core/index.js\";\nimport * as Data_Argonaut_Parser from \"../Data.Argonaut.Parser/index.js\";\nimport * as Data_Array from \"../Data.Array/index.js\";\nimport * as Data_Either from \"../Data.Either/index.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Foldable from \"../Data.Foldable/index.js\";\nimport * as Data_FormURLEncoded from \"../Data.FormURLEncoded/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_HTTP_Method from \"../Data.HTTP.Method/index.js\";\nimport * as Data_HeytingAlgebra from \"../Data.HeytingAlgebra/index.js\";\nimport * as Data_Identity from \"../Data.Identity/index.js\";\nimport * as Data_List_NonEmpty from \"../Data.List.NonEmpty/index.js\";\nimport * as Data_List_Types from \"../Data.List.Types/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Nullable from \"../Data.Nullable/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nimport * as Effect_Aff from \"../Effect.Aff/index.js\";\nimport * as Effect_Aff_Compat from \"../Effect.Aff.Compat/index.js\";\nimport * as Effect_Exception from \"../Effect.Exception/index.js\";\nimport * as Foreign from \"../Foreign/index.js\";\nvar RequestContentError = /* #__PURE__ */ (function () {\n function RequestContentError(value0) {\n this.value0 = value0;\n };\n RequestContentError.create = function (value0) {\n return new RequestContentError(value0);\n };\n return RequestContentError;\n})();\nvar ResponseBodyError = /* #__PURE__ */ (function () {\n function ResponseBodyError(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n ResponseBodyError.create = function (value0) {\n return function (value1) {\n return new ResponseBodyError(value0, value1);\n };\n };\n return ResponseBodyError;\n})();\nvar TimeoutError = /* #__PURE__ */ (function () {\n function TimeoutError() {\n\n };\n TimeoutError.value = new TimeoutError();\n return TimeoutError;\n})();\nvar RequestFailedError = /* #__PURE__ */ (function () {\n function RequestFailedError() {\n\n };\n RequestFailedError.value = new RequestFailedError();\n return RequestFailedError;\n})();\nvar XHROtherError = /* #__PURE__ */ (function () {\n function XHROtherError(value0) {\n this.value0 = value0;\n };\n XHROtherError.create = function (value0) {\n return new XHROtherError(value0);\n };\n return XHROtherError;\n})();\nvar request = function (driver) {\n return function (req) {\n var parseJSON = function (v) {\n if (v === \"\") {\n return Control_Applicative.pure(Control_Monad_Except_Trans.applicativeExceptT(Data_Identity.monadIdentity))(Data_Argonaut_Core.jsonEmptyObject);\n };\n return Data_Either.either((function () {\n var $51 = Foreign.fail(Data_Identity.monadIdentity);\n return function ($52) {\n return $51(Foreign.ForeignError.create($52));\n };\n })())(Control_Applicative.pure(Control_Monad_Except_Trans.applicativeExceptT(Data_Identity.monadIdentity)))(Data_Argonaut_Parser.jsonParser(v));\n };\n var fromResponse = (function () {\n if (req.responseFormat instanceof Affjax_ResponseFormat[\"ArrayBuffer\"]) {\n return Foreign.unsafeReadTagged(Data_Identity.monadIdentity)(\"ArrayBuffer\");\n };\n if (req.responseFormat instanceof Affjax_ResponseFormat.Blob) {\n return Foreign.unsafeReadTagged(Data_Identity.monadIdentity)(\"Blob\");\n };\n if (req.responseFormat instanceof Affjax_ResponseFormat.Document) {\n return function (x) {\n return Control_Alt.alt(Control_Monad_Except_Trans.altExceptT(Data_List_Types.semigroupNonEmptyList)(Data_Identity.monadIdentity))(Foreign.unsafeReadTagged(Data_Identity.monadIdentity)(\"Document\")(x))(Control_Alt.alt(Control_Monad_Except_Trans.altExceptT(Data_List_Types.semigroupNonEmptyList)(Data_Identity.monadIdentity))(Foreign.unsafeReadTagged(Data_Identity.monadIdentity)(\"XMLDocument\")(x))(Foreign.unsafeReadTagged(Data_Identity.monadIdentity)(\"HTMLDocument\")(x)));\n };\n };\n if (req.responseFormat instanceof Affjax_ResponseFormat.Json) {\n return Control_Bind.composeKleisliFlipped(Control_Monad_Except_Trans.bindExceptT(Data_Identity.monadIdentity))(function ($53) {\n return req.responseFormat.value0(parseJSON($53));\n })(Foreign.unsafeReadTagged(Data_Identity.monadIdentity)(\"String\"));\n };\n if (req.responseFormat instanceof Affjax_ResponseFormat[\"String\"]) {\n return Foreign.unsafeReadTagged(Data_Identity.monadIdentity)(\"String\");\n };\n if (req.responseFormat instanceof Affjax_ResponseFormat.Ignore) {\n return Data_Function[\"const\"](req.responseFormat.value0(Control_Applicative.pure(Control_Monad_Except_Trans.applicativeExceptT(Data_Identity.monadIdentity))(Data_Unit.unit)));\n };\n throw new Error(\"Failed pattern match at Affjax (line 274, column 18 - line 283, column 57): \" + [ req.responseFormat.constructor.name ]);\n })();\n var extractContent = function (v) {\n if (v instanceof Affjax_RequestBody.ArrayView) {\n return new Data_Either.Right(v.value0(Foreign.unsafeToForeign));\n };\n if (v instanceof Affjax_RequestBody.Blob) {\n return new Data_Either.Right(Foreign.unsafeToForeign(v.value0));\n };\n if (v instanceof Affjax_RequestBody.Document) {\n return new Data_Either.Right(Foreign.unsafeToForeign(v.value0));\n };\n if (v instanceof Affjax_RequestBody[\"String\"]) {\n return new Data_Either.Right(Foreign.unsafeToForeign(v.value0));\n };\n if (v instanceof Affjax_RequestBody.FormData) {\n return new Data_Either.Right(Foreign.unsafeToForeign(v.value0));\n };\n if (v instanceof Affjax_RequestBody.FormURLEncoded) {\n return Data_Either.note(\"Body contains values that cannot be encoded as application/x-www-form-urlencoded\")(Data_Functor.map(Data_Maybe.functorMaybe)(Foreign.unsafeToForeign)(Data_FormURLEncoded.encode(v.value0)));\n };\n if (v instanceof Affjax_RequestBody.Json) {\n return new Data_Either.Right(Foreign.unsafeToForeign(Data_Argonaut_Core.stringify(v.value0)));\n };\n throw new Error(\"Failed pattern match at Affjax (line 235, column 20 - line 250, column 69): \" + [ v.constructor.name ]);\n };\n var addHeader = function (mh) {\n return function (hs) {\n if (mh instanceof Data_Maybe.Just && !Data_Foldable.any(Data_Foldable.foldableArray)(Data_HeytingAlgebra.heytingAlgebraBoolean)(Data_Function.on(Data_Eq.eq(Data_Eq.eqString))(Affjax_RequestHeader.name)(mh.value0))(hs)) {\n return Data_Array.snoc(hs)(mh.value0);\n };\n return hs;\n };\n };\n var headers = function (reqContent) {\n return addHeader(Data_Functor.map(Data_Maybe.functorMaybe)(Affjax_RequestHeader.ContentType.create)(Control_Bind.bindFlipped(Data_Maybe.bindMaybe)(Affjax_RequestBody.toMediaType)(reqContent)))(addHeader(Data_Functor.map(Data_Maybe.functorMaybe)(Affjax_RequestHeader.Accept.create)(Affjax_ResponseFormat.toMediaType(req.responseFormat)))(req.headers));\n };\n var ajaxRequest = function (v) {\n return {\n method: Data_HTTP_Method.print(req.method),\n url: req.url,\n headers: Data_Functor.map(Data_Functor.functorArray)(function (h) {\n return {\n field: Affjax_RequestHeader.name(h),\n value: Affjax_RequestHeader.value(h)\n };\n })(headers(req.content)),\n content: v,\n responseType: Affjax_ResponseFormat.toResponseType(req.responseFormat),\n username: Data_Nullable.toNullable(req.username),\n password: Data_Nullable.toNullable(req.password),\n withCredentials: req.withCredentials,\n timeout: Data_Maybe.fromMaybe(0.0)(Data_Functor.map(Data_Maybe.functorMaybe)(function (v1) {\n return v1;\n })(req.timeout))\n };\n };\n var send = function (content) {\n return Data_Functor.mapFlipped(Effect_Aff.functorAff)(Control_Monad_Error_Class[\"try\"](Effect_Aff.monadErrorAff)(Effect_Aff_Compat.fromEffectFnAff($foreign[\"_ajax\"](driver, \"AffjaxTimeoutErrorMessageIdent\", \"AffjaxRequestFailedMessageIdent\", Affjax_ResponseHeader.ResponseHeader.create, ajaxRequest(content)))))(function (v) {\n if (v instanceof Data_Either.Right) {\n var v1 = Control_Monad_Except.runExcept(fromResponse(v.value0.body));\n if (v1 instanceof Data_Either.Left) {\n return new Data_Either.Left(new ResponseBodyError(Data_List_NonEmpty.head(v1.value0), v.value0));\n };\n if (v1 instanceof Data_Either.Right) {\n return new Data_Either.Right({\n body: v1.value0,\n headers: v.value0.headers,\n status: v.value0.status,\n statusText: v.value0.statusText\n });\n };\n throw new Error(\"Failed pattern match at Affjax (line 209, column 9 - line 211, column 52): \" + [ v1.constructor.name ]);\n };\n if (v instanceof Data_Either.Left) {\n return new Data_Either.Left((function () {\n var message = Effect_Exception.message(v.value0);\n var $38 = message === \"AffjaxTimeoutErrorMessageIdent\";\n if ($38) {\n return TimeoutError.value;\n };\n var $39 = message === \"AffjaxRequestFailedMessageIdent\";\n if ($39) {\n return RequestFailedError.value;\n };\n return new XHROtherError(v.value0);\n })());\n };\n throw new Error(\"Failed pattern match at Affjax (line 207, column 144 - line 219, column 28): \" + [ v.constructor.name ]);\n });\n };\n if (req.content instanceof Data_Maybe.Nothing) {\n return send(Data_Nullable.toNullable(Data_Maybe.Nothing.value));\n };\n if (req.content instanceof Data_Maybe.Just) {\n var v = extractContent(req.content.value0);\n if (v instanceof Data_Either.Right) {\n return send(Data_Nullable.toNullable(new Data_Maybe.Just(v.value0)));\n };\n if (v instanceof Data_Either.Left) {\n return Control_Applicative.pure(Effect_Aff.applicativeAff)(new Data_Either.Left(new RequestContentError(v.value0)));\n };\n throw new Error(\"Failed pattern match at Affjax (line 199, column 7 - line 203, column 48): \" + [ v.constructor.name ]);\n };\n throw new Error(\"Failed pattern match at Affjax (line 195, column 3 - line 203, column 48): \" + [ req.content.constructor.name ]);\n };\n};\nvar printError = function (v) {\n if (v instanceof RequestContentError) {\n return \"There was a problem with the request content: \" + v.value0;\n };\n if (v instanceof ResponseBodyError) {\n return \"There was a problem with the response body: \" + Foreign.renderForeignError(v.value0);\n };\n if (v instanceof TimeoutError) {\n return \"There was a problem making the request: timeout\";\n };\n if (v instanceof RequestFailedError) {\n return \"There was a problem making the request: request failed\";\n };\n if (v instanceof XHROtherError) {\n return \"There was a problem making the request: \" + Effect_Exception.message(v.value0);\n };\n throw new Error(\"Failed pattern match at Affjax (line 113, column 14 - line 123, column 66): \" + [ v.constructor.name ]);\n};\nvar defaultRequest = /* #__PURE__ */ (function () {\n return {\n method: new Data_Either.Left(Data_HTTP_Method.GET.value),\n url: \"/\",\n headers: [ ],\n content: Data_Maybe.Nothing.value,\n username: Data_Maybe.Nothing.value,\n password: Data_Maybe.Nothing.value,\n withCredentials: false,\n responseFormat: Affjax_ResponseFormat.ignore,\n timeout: Data_Maybe.Nothing.value\n };\n})();\nvar $$delete = function (driver) {\n return function (rf) {\n return function (u) {\n return request(driver)({\n method: new Data_Either.Left(Data_HTTP_Method.DELETE.value),\n url: u,\n headers: defaultRequest.headers,\n content: defaultRequest.content,\n username: defaultRequest.username,\n password: defaultRequest.password,\n withCredentials: defaultRequest.withCredentials,\n responseFormat: rf,\n timeout: defaultRequest.timeout\n });\n };\n };\n};\nvar delete_ = function (driver) {\n var $54 = Data_Functor.map(Effect_Aff.functorAff)(Data_Functor[\"void\"](Data_Either.functorEither));\n var $55 = $$delete(driver)(Affjax_ResponseFormat.ignore);\n return function ($56) {\n return $54($55($56));\n };\n};\nvar get = function (driver) {\n return function (rf) {\n return function (u) {\n return request(driver)({\n method: defaultRequest.method,\n url: u,\n headers: defaultRequest.headers,\n content: defaultRequest.content,\n username: defaultRequest.username,\n password: defaultRequest.password,\n withCredentials: defaultRequest.withCredentials,\n responseFormat: rf,\n timeout: defaultRequest.timeout\n });\n };\n };\n};\nvar patch = function (driver) {\n return function (rf) {\n return function (u) {\n return function (c) {\n return request(driver)({\n method: new Data_Either.Left(Data_HTTP_Method.PATCH.value),\n url: u,\n headers: defaultRequest.headers,\n content: new Data_Maybe.Just(c),\n username: defaultRequest.username,\n password: defaultRequest.password,\n withCredentials: defaultRequest.withCredentials,\n responseFormat: rf,\n timeout: defaultRequest.timeout\n });\n };\n };\n };\n};\nvar patch_ = function (driver) {\n return function (url) {\n var $57 = Data_Functor.map(Effect_Aff.functorAff)(Data_Functor[\"void\"](Data_Either.functorEither));\n var $58 = patch(driver)(Affjax_ResponseFormat.ignore)(url);\n return function ($59) {\n return $57($58($59));\n };\n };\n};\nvar post = function (driver) {\n return function (rf) {\n return function (u) {\n return function (c) {\n return request(driver)({\n method: new Data_Either.Left(Data_HTTP_Method.POST.value),\n url: u,\n headers: defaultRequest.headers,\n content: c,\n username: defaultRequest.username,\n password: defaultRequest.password,\n withCredentials: defaultRequest.withCredentials,\n responseFormat: rf,\n timeout: defaultRequest.timeout\n });\n };\n };\n };\n};\nvar post_ = function (driver) {\n return function (url) {\n var $60 = Data_Functor.map(Effect_Aff.functorAff)(Data_Functor[\"void\"](Data_Either.functorEither));\n var $61 = post(driver)(Affjax_ResponseFormat.ignore)(url);\n return function ($62) {\n return $60($61($62));\n };\n };\n};\nvar put = function (driver) {\n return function (rf) {\n return function (u) {\n return function (c) {\n return request(driver)({\n method: new Data_Either.Left(Data_HTTP_Method.PUT.value),\n url: u,\n headers: defaultRequest.headers,\n content: c,\n username: defaultRequest.username,\n password: defaultRequest.password,\n withCredentials: defaultRequest.withCredentials,\n responseFormat: rf,\n timeout: defaultRequest.timeout\n });\n };\n };\n };\n};\nvar put_ = function (driver) {\n return function (url) {\n var $63 = Data_Functor.map(Effect_Aff.functorAff)(Data_Functor[\"void\"](Data_Either.functorEither));\n var $64 = put(driver)(Affjax_ResponseFormat.ignore)(url);\n return function ($65) {\n return $63($64($65));\n };\n };\n};\nexport {\n defaultRequest,\n RequestContentError,\n ResponseBodyError,\n TimeoutError,\n RequestFailedError,\n XHROtherError,\n printError,\n request,\n get,\n post,\n post_,\n put,\n put_,\n $$delete as delete,\n delete_,\n patch,\n patch_\n};\n","// Generated by purs version 0.15.2\nimport * as Data_Either from \"../Data.Either/index.js\";\nimport * as Effect_Aff from \"../Effect.Aff/index.js\";\nimport * as Effect_Uncurried from \"../Effect.Uncurried/index.js\";\nvar EffectFnCanceler = function (x) {\n return x;\n};\nvar EffectFnAff = function (x) {\n return x;\n};\nvar fromEffectFnAff = function (v) {\n return Effect_Aff.makeAff(function (k) {\n return function __do() {\n var v1 = v(function ($4) {\n return k(Data_Either.Left.create($4))();\n }, function ($5) {\n return k(Data_Either.Right.create($5))();\n });\n return function (e) {\n return Effect_Aff.makeAff(function (k2) {\n return function __do() {\n v1(e, function ($6) {\n return k2(Data_Either.Left.create($6))();\n }, function ($7) {\n return k2(Data_Either.Right.create($7))();\n });\n return Effect_Aff.nonCanceler;\n };\n });\n };\n };\n });\n};\nexport {\n EffectFnAff,\n EffectFnCanceler,\n fromEffectFnAff\n};\nexport {\n mkEffectFn1,\n mkEffectFn2,\n mkEffectFn3,\n runEffectFn1,\n runEffectFn2,\n runEffectFn3\n} from \"../Effect.Uncurried/index.js\";\n","export function _ajax(platformSpecificDriver, timeoutErrorMessageIdent, requestFailedMessageIdent, mkHeader, options) {\n return function (errback, callback) {\n var xhr = platformSpecificDriver.newXHR();\n var fixedUrl = platformSpecificDriver.fixupUrl(options.url, xhr);\n xhr.open(options.method || \"GET\", fixedUrl, true, options.username, options.password);\n if (options.headers) {\n try {\n // eslint-disable-next-line no-eq-null,eqeqeq\n for (var i = 0, header; (header = options.headers[i]) != null; i++) {\n xhr.setRequestHeader(header.field, header.value);\n }\n } catch (e) {\n errback(e);\n }\n }\n var onerror = function (msgIdent) {\n return function () {\n errback(new Error(msgIdent));\n };\n };\n xhr.onerror = onerror(requestFailedMessageIdent);\n xhr.ontimeout = onerror(timeoutErrorMessageIdent);\n xhr.onload = function () {\n callback({\n status: xhr.status,\n statusText: xhr.statusText,\n headers: xhr.getAllResponseHeaders().split(\"\\r\\n\")\n .filter(function (header) {\n return header.length > 0;\n })\n .map(function (header) {\n var i = header.indexOf(\":\");\n return mkHeader(header.substring(0, i))(header.substring(i + 2));\n }),\n body: xhr.response\n });\n };\n xhr.responseType = options.responseType;\n xhr.withCredentials = options.withCredentials;\n xhr.timeout = options.timeout;\n xhr.send(options.content);\n\n return function (error, cancelErrback, cancelCallback) {\n try {\n xhr.abort();\n } catch (e) {\n return cancelErrback(e);\n }\n return cancelCallback();\n };\n };\n}\n","export const driver = {\n newXHR: function () {\n return new XMLHttpRequest();\n },\n fixupUrl: function (url) {\n return url || \"/\";\n }\n};\n","// Generated by purs version 0.15.2\nimport * as $foreign from \"./foreign.js\";\nimport * as Affjax from \"../Affjax/index.js\";\nvar request = /* #__PURE__ */ Affjax.request($foreign.driver);\nvar put_ = /* #__PURE__ */ Affjax.put_($foreign.driver);\nvar put = /* #__PURE__ */ Affjax.put($foreign.driver);\nvar post_ = /* #__PURE__ */ Affjax.post_($foreign.driver);\nvar post = /* #__PURE__ */ Affjax.post($foreign.driver);\nvar patch_ = /* #__PURE__ */ Affjax.patch_($foreign.driver);\nvar patch = /* #__PURE__ */ Affjax.patch($foreign.driver);\nvar get = /* #__PURE__ */ Affjax.get($foreign.driver);\nvar delete_ = /* #__PURE__ */ Affjax.delete_($foreign.driver);\nvar $$delete = /* #__PURE__ */ Affjax[\"delete\"]($foreign.driver);\nexport {\n driver\n} from \"./foreign.js\";\nexport {\n request,\n get,\n post,\n post_,\n put,\n put_,\n $$delete as delete,\n delete_,\n patch,\n patch_\n};\nexport {\n RequestContentError,\n RequestFailedError,\n ResponseBodyError,\n TimeoutError,\n XHROtherError,\n defaultRequest,\n printError\n} from \"../Affjax/index.js\";\n","// Generated by purs version 0.15.2\nimport * as $foreign from \"./foreign.js\";\nimport * as Control_Apply from \"../Control.Apply/index.js\";\nimport * as Data_Bounded from \"../Data.Bounded/index.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_EuclideanRing from \"../Data.EuclideanRing/index.js\";\nimport * as Data_Foldable from \"../Data.Foldable/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Functor_Invariant from \"../Data.Functor.Invariant/index.js\";\nimport * as Data_HeytingAlgebra from \"../Data.HeytingAlgebra/index.js\";\nimport * as Data_Monoid from \"../Data.Monoid/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Data_Ring from \"../Data.Ring/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nimport * as Data_Semiring from \"../Data.Semiring/index.js\";\nimport * as Data_Show from \"../Data.Show/index.js\";\nimport * as Data_Traversable from \"../Data.Traversable/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nvar showLazy = function (dictShow) {\n return {\n show: function (x) {\n return \"(defer \\\\_ -> \" + (Data_Show.show(dictShow)($foreign.force(x)) + \")\");\n }\n };\n};\nvar semiringLazy = function (dictSemiring) {\n return {\n add: function (a) {\n return function (b) {\n return $foreign.defer(function (v) {\n return Data_Semiring.add(dictSemiring)($foreign.force(a))($foreign.force(b));\n });\n };\n },\n zero: $foreign.defer(function (v) {\n return Data_Semiring.zero(dictSemiring);\n }),\n mul: function (a) {\n return function (b) {\n return $foreign.defer(function (v) {\n return Data_Semiring.mul(dictSemiring)($foreign.force(a))($foreign.force(b));\n });\n };\n },\n one: $foreign.defer(function (v) {\n return Data_Semiring.one(dictSemiring);\n })\n };\n};\nvar semigroupLazy = function (dictSemigroup) {\n return {\n append: function (a) {\n return function (b) {\n return $foreign.defer(function (v) {\n return Data_Semigroup.append(dictSemigroup)($foreign.force(a))($foreign.force(b));\n });\n };\n }\n };\n};\nvar ringLazy = function (dictRing) {\n return {\n sub: function (a) {\n return function (b) {\n return $foreign.defer(function (v) {\n return Data_Ring.sub(dictRing)($foreign.force(a))($foreign.force(b));\n });\n };\n },\n Semiring0: function () {\n return semiringLazy(dictRing.Semiring0());\n }\n };\n};\nvar monoidLazy = function (dictMonoid) {\n return {\n mempty: $foreign.defer(function (v) {\n return Data_Monoid.mempty(dictMonoid);\n }),\n Semigroup0: function () {\n return semigroupLazy(dictMonoid.Semigroup0());\n }\n };\n};\nvar lazyLazy = {\n defer: function (f) {\n return $foreign.defer(function (v) {\n return $foreign.force(f(Data_Unit.unit));\n });\n }\n};\nvar functorLazy = {\n map: function (f) {\n return function (l) {\n return $foreign.defer(function (v) {\n return f($foreign.force(l));\n });\n };\n }\n};\nvar functorWithIndexLazy = {\n mapWithIndex: function (f) {\n return Data_Functor.map(functorLazy)(f(Data_Unit.unit));\n },\n Functor0: function () {\n return functorLazy;\n }\n};\nvar invariantLazy = {\n imap: /* #__PURE__ */ Data_Functor_Invariant.imapF(functorLazy)\n};\nvar foldableLazy = {\n foldr: function (f) {\n return function (z) {\n return function (l) {\n return f($foreign.force(l))(z);\n };\n };\n },\n foldl: function (f) {\n return function (z) {\n return function (l) {\n return f(z)($foreign.force(l));\n };\n };\n },\n foldMap: function (dictMonoid) {\n return function (f) {\n return function (l) {\n return f($foreign.force(l));\n };\n };\n }\n};\nvar foldableWithIndexLazy = {\n foldrWithIndex: function (f) {\n return Data_Foldable.foldr(foldableLazy)(f(Data_Unit.unit));\n },\n foldlWithIndex: function (f) {\n return Data_Foldable.foldl(foldableLazy)(f(Data_Unit.unit));\n },\n foldMapWithIndex: function (dictMonoid) {\n return function (f) {\n return Data_Foldable.foldMap(foldableLazy)(dictMonoid)(f(Data_Unit.unit));\n };\n },\n Foldable0: function () {\n return foldableLazy;\n }\n};\nvar traversableLazy = {\n traverse: function (dictApplicative) {\n return function (f) {\n return function (l) {\n return Data_Functor.map((dictApplicative.Apply0()).Functor0())(function ($43) {\n return $foreign.defer(Data_Function[\"const\"]($43));\n })(f($foreign.force(l)));\n };\n };\n },\n sequence: function (dictApplicative) {\n return function (l) {\n return Data_Functor.map((dictApplicative.Apply0()).Functor0())(function ($44) {\n return $foreign.defer(Data_Function[\"const\"]($44));\n })($foreign.force(l));\n };\n },\n Functor0: function () {\n return functorLazy;\n },\n Foldable1: function () {\n return foldableLazy;\n }\n};\nvar traversableWithIndexLazy = {\n traverseWithIndex: function (dictApplicative) {\n return function (f) {\n return Data_Traversable.traverse(traversableLazy)(dictApplicative)(f(Data_Unit.unit));\n };\n },\n FunctorWithIndex0: function () {\n return functorWithIndexLazy;\n },\n FoldableWithIndex1: function () {\n return foldableWithIndexLazy;\n },\n Traversable2: function () {\n return traversableLazy;\n }\n};\nvar foldable1Lazy = {\n foldMap1: function (dictSemigroup) {\n return function (f) {\n return function (l) {\n return f($foreign.force(l));\n };\n };\n },\n foldr1: function (v) {\n return function (l) {\n return $foreign.force(l);\n };\n },\n foldl1: function (v) {\n return function (l) {\n return $foreign.force(l);\n };\n },\n Foldable0: function () {\n return foldableLazy;\n }\n};\nvar traversable1Lazy = {\n traverse1: function (dictApply) {\n return function (f) {\n return function (l) {\n return Data_Functor.map(dictApply.Functor0())(function ($45) {\n return $foreign.defer(Data_Function[\"const\"]($45));\n })(f($foreign.force(l)));\n };\n };\n },\n sequence1: function (dictApply) {\n return function (l) {\n return Data_Functor.map(dictApply.Functor0())(function ($46) {\n return $foreign.defer(Data_Function[\"const\"]($46));\n })($foreign.force(l));\n };\n },\n Foldable10: function () {\n return foldable1Lazy;\n },\n Traversable1: function () {\n return traversableLazy;\n }\n};\nvar extendLazy = {\n extend: function (f) {\n return function (x) {\n return $foreign.defer(function (v) {\n return f(x);\n });\n };\n },\n Functor0: function () {\n return functorLazy;\n }\n};\nvar eqLazy = function (dictEq) {\n return {\n eq: function (x) {\n return function (y) {\n return Data_Eq.eq(dictEq)($foreign.force(x))($foreign.force(y));\n };\n }\n };\n};\nvar ordLazy = function (dictOrd) {\n return {\n compare: function (x) {\n return function (y) {\n return Data_Ord.compare(dictOrd)($foreign.force(x))($foreign.force(y));\n };\n },\n Eq0: function () {\n return eqLazy(dictOrd.Eq0());\n }\n };\n};\nvar eq1Lazy = {\n eq1: function (dictEq) {\n return Data_Eq.eq(eqLazy(dictEq));\n }\n};\nvar ord1Lazy = {\n compare1: function (dictOrd) {\n return Data_Ord.compare(ordLazy(dictOrd));\n },\n Eq10: function () {\n return eq1Lazy;\n }\n};\nvar comonadLazy = {\n extract: $foreign.force,\n Extend0: function () {\n return extendLazy;\n }\n};\nvar commutativeRingLazy = function (dictCommutativeRing) {\n return {\n Ring0: function () {\n return ringLazy(dictCommutativeRing.Ring0());\n }\n };\n};\nvar euclideanRingLazy = function (dictEuclideanRing) {\n return {\n degree: (function () {\n var $47 = Data_EuclideanRing.degree(dictEuclideanRing);\n return function ($48) {\n return $47($foreign.force($48));\n };\n })(),\n div: function (a) {\n return function (b) {\n return $foreign.defer(function (v) {\n return Data_EuclideanRing.div(dictEuclideanRing)($foreign.force(a))($foreign.force(b));\n });\n };\n },\n mod: function (a) {\n return function (b) {\n return $foreign.defer(function (v) {\n return Data_EuclideanRing.mod(dictEuclideanRing)($foreign.force(a))($foreign.force(b));\n });\n };\n },\n CommutativeRing0: function () {\n return commutativeRingLazy(dictEuclideanRing.CommutativeRing0());\n }\n };\n};\nvar boundedLazy = function (dictBounded) {\n return {\n top: $foreign.defer(function (v) {\n return Data_Bounded.top(dictBounded);\n }),\n bottom: $foreign.defer(function (v) {\n return Data_Bounded.bottom(dictBounded);\n }),\n Ord0: function () {\n return ordLazy(dictBounded.Ord0());\n }\n };\n};\nvar applyLazy = {\n apply: function (f) {\n return function (x) {\n return $foreign.defer(function (v) {\n return $foreign.force(f)($foreign.force(x));\n });\n };\n },\n Functor0: function () {\n return functorLazy;\n }\n};\nvar bindLazy = {\n bind: function (l) {\n return function (f) {\n return $foreign.defer(function (v) {\n return $foreign.force(f($foreign.force(l)));\n });\n };\n },\n Apply0: function () {\n return applyLazy;\n }\n};\nvar heytingAlgebraLazy = function (dictHeytingAlgebra) {\n return {\n ff: $foreign.defer(function (v) {\n return Data_HeytingAlgebra.ff(dictHeytingAlgebra);\n }),\n tt: $foreign.defer(function (v) {\n return Data_HeytingAlgebra.tt(dictHeytingAlgebra);\n }),\n implies: function (a) {\n return function (b) {\n return Control_Apply.apply(applyLazy)(Data_Functor.map(functorLazy)(Data_HeytingAlgebra.implies(dictHeytingAlgebra))(a))(b);\n };\n },\n conj: function (a) {\n return function (b) {\n return Control_Apply.apply(applyLazy)(Data_Functor.map(functorLazy)(Data_HeytingAlgebra.conj(dictHeytingAlgebra))(a))(b);\n };\n },\n disj: function (a) {\n return function (b) {\n return Control_Apply.apply(applyLazy)(Data_Functor.map(functorLazy)(Data_HeytingAlgebra.disj(dictHeytingAlgebra))(a))(b);\n };\n },\n not: function (a) {\n return Data_Functor.map(functorLazy)(Data_HeytingAlgebra.not(dictHeytingAlgebra))(a);\n }\n };\n};\nvar booleanAlgebraLazy = function (dictBooleanAlgebra) {\n return {\n HeytingAlgebra0: function () {\n return heytingAlgebraLazy(dictBooleanAlgebra.HeytingAlgebra0());\n }\n };\n};\nvar applicativeLazy = {\n pure: function (a) {\n return $foreign.defer(function (v) {\n return a;\n });\n },\n Apply0: function () {\n return applyLazy;\n }\n};\nvar monadLazy = {\n Applicative0: function () {\n return applicativeLazy;\n },\n Bind1: function () {\n return bindLazy;\n }\n};\nexport {\n defer,\n force\n} from \"./foreign.js\";\nexport {\n semiringLazy,\n ringLazy,\n commutativeRingLazy,\n euclideanRingLazy,\n eqLazy,\n eq1Lazy,\n ordLazy,\n ord1Lazy,\n boundedLazy,\n semigroupLazy,\n monoidLazy,\n heytingAlgebraLazy,\n booleanAlgebraLazy,\n functorLazy,\n functorWithIndexLazy,\n foldableLazy,\n foldableWithIndexLazy,\n foldable1Lazy,\n traversableLazy,\n traversableWithIndexLazy,\n traversable1Lazy,\n invariantLazy,\n applyLazy,\n applicativeLazy,\n bindLazy,\n monadLazy,\n extendLazy,\n comonadLazy,\n showLazy,\n lazyLazy\n};\n","// Generated by purs version 0.15.2\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Control_Monad_Cont_Trans from \"../Control.Monad.Cont.Trans/index.js\";\nimport * as Control_Monad_Except_Trans from \"../Control.Monad.Except.Trans/index.js\";\nimport * as Control_Monad_List_Trans from \"../Control.Monad.List.Trans/index.js\";\nimport * as Control_Monad_Maybe_Trans from \"../Control.Monad.Maybe.Trans/index.js\";\nimport * as Control_Monad_RWS_Trans from \"../Control.Monad.RWS.Trans/index.js\";\nimport * as Control_Monad_Reader_Trans from \"../Control.Monad.Reader.Trans/index.js\";\nimport * as Control_Monad_State_Trans from \"../Control.Monad.State.Trans/index.js\";\nimport * as Control_Monad_Trans_Class from \"../Control.Monad.Trans.Class/index.js\";\nimport * as Control_Monad_Writer_Trans from \"../Control.Monad.Writer.Trans/index.js\";\nimport * as Effect_Aff from \"../Effect.Aff/index.js\";\nvar monadAffAff = {\n liftAff: /* #__PURE__ */ Control_Category.identity(Control_Category.categoryFn),\n MonadEffect0: function () {\n return Effect_Aff.monadEffectAff;\n }\n};\nvar liftAff = function (dict) {\n return dict.liftAff;\n};\nvar monadAffContT = function (dictMonadAff) {\n return {\n liftAff: (function () {\n var $11 = Control_Monad_Trans_Class.lift(Control_Monad_Cont_Trans.monadTransContT)((dictMonadAff.MonadEffect0()).Monad0());\n var $12 = liftAff(dictMonadAff);\n return function ($13) {\n return $11($12($13));\n };\n })(),\n MonadEffect0: function () {\n return Control_Monad_Cont_Trans.monadEffectContT(dictMonadAff.MonadEffect0());\n }\n };\n};\nvar monadAffExceptT = function (dictMonadAff) {\n return {\n liftAff: (function () {\n var $14 = Control_Monad_Trans_Class.lift(Control_Monad_Except_Trans.monadTransExceptT)((dictMonadAff.MonadEffect0()).Monad0());\n var $15 = liftAff(dictMonadAff);\n return function ($16) {\n return $14($15($16));\n };\n })(),\n MonadEffect0: function () {\n return Control_Monad_Except_Trans.monadEffectExceptT(dictMonadAff.MonadEffect0());\n }\n };\n};\nvar monadAffListT = function (dictMonadAff) {\n return {\n liftAff: (function () {\n var $17 = Control_Monad_Trans_Class.lift(Control_Monad_List_Trans.monadTransListT)((dictMonadAff.MonadEffect0()).Monad0());\n var $18 = liftAff(dictMonadAff);\n return function ($19) {\n return $17($18($19));\n };\n })(),\n MonadEffect0: function () {\n return Control_Monad_List_Trans.monadEffectListT(dictMonadAff.MonadEffect0());\n }\n };\n};\nvar monadAffMaybe = function (dictMonadAff) {\n return {\n liftAff: (function () {\n var $20 = Control_Monad_Trans_Class.lift(Control_Monad_Maybe_Trans.monadTransMaybeT)((dictMonadAff.MonadEffect0()).Monad0());\n var $21 = liftAff(dictMonadAff);\n return function ($22) {\n return $20($21($22));\n };\n })(),\n MonadEffect0: function () {\n return Control_Monad_Maybe_Trans.monadEffectMaybe(dictMonadAff.MonadEffect0());\n }\n };\n};\nvar monadAffRWS = function (dictMonadAff) {\n return function (dictMonoid) {\n return {\n liftAff: (function () {\n var $23 = Control_Monad_Trans_Class.lift(Control_Monad_RWS_Trans.monadTransRWST(dictMonoid))((dictMonadAff.MonadEffect0()).Monad0());\n var $24 = liftAff(dictMonadAff);\n return function ($25) {\n return $23($24($25));\n };\n })(),\n MonadEffect0: function () {\n return Control_Monad_RWS_Trans.monadEffectRWS(dictMonoid)(dictMonadAff.MonadEffect0());\n }\n };\n };\n};\nvar monadAffReader = function (dictMonadAff) {\n return {\n liftAff: (function () {\n var $26 = Control_Monad_Trans_Class.lift(Control_Monad_Reader_Trans.monadTransReaderT)((dictMonadAff.MonadEffect0()).Monad0());\n var $27 = liftAff(dictMonadAff);\n return function ($28) {\n return $26($27($28));\n };\n })(),\n MonadEffect0: function () {\n return Control_Monad_Reader_Trans.monadEffectReader(dictMonadAff.MonadEffect0());\n }\n };\n};\nvar monadAffState = function (dictMonadAff) {\n return {\n liftAff: (function () {\n var $29 = Control_Monad_Trans_Class.lift(Control_Monad_State_Trans.monadTransStateT)((dictMonadAff.MonadEffect0()).Monad0());\n var $30 = liftAff(dictMonadAff);\n return function ($31) {\n return $29($30($31));\n };\n })(),\n MonadEffect0: function () {\n return Control_Monad_State_Trans.monadEffectState(dictMonadAff.MonadEffect0());\n }\n };\n};\nvar monadAffWriter = function (dictMonadAff) {\n return function (dictMonoid) {\n return {\n liftAff: (function () {\n var $32 = Control_Monad_Trans_Class.lift(Control_Monad_Writer_Trans.monadTransWriterT(dictMonoid))((dictMonadAff.MonadEffect0()).Monad0());\n var $33 = liftAff(dictMonadAff);\n return function ($34) {\n return $32($33($34));\n };\n })(),\n MonadEffect0: function () {\n return Control_Monad_Writer_Trans.monadEffectWriter(dictMonoid)(dictMonadAff.MonadEffect0());\n }\n };\n };\n};\nexport {\n liftAff,\n monadAffAff,\n monadAffContT,\n monadAffExceptT,\n monadAffListT,\n monadAffMaybe,\n monadAffReader,\n monadAffRWS,\n monadAffState,\n monadAffWriter\n};\n","// Generated by purs version 0.15.2\nimport * as Affjax from \"../Affjax/index.js\";\nimport * as Affjax_ResponseFormat from \"../Affjax.ResponseFormat/index.js\";\nimport * as Affjax_Web from \"../Affjax.Web/index.js\";\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Data_Either from \"../Data.Either/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Effect from \"../Effect/index.js\";\nimport * as Effect_Aff_Class from \"../Effect.Aff.Class/index.js\";\nimport * as Effect_Class from \"../Effect.Class/index.js\";\nimport * as Effect_Console from \"../Effect.Console/index.js\";\nvar fetchThroughProxy = function (dictMonadAff) {\n return function (url) {\n var corsUrl = \"https://api.codetabs.com/v1/proxy?quest=\" + url;\n return Control_Bind.bind(((dictMonadAff.MonadEffect0()).Monad0()).Bind1())(Effect_Aff_Class.liftAff(dictMonadAff)(Affjax_Web.get(Affjax_ResponseFormat.string)(corsUrl)))(function (response) {\n return Effect_Class.liftEffect(dictMonadAff.MonadEffect0())((function () {\n if (response instanceof Data_Either.Left) {\n return function __do() {\n Effect_Console.error(\"CORS Proxy response failed to decode: \" + Affjax.printError(response.value0))();\n return Data_Maybe.Nothing.value;\n };\n };\n if (response instanceof Data_Either.Right) {\n return Control_Applicative.pure(Effect.applicativeEffect)(new Data_Maybe.Just(response.value0.body));\n };\n throw new Error(\"Failed pattern match at CorsProxy (line 19, column 14 - line 23, column 44): \" + [ response.constructor.name ]);\n })());\n });\n };\n};\nexport {\n fetchThroughProxy\n};\n","export const _parseJSON = JSON.parse;\n\nexport const _undefined = undefined;\n\nexport const _unsafeStringify = JSON.stringify;\n","// Generated by purs version 0.15.2\nimport * as $foreign from \"./foreign.js\";\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Control_Monad_Except_Trans from \"../Control.Monad.Except.Trans/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Foreign from \"../Foreign/index.js\";\nvar unsafeReadProp = function (dictMonad) {\n return function (k) {\n return function (value) {\n return $foreign.unsafeReadPropImpl(Foreign.fail(dictMonad)(new Foreign.TypeMismatch(\"object\", Foreign.typeOf(value))), Control_Applicative.pure(Control_Monad_Except_Trans.applicativeExceptT(dictMonad)), k, value);\n };\n };\n};\nvar readProp = function (dictMonad) {\n return unsafeReadProp(dictMonad);\n};\nvar readIndex = function (dictMonad) {\n return unsafeReadProp(dictMonad);\n};\nvar ix = function (dict) {\n return dict.ix;\n};\nvar index = function (dict) {\n return dict.index;\n};\nvar indexableExceptT = function (dictMonad) {\n return {\n ix: function (dictIndex) {\n return function (f) {\n return function (i) {\n return Control_Bind.bindFlipped(Control_Monad_Except_Trans.bindExceptT(dictMonad))(Data_Function.flip(index(dictIndex))(i))(f);\n };\n };\n }\n };\n};\nvar indexableForeign = function (dictMonad) {\n return {\n ix: function (dictIndex) {\n return index(dictIndex);\n }\n };\n};\nvar hasPropertyImpl = function (v) {\n return function (v1) {\n if (Foreign.isNull(v1)) {\n return false;\n };\n if (Foreign.isUndefined(v1)) {\n return false;\n };\n if (Foreign.typeOf(v1) === \"object\" || Foreign.typeOf(v1) === \"function\") {\n return $foreign.unsafeHasProperty(v, v1);\n };\n return false;\n };\n};\nvar hasProperty = function (dict) {\n return dict.hasProperty;\n};\nvar hasOwnPropertyImpl = function (v) {\n return function (v1) {\n if (Foreign.isNull(v1)) {\n return false;\n };\n if (Foreign.isUndefined(v1)) {\n return false;\n };\n if (Foreign.typeOf(v1) === \"object\" || Foreign.typeOf(v1) === \"function\") {\n return $foreign.unsafeHasOwnProperty(v, v1);\n };\n return false;\n };\n};\nvar indexInt = function (dictMonad) {\n return {\n index: Data_Function.flip(readIndex(dictMonad)),\n hasProperty: hasPropertyImpl,\n hasOwnProperty: hasOwnPropertyImpl,\n errorAt: Foreign.ErrorAtIndex.create\n };\n};\nvar indexString = function (dictMonad) {\n return {\n index: Data_Function.flip(readProp(dictMonad)),\n hasProperty: hasPropertyImpl,\n hasOwnProperty: hasOwnPropertyImpl,\n errorAt: Foreign.ErrorAtProperty.create\n };\n};\nvar hasOwnProperty = function (dict) {\n return dict.hasOwnProperty;\n};\nvar errorAt = function (dict) {\n return dict.errorAt;\n};\nexport {\n readProp,\n readIndex,\n ix,\n index,\n hasProperty,\n hasOwnProperty,\n errorAt,\n indexString,\n indexInt,\n indexableForeign,\n indexableExceptT\n};\n","export function unsafeReadPropImpl(f, s, key, value) {\n return value == null ? f : s(value[key]);\n}\n\nexport function unsafeHasOwnProperty(prop, value) {\n return Object.prototype.hasOwnProperty.call(value, prop);\n}\n\nexport function unsafeHasProperty(prop, value) {\n return prop in value;\n}\n","// Generated by purs version 0.15.2\nimport * as $foreign from \"./foreign.js\";\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Control_Semigroupoid from \"../Control.Semigroupoid/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Symbol from \"../Data.Symbol/index.js\";\nimport * as Record_Unsafe_Union from \"../Record.Unsafe.Union/index.js\";\nimport * as Unsafe_Coerce from \"../Unsafe.Coerce/index.js\";\nvar Builder = function (x) {\n return x;\n};\nvar union = function () {\n return function (r1) {\n return function (r2) {\n return Record_Unsafe_Union.unsafeUnionFn(r1, r2);\n };\n };\n};\nvar semigroupoidBuilder = Control_Semigroupoid.semigroupoidFn;\nvar rename = function (dictIsSymbol) {\n return function (dictIsSymbol1) {\n return function () {\n return function () {\n return function () {\n return function () {\n return function (l1) {\n return function (l2) {\n return function (r1) {\n return $foreign.unsafeRename(Data_Symbol.reflectSymbol(dictIsSymbol)(l1))(Data_Symbol.reflectSymbol(dictIsSymbol1)(l2))(r1);\n };\n };\n };\n };\n };\n };\n };\n };\n};\nvar nub = function () {\n return Unsafe_Coerce.unsafeCoerce;\n};\nvar modify = function () {\n return function () {\n return function (dictIsSymbol) {\n return function (l) {\n return function (f) {\n return function (r1) {\n return $foreign.unsafeModify(Data_Symbol.reflectSymbol(dictIsSymbol)(l))(f)(r1);\n };\n };\n };\n };\n };\n};\nvar merge = function () {\n return function () {\n return function (r1) {\n return function (r2) {\n return Record_Unsafe_Union.unsafeUnionFn(r1, r2);\n };\n };\n };\n};\nvar insert = function () {\n return function () {\n return function (dictIsSymbol) {\n return function (l) {\n return function (a) {\n return function (r1) {\n return $foreign.unsafeInsert(Data_Symbol.reflectSymbol(dictIsSymbol)(l))(a)(r1);\n };\n };\n };\n };\n };\n};\nvar disjointUnion = function () {\n return function () {\n return function (r1) {\n return function (r2) {\n return Record_Unsafe_Union.unsafeUnionFn(r1, r2);\n };\n };\n };\n};\nvar $$delete = function (dictIsSymbol) {\n return function () {\n return function () {\n return function (l) {\n return function (r2) {\n return $foreign.unsafeDelete(Data_Symbol.reflectSymbol(dictIsSymbol)(l))(r2);\n };\n };\n };\n };\n};\nvar categoryBuilder = Control_Category.categoryFn;\nvar build = function (v) {\n return function (r1) {\n return v($foreign.copyRecord(r1));\n };\n};\nvar buildFromScratch = /* #__PURE__ */ Data_Function.flip(build)({});\nvar flip = function (f) {\n return function (b) {\n return function (a) {\n return build(f(a))(b);\n };\n };\n};\nexport {\n build,\n buildFromScratch,\n flip,\n insert,\n modify,\n $$delete as delete,\n rename,\n merge,\n union,\n disjointUnion,\n nub,\n semigroupoidBuilder,\n categoryBuilder\n};\n","export function copyRecord(rec) {\n var copy = {};\n for (var key in rec) {\n if ({}.hasOwnProperty.call(rec, key)) {\n copy[key] = rec[key];\n }\n }\n return copy;\n}\n\nexport function unsafeInsert(l) {\n return function(a) {\n return function(rec) {\n rec[l] = a;\n return rec;\n };\n };\n}\n\nexport function unsafeModify(l) {\n return function (f) {\n return function(rec) {\n rec[l] = f(rec[l]);\n return rec;\n };\n };\n}\n\nexport function unsafeDelete(l) {\n return function(rec) {\n delete rec[l];\n return rec;\n };\n}\n\nexport function unsafeRename(l1) {\n return function (l2) {\n return function (rec) {\n rec[l2] = rec[l1];\n delete rec[l1];\n return rec;\n };\n };\n}\n","// Generated by purs version 0.15.2\nimport * as $foreign from \"./foreign.js\";\nimport * as Control_Alt from \"../Control.Alt/index.js\";\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Apply from \"../Control.Apply/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Control_Monad_Except from \"../Control.Monad.Except/index.js\";\nimport * as Control_Monad_Except_Trans from \"../Control.Monad.Except.Trans/index.js\";\nimport * as Control_Semigroupoid from \"../Control.Semigroupoid/index.js\";\nimport * as Data_Array_NonEmpty from \"../Data.Array.NonEmpty/index.js\";\nimport * as Data_Bifunctor from \"../Data.Bifunctor/index.js\";\nimport * as Data_Boolean from \"../Data.Boolean/index.js\";\nimport * as Data_Either from \"../Data.Either/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Identity from \"../Data.Identity/index.js\";\nimport * as Data_List_NonEmpty from \"../Data.List.NonEmpty/index.js\";\nimport * as Data_List_Types from \"../Data.List.Types/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Nullable from \"../Data.Nullable/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nimport * as Data_Symbol from \"../Data.Symbol/index.js\";\nimport * as Data_Traversable from \"../Data.Traversable/index.js\";\nimport * as Data_TraversableWithIndex from \"../Data.TraversableWithIndex/index.js\";\nimport * as Data_Variant from \"../Data.Variant/index.js\";\nimport * as Effect_Exception from \"../Effect.Exception/index.js\";\nimport * as Effect_Uncurried from \"../Effect.Uncurried/index.js\";\nimport * as Effect_Unsafe from \"../Effect.Unsafe/index.js\";\nimport * as Foreign from \"../Foreign/index.js\";\nimport * as Foreign_Index from \"../Foreign.Index/index.js\";\nimport * as Foreign_Object from \"../Foreign.Object/index.js\";\nimport * as Partial_Unsafe from \"../Partial.Unsafe/index.js\";\nimport * as Record from \"../Record/index.js\";\nimport * as Record_Builder from \"../Record.Builder/index.js\";\nimport * as Type_Proxy from \"../Type.Proxy/index.js\";\nvar writeVariantImpl = function (dict) {\n return dict.writeVariantImpl;\n};\nvar writeImplFields = function (dict) {\n return dict.writeImplFields;\n};\nvar writeImpl = function (dict) {\n return dict.writeImpl;\n};\nvar writeJSON = function (dictWriteForeign) {\n var $82 = writeImpl(dictWriteForeign);\n return function ($83) {\n return $foreign[\"_unsafeStringify\"]($82($83));\n };\n};\nvar writeForeignVariant = function () {\n return function (dictWriteForeignVariant) {\n return {\n writeImpl: function (variant) {\n return writeVariantImpl(dictWriteForeignVariant)(Type_Proxy[\"Proxy\"].value)(variant);\n }\n };\n };\n};\nvar writeForeignString = {\n writeImpl: Foreign.unsafeToForeign\n};\nvar writeForeignObject = function (dictWriteForeign) {\n return {\n writeImpl: (function () {\n var $84 = Foreign_Object.mapWithKey(Data_Function[\"const\"](writeImpl(dictWriteForeign)));\n return function ($85) {\n return Foreign.unsafeToForeign($84($85));\n };\n })()\n };\n};\nvar writeForeignNumber = {\n writeImpl: Foreign.unsafeToForeign\n};\nvar writeForeignNullable = function (dictWriteForeign) {\n return {\n writeImpl: (function () {\n var $86 = Data_Maybe.maybe(Foreign.unsafeToForeign(Data_Nullable.toNullable(Data_Maybe.Nothing.value)))(writeImpl(dictWriteForeign));\n return function ($87) {\n return $86(Data_Nullable.toMaybe($87));\n };\n })()\n };\n};\nvar writeForeignInt = {\n writeImpl: Foreign.unsafeToForeign\n};\nvar writeForeignForeign = {\n writeImpl: /* #__PURE__ */ Control_Category.identity(Control_Category.categoryFn)\n};\nvar writeForeignChar = {\n writeImpl: Foreign.unsafeToForeign\n};\nvar writeForeignBoolean = {\n writeImpl: Foreign.unsafeToForeign\n};\nvar writeForeignArray = function (dictWriteForeign) {\n return {\n writeImpl: function (xs) {\n return Foreign.unsafeToForeign(Data_Functor.map(Data_Functor.functorArray)(writeImpl(dictWriteForeign))(xs));\n }\n };\n};\nvar writeForeignNEArray = function (dictWriteForeign) {\n return {\n writeImpl: function (a) {\n return writeImpl(writeForeignArray(dictWriteForeign))(Data_Array_NonEmpty.toArray(a));\n }\n };\n};\nvar write = function (dictWriteForeign) {\n return writeImpl(dictWriteForeign);\n};\nvar unsafeStringify = $foreign[\"_unsafeStringify\"];\nvar $$undefined = $foreign[\"_undefined\"];\nvar writeForeignMaybe = function (dictWriteForeign) {\n return {\n writeImpl: Data_Maybe.maybe($$undefined)(writeImpl(dictWriteForeign))\n };\n};\nvar recordWriteForeign = function () {\n return function (dictWriteForeignFields) {\n return {\n writeImpl: function (rec) {\n var steps = writeImplFields(dictWriteForeignFields)(Type_Proxy[\"Proxy\"].value)(rec);\n return Foreign.unsafeToForeign(Record_Builder.build(steps)({}));\n }\n };\n };\n};\nvar readVariantNil = {\n readVariantImpl: function (v) {\n return function (v1) {\n return Foreign.fail(Data_Identity.monadIdentity)(new Foreign.ForeignError(\"Unable to match any variant member.\"));\n };\n }\n};\nvar readVariantImpl = function (dict) {\n return dict.readVariantImpl;\n};\nvar readString = {\n readImpl: /* #__PURE__ */ Foreign.readString(Data_Identity.monadIdentity)\n};\nvar readNumber = {\n readImpl: /* #__PURE__ */ Foreign.readNumber(Data_Identity.monadIdentity)\n};\nvar readInt = {\n readImpl: /* #__PURE__ */ Foreign.readInt(Data_Identity.monadIdentity)\n};\nvar readImpl = function (dict) {\n return dict.readImpl;\n};\nvar readMaybe = function (dictReadForeign) {\n return {\n readImpl: (function () {\n var readNullOrUndefined = function (v) {\n return function (value) {\n if (Foreign.isNull(value) || Foreign.isUndefined(value)) {\n return Control_Applicative.pure(Control_Monad_Except_Trans.applicativeExceptT(Data_Identity.monadIdentity))(Data_Maybe.Nothing.value);\n };\n return Data_Functor.map(Control_Monad_Except_Trans.functorExceptT(Data_Identity.functorIdentity))(Data_Maybe.Just.create)(v(value));\n };\n };\n return readNullOrUndefined(readImpl(dictReadForeign));\n })()\n };\n};\nvar readNullable = function (dictReadForeign) {\n return {\n readImpl: function (o) {\n var reformat = function (error) {\n if (error instanceof Foreign.TypeMismatch) {\n return new Foreign.TypeMismatch(\"Nullable \" + error.value0, error.value1);\n };\n return error;\n };\n return Control_Monad_Except.withExcept(Data_Functor.map(Data_List_Types.functorNonEmptyList)(reformat))(Control_Bind.bindFlipped(Control_Monad_Except_Trans.bindExceptT(Data_Identity.monadIdentity))(Data_Functor.map(Data_Functor.functorFn)(Data_Functor.map(Control_Monad_Except_Trans.functorExceptT(Data_Identity.functorIdentity))(Data_Nullable.toNullable))(Data_Traversable.traverse(Data_Traversable.traversableMaybe)(Control_Monad_Except_Trans.applicativeExceptT(Data_Identity.monadIdentity))(readImpl(dictReadForeign))))(Foreign.readNull(Data_Identity.monadIdentity)(o)));\n }\n };\n};\nvar readObject = function (dictReadForeign) {\n return {\n readImpl: (function () {\n var readObject$prime = function (value) {\n if (Foreign.tagOf(value) === \"Object\") {\n return Control_Applicative.pure(Control_Monad_Except_Trans.applicativeExceptT(Data_Identity.monadIdentity))(Foreign.unsafeFromForeign(value));\n };\n if (Data_Boolean.otherwise) {\n return Foreign.fail(Data_Identity.monadIdentity)(new Foreign.TypeMismatch(\"Object\", Foreign.tagOf(value)));\n };\n throw new Error(\"Failed pattern match at SimpleJSON (line 204, column 5 - line 204, column 49): \" + [ value.constructor.name ]);\n };\n return Control_Bind.composeKleisliFlipped(Control_Monad_Except_Trans.bindExceptT(Data_Identity.monadIdentity))((function () {\n var $88 = Data_Traversable.sequence(Foreign_Object.traversableObject)(Control_Monad_Except_Trans.applicativeExceptT(Data_Identity.monadIdentity));\n var $89 = Foreign_Object.mapWithKey(Data_Function[\"const\"](readImpl(dictReadForeign)));\n return function ($90) {\n return $88($89($90));\n };\n })())(readObject$prime);\n })()\n };\n};\nvar readForeignVariant = function () {\n return function (dictReadForeignVariant) {\n return {\n readImpl: function (o) {\n return readVariantImpl(dictReadForeignVariant)(Type_Proxy[\"Proxy\"].value)(o);\n }\n };\n };\n};\nvar readForeign = {\n readImpl: /* #__PURE__ */ Control_Applicative.pure(/* #__PURE__ */ Control_Monad_Except_Trans.applicativeExceptT(Data_Identity.monadIdentity))\n};\nvar readFieldsNil = {\n getFields: function (v) {\n return function (v1) {\n return Control_Applicative.pure(Control_Monad_Except_Trans.applicativeExceptT(Data_Identity.monadIdentity))(Control_Category.identity(Record_Builder.categoryBuilder));\n };\n }\n};\nvar readChar = {\n readImpl: /* #__PURE__ */ Foreign.readChar(Data_Identity.monadIdentity)\n};\nvar readBoolean = {\n readImpl: /* #__PURE__ */ Foreign.readBoolean(Data_Identity.monadIdentity)\n};\nvar readArray = function (dictReadForeign) {\n return {\n readImpl: (function () {\n var readAtIdx = function (i) {\n return function (f) {\n return Control_Monad_Except.withExcept(Data_Functor.map(Data_List_Types.functorNonEmptyList)(Foreign.ErrorAtIndex.create(i)))(readImpl(dictReadForeign)(f));\n };\n };\n return Control_Bind.composeKleisliFlipped(Control_Monad_Except_Trans.bindExceptT(Data_Identity.monadIdentity))(Data_TraversableWithIndex.traverseWithIndex(Data_TraversableWithIndex.traversableWithIndexArray)(Control_Monad_Except_Trans.applicativeExceptT(Data_Identity.monadIdentity))(readAtIdx))(Foreign.readArray(Data_Identity.monadIdentity));\n })()\n };\n};\nvar readForeignNEArray = function (dictReadForeign) {\n return {\n readImpl: function (f) {\n return Control_Bind.bind(Control_Monad_Except_Trans.bindExceptT(Data_Identity.monadIdentity))(readImpl(readArray(dictReadForeign))(f))(function (v) {\n return Control_Monad_Except_Trans.except(Data_Identity.applicativeIdentity)(Data_Either.note(Data_List_NonEmpty.singleton(new Foreign.ForeignError(\"Nonempty array expected, got empty array\")))(Data_Array_NonEmpty.fromArray(v)));\n });\n }\n };\n};\nvar read$prime = function (dictReadForeign) {\n return readImpl(dictReadForeign);\n};\nvar read = function (dictReadForeign) {\n var $91 = readImpl(dictReadForeign);\n return function ($92) {\n return Control_Monad_Except.runExcept($91($92));\n };\n};\nvar readAsForeign = function (dictReadForeign) {\n var $93 = read(dictReadForeign);\n return function ($94) {\n return $93(Foreign.unsafeToForeign($94));\n };\n};\nvar read_ = function (dictReadForeign) {\n var $95 = read(dictReadForeign);\n return function ($96) {\n return Data_Either.hush($95($96));\n };\n};\nvar parseJSON = /* #__PURE__ */ (function () {\n var $97 = Data_Bifunctor.lmap(Data_Bifunctor.bifunctorEither)((function () {\n var $100 = Control_Applicative.pure(Data_List_Types.applicativeNonEmptyList);\n return function ($101) {\n return $100(Foreign.ForeignError.create(Effect_Exception.message($101)));\n };\n })());\n var $98 = Effect_Uncurried.runEffectFn1($foreign[\"_parseJSON\"]);\n return function ($99) {\n return Control_Monad_Except_Trans.ExceptT(Data_Identity.Identity($97(Effect_Unsafe.unsafePerformEffect(Effect_Exception[\"try\"]($98($99))))));\n };\n})();\nvar readJSON = function (dictReadForeign) {\n var $102 = Control_Bind.composeKleisliFlipped(Control_Monad_Except_Trans.bindExceptT(Data_Identity.monadIdentity))(readImpl(dictReadForeign))(parseJSON);\n return function ($103) {\n return Control_Monad_Except.runExcept($102($103));\n };\n};\nvar readJSON_ = function (dictReadForeign) {\n var $104 = readJSON(dictReadForeign);\n return function ($105) {\n return Data_Either.hush($104($105));\n };\n};\nvar readJSON$prime = function (dictReadForeign) {\n return Control_Bind.composeKleisliFlipped(Control_Monad_Except_Trans.bindExceptT(Data_Identity.monadIdentity))(readImpl(dictReadForeign))(parseJSON);\n};\nvar nilWriteForeignVariant = {\n writeVariantImpl: function (v) {\n return function (v1) {\n return Partial_Unsafe.unsafeCrashWith(\"Variant was not able to be writen row WriteForeign.\");\n };\n }\n};\nvar nilWriteForeignFields = {\n writeImplFields: function (v) {\n return function (v1) {\n return Control_Category.identity(Record_Builder.categoryBuilder);\n };\n }\n};\nvar getFields = function (dict) {\n return dict.getFields;\n};\nvar readRecord = function () {\n return function (dictReadForeignFields) {\n return {\n readImpl: function (o) {\n return Data_Functor.map(Control_Monad_Except_Trans.functorExceptT(Data_Identity.functorIdentity))(Data_Function.flip(Record_Builder.build)({}))(getFields(dictReadForeignFields)(Type_Proxy[\"Proxy\"].value)(o));\n }\n };\n };\n};\nvar consWriteForeignVariant = function (dictIsSymbol) {\n return function (dictWriteForeign) {\n return function () {\n return function (dictWriteForeignVariant) {\n return {\n writeVariantImpl: function (v) {\n return function (variant) {\n var writeVariant = function (value) {\n return Foreign.unsafeToForeign({\n type: Data_Symbol.reflectSymbol(dictIsSymbol)(Type_Proxy[\"Proxy\"].value),\n value: writeImpl(dictWriteForeign)(value)\n });\n };\n return Data_Variant.on()(dictIsSymbol)(Type_Proxy[\"Proxy\"].value)(writeVariant)(writeVariantImpl(dictWriteForeignVariant)(Type_Proxy[\"Proxy\"].value))(variant);\n };\n }\n };\n };\n };\n };\n};\nvar consWriteForeignFields = function (dictIsSymbol) {\n return function (dictWriteForeign) {\n return function (dictWriteForeignFields) {\n return function () {\n return function () {\n return function () {\n return {\n writeImplFields: function (v) {\n return function (rec) {\n var rest = writeImplFields(dictWriteForeignFields)(Type_Proxy[\"Proxy\"].value)(rec);\n var value = writeImpl(dictWriteForeign)(Record.get(dictIsSymbol)()(Type_Proxy[\"Proxy\"].value)(rec));\n var result = Control_Semigroupoid.compose(Record_Builder.semigroupoidBuilder)(Record_Builder.insert()()(dictIsSymbol)(Type_Proxy[\"Proxy\"].value)(value))(rest);\n return result;\n };\n }\n };\n };\n };\n };\n };\n };\n};\nvar applyEither = function (dictSemigroup) {\n return function (v) {\n return function (v1) {\n if (v instanceof Data_Either.Left && v1 instanceof Data_Either.Right) {\n return new Data_Either.Left(v.value0);\n };\n if (v instanceof Data_Either.Left && v1 instanceof Data_Either.Left) {\n return new Data_Either.Left(Data_Semigroup.append(dictSemigroup)(v.value0)(v1.value0));\n };\n if (v instanceof Data_Either.Right && v1 instanceof Data_Either.Left) {\n return new Data_Either.Left(v1.value0);\n };\n if (v instanceof Data_Either.Right && v1 instanceof Data_Either.Right) {\n return new Data_Either.Right(v.value0(v1.value0));\n };\n throw new Error(\"Failed pattern match at SimpleJSON (line 251, column 1 - line 251, column 90): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n };\n};\nvar exceptTApply = function (dictSemigroup) {\n return function (dictApplicative) {\n return function (fun) {\n return function (a) {\n return Control_Apply.apply(dictApplicative.Apply0())(Data_Functor.map((dictApplicative.Apply0()).Functor0())(applyEither(dictSemigroup))(Control_Monad_Except_Trans.runExceptT(fun)))(Control_Monad_Except_Trans.runExceptT(a));\n };\n };\n };\n};\nvar readFieldsCons = function (dictIsSymbol) {\n return function (dictReadForeign) {\n return function (dictReadForeignFields) {\n return function () {\n return function () {\n return {\n getFields: function (v) {\n return function (obj) {\n var rest = getFields(dictReadForeignFields)(Type_Proxy[\"Proxy\"].value)(obj);\n var name = Data_Symbol.reflectSymbol(dictIsSymbol)(Type_Proxy[\"Proxy\"].value);\n var withExcept$prime = Control_Monad_Except.withExcept(Data_Functor.map(Data_List_Types.functorNonEmptyList)(Foreign.ErrorAtProperty.create(name)));\n var first = Control_Bind.bind(Control_Monad_Except_Trans.bindExceptT(Data_Identity.monadIdentity))(withExcept$prime(Control_Bind.bindFlipped(Control_Monad_Except_Trans.bindExceptT(Data_Identity.monadIdentity))(readImpl(dictReadForeign))(Foreign_Index.readProp(Data_Identity.monadIdentity)(name)(obj))))(function (value) {\n return Control_Applicative.pure(Control_Monad_Except_Trans.applicativeExceptT(Data_Identity.monadIdentity))(Record_Builder.insert()()(dictIsSymbol)(Type_Proxy[\"Proxy\"].value)(value));\n });\n return exceptTApply(Data_List_Types.semigroupNonEmptyList)(Data_Identity.applicativeIdentity)(Data_Functor.map(Control_Monad_Except_Trans.functorExceptT(Data_Identity.functorIdentity))(Control_Semigroupoid.compose(Record_Builder.semigroupoidBuilder))(first))(rest);\n };\n }\n };\n };\n };\n };\n };\n};\nvar readVariantCons = function (dictIsSymbol) {\n return function (dictReadForeign) {\n return function () {\n return function (dictReadForeignVariant) {\n return {\n readVariantImpl: function (v) {\n return function (o) {\n var name = Data_Symbol.reflectSymbol(dictIsSymbol)(Type_Proxy[\"Proxy\"].value);\n return Control_Alt.alt(Control_Monad_Except_Trans.altExceptT(Data_List_Types.semigroupNonEmptyList)(Data_Identity.monadIdentity))(Control_Bind.bind(Control_Monad_Except_Trans.bindExceptT(Data_Identity.monadIdentity))(readImpl(readRecord()(readFieldsCons({\n reflectSymbol: function () {\n return \"type\";\n }\n })(readString)(readFieldsCons({\n reflectSymbol: function () {\n return \"value\";\n }\n })(readForeign)(readFieldsNil)()())()()))(o))(function (v1) {\n var $80 = v1.type === name;\n if ($80) {\n return Control_Bind.bind(Control_Monad_Except_Trans.bindExceptT(Data_Identity.monadIdentity))(readImpl(dictReadForeign)(v1.value))(function (v2) {\n return Control_Applicative.pure(Control_Monad_Except_Trans.applicativeExceptT(Data_Identity.monadIdentity))(Data_Variant.inj()(dictIsSymbol)(Type_Proxy[\"Proxy\"].value)(v2));\n });\n };\n return Foreign.fail(Data_Identity.monadIdentity)(Foreign.ForeignError.create(\"Did not match variant tag \" + name));\n }))(readVariantImpl(dictReadForeignVariant)(Type_Proxy[\"Proxy\"].value)(o));\n };\n }\n };\n };\n };\n };\n};\nexport {\n readJSON,\n readJSON$prime,\n readJSON_,\n writeJSON,\n write,\n read,\n read$prime,\n read_,\n readAsForeign,\n parseJSON,\n $$undefined as undefined,\n unsafeStringify,\n readImpl,\n getFields,\n readVariantImpl,\n writeImpl,\n writeImplFields,\n writeVariantImpl,\n readForeign,\n readChar,\n readNumber,\n readInt,\n readString,\n readBoolean,\n readArray,\n readMaybe,\n readNullable,\n readObject,\n readRecord,\n readFieldsCons,\n readFieldsNil,\n readForeignVariant,\n readVariantNil,\n readVariantCons,\n writeForeignForeign,\n writeForeignString,\n writeForeignInt,\n writeForeignChar,\n writeForeignNumber,\n writeForeignBoolean,\n writeForeignArray,\n writeForeignMaybe,\n writeForeignNullable,\n writeForeignObject,\n recordWriteForeign,\n consWriteForeignFields,\n nilWriteForeignFields,\n writeForeignVariant,\n nilWriteForeignVariant,\n consWriteForeignVariant,\n readForeignNEArray,\n writeForeignNEArray\n};\n","// Generated by purs version 0.15.2\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Apply from \"../Control.Apply/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Control_Monad_Maybe_Trans from \"../Control.Monad.Maybe.Trans/index.js\";\nimport * as CorsProxy from \"../CorsProxy/index.js\";\nimport * as Data_Either from \"../Data.Either/index.js\";\nimport * as Data_List_Types from \"../Data.List.Types/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Show from \"../Data.Show/index.js\";\nimport * as Effect_Class from \"../Effect.Class/index.js\";\nimport * as Effect_Console from \"../Effect.Console/index.js\";\nimport * as Foreign from \"../Foreign/index.js\";\nimport * as JSURI from \"../JSURI/index.js\";\nimport * as LZString from \"../LZString/index.js\";\nimport * as LocationString from \"../LocationString/index.js\";\nimport * as SimpleJSON from \"../SimpleJSON/index.js\";\nvar createCustomShortUrl = function (dictMonadAff) {\n return function (shortUrl) {\n return Control_Bind.bind(Control_Monad_Maybe_Trans.bindMaybeT((dictMonadAff.MonadEffect0()).Monad0()))(Effect_Class.liftEffect(Control_Monad_Maybe_Trans.monadEffectMaybe(dictMonadAff.MonadEffect0()))(LocationString.getLocationBaseString))(function (base) {\n var v = LZString.compressToEncodedURIComponent(shortUrl);\n if (v instanceof Data_Maybe.Just) {\n return Control_Applicative.pure(Control_Monad_Maybe_Trans.applicativeMaybeT((dictMonadAff.MonadEffect0()).Monad0()))(base + (\"?u#\" + v.value0));\n };\n return Control_Apply.applySecond(Control_Monad_Maybe_Trans.applyMaybeT((dictMonadAff.MonadEffect0()).Monad0()))(Effect_Class.liftEffect(Control_Monad_Maybe_Trans.monadEffectMaybe(dictMonadAff.MonadEffect0()))(Effect_Console.error(\"Could not compress shortlink URI\")))(Control_Applicative.pure(((dictMonadAff.MonadEffect0()).Monad0()).Applicative0())(Data_Maybe.Nothing.value));\n });\n };\n};\nvar createShortUrl = function (dictMonadAff) {\n return function (url) {\n return Control_Bind.bind(Control_Monad_Maybe_Trans.bindMaybeT((dictMonadAff.MonadEffect0()).Monad0()))(Control_Applicative.pure(((dictMonadAff.MonadEffect0()).Monad0()).Applicative0())(JSURI[\"encodeURIComponent\"](url)))(function (encodedUrl) {\n return Control_Bind.bind(Control_Monad_Maybe_Trans.bindMaybeT((dictMonadAff.MonadEffect0()).Monad0()))(CorsProxy.fetchThroughProxy(dictMonadAff)(\"https://cutt.ly/api/api.php?key=d27fec420c4daade4093757967023d6b70bc7&short=\" + encodedUrl))(function (result) {\n var v = SimpleJSON.readJSON(SimpleJSON.readRecord()(SimpleJSON.readFieldsCons({\n reflectSymbol: function () {\n return \"url\";\n }\n })(SimpleJSON.readRecord()(SimpleJSON.readFieldsCons({\n reflectSymbol: function () {\n return \"shortLink\";\n }\n })(SimpleJSON.readString)(SimpleJSON.readFieldsNil)()()))(SimpleJSON.readFieldsNil)()()))(result);\n if (v instanceof Data_Either.Right) {\n return createCustomShortUrl(dictMonadAff)(v.value0.url.shortLink);\n };\n if (v instanceof Data_Either.Left) {\n var v1 = SimpleJSON.readJSON(SimpleJSON.readRecord()(SimpleJSON.readFieldsCons({\n reflectSymbol: function () {\n return \"url\";\n }\n })(SimpleJSON.readRecord()(SimpleJSON.readFieldsCons({\n reflectSymbol: function () {\n return \"status\";\n }\n })(SimpleJSON.readInt)(SimpleJSON.readFieldsNil)()()))(SimpleJSON.readFieldsNil)()()))(result);\n if (v1 instanceof Data_Either.Right) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Control_Monad_Maybe_Trans.bindMaybeT((dictMonadAff.MonadEffect0()).Monad0()))(Effect_Class.liftEffect(Control_Monad_Maybe_Trans.monadEffectMaybe(dictMonadAff.MonadEffect0()))(Effect_Console.error(\"Received error status from cuttly API: \" + Data_Show.show(Data_Show.showInt)(v1.value0.url.status))))(function () {\n return Control_Applicative.pure(((dictMonadAff.MonadEffect0()).Monad0()).Applicative0())(Data_Maybe.Nothing.value);\n });\n };\n if (v1 instanceof Data_Either.Left) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Control_Monad_Maybe_Trans.bindMaybeT((dictMonadAff.MonadEffect0()).Monad0()))(Effect_Class.liftEffect(Control_Monad_Maybe_Trans.monadEffectMaybe(dictMonadAff.MonadEffect0()))(Effect_Console.error(\"Can't parse response JSON: \" + (Data_Show.show(Data_List_Types.showNonEmptyList(Foreign.showForeignError))(v1.value0) + (\". Response: \" + result)))))(function () {\n return Control_Applicative.pure(((dictMonadAff.MonadEffect0()).Monad0()).Applicative0())(Data_Maybe.Nothing.value);\n });\n };\n throw new Error(\"Failed pattern match at CuttlyUrlShortener (line 29, column 7 - line 35, column 32): \" + [ v1.constructor.name ]);\n };\n throw new Error(\"Failed pattern match at CuttlyUrlShortener (line 26, column 3 - line 35, column 32): \" + [ v.constructor.name ]);\n });\n });\n };\n};\nexport {\n createShortUrl,\n createCustomShortUrl\n};\n","// Generated by purs version 0.15.2\nimport * as Data_Argonaut_Core from \"../Data.Argonaut.Core/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Foreign_Object from \"../Foreign.Object/index.js\";\nvar string = function (json) {\n return Data_Argonaut_Core.caseJsonString(Data_Maybe.Nothing.value)(Data_Maybe.Just.create)(json);\n};\nvar number = function (json) {\n return Data_Argonaut_Core.caseJsonNumber(Data_Maybe.Nothing.value)(Data_Maybe.Just.create)(json);\n};\nvar child = function (name) {\n return function (json) {\n return Data_Argonaut_Core.caseJsonObject(Data_Maybe.Nothing.value)(Foreign_Object.lookup(name))(json);\n };\n};\nvar array = function (json) {\n return Data_Argonaut_Core.caseJsonArray(Data_Maybe.Nothing.value)(Data_Maybe.Just.create)(json);\n};\nexport {\n child,\n array,\n string,\n number\n};\n","/* Web.DOM.DOMParser */\nexport function makeDOMParser() {\n return new DOMParser();\n}\n\nexport function parseFromString(documentType) {\n return function (sourceString) {\n return function (domParser) {\n return function () { // Effect thunk\n return domParser.parseFromString(sourceString, documentType);\n };\n };\n };\n}\n","var getEffProp = function (name) {\n return function (doc) {\n return function () {\n return doc[name];\n };\n };\n};\n\nexport const url = getEffProp(\"URL\");\nexport const documentURI = getEffProp(\"documentURI\");\nexport const origin = getEffProp(\"origin\");\nexport const compatMode = getEffProp(\"compatMode\");\nexport const characterSet = getEffProp(\"characterSet\");\nexport const contentType = getEffProp(\"contentType\");\nexport function _doctype(doc) {\n return doc[\"doctype\"];\n}\nexport const _documentElement = getEffProp(\"documentElement\");\n\nexport function getElementsByTagName(localName) {\n return function (doc) {\n return function () {\n return doc.getElementsByTagName(localName);\n };\n };\n}\n\nexport function _getElementsByTagNameNS(ns) {\n return function (localName) {\n return function (doc) {\n return function () {\n return doc.getElementsByTagNameNS(ns, localName);\n };\n };\n };\n}\n\nexport function getElementsByClassName(classNames) {\n return function (doc) {\n return function () {\n return doc.getElementsByClassName(classNames);\n };\n };\n}\n\nexport function createElement(localName) {\n return function (doc) {\n return function () {\n return doc.createElement(localName);\n };\n };\n}\n\nexport function _createElementNS(ns) {\n return function (qualifiedName) {\n return function (doc) {\n return function () {\n return doc.createElementNS(ns, qualifiedName);\n };\n };\n };\n}\n\nexport function createDocumentFragment(doc) {\n return function () {\n return doc.createDocumentFragment();\n };\n}\n\nexport function createTextNode(data) {\n return function (doc) {\n return function () {\n return doc.createTextNode(data);\n };\n };\n}\n\nexport function createComment(data) {\n return function (doc) {\n return function () {\n return doc.createComment(data);\n };\n };\n}\n\nexport function createProcessingInstruction(target) {\n return function (data) {\n return function (doc) {\n return function () {\n return doc.createProcessingInstruction(target, data);\n };\n };\n };\n}\n\nexport function importNode(node) {\n return function (deep) {\n return function (doc) {\n return function () {\n return doc.importNode(node, deep);\n };\n };\n };\n}\n\nexport function adoptNode(node) {\n return function (doc) {\n return function () {\n return doc.adoptNode(node);\n };\n };\n}\n","// Generated by purs version 0.15.2\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nvar unsafeReadProtoTagged = function (name) {\n return function (value) {\n return $foreign[\"_unsafeReadProtoTagged\"](Data_Maybe.Nothing.value, Data_Maybe.Just.create, name, value);\n };\n};\nexport {\n unsafeReadProtoTagged\n};\n","export function _unsafeReadProtoTagged(nothing, just, name, value) {\n if (typeof window !== \"undefined\") {\n var ty = window[name];\n if (ty != null && value instanceof ty) {\n return just(value);\n }\n }\n var obj = value;\n while (obj != null) {\n var proto = Object.getPrototypeOf(obj);\n var constructorName = proto.constructor.name;\n if (constructorName === name) {\n return just(value);\n } else if (constructorName === \"Object\") {\n return nothing;\n }\n obj = proto;\n }\n return nothing;\n}\n","// Generated by purs version 0.15.2\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Nullable from \"../Data.Nullable/index.js\";\nimport * as Effect from \"../Effect/index.js\";\nimport * as Unsafe_Coerce from \"../Unsafe.Coerce/index.js\";\nimport * as Web_Internal_FFI from \"../Web.Internal.FFI/index.js\";\nvar toParentNode = Unsafe_Coerce.unsafeCoerce;\nvar toNonElementParentNode = Unsafe_Coerce.unsafeCoerce;\nvar toNode = Unsafe_Coerce.unsafeCoerce;\nvar toEventTarget = Unsafe_Coerce.unsafeCoerce;\nvar getElementsByTagNameNS = function ($0) {\n return $foreign[\"_getElementsByTagNameNS\"](Data_Nullable.toNullable($0));\n};\nvar fromParentNode = /* #__PURE__ */ Web_Internal_FFI.unsafeReadProtoTagged(\"Document\");\nvar fromNonElementParentNode = /* #__PURE__ */ Web_Internal_FFI.unsafeReadProtoTagged(\"Document\");\nvar fromNode = /* #__PURE__ */ Web_Internal_FFI.unsafeReadProtoTagged(\"Document\");\nvar fromEventTarget = /* #__PURE__ */ Web_Internal_FFI.unsafeReadProtoTagged(\"Document\");\nvar documentElement = /* #__PURE__ */ (function () {\n var $1 = Data_Functor.map(Effect.functorEffect)(Data_Nullable.toMaybe);\n return function ($2) {\n return $1($foreign[\"_documentElement\"]($2));\n };\n})();\nvar doctype = function ($3) {\n return Data_Nullable.toMaybe($foreign[\"_doctype\"]($3));\n};\nvar createElementNS = function ($4) {\n return $foreign[\"_createElementNS\"](Data_Nullable.toNullable($4));\n};\nexport {\n url,\n documentURI,\n origin,\n compatMode,\n characterSet,\n contentType,\n getElementsByTagName,\n getElementsByClassName,\n createElement,\n createDocumentFragment,\n createTextNode,\n createComment,\n createProcessingInstruction,\n importNode,\n adoptNode\n} from \"./foreign.js\";\nexport {\n fromNode,\n fromParentNode,\n fromNonElementParentNode,\n fromEventTarget,\n toNode,\n toParentNode,\n toNonElementParentNode,\n toEventTarget,\n doctype,\n documentElement,\n getElementsByTagNameNS,\n createElementNS\n};\n","var getProp = function (name) {\n return function (doctype) {\n return doctype[name];\n };\n};\n\nexport const _namespaceURI = getProp(\"namespaceURI\");\nexport const _prefix = getProp(\"prefix\");\nexport const localName = getProp(\"localName\");\nexport const tagName = getProp(\"tagName\");\n\nexport function id(node) {\n return function () {\n return node.id;\n };\n}\n\nexport function setId(id) {\n return function (node) {\n return function () {\n node.id = id;\n };\n };\n}\n\nexport function className(node) {\n return function () {\n return node.className;\n };\n}\n\nexport function classList(element) {\n return function () {\n return element.classList;\n };\n}\n\nexport function setClassName(className) {\n return function (node) {\n return function () {\n node.className = className;\n };\n };\n}\n\nexport function getElementsByTagName(localName) {\n return function (doc) {\n return function () {\n return doc.getElementsByTagName(localName);\n };\n };\n}\n\nexport function _getElementsByTagNameNS(ns) {\n return function (localName) {\n return function (doc) {\n return function () {\n return doc.getElementsByTagNameNS(ns, localName);\n };\n };\n };\n}\n\nexport function getElementsByClassName(classNames) {\n return function (doc) {\n return function () {\n return doc.getElementsByClassName(classNames);\n };\n };\n}\n\nexport function setAttribute(name) {\n return function (value) {\n return function (element) {\n return function () {\n element.setAttribute(name, value);\n };\n };\n };\n}\n\nexport function _getAttribute(name) {\n return function (element) {\n return function () {\n return element.getAttribute(name);\n };\n };\n}\n\nexport function hasAttribute(name) {\n return function (element) {\n return function () {\n return element.hasAttribute(name);\n };\n };\n}\n\nexport function removeAttribute(name) {\n return function (element) {\n return function () {\n element.removeAttribute(name);\n };\n };\n}\n\nexport function matches(selector) {\n return function(element) {\n return function () {\n return element.matches(selector);\n };\n };\n}\n\nexport function _closest(selector) {\n return function(element) {\n return function () {\n return element.closest(selector);\n };\n };\n}\n\n// - CSSOM ---------------------------------------------------------------------\n\nexport function scrollTop(node) {\n return function () {\n return node.scrollTop;\n };\n}\n\nexport function setScrollTop(scrollTop) {\n return function (node) {\n return function () {\n node.scrollTop = scrollTop;\n };\n };\n}\n\nexport function scrollLeft(node) {\n return function () {\n return node.scrollLeft;\n };\n}\n\nexport function setScrollLeft(scrollLeft) {\n return function (node) {\n return function () {\n node.scrollLeft = scrollLeft;\n };\n };\n}\n\nexport function scrollWidth(el) {\n return function () {\n return el.scrollWidth;\n };\n}\n\nexport function scrollHeight(el) {\n return function () {\n return el.scrollHeight;\n };\n}\n\nexport function clientTop(el) {\n return function () {\n return el.clientTop;\n };\n}\n\nexport function clientLeft(el) {\n return function () {\n return el.clientLeft;\n };\n}\n\nexport function clientWidth(el) {\n return function () {\n return el.clientWidth;\n };\n}\n\nexport function clientHeight(el) {\n return function () {\n return el.clientHeight;\n };\n}\n\nexport function getBoundingClientRect(el) {\n return function () {\n var rect = el.getBoundingClientRect();\n return {\n top: rect.top,\n right: rect.right,\n bottom: rect.bottom,\n left: rect.left,\n width: rect.width,\n height: rect.height,\n x: rect.x,\n y: rect.y\n };\n };\n}\n\nexport function _attachShadow(props) {\n return function (el) {\n return function() {\n return el.attachShadow(props);\n };\n };\n}\n","var getEffProp = function (name) {\n return function (node) {\n return function () {\n return node[name];\n };\n };\n};\n\nexport const children = getEffProp(\"children\");\nexport const _firstElementChild = getEffProp(\"firstElementChild\");\nexport const _lastElementChild = getEffProp(\"lastElementChild\");\nexport const childElementCount = getEffProp(\"childElementCount\");\n\nexport function _querySelector(selector) {\n return function (node) {\n return function () {\n return node.querySelector(selector);\n };\n };\n}\n\nexport function querySelectorAll(selector) {\n return function (node) {\n return function () {\n return node.querySelectorAll(selector);\n };\n };\n}\n","// Generated by purs version 0.15.2\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Nullable from \"../Data.Nullable/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Effect from \"../Effect/index.js\";\nvar QuerySelector = function (x) {\n return x;\n};\nvar querySelector = function (qs) {\n var $0 = Data_Functor.map(Effect.functorEffect)(Data_Nullable.toMaybe);\n var $1 = $foreign[\"_querySelector\"](qs);\n return function ($2) {\n return $0($1($2));\n };\n};\nvar ordQuerySelector = Data_Ord.ordString;\nvar newtypeQuerySelector = {\n Coercible0: function () {\n return undefined;\n }\n};\nvar lastElementChild = /* #__PURE__ */ (function () {\n var $3 = Data_Functor.map(Effect.functorEffect)(Data_Nullable.toMaybe);\n return function ($4) {\n return $3($foreign[\"_lastElementChild\"]($4));\n };\n})();\nvar firstElementChild = /* #__PURE__ */ (function () {\n var $5 = Data_Functor.map(Effect.functorEffect)(Data_Nullable.toMaybe);\n return function ($6) {\n return $5($foreign[\"_firstElementChild\"]($6));\n };\n})();\nvar eqQuerySelector = Data_Eq.eqString;\nexport {\n children,\n childElementCount,\n querySelectorAll\n} from \"./foreign.js\";\nexport {\n firstElementChild,\n lastElementChild,\n QuerySelector,\n querySelector,\n eqQuerySelector,\n ordQuerySelector,\n newtypeQuerySelector\n};\n","// Generated by purs version 0.15.2\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Unsafe_Coerce from \"../Unsafe.Coerce/index.js\";\nvar Open = /* #__PURE__ */ (function () {\n function Open() {\n\n };\n Open.value = new Open();\n return Open;\n})();\nvar Closed = /* #__PURE__ */ (function () {\n function Closed() {\n\n };\n Closed.value = new Closed();\n return Closed;\n})();\nvar toNode = Unsafe_Coerce.unsafeCoerce;\nvar showShadowRootMode = {\n show: function (v) {\n if (v instanceof Open) {\n return \"open\";\n };\n if (v instanceof Closed) {\n return \"closed\";\n };\n throw new Error(\"Failed pattern match at Web.DOM.ShadowRoot (line 22, column 1 - line 24, column 25): \" + [ v.constructor.name ]);\n }\n};\nvar mode = /* #__PURE__ */ (function () {\n var modeFromString = function (v) {\n if (v === \"open\") {\n return new Data_Maybe.Just(Open.value);\n };\n if (v === \"closed\") {\n return new Data_Maybe.Just(Closed.value);\n };\n return Data_Maybe.Nothing.value;\n };\n return function ($4) {\n return modeFromString($foreign[\"_mode\"]($4));\n };\n})();\nexport {\n host\n} from \"./foreign.js\";\nexport {\n Open,\n Closed,\n toNode,\n mode,\n showShadowRootMode\n};\n","// Generated by purs version 0.15.2\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Nullable from \"../Data.Nullable/index.js\";\nimport * as Data_Show from \"../Data.Show/index.js\";\nimport * as Effect from \"../Effect/index.js\";\nimport * as Unsafe_Coerce from \"../Unsafe.Coerce/index.js\";\nimport * as Web_DOM_Internal_Types from \"../Web.DOM.Internal.Types/index.js\";\nimport * as Web_DOM_ParentNode from \"../Web.DOM.ParentNode/index.js\";\nimport * as Web_DOM_ShadowRoot from \"../Web.DOM.ShadowRoot/index.js\";\nimport * as Web_Internal_FFI from \"../Web.Internal.FFI/index.js\";\nvar toParentNode = Unsafe_Coerce.unsafeCoerce;\nvar toNonDocumentTypeChildNode = Unsafe_Coerce.unsafeCoerce;\nvar toNode = Unsafe_Coerce.unsafeCoerce;\nvar toEventTarget = Unsafe_Coerce.unsafeCoerce;\nvar toChildNode = Unsafe_Coerce.unsafeCoerce;\nvar prefix = function ($0) {\n return Data_Nullable.toMaybe($foreign[\"_prefix\"]($0));\n};\nvar namespaceURI = function ($1) {\n return Data_Nullable.toMaybe($foreign[\"_namespaceURI\"]($1));\n};\nvar initToProps = function (init) {\n return {\n mode: Data_Show.show(Web_DOM_ShadowRoot.showShadowRootMode)(init.mode),\n delegatesFocus: init.delegatesFocus\n };\n};\nvar getElementsByTagNameNS = function ($2) {\n return $foreign[\"_getElementsByTagNameNS\"](Data_Nullable.toNullable($2));\n};\nvar getAttribute = function (attr) {\n var $3 = Data_Functor.map(Effect.functorEffect)(Data_Nullable.toMaybe);\n var $4 = $foreign[\"_getAttribute\"](attr);\n return function ($5) {\n return $3($4($5));\n };\n};\nvar fromParentNode = /* #__PURE__ */ Web_Internal_FFI.unsafeReadProtoTagged(\"Element\");\nvar fromNonDocumentTypeChildNode = /* #__PURE__ */ Web_Internal_FFI.unsafeReadProtoTagged(\"Element\");\nvar fromNode = /* #__PURE__ */ Web_Internal_FFI.unsafeReadProtoTagged(\"Element\");\nvar fromEventTarget = /* #__PURE__ */ Web_Internal_FFI.unsafeReadProtoTagged(\"Element\");\nvar fromChildNode = /* #__PURE__ */ Web_Internal_FFI.unsafeReadProtoTagged(\"Element\");\nvar closest = function (qs) {\n var $6 = Data_Functor.map(Effect.functorEffect)(Data_Nullable.toMaybe);\n var $7 = $foreign[\"_closest\"](qs);\n return function ($8) {\n return $6($7($8));\n };\n};\nvar attachShadow = function ($9) {\n return $foreign[\"_attachShadow\"](initToProps($9));\n};\nexport {\n localName,\n tagName,\n id,\n setId,\n className,\n classList,\n setClassName,\n getElementsByTagName,\n getElementsByClassName,\n setAttribute,\n hasAttribute,\n removeAttribute,\n matches,\n scrollTop,\n setScrollTop,\n scrollLeft,\n setScrollLeft,\n scrollWidth,\n scrollHeight,\n clientTop,\n clientLeft,\n clientWidth,\n clientHeight,\n getBoundingClientRect\n} from \"./foreign.js\";\nexport {\n fromNode,\n fromChildNode,\n fromNonDocumentTypeChildNode,\n fromParentNode,\n fromEventTarget,\n toNode,\n toChildNode,\n toNonDocumentTypeChildNode,\n toParentNode,\n toEventTarget,\n namespaceURI,\n prefix,\n getElementsByTagNameNS,\n getAttribute,\n closest,\n attachShadow\n};\n","export function length(list) {\n return function () {\n return list.length;\n };\n}\n\nexport function toArray(list) {\n return function () {\n return [].slice.call(list);\n };\n}\n\nexport function _item(index) {\n return function (list) {\n return function () {\n return list.item(index);\n };\n };\n}\n\nexport function _namedItem(name) {\n return function (list) {\n return function () {\n return list.namedItem(name);\n };\n };\n}\n","// Generated by purs version 0.15.2\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Nullable from \"../Data.Nullable/index.js\";\nimport * as Effect from \"../Effect/index.js\";\nimport * as Web_DOM_Internal_Types from \"../Web.DOM.Internal.Types/index.js\";\nvar namedItem = function (id) {\n var $0 = Data_Functor.map(Effect.functorEffect)(Data_Nullable.toMaybe);\n var $1 = $foreign[\"_namedItem\"](id);\n return function ($2) {\n return $0($1($2));\n };\n};\nvar item = function (i) {\n var $3 = Data_Functor.map(Effect.functorEffect)(Data_Nullable.toMaybe);\n var $4 = $foreign[\"_item\"](i);\n return function ($5) {\n return $3($4($5));\n };\n};\nexport {\n length,\n toArray\n} from \"./foreign.js\";\nexport {\n item,\n namedItem\n};\n","var getEffProp = function (name) {\n return function (node) {\n return function () {\n return node[name];\n };\n };\n};\n\nexport function nodeTypeIndex(node) {\n return node.nodeType;\n}\n\nexport function nodeName(node) {\n return node.nodeName;\n}\n\nexport const baseURI = getEffProp(\"baseURI\");\nexport const _ownerDocument = getEffProp(\"ownerDocument\");\nexport const _parentNode = getEffProp(\"parentNode\");\nexport const _parentElement = getEffProp(\"parentElement\");\n\nexport function hasChildNodes(node) {\n return function () {\n return node.hasChildNodes();\n };\n}\n\nexport const childNodes = getEffProp(\"childNodes\");\nexport const _firstChild = getEffProp(\"firstChild\");\nexport const _lastChild = getEffProp(\"lastChild\");\nexport const _previousSibling = getEffProp(\"previousSibling\");\nexport const _nextSibling = getEffProp(\"nextSibling\");\nexport const _nodeValue = getEffProp(\"nodeValue\");\n\nexport function setNodeValue(value) {\n return function (node) {\n return function () {\n node.nodeValue = value;\n };\n };\n}\n\nexport const textContent = getEffProp(\"textContent\");\n\nexport function setTextContent(value) {\n return function (node) {\n return function () {\n node.textContent = value;\n };\n };\n}\n\nexport function normalize(node) {\n return function () {\n node.normalize();\n };\n}\n\nexport function clone(node) {\n return function () {\n return node.cloneNode(false);\n };\n}\n\nexport function deepClone(node) {\n return function () {\n return node.cloneNode(true);\n };\n}\n\nexport function isEqualNode(node1) {\n return function (node2) {\n return function () {\n return node1.isEqualNode(node2);\n };\n };\n}\n\nexport function compareDocumentPositionBits(node1) {\n return function (node2) {\n return function () {\n return node1.compareDocumentPosition(node2);\n };\n };\n}\n\nexport function contains(node1) {\n return function (node2) {\n return function () {\n return node1.contains(node2);\n };\n };\n}\n\nexport function _lookupPrefix(prefix) {\n return function (node) {\n return function () {\n return node.lookupPrefix(prefix);\n };\n };\n}\n\nexport function _lookupNamespaceURI(ns) {\n return function (node) {\n return function () {\n return node.lookupNamespaceURI(ns);\n };\n };\n}\n\nexport function isDefaultNamespace(ns) {\n return function (node) {\n return function () {\n return node.isDefaultNamespace(ns);\n };\n };\n}\n\nexport function insertBefore(node1) {\n return function (node2) {\n return function (parent) {\n return function () {\n parent.insertBefore(node1, node2);\n };\n };\n };\n}\n\nexport function appendChild(node) {\n return function (parent) {\n return function () {\n parent.appendChild(node);\n };\n };\n}\n\nexport function replaceChild(newChild) {\n return function (oldChild) {\n return function (parent) {\n return function () {\n parent.replaceChild(newChild, oldChild);\n };\n };\n };\n}\n\nexport function removeChild(node) {\n return function (parent) {\n return function () {\n parent.removeChild(node);\n };\n };\n}\n","// Generated by purs version 0.15.2\nimport * as Data_Enum from \"../Data.Enum/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nvar ElementNode = /* #__PURE__ */ (function () {\n function ElementNode() {\n\n };\n ElementNode.value = new ElementNode();\n return ElementNode;\n})();\nvar AttributeNode = /* #__PURE__ */ (function () {\n function AttributeNode() {\n\n };\n AttributeNode.value = new AttributeNode();\n return AttributeNode;\n})();\nvar TextNode = /* #__PURE__ */ (function () {\n function TextNode() {\n\n };\n TextNode.value = new TextNode();\n return TextNode;\n})();\nvar CDATASectionNode = /* #__PURE__ */ (function () {\n function CDATASectionNode() {\n\n };\n CDATASectionNode.value = new CDATASectionNode();\n return CDATASectionNode;\n})();\nvar EntityReferenceNode = /* #__PURE__ */ (function () {\n function EntityReferenceNode() {\n\n };\n EntityReferenceNode.value = new EntityReferenceNode();\n return EntityReferenceNode;\n})();\nvar EntityNode = /* #__PURE__ */ (function () {\n function EntityNode() {\n\n };\n EntityNode.value = new EntityNode();\n return EntityNode;\n})();\nvar ProcessingInstructionNode = /* #__PURE__ */ (function () {\n function ProcessingInstructionNode() {\n\n };\n ProcessingInstructionNode.value = new ProcessingInstructionNode();\n return ProcessingInstructionNode;\n})();\nvar CommentNode = /* #__PURE__ */ (function () {\n function CommentNode() {\n\n };\n CommentNode.value = new CommentNode();\n return CommentNode;\n})();\nvar DocumentNode = /* #__PURE__ */ (function () {\n function DocumentNode() {\n\n };\n DocumentNode.value = new DocumentNode();\n return DocumentNode;\n})();\nvar DocumentTypeNode = /* #__PURE__ */ (function () {\n function DocumentTypeNode() {\n\n };\n DocumentTypeNode.value = new DocumentTypeNode();\n return DocumentTypeNode;\n})();\nvar DocumentFragmentNode = /* #__PURE__ */ (function () {\n function DocumentFragmentNode() {\n\n };\n DocumentFragmentNode.value = new DocumentFragmentNode();\n return DocumentFragmentNode;\n})();\nvar NotationNode = /* #__PURE__ */ (function () {\n function NotationNode() {\n\n };\n NotationNode.value = new NotationNode();\n return NotationNode;\n})();\nvar toEnumNodeType = function (v) {\n if (v === 1) {\n return new Data_Maybe.Just(ElementNode.value);\n };\n if (v === 2) {\n return new Data_Maybe.Just(AttributeNode.value);\n };\n if (v === 3) {\n return new Data_Maybe.Just(TextNode.value);\n };\n if (v === 4) {\n return new Data_Maybe.Just(CDATASectionNode.value);\n };\n if (v === 5) {\n return new Data_Maybe.Just(EntityReferenceNode.value);\n };\n if (v === 6) {\n return new Data_Maybe.Just(EntityNode.value);\n };\n if (v === 7) {\n return new Data_Maybe.Just(ProcessingInstructionNode.value);\n };\n if (v === 8) {\n return new Data_Maybe.Just(CommentNode.value);\n };\n if (v === 9) {\n return new Data_Maybe.Just(DocumentNode.value);\n };\n if (v === 10) {\n return new Data_Maybe.Just(DocumentTypeNode.value);\n };\n if (v === 11) {\n return new Data_Maybe.Just(DocumentFragmentNode.value);\n };\n if (v === 12) {\n return new Data_Maybe.Just(NotationNode.value);\n };\n return Data_Maybe.Nothing.value;\n};\nvar showNodeType = {\n show: function (v) {\n if (v instanceof ElementNode) {\n return \"ElementNode\";\n };\n if (v instanceof AttributeNode) {\n return \"AttributeNode\";\n };\n if (v instanceof TextNode) {\n return \"TextNode\";\n };\n if (v instanceof CDATASectionNode) {\n return \"CDATASectionNode\";\n };\n if (v instanceof EntityReferenceNode) {\n return \"EntityReferenceNode\";\n };\n if (v instanceof EntityNode) {\n return \"EntityNode\";\n };\n if (v instanceof ProcessingInstructionNode) {\n return \"ProcessingInstructionNode\";\n };\n if (v instanceof CommentNode) {\n return \"CommentNode\";\n };\n if (v instanceof DocumentNode) {\n return \"DocumentNode\";\n };\n if (v instanceof DocumentTypeNode) {\n return \"DocumentTypeNode\";\n };\n if (v instanceof DocumentFragmentNode) {\n return \"DocumentFragmentNode\";\n };\n if (v instanceof NotationNode) {\n return \"NotationNode\";\n };\n throw new Error(\"Failed pattern match at Web.DOM.NodeType (line 39, column 1 - line 51, column 37): \" + [ v.constructor.name ]);\n }\n};\nvar fromEnumNodeType = function (v) {\n if (v instanceof ElementNode) {\n return 1;\n };\n if (v instanceof AttributeNode) {\n return 2;\n };\n if (v instanceof TextNode) {\n return 3;\n };\n if (v instanceof CDATASectionNode) {\n return 4;\n };\n if (v instanceof EntityReferenceNode) {\n return 5;\n };\n if (v instanceof EntityNode) {\n return 6;\n };\n if (v instanceof ProcessingInstructionNode) {\n return 7;\n };\n if (v instanceof CommentNode) {\n return 8;\n };\n if (v instanceof DocumentNode) {\n return 9;\n };\n if (v instanceof DocumentTypeNode) {\n return 10;\n };\n if (v instanceof DocumentFragmentNode) {\n return 11;\n };\n if (v instanceof NotationNode) {\n return 12;\n };\n throw new Error(\"Failed pattern match at Web.DOM.NodeType (line 68, column 1 - line 68, column 36): \" + [ v.constructor.name ]);\n};\nvar eqNodeType = {\n eq: function (x) {\n return function (y) {\n if (x instanceof ElementNode && y instanceof ElementNode) {\n return true;\n };\n if (x instanceof AttributeNode && y instanceof AttributeNode) {\n return true;\n };\n if (x instanceof TextNode && y instanceof TextNode) {\n return true;\n };\n if (x instanceof CDATASectionNode && y instanceof CDATASectionNode) {\n return true;\n };\n if (x instanceof EntityReferenceNode && y instanceof EntityReferenceNode) {\n return true;\n };\n if (x instanceof EntityNode && y instanceof EntityNode) {\n return true;\n };\n if (x instanceof ProcessingInstructionNode && y instanceof ProcessingInstructionNode) {\n return true;\n };\n if (x instanceof CommentNode && y instanceof CommentNode) {\n return true;\n };\n if (x instanceof DocumentNode && y instanceof DocumentNode) {\n return true;\n };\n if (x instanceof DocumentTypeNode && y instanceof DocumentTypeNode) {\n return true;\n };\n if (x instanceof DocumentFragmentNode && y instanceof DocumentFragmentNode) {\n return true;\n };\n if (x instanceof NotationNode && y instanceof NotationNode) {\n return true;\n };\n return false;\n };\n }\n};\nvar ordNodeType = {\n compare: function (x) {\n return function (y) {\n return Data_Ord.compare(Data_Ord.ordInt)(fromEnumNodeType(x))(fromEnumNodeType(y));\n };\n },\n Eq0: function () {\n return eqNodeType;\n }\n};\nvar enumNodeType = {\n succ: /* #__PURE__ */ Data_Enum.defaultSucc(toEnumNodeType)(fromEnumNodeType),\n pred: /* #__PURE__ */ Data_Enum.defaultPred(toEnumNodeType)(fromEnumNodeType),\n Ord0: function () {\n return ordNodeType;\n }\n};\nvar boundedNodeType = /* #__PURE__ */ (function () {\n return {\n bottom: ElementNode.value,\n top: NotationNode.value,\n Ord0: function () {\n return ordNodeType;\n }\n };\n})();\nvar boundedEnumNodeType = {\n cardinality: 12,\n toEnum: toEnumNodeType,\n fromEnum: fromEnumNodeType,\n Bounded0: function () {\n return boundedNodeType;\n },\n Enum1: function () {\n return enumNodeType;\n }\n};\nexport {\n ElementNode,\n AttributeNode,\n TextNode,\n CDATASectionNode,\n EntityReferenceNode,\n EntityNode,\n ProcessingInstructionNode,\n CommentNode,\n DocumentNode,\n DocumentTypeNode,\n DocumentFragmentNode,\n NotationNode,\n eqNodeType,\n ordNodeType,\n boundedNodeType,\n enumNodeType,\n boundedEnumNodeType,\n showNodeType\n};\n","// Generated by purs version 0.15.2\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Enum from \"../Data.Enum/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Nullable from \"../Data.Nullable/index.js\";\nimport * as Effect from \"../Effect/index.js\";\nimport * as Unsafe_Coerce from \"../Unsafe.Coerce/index.js\";\nimport * as Web_DOM_Internal_Types from \"../Web.DOM.Internal.Types/index.js\";\nimport * as Web_DOM_NodeType from \"../Web.DOM.NodeType/index.js\";\nimport * as Web_Internal_FFI from \"../Web.Internal.FFI/index.js\";\nvar toEventTarget = Unsafe_Coerce.unsafeCoerce;\nvar previousSibling = /* #__PURE__ */ (function () {\n var $0 = Data_Functor.map(Effect.functorEffect)(Data_Nullable.toMaybe);\n return function ($1) {\n return $0($foreign[\"_previousSibling\"]($1));\n };\n})();\nvar parentNode = /* #__PURE__ */ (function () {\n var $2 = Data_Functor.map(Effect.functorEffect)(Data_Nullable.toMaybe);\n return function ($3) {\n return $2($foreign[\"_parentNode\"]($3));\n };\n})();\nvar parentElement = /* #__PURE__ */ (function () {\n var $4 = Data_Functor.map(Effect.functorEffect)(Data_Nullable.toMaybe);\n return function ($5) {\n return $4($foreign[\"_parentElement\"]($5));\n };\n})();\nvar ownerDocument = /* #__PURE__ */ (function () {\n var $6 = Data_Functor.map(Effect.functorEffect)(Data_Nullable.toMaybe);\n return function ($7) {\n return $6($foreign[\"_ownerDocument\"]($7));\n };\n})();\nvar nodeValue = /* #__PURE__ */ (function () {\n var $8 = Data_Functor.map(Effect.functorEffect)(Data_Nullable.toMaybe);\n return function ($9) {\n return $8($foreign[\"_nodeValue\"]($9));\n };\n})();\nvar nodeType = function () {\n var $10 = Data_Maybe.fromJust();\n var $11 = Data_Enum.toEnum(Web_DOM_NodeType.boundedEnumNodeType);\n return function ($12) {\n return $10($11($foreign.nodeTypeIndex($12)));\n };\n};\nvar nextSibling = /* #__PURE__ */ (function () {\n var $13 = Data_Functor.map(Effect.functorEffect)(Data_Nullable.toMaybe);\n return function ($14) {\n return $13($foreign[\"_nextSibling\"]($14));\n };\n})();\nvar lookupPrefix = function (p) {\n var $15 = Data_Functor.map(Effect.functorEffect)(Data_Nullable.toMaybe);\n var $16 = $foreign[\"_lookupPrefix\"](p);\n return function ($17) {\n return $15($16($17));\n };\n};\nvar lookupNamespaceURI = function (ns) {\n var $18 = Data_Functor.map(Effect.functorEffect)(Data_Nullable.toMaybe);\n var $19 = $foreign[\"_lookupNamespaceURI\"](ns);\n return function ($20) {\n return $18($19($20));\n };\n};\nvar lastChild = /* #__PURE__ */ (function () {\n var $21 = Data_Functor.map(Effect.functorEffect)(Data_Nullable.toMaybe);\n return function ($22) {\n return $21($foreign[\"_lastChild\"]($22));\n };\n})();\nvar fromEventTarget = /* #__PURE__ */ Web_Internal_FFI.unsafeReadProtoTagged(\"Node\");\nvar firstChild = /* #__PURE__ */ (function () {\n var $23 = Data_Functor.map(Effect.functorEffect)(Data_Nullable.toMaybe);\n return function ($24) {\n return $23($foreign[\"_firstChild\"]($24));\n };\n})();\nexport {\n nodeTypeIndex,\n nodeName,\n baseURI,\n hasChildNodes,\n childNodes,\n setNodeValue,\n textContent,\n setTextContent,\n normalize,\n clone,\n deepClone,\n isEqualNode,\n compareDocumentPositionBits,\n contains,\n isDefaultNamespace,\n insertBefore,\n appendChild,\n replaceChild,\n removeChild\n} from \"./foreign.js\";\nexport {\n fromEventTarget,\n toEventTarget,\n nodeType,\n ownerDocument,\n parentNode,\n parentElement,\n firstChild,\n lastChild,\n previousSibling,\n nextSibling,\n nodeValue,\n lookupPrefix,\n lookupNamespaceURI\n};\n","// Generated by purs version 0.15.2\nimport * as $foreign from \"./foreign.js\";\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Data_Array from \"../Data.Array/index.js\";\nimport * as Data_Either from \"../Data.Either/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Effect from \"../Effect/index.js\";\nimport * as Web_DOM_Document from \"../Web.DOM.Document/index.js\";\nimport * as Web_DOM_Element from \"../Web.DOM.Element/index.js\";\nimport * as Web_DOM_HTMLCollection from \"../Web.DOM.HTMLCollection/index.js\";\nimport * as Web_DOM_Node from \"../Web.DOM.Node/index.js\";\nvar returnIfNothing = function (errMay) {\n return function (val) {\n if (errMay instanceof Data_Maybe.Nothing) {\n return new Data_Either.Right(val);\n };\n if (errMay instanceof Data_Maybe.Just) {\n return new Data_Either.Left(errMay.value0);\n };\n throw new Error(\"Failed pattern match at Web.DOM.DOMParser (line 73, column 30 - line 75, column 21): \" + [ errMay.constructor.name ]);\n };\n};\nvar _getParserError = function (doc) {\n var getText = function (elMay) {\n var v = Data_Functor.map(Data_Maybe.functorMaybe)(Web_DOM_Element.toNode)(elMay);\n if (v instanceof Data_Maybe.Nothing) {\n return Control_Applicative.pure(Effect.applicativeEffect)(Data_Maybe.Nothing.value);\n };\n if (v instanceof Data_Maybe.Just) {\n return Data_Functor.map(Effect.functorEffect)(Data_Maybe.Just.create)(Web_DOM_Node.textContent(v.value0));\n };\n throw new Error(\"Failed pattern match at Web.DOM.DOMParser (line 65, column 23 - line 67, column 45): \" + [ v.constructor.name ]);\n };\n return function __do() {\n var v = Control_Bind.join(Effect.bindEffect)(Data_Functor.map(Effect.functorEffect)(Web_DOM_HTMLCollection.toArray)(Web_DOM_Document.getElementsByTagName(\"parsererror\")(doc)))();\n var v1 = Data_Array.head(v);\n return getText(v1)();\n };\n};\nvar parseHTMLFromString = function (s) {\n return function (d) {\n return function __do() {\n var doc = $foreign.parseFromString(\"text/html\")(s)(d)();\n var errMay = _getParserError(doc)();\n return returnIfNothing(errMay)(doc);\n };\n };\n};\nvar parseSVGFromString = function (s) {\n return function (d) {\n return function __do() {\n var doc = $foreign.parseFromString(\"image/svg+xml\")(s)(d)();\n var errMay = _getParserError(doc)();\n return returnIfNothing(errMay)(doc);\n };\n };\n};\nvar parseXMLFromString = function (s) {\n return function (d) {\n return function __do() {\n var doc = $foreign.parseFromString(\"application/xml\")(s)(d)();\n var errMay = _getParserError(doc)();\n return returnIfNothing(errMay)(doc);\n };\n };\n};\nexport {\n makeDOMParser,\n parseFromString\n} from \"./foreign.js\";\nexport {\n parseHTMLFromString,\n parseSVGFromString,\n parseXMLFromString,\n _getParserError\n};\n","// Generated by purs version 0.15.2\nimport * as $foreign from \"./foreign.js\";\nimport * as AppState from \"../AppState/index.js\";\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Control_Monad_Maybe_Trans from \"../Control.Monad.Maybe.Trans/index.js\";\nimport * as Control_Monad_Writer_Class from \"../Control.Monad.Writer.Class/index.js\";\nimport * as Control_Monad_Writer_Trans from \"../Control.Monad.Writer.Trans/index.js\";\nimport * as CorsProxy from \"../CorsProxy/index.js\";\nimport * as Data_Argonaut_Core from \"../Data.Argonaut.Core/index.js\";\nimport * as Data_Argonaut_Parser from \"../Data.Argonaut.Parser/index.js\";\nimport * as Data_Array from \"../Data.Array/index.js\";\nimport * as Data_Either from \"../Data.Either/index.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_HeytingAlgebra from \"../Data.HeytingAlgebra/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Monoid from \"../Data.Monoid/index.js\";\nimport * as Data_String_Regex from \"../Data.String.Regex/index.js\";\nimport * as Data_String_Regex_Flags from \"../Data.String.Regex.Flags/index.js\";\nimport * as Data_String_Regex_Unsafe from \"../Data.String.Regex.Unsafe/index.js\";\nimport * as Data_Traversable from \"../Data.Traversable/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nimport * as Effect from \"../Effect/index.js\";\nimport * as Effect_Class from \"../Effect.Class/index.js\";\nimport * as Effect_Console from \"../Effect.Console/index.js\";\nimport * as JsonUtils from \"../JsonUtils/index.js\";\nimport * as Utils from \"../Utils/index.js\";\nimport * as Web_DOM_DOMParser from \"../Web.DOM.DOMParser/index.js\";\nimport * as Web_DOM_Document from \"../Web.DOM.Document/index.js\";\nimport * as Web_DOM_Element from \"../Web.DOM.Element/index.js\";\nimport * as Web_DOM_ParentNode from \"../Web.DOM.ParentNode/index.js\";\nvar toSearchResult = function (dictMonad) {\n return function (json) {\n var maybeResult = Control_Bind.bind(Data_Maybe.bindMaybe)(Control_Bind.bind(Data_Maybe.bindMaybe)(JsonUtils.child(\"tab_url\")(json))(JsonUtils.string))(function (url) {\n return Control_Bind.bind(Data_Maybe.bindMaybe)(Control_Bind.bind(Data_Maybe.bindMaybe)(JsonUtils.child(\"song_name\")(json))(JsonUtils.string))(function (name) {\n return Control_Bind.bind(Data_Maybe.bindMaybe)(Control_Bind.bind(Data_Maybe.bindMaybe)(JsonUtils.child(\"artist_name\")(json))(JsonUtils.string))(function (artist) {\n var rating = Control_Bind.bind(Data_Maybe.bindMaybe)(JsonUtils.child(\"rating\")(json))(JsonUtils.number);\n var contentType = Control_Bind.bind(Data_Maybe.bindMaybe)(JsonUtils.child(\"type\")(json))(JsonUtils.string);\n var marketingType = Control_Bind.bind(Data_Maybe.bindMaybe)(JsonUtils.child(\"marketing_type\")(json))(JsonUtils.string);\n return new Data_Maybe.Just({\n url: url,\n rating: rating,\n name: name,\n artist: artist,\n contentType: contentType,\n marketingType: marketingType\n });\n });\n });\n });\n return Control_Bind.discard(Control_Bind.discardUnit)(Control_Monad_Maybe_Trans.bindMaybeT(Control_Monad_Writer_Trans.monadWriterT(Data_Monoid.monoidArray)(dictMonad)))(Control_Applicative.when(Control_Monad_Maybe_Trans.applicativeMaybeT(Control_Monad_Writer_Trans.monadWriterT(Data_Monoid.monoidArray)(dictMonad)))(Data_Maybe.isNothing(maybeResult))(Control_Monad_Writer_Class.tell(Control_Monad_Maybe_Trans.monadTellMaybeT(Control_Monad_Writer_Trans.monadTellWriterT(Data_Monoid.monoidArray)(dictMonad)))([ \"Could not find search results in json \" + Data_Argonaut_Core.stringify(json) ])))(function () {\n return Utils[\"hoistMaybe$prime\"](dictMonad)(maybeResult);\n });\n };\n};\nvar hoistMaybe = function (dictMonad) {\n var $24 = Control_Applicative.pure(dictMonad.Applicative0());\n return function ($25) {\n return Control_Monad_Maybe_Trans.MaybeT($24($25));\n };\n};\nvar filterSearchResults = /* #__PURE__ */ (function () {\n var pred = function (v) {\n return Data_Maybe.isJust(v.rating) && (Data_Maybe.isNothing(v.marketingType) && Data_HeytingAlgebra.not(Data_HeytingAlgebra.heytingAlgebraFunction(Data_HeytingAlgebra.heytingAlgebraFunction(Data_HeytingAlgebra.heytingAlgebraBoolean)))(Data_Array.elem(Data_Maybe.eqMaybe(Data_Eq.eqString)))(v.contentType)([ new Data_Maybe.Just(\"Pro\"), new Data_Maybe.Just(\"Video\"), new Data_Maybe.Just(\"Power\") ]));\n };\n return Data_Array.filter(pred);\n})();\nvar extractTab = function (dictMonad) {\n return function (json) {\n var maybeRawTab = Control_Bind.bind(Data_Maybe.bindMaybe)(Control_Bind.bind(Data_Maybe.bindMaybe)(Control_Bind.bind(Data_Maybe.bindMaybe)(Control_Bind.bind(Data_Maybe.bindMaybe)(Control_Bind.bind(Data_Maybe.bindMaybe)(Control_Bind.bind(Data_Maybe.bindMaybe)(JsonUtils.child(\"store\")(json))(JsonUtils.child(\"page\")))(JsonUtils.child(\"data\")))(JsonUtils.child(\"tab_view\")))(JsonUtils.child(\"wiki_tab\")))(JsonUtils.child(\"content\")))(JsonUtils.string);\n return Control_Bind.discard(Control_Bind.discardUnit)(Control_Monad_Maybe_Trans.bindMaybeT(Control_Monad_Writer_Trans.monadWriterT(Data_Monoid.monoidArray)(dictMonad)))(Control_Applicative.when(Control_Monad_Maybe_Trans.applicativeMaybeT(Control_Monad_Writer_Trans.monadWriterT(Data_Monoid.monoidArray)(dictMonad)))(Data_Maybe.isNothing(maybeRawTab))(Control_Monad_Writer_Class.tell(Control_Monad_Maybe_Trans.monadTellMaybeT(Control_Monad_Writer_Trans.monadTellWriterT(Data_Monoid.monoidArray)(dictMonad)))([ \"Could not retrieve tablature data from json \" + Data_Argonaut_Core.stringify(json) ])))(function () {\n return Control_Bind.bind(Control_Monad_Maybe_Trans.bindMaybeT(Control_Monad_Writer_Trans.monadWriterT(Data_Monoid.monoidArray)(dictMonad)))(Control_Applicative.pure(Control_Monad_Writer_Trans.applicativeWriterT(Data_Monoid.monoidArray)(dictMonad.Applicative0()))(maybeRawTab))(function (rawTab) {\n return Control_Applicative.pure(Control_Monad_Maybe_Trans.applicativeMaybeT(Control_Monad_Writer_Trans.monadWriterT(Data_Monoid.monoidArray)(dictMonad)))($foreign[\"_htmlDecode\"](Data_String_Regex.replace(Data_String_Regex_Unsafe.unsafeRegex(\"\\\\[\\\\/?(ch|tab)\\\\]\")(Data_String_Regex_Flags.global))(\"\")(rawTab)));\n });\n });\n };\n};\nvar extractSearchResults = function (dictMonad) {\n return function (json) {\n var maybeJsonSearchResults = Control_Bind.bind(Data_Maybe.bindMaybe)(Control_Bind.bind(Data_Maybe.bindMaybe)(Control_Bind.bind(Data_Maybe.bindMaybe)(Control_Bind.bind(Data_Maybe.bindMaybe)(JsonUtils.child(\"store\")(json))(JsonUtils.child(\"page\")))(JsonUtils.child(\"data\")))(JsonUtils.child(\"results\")))(JsonUtils.array);\n return Control_Bind.discard(Control_Bind.discardUnit)(Control_Monad_Maybe_Trans.bindMaybeT(Control_Monad_Writer_Trans.monadWriterT(Data_Monoid.monoidArray)(dictMonad)))(Control_Applicative.when(Control_Monad_Maybe_Trans.applicativeMaybeT(Control_Monad_Writer_Trans.monadWriterT(Data_Monoid.monoidArray)(dictMonad)))(Data_Maybe.isNothing(maybeJsonSearchResults))(Control_Monad_Writer_Class.tell(Control_Monad_Maybe_Trans.monadTellMaybeT(Control_Monad_Writer_Trans.monadTellWriterT(Data_Monoid.monoidArray)(dictMonad)))([ \"Could not find search results in json \" + Data_Argonaut_Core.stringify(json) ])))(function () {\n return Control_Bind.bind(Control_Monad_Maybe_Trans.bindMaybeT(Control_Monad_Writer_Trans.monadWriterT(Data_Monoid.monoidArray)(dictMonad)))(Utils[\"hoistMaybe$prime\"](dictMonad)(maybeJsonSearchResults))(function (jsonSearchResults) {\n return Data_Functor.mapFlipped(Control_Monad_Writer_Trans.functorWriterT(((dictMonad.Bind1()).Apply0()).Functor0()))(Utils.mapMaybeT(Control_Monad_Writer_Trans.monadWriterT(Data_Monoid.monoidArray)(dictMonad))(toSearchResult(dictMonad))(jsonSearchResults))(Data_Maybe.Just.create);\n });\n });\n };\n};\nvar extractDataContent = function (dictMonadAff) {\n return function (input) {\n return Control_Bind.bind(Control_Monad_Maybe_Trans.bindMaybeT((dictMonadAff.MonadEffect0()).Monad0()))(Effect_Class.liftEffect(Control_Monad_Maybe_Trans.monadEffectMaybe(dictMonadAff.MonadEffect0()))(Web_DOM_DOMParser.makeDOMParser))(function (parser) {\n return Control_Bind.bind(Control_Monad_Maybe_Trans.bindMaybeT((dictMonadAff.MonadEffect0()).Monad0()))(Effect_Class.liftEffect(dictMonadAff.MonadEffect0())(Data_Functor.map(Effect.functorEffect)(Data_Either.hush)(Web_DOM_DOMParser.parseHTMLFromString(input)(parser))))(function (doc) {\n return Control_Bind.bind(Control_Monad_Maybe_Trans.bindMaybeT((dictMonadAff.MonadEffect0()).Monad0()))(Effect_Class.liftEffect(dictMonadAff.MonadEffect0())(Web_DOM_ParentNode.querySelector(\".js-store\")(Web_DOM_Document.toParentNode(doc))))(function (elem) {\n return Control_Bind.bind(Control_Monad_Maybe_Trans.bindMaybeT((dictMonadAff.MonadEffect0()).Monad0()))(Effect_Class.liftEffect(dictMonadAff.MonadEffect0())(Web_DOM_Element.getAttribute(\"data-content\")(elem)))(function (jsonString) {\n return Control_Applicative.pure(((dictMonadAff.MonadEffect0()).Monad0()).Applicative0())(Data_Either.hush(Data_Argonaut_Parser.jsonParser(jsonString)));\n });\n });\n });\n });\n };\n};\nvar fetchUrlDataContent = function (dictMonadAff) {\n return function (url) {\n return Control_Bind.bind(Control_Monad_Maybe_Trans.bindMaybeT((dictMonadAff.MonadEffect0()).Monad0()))(CorsProxy.fetchThroughProxy(dictMonadAff)(url))(function (result) {\n return extractDataContent(dictMonadAff)(result);\n });\n };\n};\nvar fetchTabFromUrl = function (dictMonadAff) {\n return function (dictMonadState) {\n return function (url) {\n return Control_Bind.bind(Control_Monad_Maybe_Trans.bindMaybeT((dictMonadAff.MonadEffect0()).Monad0()))(fetchUrlDataContent(dictMonadAff)(url))(function (dataContent) {\n return Control_Bind.bind(Control_Monad_Maybe_Trans.bindMaybeT((dictMonadAff.MonadEffect0()).Monad0()))(Control_Monad_Writer_Trans.runWriterT(Control_Monad_Maybe_Trans.runMaybeT(extractTab(Control_Monad_Maybe_Trans.monadMaybeT((dictMonadAff.MonadEffect0()).Monad0()))(dataContent))))(function (v) {\n return Control_Bind.bind(Control_Monad_Maybe_Trans.bindMaybeT((dictMonadAff.MonadEffect0()).Monad0()))(Effect_Class.liftEffect(Control_Monad_Maybe_Trans.monadEffectMaybe(dictMonadAff.MonadEffect0()))(Data_Traversable.traverse(Data_Traversable.traversableArray)(Effect.applicativeEffect)(Effect_Console.error)(v.value1)))(function () {\n return hoistMaybe((dictMonadAff.MonadEffect0()).Monad0())(v.value0);\n });\n });\n });\n };\n };\n};\nvar execSearch = function (dictMonadAff) {\n return function (dictMonadState) {\n return function (phrase) {\n return Data_Functor.map(((((dictMonadAff.MonadEffect0()).Monad0()).Bind1()).Apply0()).Functor0())(Data_Function[\"const\"](Data_Unit.unit))(Control_Monad_Maybe_Trans.runMaybeT((function () {\n var url = \"https://www.ultimate-guitar.com/search.php?search_type=title&value=\" + phrase;\n return Control_Bind.bind(Control_Monad_Maybe_Trans.bindMaybeT((dictMonadAff.MonadEffect0()).Monad0()))(fetchUrlDataContent(dictMonadAff)(url))(function (dataContent) {\n return Control_Bind.bind(Control_Monad_Maybe_Trans.bindMaybeT((dictMonadAff.MonadEffect0()).Monad0()))(Control_Monad_Writer_Trans.runWriterT(Control_Monad_Maybe_Trans.runMaybeT(extractSearchResults(Control_Monad_Maybe_Trans.monadMaybeT((dictMonadAff.MonadEffect0()).Monad0()))(dataContent))))(function (v) {\n return Control_Bind.bind(Control_Monad_Maybe_Trans.bindMaybeT((dictMonadAff.MonadEffect0()).Monad0()))(Effect_Class.liftEffect(Control_Monad_Maybe_Trans.monadEffectMaybe(dictMonadAff.MonadEffect0()))(Data_Traversable.traverse(Data_Traversable.traversableArray)(Effect.applicativeEffect)(Effect_Console.error)(v.value1)))(function () {\n return Control_Bind.bind(Control_Monad_Maybe_Trans.bindMaybeT((dictMonadAff.MonadEffect0()).Monad0()))(hoistMaybe((dictMonadAff.MonadEffect0()).Monad0())(v.value0))(function (searchResults) {\n return AppState.setState(Control_Monad_Maybe_Trans.monadStateMaybeT(dictMonadState))(function (dictStrong) {\n return AppState[\"_searchResults\"](dictStrong);\n })(new Data_Maybe.Just(filterSearchResults(searchResults)));\n });\n });\n });\n });\n })()));\n };\n };\n};\nexport {\n _htmlDecode\n} from \"./foreign.js\";\nexport {\n hoistMaybe,\n execSearch,\n filterSearchResults,\n extractSearchResults,\n toSearchResult,\n fetchTabFromUrl,\n extractTab,\n fetchUrlDataContent,\n extractDataContent\n};\n","'use strict';\n\nfunction _htmlDecode(string) {\n return string\n .replace(/"/g, '\"')\n .replace(/'/g, \"'\")\n .replace(/</g, '<')\n .replace(/>/g, '>')\n .replace(/&/g, '&');\n}\n\nexport { _htmlDecode }\n","// Generated by purs version 0.15.2\nimport * as AppState from \"../AppState/index.js\";\nimport * as AppUrl from \"../AppUrl/index.js\";\nimport * as AutoscrollSpeed from \"../AutoscrollSpeed/index.js\";\nimport * as Cache from \"../Cache/index.js\";\nimport * as Clipboard from \"../Clipboard/index.js\";\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Control_Monad_Maybe_Trans from \"../Control.Monad.Maybe.Trans/index.js\";\nimport * as CuttlyUrlShortener from \"../CuttlyUrlShortener/index.js\";\nimport * as Data_Enum from \"../Data.Enum/index.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nimport * as Effect from \"../Effect/index.js\";\nimport * as Effect_Aff_Class from \"../Effect.Aff.Class/index.js\";\nimport * as Effect_Class from \"../Effect.Class/index.js\";\nimport * as LocationString from \"../LocationString/index.js\";\nimport * as TablatureDocument from \"../TablatureDocument/index.js\";\nimport * as UGScraper from \"../UGScraper/index.js\";\nvar Initialize = /* #__PURE__ */ (function () {\n function Initialize() {\n\n };\n Initialize.value = new Initialize();\n return Initialize;\n})();\nvar ClickFileMenu = /* #__PURE__ */ (function () {\n function ClickFileMenu() {\n\n };\n ClickFileMenu.value = new ClickFileMenu();\n return ClickFileMenu;\n})();\nvar ClickSettingsMenu = /* #__PURE__ */ (function () {\n function ClickSettingsMenu() {\n\n };\n ClickSettingsMenu.value = new ClickSettingsMenu();\n return ClickSettingsMenu;\n})();\nvar ClickNoMenu = /* #__PURE__ */ (function () {\n function ClickNoMenu() {\n\n };\n ClickNoMenu.value = new ClickNoMenu();\n return ClickNoMenu;\n})();\nvar ToggleEditMode = /* #__PURE__ */ (function () {\n function ToggleEditMode() {\n\n };\n ToggleEditMode.value = new ToggleEditMode();\n return ToggleEditMode;\n})();\nvar ToggleTabNormalization = /* #__PURE__ */ (function () {\n function ToggleTabNormalization() {\n\n };\n ToggleTabNormalization.value = new ToggleTabNormalization();\n return ToggleTabNormalization;\n})();\nvar ToggleTabDozenalization = /* #__PURE__ */ (function () {\n function ToggleTabDozenalization() {\n\n };\n ToggleTabDozenalization.value = new ToggleTabDozenalization();\n return ToggleTabDozenalization;\n})();\nvar ToggleChordNormalization = /* #__PURE__ */ (function () {\n function ToggleChordNormalization() {\n\n };\n ToggleChordNormalization.value = new ToggleChordNormalization();\n return ToggleChordNormalization;\n})();\nvar ToggleChordDozenalization = /* #__PURE__ */ (function () {\n function ToggleChordDozenalization() {\n\n };\n ToggleChordDozenalization.value = new ToggleChordDozenalization();\n return ToggleChordDozenalization;\n})();\nvar CreateShortUrl = /* #__PURE__ */ (function () {\n function CreateShortUrl() {\n\n };\n CreateShortUrl.value = new CreateShortUrl();\n return CreateShortUrl;\n})();\nvar ToggleAutoscroll = /* #__PURE__ */ (function () {\n function ToggleAutoscroll() {\n\n };\n ToggleAutoscroll.value = new ToggleAutoscroll();\n return ToggleAutoscroll;\n})();\nvar IncreaseAutoscrollSpeed = /* #__PURE__ */ (function () {\n function IncreaseAutoscrollSpeed() {\n\n };\n IncreaseAutoscrollSpeed.value = new IncreaseAutoscrollSpeed();\n return IncreaseAutoscrollSpeed;\n})();\nvar DecreaseAutoscrollSpeed = /* #__PURE__ */ (function () {\n function DecreaseAutoscrollSpeed() {\n\n };\n DecreaseAutoscrollSpeed.value = new DecreaseAutoscrollSpeed();\n return DecreaseAutoscrollSpeed;\n})();\nvar IncreaseTransposition = /* #__PURE__ */ (function () {\n function IncreaseTransposition() {\n\n };\n IncreaseTransposition.value = new IncreaseTransposition();\n return IncreaseTransposition;\n})();\nvar DecreaseTransposition = /* #__PURE__ */ (function () {\n function DecreaseTransposition() {\n\n };\n DecreaseTransposition.value = new DecreaseTransposition();\n return DecreaseTransposition;\n})();\nvar FlatNoteOrientation = /* #__PURE__ */ (function () {\n function FlatNoteOrientation() {\n\n };\n FlatNoteOrientation.value = new FlatNoteOrientation();\n return FlatNoteOrientation;\n})();\nvar SharpNoteOrientation = /* #__PURE__ */ (function () {\n function SharpNoteOrientation() {\n\n };\n SharpNoteOrientation.value = new SharpNoteOrientation();\n return SharpNoteOrientation;\n})();\nvar DefaultNoteOrientation = /* #__PURE__ */ (function () {\n function DefaultNoteOrientation() {\n\n };\n DefaultNoteOrientation.value = new DefaultNoteOrientation();\n return DefaultNoteOrientation;\n})();\nvar ToggleSearch = /* #__PURE__ */ (function () {\n function ToggleSearch() {\n\n };\n ToggleSearch.value = new ToggleSearch();\n return ToggleSearch;\n})();\nvar SearchInput = /* #__PURE__ */ (function () {\n function SearchInput(value0) {\n this.value0 = value0;\n };\n SearchInput.create = function (value0) {\n return new SearchInput(value0);\n };\n return SearchInput;\n})();\nvar ImportFromUrl = /* #__PURE__ */ (function () {\n function ImportFromUrl(value0) {\n this.value0 = value0;\n };\n ImportFromUrl.create = function (value0) {\n return new ImportFromUrl(value0);\n };\n return ImportFromUrl;\n})();\nvar NoAction = /* #__PURE__ */ (function () {\n function NoAction() {\n\n };\n NoAction.value = new NoAction();\n return NoAction;\n})();\nvar toggleTabNormalization = function (dictMonadAff) {\n return function (dictMonadState) {\n return Control_Bind.bind(((dictMonadAff.MonadEffect0()).Monad0()).Bind1())(Cache.read(dictMonadState)(AppState.tabNormalizationEnabledCache(dictMonadAff)(dictMonadState)))(function (tabNormalizationEnabled) {\n return Cache.write(dictMonadState)(AppState.tabNormalizationEnabledCache(dictMonadAff)(dictMonadState))(!tabNormalizationEnabled);\n });\n };\n};\nvar toggleTabDozenalization = function (dictMonadAff) {\n return function (dictMonadState) {\n return Control_Bind.bind(((dictMonadAff.MonadEffect0()).Monad0()).Bind1())(Cache.read(dictMonadState)(AppState.ignoreDozenalizationCache(dictMonadAff)(dictMonadState)))(function (ignoreDozenalization) {\n if (ignoreDozenalization) {\n return Control_Applicative.pure(((dictMonadAff.MonadEffect0()).Monad0()).Applicative0())(Data_Unit.unit);\n };\n return Control_Bind.bind(((dictMonadAff.MonadEffect0()).Monad0()).Bind1())(Cache.read(dictMonadState)(AppState.tabDozenalizationEnabledCache(dictMonadAff)(dictMonadState)))(function (tabDozenalizationEnabled) {\n return Cache.write(dictMonadState)(AppState.tabDozenalizationEnabledCache(dictMonadAff)(dictMonadState))(!tabDozenalizationEnabled);\n });\n });\n };\n};\nvar toggleSearch = function (dictMonadAff) {\n return function (dictMonadState) {\n return Control_Bind.bind(((dictMonadAff.MonadEffect0()).Monad0()).Bind1())(AppState.viewState(dictMonadState)(function (dictStrong) {\n return AppState[\"_mode\"](dictStrong);\n }))(function (currentMode) {\n return Control_Bind.bind(((dictMonadAff.MonadEffect0()).Monad0()).Bind1())(Cache.read(dictMonadState)(AppState.tablatureTextCache(dictMonadAff)(dictMonadState)))(function (tablatureText) {\n return Control_Bind.discard(Control_Bind.discardUnit)(((dictMonadAff.MonadEffect0()).Monad0()).Bind1())(AppState.setState(dictMonadState)(function (dictStrong) {\n return AppState[\"_activeMenu\"](dictStrong);\n })(AppState.NoMenu.value))(function () {\n return AppState.setState(dictMonadState)(function (dictStrong) {\n return AppState[\"_mode\"](dictStrong);\n })((function () {\n var $58 = Data_Eq.eq(AppState.eqMode)(currentMode)(AppState.SearchMode.value);\n if ($58) {\n var $59 = tablatureText === \"\";\n if ($59) {\n return AppState.EditMode.value;\n };\n return AppState.ViewMode.value;\n };\n return AppState.SearchMode.value;\n })());\n });\n });\n });\n };\n};\nvar toggleChordNormalization = function (dictMonadAff) {\n return function (dictMonadState) {\n return Control_Bind.bind(((dictMonadAff.MonadEffect0()).Monad0()).Bind1())(Cache.read(dictMonadState)(AppState.chordNormalizationEnabledCache(dictMonadAff)(dictMonadState)))(function (chordNormalizationEnabled) {\n return Cache.write(dictMonadState)(AppState.chordNormalizationEnabledCache(dictMonadAff)(dictMonadState))(!chordNormalizationEnabled);\n });\n };\n};\nvar toggleChordDozenalization = function (dictMonadAff) {\n return function (dictMonadState) {\n return Control_Bind.bind(((dictMonadAff.MonadEffect0()).Monad0()).Bind1())(Cache.read(dictMonadState)(AppState.ignoreDozenalizationCache(dictMonadAff)(dictMonadState)))(function (ignoreDozenalization) {\n if (ignoreDozenalization) {\n return Control_Applicative.pure(((dictMonadAff.MonadEffect0()).Monad0()).Applicative0())(Data_Unit.unit);\n };\n return Control_Bind.bind(((dictMonadAff.MonadEffect0()).Monad0()).Bind1())(Cache.read(dictMonadState)(AppState.chordDozenalizationEnabledCache(dictMonadAff)(dictMonadState)))(function (chordDozenalizationEnabled) {\n return Cache.write(dictMonadState)(AppState.chordDozenalizationEnabledCache(dictMonadAff)(dictMonadState))(!chordDozenalizationEnabled);\n });\n });\n };\n};\nvar setNoteOrientation = function (dictMonadAff) {\n return function (noteOrientation) {\n return function (dictMonadState) {\n return Control_Bind.bind(((dictMonadAff.MonadEffect0()).Monad0()).Bind1())(Cache.read(dictMonadState)(AppState.urlParamsCache(dictMonadAff)(dictMonadState)))(function (urlParams) {\n return Cache.write(dictMonadState)(AppState.urlParamsCache(dictMonadAff)(dictMonadState))({\n transposition: urlParams.transposition,\n noteOrientation: noteOrientation\n });\n });\n };\n };\n};\nvar searchInput = function (dictMonadAff) {\n return function (dictMonadState) {\n return function (phrase) {\n return Control_Bind.discard(Control_Bind.discardUnit)(((dictMonadAff.MonadEffect0()).Monad0()).Bind1())(AppState.setState(dictMonadState)(function (dictStrong) {\n return AppState[\"_searchPhrase\"](dictStrong);\n })(new Data_Maybe.Just(phrase)))(function () {\n return UGScraper.execSearch(dictMonadAff)(dictMonadState)(phrase);\n });\n };\n };\n};\nvar initialize = function (dictMonadAff) {\n return function (dictMonadState) {\n return Control_Bind.bind(((dictMonadAff.MonadEffect0()).Monad0()).Bind1())(Cache.read(dictMonadState)(AppState.tablatureTextCache(dictMonadAff)(dictMonadState)))(function (tablatureText) {\n var $61 = tablatureText === \"\";\n if ($61) {\n return AppState.setState(dictMonadState)(function (dictStrong) {\n return AppState[\"_mode\"](dictStrong);\n })(AppState.EditMode.value);\n };\n return AppState.setState(dictMonadState)(function (dictStrong) {\n return AppState[\"_mode\"](dictStrong);\n })(AppState.ViewMode.value);\n });\n };\n};\nvar increaseTransposition = function (dictMonadAff) {\n return function (dictMonadState) {\n return Control_Bind.bind(((dictMonadAff.MonadEffect0()).Monad0()).Bind1())(Cache.read(dictMonadState)(AppState.urlParamsCache(dictMonadAff)(dictMonadState)))(function (urlParams) {\n return Cache.write(dictMonadState)(AppState.urlParamsCache(dictMonadAff)(dictMonadState))({\n transposition: TablatureDocument.succTransposition(urlParams.transposition),\n noteOrientation: urlParams.noteOrientation\n });\n });\n };\n};\nvar increaseAutoscrollSpeed = function (dictMonadAff) {\n return function (dictMonadState) {\n return Control_Bind.bind(((dictMonadAff.MonadEffect0()).Monad0()).Bind1())(AppState.viewState(dictMonadState)(function (dictStrong) {\n return AppState[\"_autoscrollSpeed\"](dictStrong);\n }))(function (currentSpeed) {\n var v = Data_Enum.succ(AutoscrollSpeed.enumAutoscrollSpeed)(currentSpeed);\n if (v instanceof Data_Maybe.Nothing) {\n return Control_Applicative.pure(((dictMonadAff.MonadEffect0()).Monad0()).Applicative0())(Data_Unit.unit);\n };\n if (v instanceof Data_Maybe.Just) {\n return AppState.setState(dictMonadState)(function (dictStrong) {\n return AppState[\"_autoscrollSpeed\"](dictStrong);\n })(v.value0);\n };\n throw new Error(\"Failed pattern match at AppActions (line 70, column 3 - line 72, column 50): \" + [ v.constructor.name ]);\n });\n };\n};\nvar importFromUrl = function (dictMonadAff) {\n return function (dictMonadState) {\n return function (url) {\n return Data_Functor.map(((((dictMonadAff.MonadEffect0()).Monad0()).Bind1()).Apply0()).Functor0())(Data_Function[\"const\"](Data_Unit.unit))(Control_Monad_Maybe_Trans.runMaybeT(Control_Bind.bind(Control_Monad_Maybe_Trans.bindMaybeT((dictMonadAff.MonadEffect0()).Monad0()))(UGScraper.fetchTabFromUrl(dictMonadAff)(dictMonadState)(url))(function (tablatureText) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Control_Monad_Maybe_Trans.bindMaybeT((dictMonadAff.MonadEffect0()).Monad0()))(Cache.write(Control_Monad_Maybe_Trans.monadStateMaybeT(dictMonadState))(AppState.tablatureTextCache(Effect_Aff_Class.monadAffMaybe(dictMonadAff))(Control_Monad_Maybe_Trans.monadStateMaybeT(dictMonadState)))(tablatureText))(function () {\n return Control_Bind.discard(Control_Bind.discardUnit)(Control_Monad_Maybe_Trans.bindMaybeT((dictMonadAff.MonadEffect0()).Monad0()))(Effect_Class.liftEffect(Control_Monad_Maybe_Trans.monadEffectMaybe(dictMonadAff.MonadEffect0()))(AppUrl.resetUrlParams))(function () {\n return Control_Bind.discard(Control_Bind.discardUnit)(Control_Monad_Maybe_Trans.bindMaybeT((dictMonadAff.MonadEffect0()).Monad0()))(Cache.invalidate(Control_Monad_Maybe_Trans.monadStateMaybeT(dictMonadState))(AppState[\"_urlParams\"]))(function () {\n return AppState.setState(Control_Monad_Maybe_Trans.monadStateMaybeT(dictMonadState))(function (dictStrong) {\n return AppState[\"_mode\"](dictStrong);\n })(AppState.ViewMode.value);\n });\n });\n });\n })));\n };\n };\n};\nvar decreaseTransposition = function (dictMonadAff) {\n return function (dictMonadState) {\n return Control_Bind.bind(((dictMonadAff.MonadEffect0()).Monad0()).Bind1())(Cache.read(dictMonadState)(AppState.urlParamsCache(dictMonadAff)(dictMonadState)))(function (urlParams) {\n return Cache.write(dictMonadState)(AppState.urlParamsCache(dictMonadAff)(dictMonadState))({\n transposition: TablatureDocument.predTransposition(urlParams.transposition),\n noteOrientation: urlParams.noteOrientation\n });\n });\n };\n};\nvar decreaseAutoscrollSpeed = function (dictMonadAff) {\n return function (dictMonadState) {\n return Control_Bind.bind(((dictMonadAff.MonadEffect0()).Monad0()).Bind1())(AppState.viewState(dictMonadState)(function (dictStrong) {\n return AppState[\"_autoscrollSpeed\"](dictStrong);\n }))(function (currentSpeed) {\n var v = Data_Enum.pred(AutoscrollSpeed.enumAutoscrollSpeed)(currentSpeed);\n if (v instanceof Data_Maybe.Nothing) {\n return Control_Applicative.pure(((dictMonadAff.MonadEffect0()).Monad0()).Applicative0())(Data_Unit.unit);\n };\n if (v instanceof Data_Maybe.Just) {\n return AppState.setState(dictMonadState)(function (dictStrong) {\n return AppState[\"_autoscrollSpeed\"](dictStrong);\n })(v.value0);\n };\n throw new Error(\"Failed pattern match at AppActions (line 77, column 3 - line 79, column 50): \" + [ v.constructor.name ]);\n });\n };\n};\nvar createAndCopyShortUrl = function (dictMonadAff) {\n return function (dictMonadState) {\n return Control_Bind.bind(((dictMonadAff.MonadEffect0()).Monad0()).Bind1())(Effect_Class.liftEffect(dictMonadAff.MonadEffect0())(LocationString.getLocationString))(function (longUrl) {\n return Control_Bind.bind(((dictMonadAff.MonadEffect0()).Monad0()).Bind1())(Effect_Aff_Class.liftAff(dictMonadAff)(Control_Monad_Maybe_Trans.runMaybeT(CuttlyUrlShortener.createShortUrl(Effect_Aff_Class.monadAffAff)(longUrl))))(function (maybeShortUrl) {\n return Effect_Class.liftEffect(dictMonadAff.MonadEffect0())((function () {\n if (maybeShortUrl instanceof Data_Maybe.Just) {\n return Clipboard.copyToClipboard(maybeShortUrl.value0);\n };\n if (maybeShortUrl instanceof Data_Maybe.Nothing) {\n return Control_Applicative.pure(Effect.applicativeEffect)(Data_Unit.unit);\n };\n throw new Error(\"Failed pattern match at AppActions (line 111, column 16 - line 113, column 25): \" + [ maybeShortUrl.constructor.name ]);\n })());\n });\n });\n };\n};\nvar clickSettingsMenu = function (dictMonadAff) {\n return function (dictMonadState) {\n return Control_Bind.bind(((dictMonadAff.MonadEffect0()).Monad0()).Bind1())(AppState.viewState(dictMonadState)(function (dictStrong) {\n return AppState[\"_activeMenu\"](dictStrong);\n }))(function (activeMenu) {\n var $68 = Data_Eq.eq(AppState.eqActiveMenu)(activeMenu)(AppState.SettingsMenu.value);\n if ($68) {\n return AppState.setState(dictMonadState)(function (dictStrong) {\n return AppState[\"_activeMenu\"](dictStrong);\n })(AppState.NoMenu.value);\n };\n return AppState.setState(dictMonadState)(function (dictStrong) {\n return AppState[\"_activeMenu\"](dictStrong);\n })(AppState.SettingsMenu.value);\n });\n };\n};\nvar clickNoMenu = function (dictMonadAff) {\n return function (dictMonadState) {\n return AppState.setState(dictMonadState)(function (dictStrong) {\n return AppState[\"_activeMenu\"](dictStrong);\n })(AppState.NoMenu.value);\n };\n};\nvar clickFileMenu = function (dictMonadAff) {\n return function (dictMonadState) {\n return Control_Bind.bind(((dictMonadAff.MonadEffect0()).Monad0()).Bind1())(AppState.viewState(dictMonadState)(function (dictStrong) {\n return AppState[\"_activeMenu\"](dictStrong);\n }))(function (activeMenu) {\n var $69 = Data_Eq.eq(AppState.eqActiveMenu)(activeMenu)(AppState.FileMenu.value);\n if ($69) {\n return AppState.setState(dictMonadState)(function (dictStrong) {\n return AppState[\"_activeMenu\"](dictStrong);\n })(AppState.NoMenu.value);\n };\n return AppState.setState(dictMonadState)(function (dictStrong) {\n return AppState[\"_activeMenu\"](dictStrong);\n })(AppState.FileMenu.value);\n });\n };\n};\nexport {\n Initialize,\n ClickFileMenu,\n ClickSettingsMenu,\n ClickNoMenu,\n ToggleEditMode,\n ToggleTabNormalization,\n ToggleTabDozenalization,\n ToggleChordNormalization,\n ToggleChordDozenalization,\n CreateShortUrl,\n ToggleAutoscroll,\n IncreaseAutoscrollSpeed,\n DecreaseAutoscrollSpeed,\n IncreaseTransposition,\n DecreaseTransposition,\n FlatNoteOrientation,\n SharpNoteOrientation,\n DefaultNoteOrientation,\n ToggleSearch,\n SearchInput,\n ImportFromUrl,\n NoAction,\n initialize,\n clickNoMenu,\n clickSettingsMenu,\n clickFileMenu,\n increaseAutoscrollSpeed,\n decreaseAutoscrollSpeed,\n toggleTabNormalization,\n toggleTabDozenalization,\n toggleChordNormalization,\n toggleChordDozenalization,\n createAndCopyShortUrl,\n increaseTransposition,\n decreaseTransposition,\n setNoteOrientation,\n toggleSearch,\n searchInput,\n importFromUrl\n};\n","'use strict';\n\nfunction copyToClipboard(text) {\n return function () {\n window.prompt(\"Copy the following link:\", text);\n }\n}\n\nexport { copyToClipboard }\n","function wrap(method) {\n return function(d) {\n return function(num) {\n return method.apply(num, [d]);\n };\n };\n}\n\nexport const toPrecisionNative = wrap(Number.prototype.toPrecision);\nexport const toFixedNative = wrap(Number.prototype.toFixed);\nexport const toExponentialNative = wrap(Number.prototype.toExponential);\nexport function toString(num) { return num.toString(); }\n","// Generated by purs version 0.15.2\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nvar Precision = /* #__PURE__ */ (function () {\n function Precision(value0) {\n this.value0 = value0;\n };\n Precision.create = function (value0) {\n return new Precision(value0);\n };\n return Precision;\n})();\nvar Fixed = /* #__PURE__ */ (function () {\n function Fixed(value0) {\n this.value0 = value0;\n };\n Fixed.create = function (value0) {\n return new Fixed(value0);\n };\n return Fixed;\n})();\nvar Exponential = /* #__PURE__ */ (function () {\n function Exponential(value0) {\n this.value0 = value0;\n };\n Exponential.create = function (value0) {\n return new Exponential(value0);\n };\n return Exponential;\n})();\nvar toStringWith = function (v) {\n if (v instanceof Precision) {\n return $foreign.toPrecisionNative(v.value0);\n };\n if (v instanceof Fixed) {\n return $foreign.toFixedNative(v.value0);\n };\n if (v instanceof Exponential) {\n return $foreign.toExponentialNative(v.value0);\n };\n throw new Error(\"Failed pattern match at Data.Number.Format (line 59, column 1 - line 59, column 43): \" + [ v.constructor.name ]);\n};\nvar precision = /* #__PURE__ */ (function () {\n var $5 = Data_Ord.clamp(Data_Ord.ordInt)(1)(21);\n return function ($6) {\n return Precision.create($5($6));\n };\n})();\nvar fixed = /* #__PURE__ */ (function () {\n var $7 = Data_Ord.clamp(Data_Ord.ordInt)(0)(20);\n return function ($8) {\n return Fixed.create($7($8));\n };\n})();\nvar exponential = /* #__PURE__ */ (function () {\n var $9 = Data_Ord.clamp(Data_Ord.ordInt)(0)(20);\n return function ($10) {\n return Exponential.create($9($10));\n };\n})();\nexport {\n toString\n} from \"./foreign.js\";\nexport {\n precision,\n fixed,\n exponential,\n toStringWith\n};\n","// Generated by purs version 0.15.2\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nvar TimeoutId = function (x) {\n return x;\n};\nvar IntervalId = function (x) {\n return x;\n};\nvar setTimeout = $foreign.setTimeoutImpl;\nvar setInterval = $foreign.setIntervalImpl;\nvar eqTimeoutId = {\n eq: function (x) {\n return function (y) {\n return x === y;\n };\n }\n};\nvar ordTimeoutId = {\n compare: function (x) {\n return function (y) {\n return Data_Ord.compare(Data_Ord.ordInt)(x)(y);\n };\n },\n Eq0: function () {\n return eqTimeoutId;\n }\n};\nvar eqIntervalId = {\n eq: function (x) {\n return function (y) {\n return x === y;\n };\n }\n};\nvar ordIntervalId = {\n compare: function (x) {\n return function (y) {\n return Data_Ord.compare(Data_Ord.ordInt)(x)(y);\n };\n },\n Eq0: function () {\n return eqIntervalId;\n }\n};\nvar clearTimeout = $foreign.clearTimeoutImpl;\nvar clearInterval = $foreign.clearIntervalImpl;\nexport {\n setTimeout,\n clearTimeout,\n setInterval,\n clearInterval,\n eqTimeoutId,\n ordTimeoutId,\n eqIntervalId,\n ordIntervalId\n};\n","/* no-redeclare global exports */\nexport function setTimeoutImpl(ms) {\n return function (fn) {\n return function () {\n return setTimeout(fn, ms);\n };\n };\n}\n\nexport function clearTimeoutImpl(id) {\n return function () {\n clearTimeout(id);\n };\n}\n\nexport function setIntervalImpl(ms) {\n return function (fn) {\n return function () {\n return setInterval(fn, ms);\n };\n };\n}\n\nexport function clearIntervalImpl(id) {\n return function () {\n clearInterval(id);\n };\n}\n","// Generated by purs version 0.15.2\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nvar RefLabel = function (x) {\n return x;\n};\nvar RefUpdate = /* #__PURE__ */ (function () {\n function RefUpdate(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n RefUpdate.create = function (value0) {\n return function (value1) {\n return new RefUpdate(value0, value1);\n };\n };\n return RefUpdate;\n})();\nvar Action = /* #__PURE__ */ (function () {\n function Action(value0) {\n this.value0 = value0;\n };\n Action.create = function (value0) {\n return new Action(value0);\n };\n return Action;\n})();\nvar ordRefLabel = Data_Ord.ordString;\nvar newtypeRefLabel = {\n Coercible0: function () {\n return undefined;\n }\n};\nvar functorInput = {\n map: function (f) {\n return function (m) {\n if (m instanceof RefUpdate) {\n return new RefUpdate(m.value0, m.value1);\n };\n if (m instanceof Action) {\n return new Action(f(m.value0));\n };\n throw new Error(\"Failed pattern match at Halogen.Query.Input (line 0, column 0 - line 0, column 0): \" + [ m.constructor.name ]);\n };\n }\n};\nvar eqRefLabel = Data_Eq.eqString;\nexport {\n RefLabel,\n RefUpdate,\n Action,\n newtypeRefLabel,\n eqRefLabel,\n ordRefLabel,\n functorInput\n};\n","// Generated by purs version 0.15.2\nimport * as Unsafe_Coerce from \"../Unsafe.Coerce/index.js\";\nvar Step = /* #__PURE__ */ (function () {\n function Step(value0, value1, value2, value3) {\n this.value0 = value0;\n this.value1 = value1;\n this.value2 = value2;\n this.value3 = value3;\n };\n Step.create = function (value0) {\n return function (value1) {\n return function (value2) {\n return function (value3) {\n return new Step(value0, value1, value2, value3);\n };\n };\n };\n };\n return Step;\n})();\nvar unStep = Unsafe_Coerce.unsafeCoerce;\nvar step = function (v, a) {\n return v.value2(v.value1, a);\n};\nvar mkStep = Unsafe_Coerce.unsafeCoerce;\nvar halt = function (v) {\n return v.value3(v.value1);\n};\nvar extract = /* #__PURE__ */ unStep(function (v) {\n return v.value0;\n});\nexport {\n Step,\n mkStep,\n unStep,\n extract,\n step,\n halt\n};\n","// Generated by purs version 0.15.2\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Data_Bifunctor from \"../Data.Bifunctor/index.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nimport * as Unsafe_Coerce from \"../Unsafe.Coerce/index.js\";\nvar Namespace = function (x) {\n return x;\n};\nvar ElemName = function (x) {\n return x;\n};\nvar Text = /* #__PURE__ */ (function () {\n function Text(value0) {\n this.value0 = value0;\n };\n Text.create = function (value0) {\n return new Text(value0);\n };\n return Text;\n})();\nvar Elem = /* #__PURE__ */ (function () {\n function Elem(value0, value1, value2, value3) {\n this.value0 = value0;\n this.value1 = value1;\n this.value2 = value2;\n this.value3 = value3;\n };\n Elem.create = function (value0) {\n return function (value1) {\n return function (value2) {\n return function (value3) {\n return new Elem(value0, value1, value2, value3);\n };\n };\n };\n };\n return Elem;\n})();\nvar Keyed = /* #__PURE__ */ (function () {\n function Keyed(value0, value1, value2, value3) {\n this.value0 = value0;\n this.value1 = value1;\n this.value2 = value2;\n this.value3 = value3;\n };\n Keyed.create = function (value0) {\n return function (value1) {\n return function (value2) {\n return function (value3) {\n return new Keyed(value0, value1, value2, value3);\n };\n };\n };\n };\n return Keyed;\n})();\nvar Widget = /* #__PURE__ */ (function () {\n function Widget(value0) {\n this.value0 = value0;\n };\n Widget.create = function (value0) {\n return new Widget(value0);\n };\n return Widget;\n})();\nvar Grafted = /* #__PURE__ */ (function () {\n function Grafted(value0) {\n this.value0 = value0;\n };\n Grafted.create = function (value0) {\n return new Grafted(value0);\n };\n return Grafted;\n})();\nvar Graft = /* #__PURE__ */ (function () {\n function Graft(value0, value1, value2) {\n this.value0 = value0;\n this.value1 = value1;\n this.value2 = value2;\n };\n Graft.create = function (value0) {\n return function (value1) {\n return function (value2) {\n return new Graft(value0, value1, value2);\n };\n };\n };\n return Graft;\n})();\nvar unGraft = function (f) {\n return function ($55) {\n return f($55);\n };\n};\nvar ordNamespace = Data_Ord.ordString;\nvar ordElemName = Data_Ord.ordString;\nvar newtypeNamespace = {\n Coercible0: function () {\n return undefined;\n }\n};\nvar newtypeElemName = {\n Coercible0: function () {\n return undefined;\n }\n};\nvar graft = Unsafe_Coerce.unsafeCoerce;\nvar functorGraft = {\n map: function (g) {\n return unGraft(function (v) {\n return graft(new Graft(v.value0, function ($56) {\n return g(v.value1($56));\n }, v.value2));\n });\n }\n};\nvar functorVDom = {\n map: function (v) {\n return function (v1) {\n if (v1 instanceof Text) {\n return new Text(v1.value0);\n };\n if (v1 instanceof Grafted) {\n return new Grafted(Data_Functor.map(functorGraft)(v)(v1.value0));\n };\n return new Grafted(graft(new Graft(Control_Category.identity(Control_Category.categoryFn), v, v1)));\n };\n }\n};\nvar eqNamespace = Data_Eq.eqString;\nvar eqElemName = Data_Eq.eqString;\nvar bifunctorGraft = {\n bimap: function (f) {\n return function (g) {\n return unGraft(function (v) {\n return graft(new Graft(function ($57) {\n return f(v.value0($57));\n }, function ($58) {\n return g(v.value1($58));\n }, v.value2));\n });\n };\n }\n};\nvar bifunctorVDom = {\n bimap: function (v) {\n return function (v1) {\n return function (v2) {\n if (v2 instanceof Text) {\n return new Text(v2.value0);\n };\n if (v2 instanceof Grafted) {\n return new Grafted(Data_Bifunctor.bimap(bifunctorGraft)(v)(v1)(v2.value0));\n };\n return new Grafted(graft(new Graft(v, v1, v2)));\n };\n };\n }\n};\nvar runGraft = /* #__PURE__ */ unGraft(function (v) {\n var go = function (v2) {\n if (v2 instanceof Text) {\n return new Text(v2.value0);\n };\n if (v2 instanceof Elem) {\n return new Elem(v2.value0, v2.value1, v.value0(v2.value2), Data_Functor.map(Data_Functor.functorArray)(go)(v2.value3));\n };\n if (v2 instanceof Keyed) {\n return new Keyed(v2.value0, v2.value1, v.value0(v2.value2), Data_Functor.map(Data_Functor.functorArray)(Data_Functor.map(Data_Tuple.functorTuple)(go))(v2.value3));\n };\n if (v2 instanceof Widget) {\n return new Widget(v.value1(v2.value0));\n };\n if (v2 instanceof Grafted) {\n return new Grafted(Data_Bifunctor.bimap(bifunctorGraft)(v.value0)(v.value1)(v2.value0));\n };\n throw new Error(\"Failed pattern match at Halogen.VDom.Types (line 86, column 7 - line 86, column 27): \" + [ v2.constructor.name ]);\n };\n return go(v.value2);\n});\nvar renderWidget = function (f) {\n return function (g) {\n return function (v) {\n if (v instanceof Text) {\n return new Text(v.value0);\n };\n if (v instanceof Elem) {\n return new Elem(v.value0, v.value1, f(v.value2), Data_Functor.map(Data_Functor.functorArray)(renderWidget(f)(g))(v.value3));\n };\n if (v instanceof Keyed) {\n return new Keyed(v.value0, v.value1, f(v.value2), Data_Functor.map(Data_Functor.functorArray)(Data_Functor.map(Data_Tuple.functorTuple)(renderWidget(f)(g)))(v.value3));\n };\n if (v instanceof Widget) {\n return g(v.value0);\n };\n if (v instanceof Grafted) {\n return renderWidget(f)(g)(runGraft(v.value0));\n };\n throw new Error(\"Failed pattern match at Halogen.VDom.Types (line 48, column 20 - line 53, column 48): \" + [ v.constructor.name ]);\n };\n };\n};\nexport {\n Text,\n Elem,\n Keyed,\n Widget,\n Grafted,\n renderWidget,\n Graft,\n graft,\n unGraft,\n runGraft,\n ElemName,\n Namespace,\n functorVDom,\n bifunctorVDom,\n functorGraft,\n bifunctorGraft,\n newtypeElemName,\n eqElemName,\n ordElemName,\n newtypeNamespace,\n eqNamespace,\n ordNamespace\n};\n","\"use strict\";\n\nexport function unsafeGetAny(key, obj) {\n return obj[key];\n}\n\nexport function unsafeHasAny(key, obj) {\n return obj.hasOwnProperty(key);\n}\n\nexport function unsafeSetAny(key, val, obj) {\n obj[key] = val;\n}\n\nexport function unsafeDeleteAny(key, obj) {\n delete obj[key];\n}\n\nexport function forE(a, f) {\n var b = [];\n for (var i = 0; i < a.length; i++) {\n b.push(f(i, a[i]));\n }\n return b;\n}\n\nexport function forEachE(a, f) {\n for (var i = 0; i < a.length; i++) {\n f(a[i]);\n }\n}\n\nexport function forInE(o, f) {\n var ks = Object.keys(o);\n for (var i = 0; i < ks.length; i++) {\n var k = ks[i];\n f(k, o[k]);\n }\n}\n\nexport function replicateE(n, f) {\n for (var i = 0; i < n; i++) {\n f();\n }\n}\n\nexport function diffWithIxE(a1, a2, f1, f2, f3) {\n var a3 = [];\n var l1 = a1.length;\n var l2 = a2.length;\n var i = 0;\n while (1) {\n if (i < l1) {\n if (i < l2) {\n a3.push(f1(i, a1[i], a2[i]));\n } else {\n f2(i, a1[i]);\n }\n } else if (i < l2) {\n a3.push(f3(i, a2[i]));\n } else {\n break;\n }\n i++;\n }\n return a3;\n}\n\nexport function strMapWithIxE(as, fk, f) {\n var o = {};\n for (var i = 0; i < as.length; i++) {\n var a = as[i];\n var k = fk(a);\n o[k] = f(k, i, a);\n }\n return o;\n}\n\nexport function diffWithKeyAndIxE(o1, as, fk, f1, f2, f3) {\n var o2 = {};\n for (var i = 0; i < as.length; i++) {\n var a = as[i];\n var k = fk(a);\n if (o1.hasOwnProperty(k)) {\n o2[k] = f1(k, i, o1[k], a);\n } else {\n o2[k] = f3(k, i, a);\n }\n }\n for (var k in o1) {\n if (k in o2) {\n continue;\n }\n f2(k, o1[k]);\n }\n return o2;\n}\n\nexport function refEq(a, b) {\n return a === b;\n}\n\nexport function createTextNode(s, doc) {\n return doc.createTextNode(s);\n}\n\nexport function setTextContent(s, n) {\n n.textContent = s;\n}\n\nexport function createElement(ns, name, doc) {\n if (ns != null) {\n return doc.createElementNS(ns, name);\n } else {\n return doc.createElement(name)\n }\n}\n\nexport function insertChildIx(i, a, b) {\n var n = b.childNodes.item(i) || null;\n if (n !== a) {\n b.insertBefore(a, n);\n }\n}\n\nexport function removeChild(a, b) {\n if (b && a.parentNode === b) {\n b.removeChild(a);\n }\n}\n\nexport function parentNode(a) {\n return a.parentNode;\n}\n\nexport function setAttribute(ns, attr, val, el) {\n if (ns != null) {\n el.setAttributeNS(ns, attr, val);\n } else {\n el.setAttribute(attr, val);\n }\n}\n\nexport function removeAttribute(ns, attr, el) {\n if (ns != null) {\n el.removeAttributeNS(ns, attr);\n } else {\n el.removeAttribute(attr);\n }\n}\n\nexport function hasAttribute(ns, attr, el) {\n if (ns != null) {\n return el.hasAttributeNS(ns, attr);\n } else {\n return el.hasAttribute(attr);\n }\n}\n\nexport function addEventListener(ev, listener, el) {\n el.addEventListener(ev, listener, false);\n}\n\nexport function removeEventListener(ev, listener, el) {\n el.removeEventListener(ev, listener, false);\n}\n\nexport var jsUndefined = void 0;\n","// Generated by purs version 0.15.2\nimport * as $foreign from \"./foreign.js\";\nimport * as Foreign_Object_ST from \"../Foreign.Object.ST/index.js\";\nimport * as Unsafe_Coerce from \"../Unsafe.Coerce/index.js\";\nvar unsafeLookup = $foreign.unsafeGetAny;\nvar unsafeFreeze = Unsafe_Coerce.unsafeCoerce;\nvar pokeMutMap = $foreign.unsafeSetAny;\nvar newMutMap = Foreign_Object_ST[\"new\"];\nvar deleteMutMap = $foreign.unsafeDeleteAny;\nexport {\n unsafeGetAny,\n unsafeHasAny,\n unsafeSetAny,\n unsafeDeleteAny,\n forE,\n forEachE,\n forInE,\n replicateE,\n diffWithIxE,\n diffWithKeyAndIxE,\n strMapWithIxE,\n refEq,\n createTextNode,\n setTextContent,\n createElement,\n insertChildIx,\n removeChild,\n parentNode,\n setAttribute,\n removeAttribute,\n hasAttribute,\n addEventListener,\n removeEventListener,\n jsUndefined\n} from \"./foreign.js\";\nexport {\n newMutMap,\n pokeMutMap,\n deleteMutMap,\n unsafeFreeze,\n unsafeLookup\n};\n","// Generated by purs version 0.15.2\nimport * as Data_Array from \"../Data.Array/index.js\";\nimport * as Data_Boolean from \"../Data.Boolean/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Nullable from \"../Data.Nullable/index.js\";\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nimport * as Halogen_VDom_Machine from \"../Halogen.VDom.Machine/index.js\";\nimport * as Halogen_VDom_Types from \"../Halogen.VDom.Types/index.js\";\nimport * as Halogen_VDom_Util from \"../Halogen.VDom.Util/index.js\";\nimport * as Web_DOM_Element from \"../Web.DOM.Element/index.js\";\nvar $runtime_lazy = function (name, moduleName, init) {\n var state = 0;\n var val;\n return function (lineNumber) {\n if (state === 2) return val;\n if (state === 1) throw new ReferenceError(name + \" was needed before it finished initializing (module \" + moduleName + \", line \" + lineNumber + \")\", moduleName, lineNumber);\n state = 1;\n val = init();\n state = 2;\n return val;\n };\n};\nvar VDomSpec = function (x) {\n return x;\n};\nvar haltWidget = function (v) {\n return Halogen_VDom_Machine.halt(v.widget);\n};\nvar $lazy_patchWidget = /* #__PURE__ */ $runtime_lazy(\"patchWidget\", \"Halogen.VDom.DOM\", function () {\n return function (state, vdom) {\n if (vdom instanceof Halogen_VDom_Types.Grafted) {\n return $lazy_patchWidget(291)(state, Halogen_VDom_Types.runGraft(vdom.value0));\n };\n if (vdom instanceof Halogen_VDom_Types.Widget) {\n var res = Halogen_VDom_Machine.step(state.widget, vdom.value0);\n var res$prime = Halogen_VDom_Machine.unStep(function (v) {\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(v.value0, {\n build: state.build,\n widget: res\n }, $lazy_patchWidget(296), haltWidget));\n })(res);\n return res$prime;\n };\n haltWidget(state);\n return state.build(vdom);\n };\n});\nvar patchWidget = /* #__PURE__ */ $lazy_patchWidget(286);\nvar haltText = function (v) {\n var parent = Halogen_VDom_Util.parentNode(v.node);\n return Halogen_VDom_Util.removeChild(v.node, parent);\n};\nvar $lazy_patchText = /* #__PURE__ */ $runtime_lazy(\"patchText\", \"Halogen.VDom.DOM\", function () {\n return function (state, vdom) {\n if (vdom instanceof Halogen_VDom_Types.Grafted) {\n return $lazy_patchText(82)(state, Halogen_VDom_Types.runGraft(vdom.value0));\n };\n if (vdom instanceof Halogen_VDom_Types.Text) {\n if (state.value === vdom.value0) {\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(state.node, state, $lazy_patchText(85), haltText));\n };\n if (Data_Boolean.otherwise) {\n var nextState = {\n build: state.build,\n node: state.node,\n value: vdom.value0\n };\n Halogen_VDom_Util.setTextContent(vdom.value0, state.node);\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(state.node, nextState, $lazy_patchText(89), haltText));\n };\n };\n haltText(state);\n return state.build(vdom);\n };\n});\nvar patchText = /* #__PURE__ */ $lazy_patchText(77);\nvar haltKeyed = function (v) {\n var parent = Halogen_VDom_Util.parentNode(v.node);\n Halogen_VDom_Util.removeChild(v.node, parent);\n Halogen_VDom_Util.forInE(v.children, function (v1, s) {\n return Halogen_VDom_Machine.halt(s);\n });\n return Halogen_VDom_Machine.halt(v.attrs);\n};\nvar haltElem = function (v) {\n var parent = Halogen_VDom_Util.parentNode(v.node);\n Halogen_VDom_Util.removeChild(v.node, parent);\n Halogen_VDom_Util.forEachE(v.children, Halogen_VDom_Machine.halt);\n return Halogen_VDom_Machine.halt(v.attrs);\n};\nvar eqElemSpec = function (ns1, v, ns2, v1) {\n var $58 = v === v1;\n if ($58) {\n if (ns1 instanceof Data_Maybe.Just && (ns2 instanceof Data_Maybe.Just && ns1.value0 === ns2.value0)) {\n return true;\n };\n if (ns1 instanceof Data_Maybe.Nothing && ns2 instanceof Data_Maybe.Nothing) {\n return true;\n };\n return false;\n };\n return false;\n};\nvar $lazy_patchElem = /* #__PURE__ */ $runtime_lazy(\"patchElem\", \"Halogen.VDom.DOM\", function () {\n return function (state, vdom) {\n if (vdom instanceof Halogen_VDom_Types.Grafted) {\n return $lazy_patchElem(135)(state, Halogen_VDom_Types.runGraft(vdom.value0));\n };\n if (vdom instanceof Halogen_VDom_Types.Elem && eqElemSpec(state.ns, state.name, vdom.value0, vdom.value1)) {\n var v = Data_Array.length(vdom.value3);\n var v1 = Data_Array.length(state.children);\n if (v1 === 0 && v === 0) {\n var attrs2 = Halogen_VDom_Machine.step(state.attrs, vdom.value2);\n var nextState = {\n build: state.build,\n node: state.node,\n attrs: attrs2,\n ns: vdom.value0,\n name: vdom.value1,\n children: state.children\n };\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(state.node, nextState, $lazy_patchElem(149), haltElem));\n };\n var onThis = function (v2, s) {\n return Halogen_VDom_Machine.halt(s);\n };\n var onThese = function (ix, s, v2) {\n var res = Halogen_VDom_Machine.step(s, v2);\n Halogen_VDom_Util.insertChildIx(ix, Halogen_VDom_Machine.extract(res), state.node);\n return res;\n };\n var onThat = function (ix, v2) {\n var res = state.build(v2);\n Halogen_VDom_Util.insertChildIx(ix, Halogen_VDom_Machine.extract(res), state.node);\n return res;\n };\n var children2 = Halogen_VDom_Util.diffWithIxE(state.children, vdom.value3, onThese, onThis, onThat);\n var attrs2 = Halogen_VDom_Machine.step(state.attrs, vdom.value2);\n var nextState = {\n build: state.build,\n node: state.node,\n attrs: attrs2,\n ns: vdom.value0,\n name: vdom.value1,\n children: children2\n };\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(state.node, nextState, $lazy_patchElem(172), haltElem));\n };\n haltElem(state);\n return state.build(vdom);\n };\n});\nvar patchElem = /* #__PURE__ */ $lazy_patchElem(130);\nvar $lazy_patchKeyed = /* #__PURE__ */ $runtime_lazy(\"patchKeyed\", \"Halogen.VDom.DOM\", function () {\n return function (state, vdom) {\n if (vdom instanceof Halogen_VDom_Types.Grafted) {\n return $lazy_patchKeyed(222)(state, Halogen_VDom_Types.runGraft(vdom.value0));\n };\n if (vdom instanceof Halogen_VDom_Types.Keyed && eqElemSpec(state.ns, state.name, vdom.value0, vdom.value1)) {\n var v = Data_Array.length(vdom.value3);\n if (state.length === 0 && v === 0) {\n var attrs2 = Halogen_VDom_Machine.step(state.attrs, vdom.value2);\n var nextState = {\n build: state.build,\n node: state.node,\n attrs: attrs2,\n ns: vdom.value0,\n name: vdom.value1,\n children: state.children,\n length: 0\n };\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(state.node, nextState, $lazy_patchKeyed(237), haltKeyed));\n };\n var onThis = function (v2, s) {\n return Halogen_VDom_Machine.halt(s);\n };\n var onThese = function (v2, ix$prime, s, v3) {\n var res = Halogen_VDom_Machine.step(s, v3.value1);\n Halogen_VDom_Util.insertChildIx(ix$prime, Halogen_VDom_Machine.extract(res), state.node);\n return res;\n };\n var onThat = function (v2, ix, v3) {\n var res = state.build(v3.value1);\n Halogen_VDom_Util.insertChildIx(ix, Halogen_VDom_Machine.extract(res), state.node);\n return res;\n };\n var children2 = Halogen_VDom_Util.diffWithKeyAndIxE(state.children, vdom.value3, Data_Tuple.fst, onThese, onThis, onThat);\n var attrs2 = Halogen_VDom_Machine.step(state.attrs, vdom.value2);\n var nextState = {\n build: state.build,\n node: state.node,\n attrs: attrs2,\n ns: vdom.value0,\n name: vdom.value1,\n children: children2,\n length: v\n };\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(state.node, nextState, $lazy_patchKeyed(261), haltKeyed));\n };\n haltKeyed(state);\n return state.build(vdom);\n };\n});\nvar patchKeyed = /* #__PURE__ */ $lazy_patchKeyed(217);\nvar buildWidget = function (v, build, w) {\n var res = v.buildWidget(v)(w);\n var res$prime = Halogen_VDom_Machine.unStep(function (v1) {\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(v1.value0, {\n build: build,\n widget: res\n }, patchWidget, haltWidget));\n })(res);\n return res$prime;\n};\nvar buildText = function (v, build, s) {\n var node = Halogen_VDom_Util.createTextNode(s, v.document);\n var state = {\n build: build,\n node: node,\n value: s\n };\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(node, state, patchText, haltText));\n};\nvar buildKeyed = function (v, build, ns1, name1, as1, ch1) {\n var el = Halogen_VDom_Util.createElement(Data_Nullable.toNullable(ns1), name1, v.document);\n var node = Web_DOM_Element.toNode(el);\n var onChild = function (v1, ix, v2) {\n var res = build(v2.value1);\n Halogen_VDom_Util.insertChildIx(ix, Halogen_VDom_Machine.extract(res), node);\n return res;\n };\n var children = Halogen_VDom_Util.strMapWithIxE(ch1, Data_Tuple.fst, onChild);\n var attrs = v.buildAttributes(el)(as1);\n var state = {\n build: build,\n node: node,\n attrs: attrs,\n ns: ns1,\n name: name1,\n children: children,\n length: Data_Array.length(ch1)\n };\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(node, state, patchKeyed, haltKeyed));\n};\nvar buildElem = function (v, build, ns1, name1, as1, ch1) {\n var el = Halogen_VDom_Util.createElement(Data_Nullable.toNullable(ns1), name1, v.document);\n var node = Web_DOM_Element.toNode(el);\n var onChild = function (ix, child) {\n var res = build(child);\n Halogen_VDom_Util.insertChildIx(ix, Halogen_VDom_Machine.extract(res), node);\n return res;\n };\n var children = Halogen_VDom_Util.forE(ch1, onChild);\n var attrs = v.buildAttributes(el)(as1);\n var state = {\n build: build,\n node: node,\n attrs: attrs,\n ns: ns1,\n name: name1,\n children: children\n };\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(node, state, patchElem, haltElem));\n};\nvar buildVDom = function (spec) {\n var $lazy_build = $runtime_lazy(\"build\", \"Halogen.VDom.DOM\", function () {\n return function (v) {\n if (v instanceof Halogen_VDom_Types.Text) {\n return buildText(spec, $lazy_build(59), v.value0);\n };\n if (v instanceof Halogen_VDom_Types.Elem) {\n return buildElem(spec, $lazy_build(60), v.value0, v.value1, v.value2, v.value3);\n };\n if (v instanceof Halogen_VDom_Types.Keyed) {\n return buildKeyed(spec, $lazy_build(61), v.value0, v.value1, v.value2, v.value3);\n };\n if (v instanceof Halogen_VDom_Types.Widget) {\n return buildWidget(spec, $lazy_build(62), v.value0);\n };\n if (v instanceof Halogen_VDom_Types.Grafted) {\n return $lazy_build(63)(Halogen_VDom_Types.runGraft(v.value0));\n };\n throw new Error(\"Failed pattern match at Halogen.VDom.DOM (line 58, column 27 - line 63, column 52): \" + [ v.constructor.name ]);\n };\n });\n var build = $lazy_build(58);\n return build;\n};\nexport {\n VDomSpec,\n buildVDom,\n buildText,\n buildElem,\n buildKeyed,\n buildWidget\n};\n","export function eventListener(fn) {\n return function () {\n return function (event) {\n return fn(event)();\n };\n };\n}\n\nexport function addEventListenerWithOptions(type) {\n return function (listener) {\n return function (options) {\n return function (target) {\n return function () {\n return target.addEventListener(type, listener, options);\n };\n };\n };\n };\n}\n\nexport function addEventListener(type) {\n return function (listener) {\n return function (useCapture) {\n return function (target) {\n return function () {\n return target.addEventListener(type, listener, useCapture);\n };\n };\n };\n };\n}\n\nexport function removeEventListener(type) {\n return function (listener) {\n return function (useCapture) {\n return function (target) {\n return function () {\n return target.removeEventListener(type, listener, useCapture);\n };\n };\n };\n };\n}\n\nexport function dispatchEvent(event) {\n return function (target) {\n return function () {\n return target.dispatchEvent(event);\n };\n };\n}\n","// Generated by purs version 0.15.2\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Nullable from \"../Data.Nullable/index.js\";\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nimport * as Effect_Ref from \"../Effect.Ref/index.js\";\nimport * as Foreign from \"../Foreign/index.js\";\nimport * as Foreign_Object from \"../Foreign.Object/index.js\";\nimport * as Halogen_VDom_Machine from \"../Halogen.VDom.Machine/index.js\";\nimport * as Halogen_VDom_Util from \"../Halogen.VDom.Util/index.js\";\nimport * as Unsafe_Coerce from \"../Unsafe.Coerce/index.js\";\nimport * as Web_Event_EventTarget from \"../Web.Event.EventTarget/index.js\";\nvar $runtime_lazy = function (name, moduleName, init) {\n var state = 0;\n var val;\n return function (lineNumber) {\n if (state === 2) return val;\n if (state === 1) throw new ReferenceError(name + \" was needed before it finished initializing (module \" + moduleName + \", line \" + lineNumber + \")\", moduleName, lineNumber);\n state = 1;\n val = init();\n state = 2;\n return val;\n };\n};\nvar Created = /* #__PURE__ */ (function () {\n function Created(value0) {\n this.value0 = value0;\n };\n Created.create = function (value0) {\n return new Created(value0);\n };\n return Created;\n})();\nvar Removed = /* #__PURE__ */ (function () {\n function Removed(value0) {\n this.value0 = value0;\n };\n Removed.create = function (value0) {\n return new Removed(value0);\n };\n return Removed;\n})();\nvar Attribute = /* #__PURE__ */ (function () {\n function Attribute(value0, value1, value2) {\n this.value0 = value0;\n this.value1 = value1;\n this.value2 = value2;\n };\n Attribute.create = function (value0) {\n return function (value1) {\n return function (value2) {\n return new Attribute(value0, value1, value2);\n };\n };\n };\n return Attribute;\n})();\nvar Property = /* #__PURE__ */ (function () {\n function Property(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n Property.create = function (value0) {\n return function (value1) {\n return new Property(value0, value1);\n };\n };\n return Property;\n})();\nvar Handler = /* #__PURE__ */ (function () {\n function Handler(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n Handler.create = function (value0) {\n return function (value1) {\n return new Handler(value0, value1);\n };\n };\n return Handler;\n})();\nvar Ref = /* #__PURE__ */ (function () {\n function Ref(value0) {\n this.value0 = value0;\n };\n Ref.create = function (value0) {\n return new Ref(value0);\n };\n return Ref;\n})();\nvar unsafeGetProperty = Halogen_VDom_Util.unsafeGetAny;\nvar setProperty = Halogen_VDom_Util.unsafeSetAny;\nvar removeProperty = function (key, el) {\n var v = Halogen_VDom_Util.hasAttribute(Data_Nullable[\"null\"], key, el);\n if (v) {\n return Halogen_VDom_Util.removeAttribute(Data_Nullable[\"null\"], key, el);\n };\n var v1 = Foreign.typeOf(Halogen_VDom_Util.unsafeGetAny(key, el));\n if (v1 === \"string\") {\n return Halogen_VDom_Util.unsafeSetAny(key, \"\", el);\n };\n if (key === \"rowSpan\") {\n return Halogen_VDom_Util.unsafeSetAny(key, 1, el);\n };\n if (key === \"colSpan\") {\n return Halogen_VDom_Util.unsafeSetAny(key, 1, el);\n };\n return Halogen_VDom_Util.unsafeSetAny(key, Halogen_VDom_Util.jsUndefined, el);\n};\nvar propToStrKey = function (v) {\n if (v instanceof Attribute && v.value0 instanceof Data_Maybe.Just) {\n return \"attr/\" + (v.value0.value0 + (\":\" + v.value1));\n };\n if (v instanceof Attribute) {\n return \"attr/:\" + v.value1;\n };\n if (v instanceof Property) {\n return \"prop/\" + v.value0;\n };\n if (v instanceof Handler) {\n return \"handler/\" + v.value0;\n };\n if (v instanceof Ref) {\n return \"ref\";\n };\n throw new Error(\"Failed pattern match at Halogen.VDom.DOM.Prop (line 182, column 16 - line 187, column 16): \" + [ v.constructor.name ]);\n};\nvar propFromString = Unsafe_Coerce.unsafeCoerce;\nvar propFromNumber = Unsafe_Coerce.unsafeCoerce;\nvar propFromInt = Unsafe_Coerce.unsafeCoerce;\nvar propFromBoolean = Unsafe_Coerce.unsafeCoerce;\nvar functorProp = {\n map: function (v) {\n return function (v1) {\n if (v1 instanceof Handler) {\n return new Handler(v1.value0, Data_Functor.map(Data_Functor.functorFn)(Data_Functor.map(Data_Maybe.functorMaybe)(v))(v1.value1));\n };\n if (v1 instanceof Ref) {\n return new Ref(Data_Functor.map(Data_Functor.functorFn)(Data_Functor.map(Data_Maybe.functorMaybe)(v))(v1.value0));\n };\n return v1;\n };\n }\n};\nvar functorElemRef = {\n map: function (f) {\n return function (v) {\n if (v instanceof Created) {\n return new Created(f(v.value0));\n };\n if (v instanceof Removed) {\n return new Removed(f(v.value0));\n };\n throw new Error(\"Failed pattern match at Halogen.VDom.DOM.Prop (line 49, column 1 - line 51, column 36): \" + [ f.constructor.name, v.constructor.name ]);\n };\n }\n};\nvar buildProp = function (emit) {\n return function (el) {\n var removeProp = function (prevEvents) {\n return function (v, v1) {\n if (v1 instanceof Attribute) {\n return Halogen_VDom_Util.removeAttribute(Data_Nullable.toNullable(v1.value0), v1.value1, el);\n };\n if (v1 instanceof Property) {\n return removeProperty(v1.value0, el);\n };\n if (v1 instanceof Handler) {\n var handler = Halogen_VDom_Util.unsafeLookup(v1.value0, prevEvents);\n return Halogen_VDom_Util.removeEventListener(v1.value0, Data_Tuple.fst(handler), el);\n };\n if (v1 instanceof Ref) {\n return Data_Unit.unit;\n };\n throw new Error(\"Failed pattern match at Halogen.VDom.DOM.Prop (line 169, column 5 - line 179, column 18): \" + [ v1.constructor.name ]);\n };\n };\n var mbEmit = function (v) {\n if (v instanceof Data_Maybe.Just) {\n return emit(v.value0)();\n };\n return Data_Unit.unit;\n };\n var haltProp = function (state) {\n var v = Foreign_Object.lookup(\"ref\")(state.props);\n if (v instanceof Data_Maybe.Just && v.value0 instanceof Ref) {\n return mbEmit(v.value0.value0(new Removed(el)));\n };\n return Data_Unit.unit;\n };\n var diffProp = function (prevEvents, events) {\n return function (v, v1, v11, v2) {\n if (v11 instanceof Attribute && v2 instanceof Attribute) {\n var $57 = v11.value2 === v2.value2;\n if ($57) {\n return v2;\n };\n Halogen_VDom_Util.setAttribute(Data_Nullable.toNullable(v2.value0), v2.value1, v2.value2, el);\n return v2;\n };\n if (v11 instanceof Property && v2 instanceof Property) {\n var v4 = Halogen_VDom_Util.refEq(v11.value1, v2.value1);\n if (v4) {\n return v2;\n };\n if (v2.value0 === \"value\") {\n var elVal = unsafeGetProperty(\"value\", el);\n var $66 = Halogen_VDom_Util.refEq(elVal, v2.value1);\n if ($66) {\n return v2;\n };\n setProperty(v2.value0, v2.value1, el);\n return v2;\n };\n setProperty(v2.value0, v2.value1, el);\n return v2;\n };\n if (v11 instanceof Handler && v2 instanceof Handler) {\n var handler = Halogen_VDom_Util.unsafeLookup(v2.value0, prevEvents);\n Effect_Ref.write(v2.value1)(Data_Tuple.snd(handler))();\n Halogen_VDom_Util.pokeMutMap(v2.value0, handler, events);\n return v2;\n };\n return v2;\n };\n };\n var applyProp = function (events) {\n return function (v, v1, v2) {\n if (v2 instanceof Attribute) {\n Halogen_VDom_Util.setAttribute(Data_Nullable.toNullable(v2.value0), v2.value1, v2.value2, el);\n return v2;\n };\n if (v2 instanceof Property) {\n setProperty(v2.value0, v2.value1, el);\n return v2;\n };\n if (v2 instanceof Handler) {\n var v3 = Halogen_VDom_Util.unsafeGetAny(v2.value0, events);\n if (Halogen_VDom_Util.unsafeHasAny(v2.value0, events)) {\n Effect_Ref.write(v2.value1)(Data_Tuple.snd(v3))();\n return v2;\n };\n var ref = Effect_Ref[\"new\"](v2.value1)();\n var listener = Web_Event_EventTarget.eventListener(function (ev) {\n return function __do() {\n var f$prime = Effect_Ref.read(ref)();\n return mbEmit(f$prime(ev));\n };\n })();\n Halogen_VDom_Util.pokeMutMap(v2.value0, new Data_Tuple.Tuple(listener, ref), events);\n Halogen_VDom_Util.addEventListener(v2.value0, listener, el);\n return v2;\n };\n if (v2 instanceof Ref) {\n mbEmit(v2.value0(new Created(el)));\n return v2;\n };\n throw new Error(\"Failed pattern match at Halogen.VDom.DOM.Prop (line 113, column 5 - line 135, column 15): \" + [ v2.constructor.name ]);\n };\n };\n var $lazy_patchProp = $runtime_lazy(\"patchProp\", \"Halogen.VDom.DOM.Prop\", function () {\n return function (state, ps2) {\n var events = Halogen_VDom_Util.newMutMap();\n var onThis = removeProp(state.events);\n var onThese = diffProp(state.events, events);\n var onThat = applyProp(events);\n var props = Halogen_VDom_Util.diffWithKeyAndIxE(state.props, ps2, propToStrKey, onThese, onThis, onThat);\n var nextState = {\n events: Halogen_VDom_Util.unsafeFreeze(events),\n props: props\n };\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(Data_Unit.unit, nextState, $lazy_patchProp(100), haltProp));\n };\n });\n var patchProp = $lazy_patchProp(87);\n var renderProp = function (ps1) {\n var events = Halogen_VDom_Util.newMutMap();\n var ps1$prime = Halogen_VDom_Util.strMapWithIxE(ps1, propToStrKey, applyProp(events));\n var state = {\n events: Halogen_VDom_Util.unsafeFreeze(events),\n props: ps1$prime\n };\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(Data_Unit.unit, state, patchProp, haltProp));\n };\n return renderProp;\n };\n};\nexport {\n Attribute,\n Property,\n Handler,\n Ref,\n Created,\n Removed,\n propFromString,\n propFromBoolean,\n propFromInt,\n propFromNumber,\n buildProp,\n functorProp,\n functorElemRef\n};\n","// Generated by purs version 0.15.2\nimport * as DOM_HTML_Indexed_AutocompleteType from \"../DOM.HTML.Indexed.AutocompleteType/index.js\";\nimport * as DOM_HTML_Indexed_ButtonType from \"../DOM.HTML.Indexed.ButtonType/index.js\";\nimport * as DOM_HTML_Indexed_CrossOriginValue from \"../DOM.HTML.Indexed.CrossOriginValue/index.js\";\nimport * as DOM_HTML_Indexed_DirValue from \"../DOM.HTML.Indexed.DirValue/index.js\";\nimport * as DOM_HTML_Indexed_FormMethod from \"../DOM.HTML.Indexed.FormMethod/index.js\";\nimport * as DOM_HTML_Indexed_InputAcceptType from \"../DOM.HTML.Indexed.InputAcceptType/index.js\";\nimport * as DOM_HTML_Indexed_InputType from \"../DOM.HTML.Indexed.InputType/index.js\";\nimport * as DOM_HTML_Indexed_KindValue from \"../DOM.HTML.Indexed.KindValue/index.js\";\nimport * as DOM_HTML_Indexed_MenuType from \"../DOM.HTML.Indexed.MenuType/index.js\";\nimport * as DOM_HTML_Indexed_MenuitemType from \"../DOM.HTML.Indexed.MenuitemType/index.js\";\nimport * as DOM_HTML_Indexed_OrderedListType from \"../DOM.HTML.Indexed.OrderedListType/index.js\";\nimport * as DOM_HTML_Indexed_PreloadValue from \"../DOM.HTML.Indexed.PreloadValue/index.js\";\nimport * as DOM_HTML_Indexed_ScopeValue from \"../DOM.HTML.Indexed.ScopeValue/index.js\";\nimport * as DOM_HTML_Indexed_StepValue from \"../DOM.HTML.Indexed.StepValue/index.js\";\nimport * as DOM_HTML_Indexed_WrapValue from \"../DOM.HTML.Indexed.WrapValue/index.js\";\nimport * as Data_Bifunctor from \"../Data.Bifunctor/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Newtype from \"../Data.Newtype/index.js\";\nimport * as Halogen_Query_Input from \"../Halogen.Query.Input/index.js\";\nimport * as Halogen_VDom from \"../Halogen.VDom/index.js\";\nimport * as Halogen_VDom_DOM_Prop from \"../Halogen.VDom.DOM.Prop/index.js\";\nimport * as Halogen_VDom_Types from \"../Halogen.VDom.Types/index.js\";\nimport * as Web_HTML_Common from \"../Web.HTML.Common/index.js\";\nvar HTML = function (x) {\n return x;\n};\nvar widget = function ($19) {\n return HTML(Halogen_VDom_Types.Widget.create($19));\n};\nvar toPropValue = function (dict) {\n return dict.toPropValue;\n};\nvar text = function ($20) {\n return HTML(Halogen_VDom_Types.Text.create($20));\n};\nvar ref = function (f) {\n return new Halogen_VDom_DOM_Prop.Ref(function ($21) {\n return f((function (v) {\n if (v instanceof Halogen_VDom_DOM_Prop.Created) {\n return new Data_Maybe.Just(v.value0);\n };\n if (v instanceof Halogen_VDom_DOM_Prop.Removed) {\n return Data_Maybe.Nothing.value;\n };\n throw new Error(\"Failed pattern match at Halogen.HTML.Core (line 109, column 21 - line 111, column 23): \" + [ v.constructor.name ]);\n })($21));\n });\n};\nvar prop = function (dictIsProp) {\n return function (v) {\n var $22 = Halogen_VDom_DOM_Prop.Property.create(v);\n var $23 = toPropValue(dictIsProp);\n return function ($24) {\n return $22($23($24));\n };\n };\n};\nvar newtypeHTML = {\n Coercible0: function () {\n return undefined;\n }\n};\nvar renderWidget = function (f) {\n return function (g) {\n return function (v) {\n return Halogen_VDom_Types.renderWidget(Data_Functor.map(Data_Functor.functorArray)(Data_Functor.map(Halogen_VDom_DOM_Prop.functorProp)(Data_Functor.map(Halogen_Query_Input.functorInput)(f))))((function () {\n var $25 = Data_Newtype.un()(HTML);\n return function ($26) {\n return $25(g($26));\n };\n })())(v);\n };\n };\n};\nvar keyed = function (ns) {\n return function (name) {\n return function (props) {\n return function (children) {\n return new Halogen_VDom_Types.Keyed(ns, name, props, children);\n };\n };\n };\n};\nvar isPropWrapValue = {\n toPropValue: function ($27) {\n return Halogen_VDom_DOM_Prop.propFromString(DOM_HTML_Indexed_WrapValue.renderWrapValue($27));\n }\n};\nvar isPropString = {\n toPropValue: Halogen_VDom_DOM_Prop.propFromString\n};\nvar isPropStepValue = {\n toPropValue: function ($28) {\n return Halogen_VDom_DOM_Prop.propFromString(DOM_HTML_Indexed_StepValue.renderStepValue($28));\n }\n};\nvar isPropScopeValue = {\n toPropValue: function ($29) {\n return Halogen_VDom_DOM_Prop.propFromString(DOM_HTML_Indexed_ScopeValue.renderScopeValue($29));\n }\n};\nvar isPropPreloadValue = {\n toPropValue: function ($30) {\n return Halogen_VDom_DOM_Prop.propFromString(DOM_HTML_Indexed_PreloadValue.renderPreloadValue($30));\n }\n};\nvar isPropOrderedListType = {\n toPropValue: function ($31) {\n return Halogen_VDom_DOM_Prop.propFromString(DOM_HTML_Indexed_OrderedListType.renderOrderedListType($31));\n }\n};\nvar isPropNumber = {\n toPropValue: Halogen_VDom_DOM_Prop.propFromNumber\n};\nvar isPropMenuitemType = {\n toPropValue: function ($32) {\n return Halogen_VDom_DOM_Prop.propFromString(DOM_HTML_Indexed_MenuitemType.renderMenuitemType($32));\n }\n};\nvar isPropMenuType = {\n toPropValue: function ($33) {\n return Halogen_VDom_DOM_Prop.propFromString(DOM_HTML_Indexed_MenuType.renderMenuType($33));\n }\n};\nvar isPropMediaType = {\n toPropValue: /* #__PURE__ */ (function () {\n var $34 = Data_Newtype.unwrap();\n return function ($35) {\n return Halogen_VDom_DOM_Prop.propFromString($34($35));\n };\n })()\n};\nvar isPropKindValue = {\n toPropValue: function ($36) {\n return Halogen_VDom_DOM_Prop.propFromString(DOM_HTML_Indexed_KindValue.renderKindValue($36));\n }\n};\nvar isPropInt = {\n toPropValue: Halogen_VDom_DOM_Prop.propFromInt\n};\nvar isPropInputType = {\n toPropValue: function ($37) {\n return Halogen_VDom_DOM_Prop.propFromString(DOM_HTML_Indexed_InputType.renderInputType($37));\n }\n};\nvar isPropInputAcceptType = {\n toPropValue: function ($38) {\n return Halogen_VDom_DOM_Prop.propFromString(DOM_HTML_Indexed_InputAcceptType.renderInputAcceptType($38));\n }\n};\nvar isPropFormMethod = {\n toPropValue: function ($39) {\n return Halogen_VDom_DOM_Prop.propFromString(DOM_HTML_Indexed_FormMethod.renderFormMethod($39));\n }\n};\nvar isPropDirValue = {\n toPropValue: function ($40) {\n return Halogen_VDom_DOM_Prop.propFromString(DOM_HTML_Indexed_DirValue.renderDirValue($40));\n }\n};\nvar isPropCrossOriginValue = {\n toPropValue: function ($41) {\n return Halogen_VDom_DOM_Prop.propFromString(DOM_HTML_Indexed_CrossOriginValue.renderCrossOriginValue($41));\n }\n};\nvar isPropButtonType = {\n toPropValue: function ($42) {\n return Halogen_VDom_DOM_Prop.propFromString(DOM_HTML_Indexed_ButtonType.renderButtonType($42));\n }\n};\nvar isPropBoolean = {\n toPropValue: Halogen_VDom_DOM_Prop.propFromBoolean\n};\nvar isPropAutocompleteType = {\n toPropValue: function ($43) {\n return Halogen_VDom_DOM_Prop.propFromString(DOM_HTML_Indexed_AutocompleteType.renderAutocompleteType($43));\n }\n};\nvar handler = /* #__PURE__ */ (function () {\n return Halogen_VDom_DOM_Prop.Handler.create;\n})();\nvar element = function (ns) {\n return function (name) {\n return function (props) {\n return function (children) {\n return new Halogen_VDom_Types.Elem(ns, name, props, children);\n };\n };\n };\n};\nvar bifunctorHTML = {\n bimap: function (f) {\n return function (g) {\n return function (v) {\n return Data_Bifunctor.bimap(Halogen_VDom_Types.bifunctorVDom)(Data_Functor.map(Data_Functor.functorArray)(Data_Functor.map(Halogen_VDom_DOM_Prop.functorProp)(Data_Functor.map(Halogen_Query_Input.functorInput)(g))))(f)(v);\n };\n };\n }\n};\nvar functorHTML = {\n map: /* #__PURE__ */ Data_Bifunctor.rmap(bifunctorHTML)\n};\nvar attr = function (ns) {\n return function (v) {\n return Halogen_VDom_DOM_Prop.Attribute.create(ns)(v);\n };\n};\nexport {\n HTML,\n renderWidget,\n widget,\n text,\n element,\n keyed,\n prop,\n attr,\n handler,\n ref,\n toPropValue,\n newtypeHTML,\n bifunctorHTML,\n functorHTML,\n isPropString,\n isPropInt,\n isPropNumber,\n isPropBoolean,\n isPropMediaType,\n isPropButtonType,\n isPropCrossOriginValue,\n isPropDirValue,\n isPropFormMethod,\n isPropInputType,\n isPropKindValue,\n isPropMenuitemType,\n isPropMenuType,\n isPropAutocompleteType,\n isPropOrderedListType,\n isPropPreloadValue,\n isPropScopeValue,\n isPropStepValue,\n isPropWrapValue,\n isPropInputAcceptType\n};\nexport {\n ElemName,\n Namespace\n} from \"../Halogen.VDom/index.js\";\nexport {\n Attribute,\n Handler,\n Property,\n Ref\n} from \"../Halogen.VDom.DOM.Prop/index.js\";\nexport {\n AttrName,\n ClassName,\n PropName\n} from \"../Web.HTML.Common/index.js\";\n","// Generated by purs version 0.15.2\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Halogen_HTML_Core from \"../Halogen.HTML.Core/index.js\";\nimport * as Halogen_VDom_Types from \"../Halogen.VDom.Types/index.js\";\nvar withKeys_ = function (ctor) {\n return function (children) {\n var v = ctor([ ]);\n if (v instanceof Halogen_VDom_Types.Elem) {\n return new Halogen_VDom_Types.Keyed(v.value0, v.value1, v.value2, children);\n };\n return v;\n };\n};\nvar withKeys = function (ctor) {\n return function (props) {\n return function (children) {\n var v = ctor(props)([ ]);\n if (v instanceof Halogen_VDom_Types.Elem) {\n return new Halogen_VDom_Types.Keyed(v.value0, v.value1, v.value2, children);\n };\n return v;\n };\n };\n};\nvar keyedNS = /* #__PURE__ */ (function () {\n var $12 = Control_Applicative.pure(Data_Maybe.applicativeMaybe);\n return function ($13) {\n return Halogen_HTML_Core.keyed($12($13));\n };\n})();\nvar keyed = /* #__PURE__ */ (function () {\n return Halogen_HTML_Core.keyed(Data_Maybe.Nothing.value);\n})();\nvar elementNS = /* #__PURE__ */ (function () {\n var $14 = Control_Applicative.pure(Data_Maybe.applicativeMaybe);\n return function ($15) {\n return Halogen_HTML_Core.element($14($15));\n };\n})();\nvar element = /* #__PURE__ */ (function () {\n return Halogen_HTML_Core.element(Data_Maybe.Nothing.value);\n})();\nvar em = /* #__PURE__ */ element(\"em\");\nvar em_ = /* #__PURE__ */ em([ ]);\nvar embed = /* #__PURE__ */ element(\"embed\");\nvar embed_ = /* #__PURE__ */ embed([ ]);\nvar fieldset = /* #__PURE__ */ element(\"fieldset\");\nvar fieldset_ = /* #__PURE__ */ fieldset([ ]);\nvar figcaption = /* #__PURE__ */ element(\"figcaption\");\nvar figcaption_ = /* #__PURE__ */ figcaption([ ]);\nvar figure = /* #__PURE__ */ element(\"figure\");\nvar figure_ = /* #__PURE__ */ figure([ ]);\nvar footer = /* #__PURE__ */ element(\"footer\");\nvar footer_ = /* #__PURE__ */ footer([ ]);\nvar form = /* #__PURE__ */ element(\"form\");\nvar form_ = /* #__PURE__ */ form([ ]);\nvar h1 = /* #__PURE__ */ element(\"h1\");\nvar h1_ = /* #__PURE__ */ h1([ ]);\nvar h2 = /* #__PURE__ */ element(\"h2\");\nvar h2_ = /* #__PURE__ */ h2([ ]);\nvar h3 = /* #__PURE__ */ element(\"h3\");\nvar h3_ = /* #__PURE__ */ h3([ ]);\nvar h4 = /* #__PURE__ */ element(\"h4\");\nvar h4_ = /* #__PURE__ */ h4([ ]);\nvar h5 = /* #__PURE__ */ element(\"h5\");\nvar h5_ = /* #__PURE__ */ h5([ ]);\nvar h6 = /* #__PURE__ */ element(\"h6\");\nvar h6_ = /* #__PURE__ */ h6([ ]);\nvar head = /* #__PURE__ */ element(\"head\");\nvar head_ = /* #__PURE__ */ head([ ]);\nvar header = /* #__PURE__ */ element(\"header\");\nvar header_ = /* #__PURE__ */ header([ ]);\nvar hr = function (props) {\n return element(\"hr\")(props)([ ]);\n};\nvar hr_ = /* #__PURE__ */ hr([ ]);\nvar html = /* #__PURE__ */ element(\"html\");\nvar html_ = /* #__PURE__ */ html([ ]);\nvar i = /* #__PURE__ */ element(\"i\");\nvar i_ = /* #__PURE__ */ i([ ]);\nvar iframe = function (props) {\n return element(\"iframe\")(props)([ ]);\n};\nvar img = function (props) {\n return element(\"img\")(props)([ ]);\n};\nvar input = function (props) {\n return element(\"input\")(props)([ ]);\n};\nvar ins = /* #__PURE__ */ element(\"ins\");\nvar ins_ = /* #__PURE__ */ ins([ ]);\nvar kbd = /* #__PURE__ */ element(\"kbd\");\nvar kbd_ = /* #__PURE__ */ kbd([ ]);\nvar label = /* #__PURE__ */ element(\"label\");\nvar label_ = /* #__PURE__ */ label([ ]);\nvar legend = /* #__PURE__ */ element(\"legend\");\nvar legend_ = /* #__PURE__ */ legend([ ]);\nvar li = /* #__PURE__ */ element(\"li\");\nvar li_ = /* #__PURE__ */ li([ ]);\nvar link = function (props) {\n return element(\"link\")(props)([ ]);\n};\nvar main = /* #__PURE__ */ element(\"main\");\nvar main_ = /* #__PURE__ */ main([ ]);\nvar map = /* #__PURE__ */ element(\"map\");\nvar map_ = /* #__PURE__ */ map([ ]);\nvar mark = /* #__PURE__ */ element(\"mark\");\nvar mark_ = /* #__PURE__ */ mark([ ]);\nvar menu = /* #__PURE__ */ element(\"menu\");\nvar menu_ = /* #__PURE__ */ menu([ ]);\nvar menuitem = /* #__PURE__ */ element(\"menuitem\");\nvar menuitem_ = /* #__PURE__ */ menuitem([ ]);\nvar meta = function (props) {\n return element(\"meta\")(props)([ ]);\n};\nvar meter = /* #__PURE__ */ element(\"meter\");\nvar meter_ = /* #__PURE__ */ meter([ ]);\nvar nav = /* #__PURE__ */ element(\"nav\");\nvar nav_ = /* #__PURE__ */ nav([ ]);\nvar noscript = /* #__PURE__ */ element(\"noscript\");\nvar noscript_ = /* #__PURE__ */ noscript([ ]);\nvar object = /* #__PURE__ */ element(\"object\");\nvar object_ = /* #__PURE__ */ object([ ]);\nvar ol = /* #__PURE__ */ element(\"ol\");\nvar ol_ = /* #__PURE__ */ ol([ ]);\nvar optgroup = /* #__PURE__ */ element(\"optgroup\");\nvar optgroup_ = /* #__PURE__ */ optgroup([ ]);\nvar option = /* #__PURE__ */ element(\"option\");\nvar option_ = /* #__PURE__ */ option([ ]);\nvar output = /* #__PURE__ */ element(\"output\");\nvar output_ = /* #__PURE__ */ output([ ]);\nvar p = /* #__PURE__ */ element(\"p\");\nvar p_ = /* #__PURE__ */ p([ ]);\nvar param = function (props) {\n return element(\"param\")(props)([ ]);\n};\nvar pre = /* #__PURE__ */ element(\"pre\");\nvar pre_ = /* #__PURE__ */ pre([ ]);\nvar progress = /* #__PURE__ */ element(\"progress\");\nvar progress_ = /* #__PURE__ */ progress([ ]);\nvar q = /* #__PURE__ */ element(\"q\");\nvar q_ = /* #__PURE__ */ q([ ]);\nvar rp = /* #__PURE__ */ element(\"rp\");\nvar rp_ = /* #__PURE__ */ rp([ ]);\nvar rt = /* #__PURE__ */ element(\"rt\");\nvar rt_ = /* #__PURE__ */ rt([ ]);\nvar ruby = /* #__PURE__ */ element(\"ruby\");\nvar ruby_ = /* #__PURE__ */ ruby([ ]);\nvar samp = /* #__PURE__ */ element(\"samp\");\nvar samp_ = /* #__PURE__ */ samp([ ]);\nvar script = /* #__PURE__ */ element(\"script\");\nvar script_ = /* #__PURE__ */ script([ ]);\nvar section = /* #__PURE__ */ element(\"section\");\nvar section_ = /* #__PURE__ */ section([ ]);\nvar select = /* #__PURE__ */ element(\"select\");\nvar select_ = /* #__PURE__ */ select([ ]);\nvar small = /* #__PURE__ */ element(\"small\");\nvar small_ = /* #__PURE__ */ small([ ]);\nvar source = function (props) {\n return element(\"source\")(props)([ ]);\n};\nvar span = /* #__PURE__ */ element(\"span\");\nvar span_ = /* #__PURE__ */ span([ ]);\nvar strong = /* #__PURE__ */ element(\"strong\");\nvar strong_ = /* #__PURE__ */ strong([ ]);\nvar style = /* #__PURE__ */ element(\"style\");\nvar style_ = /* #__PURE__ */ style([ ]);\nvar sub = /* #__PURE__ */ element(\"sub\");\nvar sub_ = /* #__PURE__ */ sub([ ]);\nvar summary = /* #__PURE__ */ element(\"summary\");\nvar summary_ = /* #__PURE__ */ summary([ ]);\nvar sup = /* #__PURE__ */ element(\"sup\");\nvar sup_ = /* #__PURE__ */ sup([ ]);\nvar table = /* #__PURE__ */ element(\"table\");\nvar table_ = /* #__PURE__ */ table([ ]);\nvar tbody = /* #__PURE__ */ element(\"tbody\");\nvar tbody_ = /* #__PURE__ */ tbody([ ]);\nvar td = /* #__PURE__ */ element(\"td\");\nvar td_ = /* #__PURE__ */ td([ ]);\nvar textarea = function (es) {\n return element(\"textarea\")(es)([ ]);\n};\nvar tfoot = /* #__PURE__ */ element(\"tfoot\");\nvar tfoot_ = /* #__PURE__ */ tfoot([ ]);\nvar th = /* #__PURE__ */ element(\"th\");\nvar th_ = /* #__PURE__ */ th([ ]);\nvar thead = /* #__PURE__ */ element(\"thead\");\nvar thead_ = /* #__PURE__ */ thead([ ]);\nvar time = /* #__PURE__ */ element(\"time\");\nvar time_ = /* #__PURE__ */ time([ ]);\nvar title = /* #__PURE__ */ element(\"title\");\nvar title_ = /* #__PURE__ */ title([ ]);\nvar tr = /* #__PURE__ */ element(\"tr\");\nvar tr_ = /* #__PURE__ */ tr([ ]);\nvar track = function (props) {\n return element(\"track\")(props)([ ]);\n};\nvar u = /* #__PURE__ */ element(\"u\");\nvar u_ = /* #__PURE__ */ u([ ]);\nvar ul = /* #__PURE__ */ element(\"ul\");\nvar ul_ = /* #__PURE__ */ ul([ ]);\nvar $$var = /* #__PURE__ */ element(\"var\");\nvar var_ = /* #__PURE__ */ $$var([ ]);\nvar video = /* #__PURE__ */ element(\"video\");\nvar video_ = /* #__PURE__ */ video([ ]);\nvar wbr = function (props) {\n return element(\"wbr\")(props)([ ]);\n};\nvar dt = /* #__PURE__ */ element(\"dt\");\nvar dt_ = /* #__PURE__ */ dt([ ]);\nvar dl = /* #__PURE__ */ element(\"dl\");\nvar dl_ = /* #__PURE__ */ dl([ ]);\nvar div = /* #__PURE__ */ element(\"div\");\nvar div_ = /* #__PURE__ */ div([ ]);\nvar dialog = /* #__PURE__ */ element(\"dialog\");\nvar dialog_ = /* #__PURE__ */ dialog([ ]);\nvar dfn = /* #__PURE__ */ element(\"dfn\");\nvar dfn_ = /* #__PURE__ */ dfn([ ]);\nvar details = /* #__PURE__ */ element(\"details\");\nvar details_ = /* #__PURE__ */ details([ ]);\nvar del = /* #__PURE__ */ element(\"del\");\nvar del_ = /* #__PURE__ */ del([ ]);\nvar dd = /* #__PURE__ */ element(\"dd\");\nvar dd_ = /* #__PURE__ */ dd([ ]);\nvar datalist = /* #__PURE__ */ element(\"datalist\");\nvar datalist_ = /* #__PURE__ */ datalist([ ]);\nvar command = function (props) {\n return element(\"command\")(props)([ ]);\n};\nvar colgroup = /* #__PURE__ */ element(\"colgroup\");\nvar colgroup_ = /* #__PURE__ */ colgroup([ ]);\nvar col = function (props) {\n return element(\"col\")(props)([ ]);\n};\nvar code = /* #__PURE__ */ element(\"code\");\nvar code_ = /* #__PURE__ */ code([ ]);\nvar cite = /* #__PURE__ */ element(\"cite\");\nvar cite_ = /* #__PURE__ */ cite([ ]);\nvar caption = /* #__PURE__ */ element(\"caption\");\nvar caption_ = /* #__PURE__ */ caption([ ]);\nvar canvas = function (props) {\n return element(\"canvas\")(props)([ ]);\n};\nvar button = /* #__PURE__ */ element(\"button\");\nvar button_ = /* #__PURE__ */ button([ ]);\nvar br = function (props) {\n return element(\"br\")(props)([ ]);\n};\nvar br_ = /* #__PURE__ */ br([ ]);\nvar body = /* #__PURE__ */ element(\"body\");\nvar body_ = /* #__PURE__ */ body([ ]);\nvar blockquote = /* #__PURE__ */ element(\"blockquote\");\nvar blockquote_ = /* #__PURE__ */ blockquote([ ]);\nvar bdo = /* #__PURE__ */ element(\"bdo\");\nvar bdo_ = /* #__PURE__ */ bdo([ ]);\nvar bdi = /* #__PURE__ */ element(\"bdi\");\nvar bdi_ = /* #__PURE__ */ bdi([ ]);\nvar base = function (props) {\n return element(\"base\")(props)([ ]);\n};\nvar b = /* #__PURE__ */ element(\"b\");\nvar b_ = /* #__PURE__ */ b([ ]);\nvar audio = /* #__PURE__ */ element(\"audio\");\nvar audio_ = /* #__PURE__ */ audio([ ]);\nvar aside = /* #__PURE__ */ element(\"aside\");\nvar aside_ = /* #__PURE__ */ aside([ ]);\nvar article = /* #__PURE__ */ element(\"article\");\nvar article_ = /* #__PURE__ */ article([ ]);\nvar area = function (props) {\n return element(\"area\")(props)([ ]);\n};\nvar address = /* #__PURE__ */ element(\"address\");\nvar address_ = /* #__PURE__ */ address([ ]);\nvar abbr = /* #__PURE__ */ element(\"abbr\");\nvar abbr_ = /* #__PURE__ */ abbr([ ]);\nvar a = /* #__PURE__ */ element(\"a\");\nvar a_ = /* #__PURE__ */ a([ ]);\nexport {\n element,\n elementNS,\n keyed,\n keyedNS,\n withKeys,\n withKeys_,\n a,\n a_,\n abbr,\n abbr_,\n address,\n address_,\n area,\n article,\n article_,\n aside,\n aside_,\n audio,\n audio_,\n b,\n b_,\n base,\n bdi,\n bdi_,\n bdo,\n bdo_,\n blockquote,\n blockquote_,\n body,\n body_,\n br,\n br_,\n button,\n button_,\n canvas,\n caption,\n caption_,\n cite,\n cite_,\n code,\n code_,\n col,\n colgroup,\n colgroup_,\n command,\n datalist,\n datalist_,\n dd,\n dd_,\n del,\n del_,\n details,\n details_,\n dfn,\n dfn_,\n dialog,\n dialog_,\n div,\n div_,\n dl,\n dl_,\n dt,\n dt_,\n em,\n em_,\n embed,\n embed_,\n fieldset,\n fieldset_,\n figcaption,\n figcaption_,\n figure,\n figure_,\n footer,\n footer_,\n form,\n form_,\n h1,\n h1_,\n h2,\n h2_,\n h3,\n h3_,\n h4,\n h4_,\n h5,\n h5_,\n h6,\n h6_,\n head,\n head_,\n header,\n header_,\n hr,\n hr_,\n html,\n html_,\n i,\n i_,\n iframe,\n img,\n input,\n ins,\n ins_,\n kbd,\n kbd_,\n label,\n label_,\n legend,\n legend_,\n li,\n li_,\n link,\n main,\n main_,\n map,\n map_,\n mark,\n mark_,\n menu,\n menu_,\n menuitem,\n menuitem_,\n meta,\n meter,\n meter_,\n nav,\n nav_,\n noscript,\n noscript_,\n object,\n object_,\n ol,\n ol_,\n optgroup,\n optgroup_,\n option,\n option_,\n output,\n output_,\n p,\n p_,\n param,\n pre,\n pre_,\n progress,\n progress_,\n q,\n q_,\n rp,\n rp_,\n rt,\n rt_,\n ruby,\n ruby_,\n samp,\n samp_,\n script,\n script_,\n section,\n section_,\n select,\n select_,\n small,\n small_,\n source,\n span,\n span_,\n strong,\n strong_,\n style,\n style_,\n sub,\n sub_,\n summary,\n summary_,\n sup,\n sup_,\n table,\n table_,\n tbody,\n tbody_,\n td,\n td_,\n textarea,\n tfoot,\n tfoot_,\n th,\n th_,\n thead,\n thead_,\n time,\n time_,\n title,\n title_,\n tr,\n tr_,\n track,\n u,\n u_,\n ul,\n ul_,\n $$var as var,\n var_,\n video,\n video_,\n wbr\n};\n","// Generated by purs version 0.15.2\nimport * as Data_Enum from \"../Data.Enum/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Ordering from \"../Data.Ordering/index.js\";\nvar None = /* #__PURE__ */ (function () {\n function None() {\n\n };\n None.value = new None();\n return None;\n})();\nvar Capturing = /* #__PURE__ */ (function () {\n function Capturing() {\n\n };\n Capturing.value = new Capturing();\n return Capturing;\n})();\nvar AtTarget = /* #__PURE__ */ (function () {\n function AtTarget() {\n\n };\n AtTarget.value = new AtTarget();\n return AtTarget;\n})();\nvar Bubbling = /* #__PURE__ */ (function () {\n function Bubbling() {\n\n };\n Bubbling.value = new Bubbling();\n return Bubbling;\n})();\nvar toEnumEventPhase = function (v) {\n if (v === 0) {\n return new Data_Maybe.Just(None.value);\n };\n if (v === 1) {\n return new Data_Maybe.Just(Capturing.value);\n };\n if (v === 2) {\n return new Data_Maybe.Just(AtTarget.value);\n };\n if (v === 3) {\n return new Data_Maybe.Just(Bubbling.value);\n };\n return Data_Maybe.Nothing.value;\n};\nvar fromEnumEventPhase = function (v) {\n if (v instanceof None) {\n return 0;\n };\n if (v instanceof Capturing) {\n return 1;\n };\n if (v instanceof AtTarget) {\n return 2;\n };\n if (v instanceof Bubbling) {\n return 3;\n };\n throw new Error(\"Failed pattern match at Web.Event.EventPhase (line 40, column 3 - line 44, column 18): \" + [ v.constructor.name ]);\n};\nvar eqEventPhase = {\n eq: function (x) {\n return function (y) {\n if (x instanceof None && y instanceof None) {\n return true;\n };\n if (x instanceof Capturing && y instanceof Capturing) {\n return true;\n };\n if (x instanceof AtTarget && y instanceof AtTarget) {\n return true;\n };\n if (x instanceof Bubbling && y instanceof Bubbling) {\n return true;\n };\n return false;\n };\n }\n};\nvar ordEventPhase = {\n compare: function (x) {\n return function (y) {\n if (x instanceof None && y instanceof None) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof None) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof None) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof Capturing && y instanceof Capturing) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof Capturing) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof Capturing) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof AtTarget && y instanceof AtTarget) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof AtTarget) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof AtTarget) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof Bubbling && y instanceof Bubbling) {\n return Data_Ordering.EQ.value;\n };\n throw new Error(\"Failed pattern match at Web.Event.EventPhase (line 0, column 0 - line 0, column 0): \" + [ x.constructor.name, y.constructor.name ]);\n };\n },\n Eq0: function () {\n return eqEventPhase;\n }\n};\nvar enumEventPhase = {\n succ: /* #__PURE__ */ Data_Enum.defaultSucc(toEnumEventPhase)(fromEnumEventPhase),\n pred: /* #__PURE__ */ Data_Enum.defaultPred(toEnumEventPhase)(fromEnumEventPhase),\n Ord0: function () {\n return ordEventPhase;\n }\n};\nvar boundedEventPhase = /* #__PURE__ */ (function () {\n return {\n bottom: None.value,\n top: Bubbling.value,\n Ord0: function () {\n return ordEventPhase;\n }\n };\n})();\nvar boundedEnumEventPhase = {\n cardinality: 4,\n toEnum: toEnumEventPhase,\n fromEnum: fromEnumEventPhase,\n Bounded0: function () {\n return boundedEventPhase;\n },\n Enum1: function () {\n return enumEventPhase;\n }\n};\nexport {\n None,\n Capturing,\n AtTarget,\n Bubbling,\n toEnumEventPhase,\n fromEnumEventPhase,\n eqEventPhase,\n ordEventPhase,\n boundedEventPhase,\n enumEventPhase,\n boundedEnumEventPhase\n};\n","// Generated by purs version 0.15.2\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Enum from \"../Data.Enum/index.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Nullable from \"../Data.Nullable/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Web_Event_EventPhase from \"../Web.Event.EventPhase/index.js\";\nimport * as Web_Event_Internal_Types from \"../Web.Event.Internal.Types/index.js\";\nvar EventType = function (x) {\n return x;\n};\nvar target = function ($0) {\n return Data_Nullable.toMaybe($foreign[\"_target\"]($0));\n};\nvar ordEventType = Data_Ord.ordString;\nvar newtypeEventType = {\n Coercible0: function () {\n return undefined;\n }\n};\nvar eventPhase = function () {\n var $1 = Data_Maybe.fromJust();\n var $2 = Data_Enum.toEnum(Web_Event_EventPhase.boundedEnumEventPhase);\n return function ($3) {\n return $1($2($foreign.eventPhaseIndex($3)));\n };\n};\nvar eqEventType = Data_Eq.eqString;\nvar currentTarget = function ($4) {\n return Data_Nullable.toMaybe($foreign[\"_currentTarget\"]($4));\n};\nexport {\n type_,\n stopPropagation,\n stopImmediatePropagation,\n bubbles,\n cancelable,\n preventDefault,\n defaultPrevented,\n timeStamp\n} from \"./foreign.js\";\nexport {\n EventType,\n target,\n currentTarget,\n eventPhase,\n newtypeEventType,\n eqEventType,\n ordEventType\n};\n","export function bubbles(e) {\n return e.bubbles;\n}\n\nexport function cancelable(e) {\n return e.cancelable;\n}\n\nexport function _currentTarget(e) {\n return e.currentTarget;\n}\n\nexport function defaultPrevented(e) {\n return function() {\n return e.defaultPrevented;\n };\n}\n\nexport function eventPhaseIndex(e) {\n return e.eventPhase;\n}\n\nexport function _target(e) {\n return e.target;\n}\n\nexport function timeStamp(e) {\n return e.timeStamp;\n}\n\nexport function type_(e) {\n return e.type;\n}\n\nexport function preventDefault(e) {\n return function () {\n return e.preventDefault();\n };\n}\n\nexport function stopImmediatePropagation(e) {\n return function () {\n return e.stopImmediatePropagation();\n };\n}\n\nexport function stopPropagation(e) {\n return function () {\n return e.stopPropagation();\n };\n}\n","// Generated by purs version 0.15.2\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Ordering from \"../Data.Ordering/index.js\";\nvar Preserve = /* #__PURE__ */ (function () {\n function Preserve() {\n\n };\n Preserve.value = new Preserve();\n return Preserve;\n})();\nvar Select = /* #__PURE__ */ (function () {\n function Select() {\n\n };\n Select.value = new Select();\n return Select;\n})();\nvar Start = /* #__PURE__ */ (function () {\n function Start() {\n\n };\n Start.value = new Start();\n return Start;\n})();\nvar End = /* #__PURE__ */ (function () {\n function End() {\n\n };\n End.value = new End();\n return End;\n})();\nvar showSelectionMode = {\n show: function (v) {\n if (v instanceof Preserve) {\n return \"Preserve\";\n };\n if (v instanceof Select) {\n return \"Select\";\n };\n if (v instanceof Start) {\n return \"Start\";\n };\n if (v instanceof End) {\n return \"End\";\n };\n throw new Error(\"Failed pattern match at Web.HTML.SelectionMode (line 17, column 10 - line 21, column 17): \" + [ v.constructor.name ]);\n }\n};\nvar print = function (v) {\n if (v instanceof Preserve) {\n return \"preserve\";\n };\n if (v instanceof Select) {\n return \"select\";\n };\n if (v instanceof Start) {\n return \"start\";\n };\n if (v instanceof End) {\n return \"end\";\n };\n throw new Error(\"Failed pattern match at Web.HTML.SelectionMode (line 32, column 9 - line 36, column 15): \" + [ v.constructor.name ]);\n};\nvar parse = function (v) {\n if (v === \"preserve\") {\n return new Data_Maybe.Just(Preserve.value);\n };\n if (v === \"select\") {\n return new Data_Maybe.Just(Select.value);\n };\n if (v === \"start\") {\n return new Data_Maybe.Just(Start.value);\n };\n if (v === \"end\") {\n return new Data_Maybe.Just(End.value);\n };\n return Data_Maybe.Nothing.value;\n};\nvar eqSelectionMode = {\n eq: function (x) {\n return function (y) {\n if (x instanceof Preserve && y instanceof Preserve) {\n return true;\n };\n if (x instanceof Select && y instanceof Select) {\n return true;\n };\n if (x instanceof Start && y instanceof Start) {\n return true;\n };\n if (x instanceof End && y instanceof End) {\n return true;\n };\n return false;\n };\n }\n};\nvar ordSelectionMode = {\n compare: function (x) {\n return function (y) {\n if (x instanceof Preserve && y instanceof Preserve) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof Preserve) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof Preserve) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof Select && y instanceof Select) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof Select) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof Select) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof Start && y instanceof Start) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof Start) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof Start) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof End && y instanceof End) {\n return Data_Ordering.EQ.value;\n };\n throw new Error(\"Failed pattern match at Web.HTML.SelectionMode (line 0, column 0 - line 0, column 0): \" + [ x.constructor.name, y.constructor.name ]);\n };\n },\n Eq0: function () {\n return eqSelectionMode;\n }\n};\nexport {\n Preserve,\n Select,\n Start,\n End,\n parse,\n print,\n eqSelectionMode,\n ordSelectionMode,\n showSelectionMode\n};\n","// Generated by purs version 0.15.2\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Control_Monad_Except from \"../Control.Monad.Except/index.js\";\nimport * as Control_Monad_Except_Trans from \"../Control.Monad.Except.Trans/index.js\";\nimport * as Data_Either from \"../Data.Either/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Identity from \"../Data.Identity/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Unfoldable from \"../Data.Unfoldable/index.js\";\nimport * as Effect_Unsafe from \"../Effect.Unsafe/index.js\";\nimport * as Foreign from \"../Foreign/index.js\";\nimport * as Foreign_Index from \"../Foreign.Index/index.js\";\nimport * as Halogen_HTML_Core from \"../Halogen.HTML.Core/index.js\";\nimport * as Halogen_Query_Input from \"../Halogen.Query.Input/index.js\";\nimport * as Unsafe_Coerce from \"../Unsafe.Coerce/index.js\";\nimport * as Web_Clipboard_ClipboardEvent_EventTypes from \"../Web.Clipboard.ClipboardEvent.EventTypes/index.js\";\nimport * as Web_Event_Event from \"../Web.Event.Event/index.js\";\nimport * as Web_File_FileList from \"../Web.File.FileList/index.js\";\nimport * as Web_HTML_Event_DragEvent_EventTypes from \"../Web.HTML.Event.DragEvent.EventTypes/index.js\";\nimport * as Web_HTML_Event_EventTypes from \"../Web.HTML.Event.EventTypes/index.js\";\nimport * as Web_HTML_HTMLInputElement from \"../Web.HTML.HTMLInputElement/index.js\";\nimport * as Web_UIEvent_FocusEvent_EventTypes from \"../Web.UIEvent.FocusEvent.EventTypes/index.js\";\nimport * as Web_UIEvent_KeyboardEvent_EventTypes from \"../Web.UIEvent.KeyboardEvent.EventTypes/index.js\";\nimport * as Web_UIEvent_MouseEvent_EventTypes from \"../Web.UIEvent.MouseEvent.EventTypes/index.js\";\nimport * as Web_UIEvent_WheelEvent_EventTypes from \"../Web.UIEvent.WheelEvent.EventTypes/index.js\";\nvar wheelHandler = Unsafe_Coerce.unsafeCoerce;\nvar touchHandler = Unsafe_Coerce.unsafeCoerce;\nvar mouseHandler = Unsafe_Coerce.unsafeCoerce;\nvar keyHandler = Unsafe_Coerce.unsafeCoerce;\nvar handler$prime = function (et) {\n return function (f) {\n return Halogen_HTML_Core.handler(et)(function (ev) {\n return Data_Functor.map(Data_Maybe.functorMaybe)(Halogen_Query_Input.Action.create)(f(ev));\n });\n };\n};\nvar handler = function (et) {\n return function (f) {\n return Halogen_HTML_Core.handler(et)(function (ev) {\n return new Data_Maybe.Just(new Halogen_Query_Input.Action(f(ev)));\n });\n };\n};\nvar onAbort = /* #__PURE__ */ handler(\"abort\");\nvar onAuxClick = /* #__PURE__ */ (function () {\n var $1 = handler(Web_UIEvent_MouseEvent_EventTypes.auxclick);\n return function ($2) {\n return $1(mouseHandler($2));\n };\n})();\nvar onChange = /* #__PURE__ */ handler(Web_HTML_Event_EventTypes.change);\nvar onClick = /* #__PURE__ */ (function () {\n var $3 = handler(Web_UIEvent_MouseEvent_EventTypes.click);\n return function ($4) {\n return $3(mouseHandler($4));\n };\n})();\nvar onDoubleClick = /* #__PURE__ */ (function () {\n var $5 = handler(Web_UIEvent_MouseEvent_EventTypes.dblclick);\n return function ($6) {\n return $5(mouseHandler($6));\n };\n})();\nvar onError = /* #__PURE__ */ handler(Web_HTML_Event_EventTypes.error);\nvar onFileUpload = function (dictUnfoldable) {\n return function (f) {\n return handler(Web_HTML_Event_EventTypes.change)((function () {\n var $7 = Data_Maybe.maybe(Data_Unfoldable.none(dictUnfoldable))(Web_File_FileList.items(dictUnfoldable));\n var $8 = Control_Bind.composeKleisli(Data_Maybe.bindMaybe)(Web_Event_Event.target)(Control_Bind.composeKleisli(Data_Maybe.bindMaybe)(Web_HTML_HTMLInputElement.fromEventTarget)(function ($10) {\n return Effect_Unsafe.unsafePerformEffect(Web_HTML_HTMLInputElement.files($10));\n }));\n return function ($9) {\n return f($7($8($9)));\n };\n })());\n };\n};\nvar onInput = /* #__PURE__ */ handler(Web_HTML_Event_EventTypes.input);\nvar onInvalid = /* #__PURE__ */ handler(Web_HTML_Event_EventTypes.invalid);\nvar onKeyDown = /* #__PURE__ */ (function () {\n var $11 = handler(Web_UIEvent_KeyboardEvent_EventTypes.keydown);\n return function ($12) {\n return $11(keyHandler($12));\n };\n})();\nvar onKeyUp = /* #__PURE__ */ (function () {\n var $13 = handler(Web_UIEvent_KeyboardEvent_EventTypes.keyup);\n return function ($14) {\n return $13(keyHandler($14));\n };\n})();\nvar onLoad = /* #__PURE__ */ handler(Web_HTML_Event_EventTypes.load);\nvar onMouseDown = /* #__PURE__ */ (function () {\n var $15 = handler(Web_UIEvent_MouseEvent_EventTypes.mousedown);\n return function ($16) {\n return $15(mouseHandler($16));\n };\n})();\nvar onMouseEnter = /* #__PURE__ */ (function () {\n var $17 = handler(Web_UIEvent_MouseEvent_EventTypes.mouseenter);\n return function ($18) {\n return $17(mouseHandler($18));\n };\n})();\nvar onMouseLeave = /* #__PURE__ */ (function () {\n var $19 = handler(Web_UIEvent_MouseEvent_EventTypes.mouseleave);\n return function ($20) {\n return $19(mouseHandler($20));\n };\n})();\nvar onMouseMove = /* #__PURE__ */ (function () {\n var $21 = handler(Web_UIEvent_MouseEvent_EventTypes.mousemove);\n return function ($22) {\n return $21(mouseHandler($22));\n };\n})();\nvar onMouseOut = /* #__PURE__ */ (function () {\n var $23 = handler(Web_UIEvent_MouseEvent_EventTypes.mouseout);\n return function ($24) {\n return $23(mouseHandler($24));\n };\n})();\nvar onMouseOver = /* #__PURE__ */ (function () {\n var $25 = handler(Web_UIEvent_MouseEvent_EventTypes.mouseover);\n return function ($26) {\n return $25(mouseHandler($26));\n };\n})();\nvar onMouseUp = /* #__PURE__ */ (function () {\n var $27 = handler(Web_UIEvent_MouseEvent_EventTypes.mouseup);\n return function ($28) {\n return $27(mouseHandler($28));\n };\n})();\nvar onReset = /* #__PURE__ */ handler(\"reset\");\nvar onResize = /* #__PURE__ */ handler(\"resize\");\nvar onScroll = /* #__PURE__ */ handler(\"scroll\");\nvar onSelect = /* #__PURE__ */ handler(Web_HTML_Event_EventTypes.select);\nvar onSubmit = /* #__PURE__ */ handler(\"submit\");\nvar onTouchCancel = /* #__PURE__ */ (function () {\n var $29 = handler(\"touchcancel\");\n return function ($30) {\n return $29(touchHandler($30));\n };\n})();\nvar onTouchEnd = /* #__PURE__ */ (function () {\n var $31 = handler(\"touchend\");\n return function ($32) {\n return $31(touchHandler($32));\n };\n})();\nvar onTouchEnter = /* #__PURE__ */ (function () {\n var $33 = handler(\"touchenter\");\n return function ($34) {\n return $33(touchHandler($34));\n };\n})();\nvar onTouchLeave = /* #__PURE__ */ (function () {\n var $35 = handler(\"touchleave\");\n return function ($36) {\n return $35(touchHandler($36));\n };\n})();\nvar onTouchMove = /* #__PURE__ */ (function () {\n var $37 = handler(\"touchmove\");\n return function ($38) {\n return $37(touchHandler($38));\n };\n})();\nvar onTouchStart = /* #__PURE__ */ (function () {\n var $39 = handler(\"touchstart\");\n return function ($40) {\n return $39(touchHandler($40));\n };\n})();\nvar onTransitionEnd = /* #__PURE__ */ handler(\"transitionend\");\nvar onWheel = /* #__PURE__ */ (function () {\n var $41 = handler(Web_UIEvent_WheelEvent_EventTypes.wheel);\n return function ($42) {\n return $41(wheelHandler($42));\n };\n})();\nvar focusHandler = Unsafe_Coerce.unsafeCoerce;\nvar onBlur = /* #__PURE__ */ (function () {\n var $43 = handler(Web_HTML_Event_EventTypes.blur);\n return function ($44) {\n return $43(focusHandler($44));\n };\n})();\nvar onFocus = /* #__PURE__ */ (function () {\n var $45 = handler(Web_UIEvent_FocusEvent_EventTypes.focus);\n return function ($46) {\n return $45(focusHandler($46));\n };\n})();\nvar onFocusIn = /* #__PURE__ */ (function () {\n var $47 = handler(Web_UIEvent_FocusEvent_EventTypes.focusin);\n return function ($48) {\n return $47(focusHandler($48));\n };\n})();\nvar onFocusOut = /* #__PURE__ */ (function () {\n var $49 = handler(Web_UIEvent_FocusEvent_EventTypes.focusout);\n return function ($50) {\n return $49(focusHandler($50));\n };\n})();\nvar dragHandler = Unsafe_Coerce.unsafeCoerce;\nvar onDrag = /* #__PURE__ */ (function () {\n var $51 = handler(Web_HTML_Event_DragEvent_EventTypes.drag);\n return function ($52) {\n return $51(dragHandler($52));\n };\n})();\nvar onDragEnd = /* #__PURE__ */ (function () {\n var $53 = handler(Web_HTML_Event_DragEvent_EventTypes.dragend);\n return function ($54) {\n return $53(dragHandler($54));\n };\n})();\nvar onDragEnter = /* #__PURE__ */ (function () {\n var $55 = handler(Web_HTML_Event_DragEvent_EventTypes.dragenter);\n return function ($56) {\n return $55(dragHandler($56));\n };\n})();\nvar onDragExit = /* #__PURE__ */ (function () {\n var $57 = handler(Web_HTML_Event_DragEvent_EventTypes.dragexit);\n return function ($58) {\n return $57(dragHandler($58));\n };\n})();\nvar onDragLeave = /* #__PURE__ */ (function () {\n var $59 = handler(Web_HTML_Event_DragEvent_EventTypes.dragleave);\n return function ($60) {\n return $59(dragHandler($60));\n };\n})();\nvar onDragOver = /* #__PURE__ */ (function () {\n var $61 = handler(Web_HTML_Event_DragEvent_EventTypes.dragover);\n return function ($62) {\n return $61(dragHandler($62));\n };\n})();\nvar onDragStart = /* #__PURE__ */ (function () {\n var $63 = handler(Web_HTML_Event_DragEvent_EventTypes.dragstart);\n return function ($64) {\n return $63(dragHandler($64));\n };\n})();\nvar onDrop = /* #__PURE__ */ (function () {\n var $65 = handler(Web_HTML_Event_DragEvent_EventTypes.drop);\n return function ($66) {\n return $65(dragHandler($66));\n };\n})();\nvar clipboardHandler = Unsafe_Coerce.unsafeCoerce;\nvar onCopy = /* #__PURE__ */ (function () {\n var $67 = handler(Web_Clipboard_ClipboardEvent_EventTypes.copy);\n return function ($68) {\n return $67(clipboardHandler($68));\n };\n})();\nvar onCut = /* #__PURE__ */ (function () {\n var $69 = handler(Web_Clipboard_ClipboardEvent_EventTypes.cut);\n return function ($70) {\n return $69(clipboardHandler($70));\n };\n})();\nvar onPaste = /* #__PURE__ */ (function () {\n var $71 = handler(Web_Clipboard_ClipboardEvent_EventTypes.paste);\n return function ($72) {\n return $71(clipboardHandler($72));\n };\n})();\nvar addForeignPropHandler = function (key) {\n return function (prop) {\n return function (reader) {\n return function (f) {\n var go = function (a) {\n return Control_Bind.composeKleisliFlipped(Control_Monad_Except_Trans.bindExceptT(Data_Identity.monadIdentity))(reader)(Foreign_Index.readProp(Data_Identity.monadIdentity)(prop))(Foreign.unsafeToForeign(a));\n };\n return handler$prime(key)(Control_Bind.composeKleisli(Data_Maybe.bindMaybe)(Web_Event_Event.currentTarget)(function (e) {\n return Data_Either.either(Data_Function[\"const\"](Data_Maybe.Nothing.value))(function ($73) {\n return Data_Maybe.Just.create(f($73));\n })(Control_Monad_Except.runExcept(go(e)));\n }));\n };\n };\n };\n};\nvar onChecked = /* #__PURE__ */ addForeignPropHandler(Web_HTML_Event_EventTypes.change)(\"checked\")(/* #__PURE__ */ Foreign.readBoolean(Data_Identity.monadIdentity));\nvar onSelectedIndexChange = /* #__PURE__ */ addForeignPropHandler(Web_HTML_Event_EventTypes.change)(\"selectedIndex\")(/* #__PURE__ */ Foreign.readInt(Data_Identity.monadIdentity));\nvar onValueChange = /* #__PURE__ */ addForeignPropHandler(Web_HTML_Event_EventTypes.change)(\"value\")(/* #__PURE__ */ Foreign.readString(Data_Identity.monadIdentity));\nvar onValueInput = /* #__PURE__ */ addForeignPropHandler(Web_HTML_Event_EventTypes.input)(\"value\")(/* #__PURE__ */ Foreign.readString(Data_Identity.monadIdentity));\nexport {\n handler,\n handler$prime,\n onAbort,\n onError,\n onLoad,\n onScroll,\n onChange,\n onFileUpload,\n onInput,\n onInvalid,\n onReset,\n onSelect,\n onSubmit,\n onTransitionEnd,\n onCopy,\n onPaste,\n onCut,\n onAuxClick,\n onClick,\n onDoubleClick,\n onMouseDown,\n onMouseEnter,\n onMouseLeave,\n onMouseMove,\n onMouseOver,\n onMouseOut,\n onMouseUp,\n onWheel,\n onKeyDown,\n onKeyUp,\n onBlur,\n onFocus,\n onFocusIn,\n onFocusOut,\n onDrag,\n onDragEnd,\n onDragExit,\n onDragEnter,\n onDragLeave,\n onDragOver,\n onDragStart,\n onDrop,\n onTouchCancel,\n onTouchEnd,\n onTouchEnter,\n onTouchLeave,\n onTouchMove,\n onTouchStart,\n onResize,\n onValueChange,\n onValueInput,\n onSelectedIndexChange,\n onChecked\n};\n","// Generated by purs version 0.15.2\nvar mouseup = \"mouseup\";\nvar mouseover = \"mouseover\";\nvar mouseout = \"mouseout\";\nvar mousemove = \"mousemove\";\nvar mouseleave = \"mouseleave\";\nvar mouseenter = \"mouseenter\";\nvar mousedown = \"mousedown\";\nvar dblclick = \"dblclick\";\nvar click = \"click\";\nvar auxclick = \"auxclick\";\nexport {\n auxclick,\n click,\n dblclick,\n mousedown,\n mouseenter,\n mouseleave,\n mousemove,\n mouseout,\n mouseover,\n mouseup\n};\n","// Generated by purs version 0.15.2\nvar keyup = \"keyup\";\nvar keydown = \"keydown\";\nexport {\n keydown,\n keyup\n};\n","// Generated by purs version 0.15.2\nvar unload = \"unload\";\nvar toggle = \"toggle\";\nvar submit = \"submit\";\nvar storage = \"storage\";\nvar select = \"select\";\nvar reset = \"reset\";\nvar readystatechange = \"readystatechange\";\nvar progress = \"progress\";\nvar paste = \"paste\";\nvar online = \"online\";\nvar offline = \"offline\";\nvar message = \"message\";\nvar loadstart = \"loadstart\";\nvar loadend = \"loadend\";\nvar load = \"load\";\nvar languagechange = \"languagechange\";\nvar invalid = \"invalid\";\nvar input = \"input\";\nvar focus = \"focus\";\nvar error = \"error\";\nvar domcontentloaded = \"DOMContentLoaded\";\nvar cut = \"cut\";\nvar copy = \"copy\";\nvar close = \"close\";\nvar click = \"click\";\nvar change = \"change\";\nvar cancel = \"cancel\";\nvar blur = \"blur\";\nvar beforescriptexecute = \"beforescriptexecute\";\nvar beforeprint = \"beforeprint\";\nvar afterscriptexecute = \"afterscriptexecute\";\nvar afterprint = \"afterprint\";\nvar abort = \"abort\";\nexport {\n abort,\n afterprint,\n afterscriptexecute,\n beforeprint,\n beforescriptexecute,\n blur,\n cancel,\n change,\n click,\n close,\n copy,\n cut,\n domcontentloaded,\n error,\n focus,\n input,\n invalid,\n languagechange,\n load,\n loadend,\n loadstart,\n message,\n offline,\n online,\n paste,\n progress,\n readystatechange,\n reset,\n select,\n storage,\n submit,\n toggle,\n unload\n};\n","// Generated by purs version 0.15.2\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as DOM_HTML_Indexed from \"../DOM.HTML.Indexed/index.js\";\nimport * as DOM_HTML_Indexed_AutocompleteType from \"../DOM.HTML.Indexed.AutocompleteType/index.js\";\nimport * as DOM_HTML_Indexed_ButtonType from \"../DOM.HTML.Indexed.ButtonType/index.js\";\nimport * as DOM_HTML_Indexed_FormMethod from \"../DOM.HTML.Indexed.FormMethod/index.js\";\nimport * as DOM_HTML_Indexed_InputAcceptType from \"../DOM.HTML.Indexed.InputAcceptType/index.js\";\nimport * as DOM_HTML_Indexed_InputType from \"../DOM.HTML.Indexed.InputType/index.js\";\nimport * as DOM_HTML_Indexed_MenuType from \"../DOM.HTML.Indexed.MenuType/index.js\";\nimport * as DOM_HTML_Indexed_MenuitemType from \"../DOM.HTML.Indexed.MenuitemType/index.js\";\nimport * as DOM_HTML_Indexed_OrderedListType from \"../DOM.HTML.Indexed.OrderedListType/index.js\";\nimport * as DOM_HTML_Indexed_PreloadValue from \"../DOM.HTML.Indexed.PreloadValue/index.js\";\nimport * as DOM_HTML_Indexed_ScopeValue from \"../DOM.HTML.Indexed.ScopeValue/index.js\";\nimport * as DOM_HTML_Indexed_StepValue from \"../DOM.HTML.Indexed.StepValue/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_HeytingAlgebra from \"../Data.HeytingAlgebra/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Newtype from \"../Data.Newtype/index.js\";\nimport * as Data_String_Common from \"../Data.String.Common/index.js\";\nimport * as Halogen_HTML_Core from \"../Halogen.HTML.Core/index.js\";\nimport * as Halogen_Query_Input from \"../Halogen.Query.Input/index.js\";\nimport * as Halogen_VDom_DOM_Prop from \"../Halogen.VDom.DOM.Prop/index.js\";\nimport * as Unsafe_Coerce from \"../Unsafe.Coerce/index.js\";\nvar IProp = function (x) {\n return x;\n};\nvar ref = /* #__PURE__ */ (function () {\n var go = function (p) {\n return function (mel) {\n return new Data_Maybe.Just(new Halogen_Query_Input.RefUpdate(p, mel));\n };\n };\n return function ($7) {\n return Halogen_HTML_Core.ref(go($7));\n };\n})();\nvar prop = function (dictIsProp) {\n return Halogen_HTML_Core.prop(dictIsProp);\n};\nvar readOnly = /* #__PURE__ */ prop(Halogen_HTML_Core.isPropBoolean)(\"readOnly\");\nvar rel = /* #__PURE__ */ prop(Halogen_HTML_Core.isPropString)(\"rel\");\nvar required = /* #__PURE__ */ prop(Halogen_HTML_Core.isPropBoolean)(\"required\");\nvar rowSpan = /* #__PURE__ */ prop(Halogen_HTML_Core.isPropInt)(\"rowSpan\");\nvar rows = /* #__PURE__ */ prop(Halogen_HTML_Core.isPropInt)(\"rows\");\nvar scope = /* #__PURE__ */ prop(Halogen_HTML_Core.isPropScopeValue)(\"scope\");\nvar selected = /* #__PURE__ */ prop(Halogen_HTML_Core.isPropBoolean)(\"selected\");\nvar selectedIndex = /* #__PURE__ */ prop(Halogen_HTML_Core.isPropInt)(\"selectedIndex\");\nvar spellcheck = /* #__PURE__ */ prop(Halogen_HTML_Core.isPropBoolean)(\"spellcheck\");\nvar src = /* #__PURE__ */ prop(Halogen_HTML_Core.isPropString)(\"src\");\nvar srcDoc = /* #__PURE__ */ prop(Halogen_HTML_Core.isPropString)(\"srcdoc\");\nvar step = /* #__PURE__ */ prop(Halogen_HTML_Core.isPropStepValue)(\"step\");\nvar tabIndex = /* #__PURE__ */ prop(Halogen_HTML_Core.isPropInt)(\"tabIndex\");\nvar target = /* #__PURE__ */ prop(Halogen_HTML_Core.isPropString)(\"target\");\nvar title = /* #__PURE__ */ prop(Halogen_HTML_Core.isPropString)(\"title\");\nvar type_ = function (dictIsProp) {\n return prop(dictIsProp)(\"type\");\n};\nvar value = function (dictIsProp) {\n return prop(dictIsProp)(\"value\");\n};\nvar width = /* #__PURE__ */ prop(Halogen_HTML_Core.isPropInt)(\"width\");\nvar preload = /* #__PURE__ */ prop(Halogen_HTML_Core.isPropPreloadValue)(\"preload\");\nvar poster = /* #__PURE__ */ prop(Halogen_HTML_Core.isPropString)(\"poster\");\nvar placeholder = /* #__PURE__ */ prop(Halogen_HTML_Core.isPropString)(\"placeholder\");\nvar pattern = /* #__PURE__ */ prop(Halogen_HTML_Core.isPropString)(\"pattern\");\nvar noValidate = /* #__PURE__ */ prop(Halogen_HTML_Core.isPropBoolean)(\"noValidate\");\nvar newtypeIProp = {\n Coercible0: function () {\n return undefined;\n }\n};\nvar name = /* #__PURE__ */ prop(Halogen_HTML_Core.isPropString)(\"name\");\nvar muted = /* #__PURE__ */ prop(Halogen_HTML_Core.isPropBoolean)(\"muted\");\nvar multiple = /* #__PURE__ */ prop(Halogen_HTML_Core.isPropBoolean)(\"multiple\");\nvar min = /* #__PURE__ */ prop(Halogen_HTML_Core.isPropNumber)(\"min\");\nvar method = /* #__PURE__ */ prop(Halogen_HTML_Core.isPropFormMethod)(\"method\");\nvar max = /* #__PURE__ */ prop(Halogen_HTML_Core.isPropNumber)(\"max\");\nvar loop = /* #__PURE__ */ prop(Halogen_HTML_Core.isPropBoolean)(\"loop\");\nvar id = /* #__PURE__ */ prop(Halogen_HTML_Core.isPropString)(\"id\");\nvar href = /* #__PURE__ */ prop(Halogen_HTML_Core.isPropString)(\"href\");\nvar height = /* #__PURE__ */ prop(Halogen_HTML_Core.isPropInt)(\"height\");\nvar functorIProp = {\n map: function (f) {\n return function (m) {\n return Data_Functor.map(Halogen_VDom_DOM_Prop.functorProp)(Data_Functor.map(Halogen_Query_Input.functorInput)(f))(m);\n };\n }\n};\nvar $$for = /* #__PURE__ */ prop(Halogen_HTML_Core.isPropString)(\"htmlFor\");\nvar expand = function () {\n return Unsafe_Coerce.unsafeCoerce;\n};\nvar enctype = /* #__PURE__ */ prop(Halogen_HTML_Core.isPropMediaType)(\"enctype\");\nvar draggable = /* #__PURE__ */ prop(Halogen_HTML_Core.isPropBoolean)(\"draggable\");\nvar download = /* #__PURE__ */ prop(Halogen_HTML_Core.isPropString)(\"download\");\nvar disabled = /* #__PURE__ */ prop(Halogen_HTML_Core.isPropBoolean)(\"disabled\");\nvar enabled = /* #__PURE__ */ (function () {\n var $8 = Data_HeytingAlgebra.not(Data_HeytingAlgebra.heytingAlgebraBoolean);\n return function ($9) {\n return disabled($8($9));\n };\n})();\nvar controls = /* #__PURE__ */ prop(Halogen_HTML_Core.isPropBoolean)(\"controls\");\nvar cols = /* #__PURE__ */ prop(Halogen_HTML_Core.isPropInt)(\"cols\");\nvar colSpan = /* #__PURE__ */ prop(Halogen_HTML_Core.isPropInt)(\"colSpan\");\nvar classes = /* #__PURE__ */ (function () {\n var $10 = prop(Halogen_HTML_Core.isPropString)(\"className\");\n var $11 = Data_String_Common.joinWith(\" \");\n var $12 = Data_Functor.map(Data_Functor.functorArray)(Data_Newtype.unwrap());\n return function ($13) {\n return $10($11($12($13)));\n };\n})();\nvar class_ = /* #__PURE__ */ (function () {\n var $14 = prop(Halogen_HTML_Core.isPropString)(\"className\");\n var $15 = Data_Newtype.unwrap();\n return function ($16) {\n return $14($15($16));\n };\n})();\nvar checked = /* #__PURE__ */ prop(Halogen_HTML_Core.isPropBoolean)(\"checked\");\nvar charset = /* #__PURE__ */ prop(Halogen_HTML_Core.isPropString)(\"charset\");\nvar autoplay = /* #__PURE__ */ prop(Halogen_HTML_Core.isPropBoolean)(\"autoplay\");\nvar autofocus = /* #__PURE__ */ prop(Halogen_HTML_Core.isPropBoolean)(\"autofocus\");\nvar autocomplete = /* #__PURE__ */ prop(Halogen_HTML_Core.isPropAutocompleteType)(\"autocomplete\");\nvar attrNS = /* #__PURE__ */ (function () {\n var $17 = Control_Applicative.pure(Data_Maybe.applicativeMaybe);\n return function ($18) {\n return Halogen_HTML_Core.attr($17($18));\n };\n})();\nvar attr = /* #__PURE__ */ (function () {\n return Halogen_HTML_Core.attr(Data_Maybe.Nothing.value);\n})();\nvar list = /* #__PURE__ */ attr(\"list\");\nvar style = /* #__PURE__ */ attr(\"style\");\nvar alt = /* #__PURE__ */ prop(Halogen_HTML_Core.isPropString)(\"alt\");\nvar action = /* #__PURE__ */ prop(Halogen_HTML_Core.isPropString)(\"action\");\nvar accept = /* #__PURE__ */ prop(Halogen_HTML_Core.isPropInputAcceptType)(\"accept\");\nexport {\n IProp,\n prop,\n attr,\n attrNS,\n ref,\n expand,\n alt,\n charset,\n class_,\n classes,\n cols,\n rows,\n colSpan,\n rowSpan,\n $$for as for,\n height,\n width,\n href,\n id,\n name,\n rel,\n src,\n srcDoc,\n style,\n scope,\n target,\n title,\n download,\n method,\n action,\n enctype,\n noValidate,\n type_,\n value,\n min,\n max,\n step,\n disabled,\n enabled,\n required,\n readOnly,\n spellcheck,\n checked,\n selected,\n selectedIndex,\n placeholder,\n autocomplete,\n list,\n autofocus,\n multiple,\n pattern,\n accept,\n autoplay,\n controls,\n loop,\n muted,\n poster,\n preload,\n draggable,\n tabIndex,\n newtypeIProp,\n functorIProp\n};\nexport {\n AutocompleteAdditionalName,\n AutocompleteAddressLevel1,\n AutocompleteAddressLevel2,\n AutocompleteAddressLevel3,\n AutocompleteAddressLevel4,\n AutocompleteAddressLine1,\n AutocompleteAddressLine2,\n AutocompleteAddressLine3,\n AutocompleteBirthday,\n AutocompleteBirthdayDay,\n AutocompleteBirthdayMonth,\n AutocompleteBirthdayYear,\n AutocompleteCountry,\n AutocompleteCountryName,\n AutocompleteCreditCardAdditionalName,\n AutocompleteCreditCardExpiration,\n AutocompleteCreditCardExpirationMonth,\n AutocompleteCreditCardExpirationYear,\n AutocompleteCreditCardFamilyName,\n AutocompleteCreditCardGivenName,\n AutocompleteCreditCardName,\n AutocompleteCreditCardNumber,\n AutocompleteCreditCardSecurityCode,\n AutocompleteCreditCardType,\n AutocompleteCurrentPassword,\n AutocompleteEmail,\n AutocompleteFamilyName,\n AutocompleteGivenName,\n AutocompleteHonorificPrefix,\n AutocompleteHonorificSuffix,\n AutocompleteIMPP,\n AutocompleteLanguage,\n AutocompleteName,\n AutocompleteNewPassword,\n AutocompleteNickname,\n AutocompleteOff,\n AutocompleteOn,\n AutocompleteOneTimeCode,\n AutocompleteOrganization,\n AutocompleteOrganizationTitle,\n AutocompletePhoto,\n AutocompletePostalCode,\n AutocompleteSex,\n AutocompleteStreetAddress,\n AutocompleteTelephone,\n AutocompleteTelephoneAreaCode,\n AutocompleteTelephoneCountryCode,\n AutocompleteTelephoneExtension,\n AutocompleteTelephoneLocal,\n AutocompleteTelephoneLocalPrefix,\n AutocompleteTelephoneLocalSuffix,\n AutocompleteTelephoneNational,\n AutocompleteTransactionAmount,\n AutocompleteTransactionCurrency,\n AutocompleteURL,\n AutocompleteUsername\n} from \"../DOM.HTML.Indexed.AutocompleteType/index.js\";\nexport {\n ButtonButton,\n ButtonReset,\n ButtonSubmit\n} from \"../DOM.HTML.Indexed.ButtonType/index.js\";\nexport {\n GET,\n POST\n} from \"../DOM.HTML.Indexed.FormMethod/index.js\";\nexport {\n InputAcceptType\n} from \"../DOM.HTML.Indexed.InputAcceptType/index.js\";\nexport {\n InputButton,\n InputCheckbox,\n InputColor,\n InputDate,\n InputDatetimeLocal,\n InputEmail,\n InputFile,\n InputHidden,\n InputImage,\n InputMonth,\n InputNumber,\n InputPassword,\n InputRadio,\n InputRange,\n InputReset,\n InputSearch,\n InputSubmit,\n InputTel,\n InputText,\n InputTime,\n InputUrl,\n InputWeek\n} from \"../DOM.HTML.Indexed.InputType/index.js\";\nexport {\n MenuContext,\n MenuList,\n MenuToolbar\n} from \"../DOM.HTML.Indexed.MenuType/index.js\";\nexport {\n MenuitemCheckbox,\n MenuitemCommand,\n MenuitemRadio\n} from \"../DOM.HTML.Indexed.MenuitemType/index.js\";\nexport {\n OrderedListAlphabetic,\n OrderedListNumeric\n} from \"../DOM.HTML.Indexed.OrderedListType/index.js\";\nexport {\n PreloadAuto,\n PreloadMetadata,\n PreloadNone\n} from \"../DOM.HTML.Indexed.PreloadValue/index.js\";\nexport {\n ScopeAuto,\n ScopeCol,\n ScopeColGroup,\n ScopeRow,\n ScopeRowGroup\n} from \"../DOM.HTML.Indexed.ScopeValue/index.js\";\nexport {\n Any,\n Step\n} from \"../DOM.HTML.Indexed.StepValue/index.js\";\n","// Generated by purs version 0.15.2\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Apply from \"../Control.Apply/index.js\";\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Data_Const from \"../Data.Const/index.js\";\nimport * as Data_Either from \"../Data.Either/index.js\";\nimport * as Data_List_NonEmpty from \"../Data.List.NonEmpty/index.js\";\nimport * as Data_List_Types from \"../Data.List.Types/index.js\";\nimport * as Data_Newtype from \"../Data.Newtype/index.js\";\nimport * as Data_NonEmpty from \"../Data.NonEmpty/index.js\";\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nvar Pure = /* #__PURE__ */ (function () {\n function Pure(value0) {\n this.value0 = value0;\n };\n Pure.create = function (value0) {\n return new Pure(value0);\n };\n return Pure;\n})();\nvar Lift = /* #__PURE__ */ (function () {\n function Lift(value0) {\n this.value0 = value0;\n };\n Lift.create = function (value0) {\n return new Lift(value0);\n };\n return Lift;\n})();\nvar Ap = /* #__PURE__ */ (function () {\n function Ap(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n Ap.create = function (value0) {\n return function (value1) {\n return new Ap(value0, value1);\n };\n };\n return Ap;\n})();\nvar mkAp = function (fba) {\n return function (fb) {\n return new Ap(fba, fb);\n };\n};\nvar liftFreeAp = /* #__PURE__ */ (function () {\n return Lift.create;\n})();\nvar goLeft = function ($copy_dictApplicative) {\n return function ($copy_fStack) {\n return function ($copy_valStack) {\n return function ($copy_nat) {\n return function ($copy_func) {\n return function ($copy_count) {\n var $tco_var_dictApplicative = $copy_dictApplicative;\n var $tco_var_fStack = $copy_fStack;\n var $tco_var_valStack = $copy_valStack;\n var $tco_var_nat = $copy_nat;\n var $tco_var_func = $copy_func;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(dictApplicative, fStack, valStack, nat, func, count) {\n if (func instanceof Pure) {\n $tco_done = true;\n return new Data_Tuple.Tuple(new Data_List_Types.Cons({\n func: Control_Applicative.pure(dictApplicative)(func.value0),\n count: count\n }, fStack), valStack);\n };\n if (func instanceof Lift) {\n $tco_done = true;\n return new Data_Tuple.Tuple(new Data_List_Types.Cons({\n func: nat(func.value0),\n count: count\n }, fStack), valStack);\n };\n if (func instanceof Ap) {\n $tco_var_dictApplicative = dictApplicative;\n $tco_var_fStack = fStack;\n $tco_var_valStack = Data_List_NonEmpty.cons(func.value1)(valStack);\n $tco_var_nat = nat;\n $tco_var_func = func.value0;\n $copy_count = count + 1 | 0;\n return;\n };\n throw new Error(\"Failed pattern match at Control.Applicative.Free (line 102, column 41 - line 105, column 81): \" + [ func.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_dictApplicative, $tco_var_fStack, $tco_var_valStack, $tco_var_nat, $tco_var_func, $copy_count);\n };\n return $tco_result;\n };\n };\n };\n };\n };\n};\nvar goApply = function ($copy_dictApplicative) {\n return function ($copy_fStack) {\n return function ($copy_vals) {\n return function ($copy_gVal) {\n var $tco_var_dictApplicative = $copy_dictApplicative;\n var $tco_var_fStack = $copy_fStack;\n var $tco_var_vals = $copy_vals;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(dictApplicative, fStack, vals, gVal) {\n if (fStack instanceof Data_List_Types.Nil) {\n $tco_done = true;\n return new Data_Either.Left(gVal);\n };\n if (fStack instanceof Data_List_Types.Cons) {\n var gRes = Control_Apply.apply(dictApplicative.Apply0())(fStack.value0.func)(gVal);\n var $14 = fStack.value0.count === 1;\n if ($14) {\n if (fStack.value1 instanceof Data_List_Types.Nil) {\n $tco_done = true;\n return new Data_Either.Left(gRes);\n };\n $tco_var_dictApplicative = dictApplicative;\n $tco_var_fStack = fStack.value1;\n $tco_var_vals = vals;\n $copy_gVal = gRes;\n return;\n };\n if (vals instanceof Data_List_Types.Nil) {\n $tco_done = true;\n return new Data_Either.Left(gRes);\n };\n if (vals instanceof Data_List_Types.Cons) {\n $tco_done = true;\n return new Data_Either.Right(new Data_Tuple.Tuple(new Data_List_Types.Cons({\n func: gRes,\n count: fStack.value0.count - 1 | 0\n }, fStack.value1), new Data_NonEmpty.NonEmpty(vals.value0, vals.value1)));\n };\n throw new Error(\"Failed pattern match at Control.Applicative.Free (line 83, column 11 - line 88, column 50): \" + [ vals.constructor.name ]);\n };\n throw new Error(\"Failed pattern match at Control.Applicative.Free (line 72, column 3 - line 88, column 50): \" + [ fStack.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_dictApplicative, $tco_var_fStack, $tco_var_vals, $copy_gVal);\n };\n return $tco_result;\n };\n };\n };\n};\nvar functorFreeAp = {\n map: function (f) {\n return function (x) {\n return mkAp(new Pure(f))(x);\n };\n }\n};\nvar foldFreeAp = function (dictApplicative) {\n return function (nat) {\n return function (z) {\n var go = function ($copy_v) {\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(v) {\n if (v.value1.value0 instanceof Pure) {\n var v1 = goApply(dictApplicative)(v.value0)(v.value1.value1)(Control_Applicative.pure(dictApplicative)(v.value1.value0.value0));\n if (v1 instanceof Data_Either.Left) {\n $tco_done = true;\n return v1.value0;\n };\n if (v1 instanceof Data_Either.Right) {\n $copy_v = v1.value0;\n return;\n };\n throw new Error(\"Failed pattern match at Control.Applicative.Free (line 54, column 17 - line 56, column 24): \" + [ v1.constructor.name ]);\n };\n if (v.value1.value0 instanceof Lift) {\n var v1 = goApply(dictApplicative)(v.value0)(v.value1.value1)(nat(v.value1.value0.value0));\n if (v1 instanceof Data_Either.Left) {\n $tco_done = true;\n return v1.value0;\n };\n if (v1 instanceof Data_Either.Right) {\n $copy_v = v1.value0;\n return;\n };\n throw new Error(\"Failed pattern match at Control.Applicative.Free (line 57, column 17 - line 59, column 24): \" + [ v1.constructor.name ]);\n };\n if (v.value1.value0 instanceof Ap) {\n var nextVals = new Data_NonEmpty.NonEmpty(v.value1.value0.value1, v.value1.value1);\n $copy_v = goLeft(dictApplicative)(v.value0)(nextVals)(nat)(v.value1.value0.value0)(1);\n return;\n };\n throw new Error(\"Failed pattern match at Control.Applicative.Free (line 53, column 5 - line 62, column 47): \" + [ v.value1.value0.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($copy_v);\n };\n return $tco_result;\n };\n return go(new Data_Tuple.Tuple(Data_List_Types.Nil.value, Data_List_NonEmpty.singleton(z)));\n };\n };\n};\nvar retractFreeAp = function (dictApplicative) {\n return foldFreeAp(dictApplicative)(Control_Category.identity(Control_Category.categoryFn));\n};\nvar applyFreeAp = {\n apply: function (fba) {\n return function (fb) {\n return mkAp(fba)(fb);\n };\n },\n Functor0: function () {\n return functorFreeAp;\n }\n};\nvar applicativeFreeAp = /* #__PURE__ */ (function () {\n return {\n pure: Pure.create,\n Apply0: function () {\n return applyFreeAp;\n }\n };\n})();\nvar hoistFreeAp = function (f) {\n return foldFreeAp(applicativeFreeAp)(function ($37) {\n return liftFreeAp(f($37));\n });\n};\nvar analyzeFreeAp = function (dictMonoid) {\n return function (k) {\n var $38 = Data_Newtype.unwrap();\n var $39 = foldFreeAp(Data_Const.applicativeConst(dictMonoid))(function ($41) {\n return Data_Const.Const(k($41));\n });\n return function ($40) {\n return $38($39($40));\n };\n };\n};\nexport {\n liftFreeAp,\n retractFreeAp,\n foldFreeAp,\n hoistFreeAp,\n analyzeFreeAp,\n functorFreeAp,\n applyFreeAp,\n applicativeFreeAp\n};\n","// Generated by purs version 0.15.2\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Apply from \"../Control.Apply/index.js\";\nimport * as Control_Monad from \"../Control.Monad/index.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Foldable from \"../Data.Foldable/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_List from \"../Data.List/index.js\";\nimport * as Data_List_Types from \"../Data.List.Types/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Data_Ordering from \"../Data.Ordering/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nimport * as Data_Show from \"../Data.Show/index.js\";\nimport * as Data_Traversable from \"../Data.Traversable/index.js\";\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nvar $runtime_lazy = function (name, moduleName, init) {\n var state = 0;\n var val;\n return function (lineNumber) {\n if (state === 2) return val;\n if (state === 1) throw new ReferenceError(name + \" was needed before it finished initializing (module \" + moduleName + \", line \" + lineNumber + \")\", moduleName, lineNumber);\n state = 1;\n val = init();\n state = 2;\n return val;\n };\n};\nvar CatQueue = /* #__PURE__ */ (function () {\n function CatQueue(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n CatQueue.create = function (value0) {\n return function (value1) {\n return new CatQueue(value0, value1);\n };\n };\n return CatQueue;\n})();\nvar unsnoc = function ($copy_v) {\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(v) {\n if (v.value1 instanceof Data_List_Types.Cons) {\n $tco_done = true;\n return new Data_Maybe.Just(new Data_Tuple.Tuple(v.value1.value0, new CatQueue(v.value0, v.value1.value1)));\n };\n if (v.value0 instanceof Data_List_Types.Nil && v.value1 instanceof Data_List_Types.Nil) {\n $tco_done = true;\n return Data_Maybe.Nothing.value;\n };\n if (v.value1 instanceof Data_List_Types.Nil) {\n $copy_v = new CatQueue(Data_List_Types.Nil.value, Data_List.reverse(v.value0));\n return;\n };\n throw new Error(\"Failed pattern match at Data.CatQueue (line 92, column 1 - line 92, column 63): \" + [ v.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($copy_v);\n };\n return $tco_result;\n};\nvar uncons = function ($copy_v) {\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(v) {\n if (v.value0 instanceof Data_List_Types.Nil && v.value1 instanceof Data_List_Types.Nil) {\n $tco_done = true;\n return Data_Maybe.Nothing.value;\n };\n if (v.value0 instanceof Data_List_Types.Nil) {\n $copy_v = new CatQueue(Data_List.reverse(v.value1), Data_List_Types.Nil.value);\n return;\n };\n if (v.value0 instanceof Data_List_Types.Cons) {\n $tco_done = true;\n return new Data_Maybe.Just(new Data_Tuple.Tuple(v.value0.value0, new CatQueue(v.value0.value1, v.value1)));\n };\n throw new Error(\"Failed pattern match at Data.CatQueue (line 82, column 1 - line 82, column 63): \" + [ v.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($copy_v);\n };\n return $tco_result;\n};\nvar snoc = function (v) {\n return function (a) {\n return new CatQueue(v.value0, new Data_List_Types.Cons(a, v.value1));\n };\n};\nvar showCatQueue = function (dictShow) {\n return {\n show: function (v) {\n return \"(CatQueue \" + (Data_Show.show(Data_List_Types.showList(dictShow))(v.value0) + (\" \" + (Data_Show.show(Data_List_Types.showList(dictShow))(v.value1) + \")\")));\n }\n };\n};\nvar $$null = function (v) {\n if (v.value0 instanceof Data_List_Types.Nil && v.value1 instanceof Data_List_Types.Nil) {\n return true;\n };\n return false;\n};\nvar length = function (v) {\n return Data_List.length(v.value0) + Data_List.length(v.value1) | 0;\n};\nvar functorCatQueue = {\n map: function (f) {\n return function (v) {\n return new CatQueue(Data_Functor.map(Data_List_Types.functorList)(f)(v.value0), Data_Functor.map(Data_List_Types.functorList)(f)(v.value1));\n };\n }\n};\nvar foldableCatQueue = {\n foldMap: function (dictMonoid) {\n return Data_Foldable.foldMapDefaultL(foldableCatQueue)(dictMonoid);\n },\n foldr: function (f) {\n return Data_Foldable.foldrDefault(foldableCatQueue)(f);\n },\n foldl: function (f) {\n var go = function ($copy_acc) {\n return function ($copy_q) {\n var $tco_var_acc = $copy_acc;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(acc, q) {\n var v = uncons(q);\n if (v instanceof Data_Maybe.Just) {\n $tco_var_acc = f(acc)(v.value0.value0);\n $copy_q = v.value0.value1;\n return;\n };\n if (v instanceof Data_Maybe.Nothing) {\n $tco_done = true;\n return acc;\n };\n throw new Error(\"Failed pattern match at Data.CatQueue (line 147, column 16 - line 149, column 22): \" + [ v.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_acc, $copy_q);\n };\n return $tco_result;\n };\n };\n return go;\n }\n};\nvar semigroupCatQueue = {\n append: /* #__PURE__ */ Data_Foldable.foldl(foldableCatQueue)(snoc)\n};\nvar empty = /* #__PURE__ */ (function () {\n return new CatQueue(Data_List_Types.Nil.value, Data_List_Types.Nil.value);\n})();\nvar monoidCatQueue = {\n mempty: empty,\n Semigroup0: function () {\n return semigroupCatQueue;\n }\n};\nvar singleton = /* #__PURE__ */ snoc(empty);\nvar fromFoldable = function (dictFoldable) {\n return function (f) {\n return Data_Foldable.foldMap(dictFoldable)(monoidCatQueue)(singleton)(f);\n };\n};\nvar traversableCatQueue = {\n traverse: function (dictApplicative) {\n return function (f) {\n var $100 = Data_Functor.map((dictApplicative.Apply0()).Functor0())(Data_Foldable.foldl(foldableCatQueue)(snoc)(empty));\n var $101 = Data_Foldable.foldl(foldableCatQueue)(function (acc) {\n var $103 = Control_Apply.lift2(dictApplicative.Apply0())(snoc)(acc);\n return function ($104) {\n return $103(f($104));\n };\n })(Control_Applicative.pure(dictApplicative)(empty));\n return function ($102) {\n return $100($101($102));\n };\n };\n },\n sequence: function (dictApplicative) {\n return Data_Traversable.sequenceDefault(traversableCatQueue)(dictApplicative);\n },\n Functor0: function () {\n return functorCatQueue;\n },\n Foldable1: function () {\n return foldableCatQueue;\n }\n};\nvar unfoldable1CatQueue = {\n unfoldr1: function (f) {\n return function (b) {\n var go = function ($copy_source) {\n return function ($copy_memo) {\n var $tco_var_source = $copy_source;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(source, memo) {\n var v = f(source);\n if (v.value1 instanceof Data_Maybe.Nothing) {\n $tco_done = true;\n return snoc(memo)(v.value0);\n };\n if (v.value1 instanceof Data_Maybe.Just) {\n $tco_var_source = v.value1.value0;\n $copy_memo = snoc(memo)(v.value0);\n return;\n };\n throw new Error(\"Failed pattern match at Data.CatQueue (line 154, column 24 - line 156, column 57): \" + [ v.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_source, $copy_memo);\n };\n return $tco_result;\n };\n };\n return go(b)(empty);\n };\n }\n};\nvar unfoldableCatQueue = {\n unfoldr: function (f) {\n return function (b) {\n var go = function ($copy_source) {\n return function ($copy_memo) {\n var $tco_var_source = $copy_source;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(source, memo) {\n var v = f(source);\n if (v instanceof Data_Maybe.Nothing) {\n $tco_done = true;\n return memo;\n };\n if (v instanceof Data_Maybe.Just) {\n $tco_var_source = v.value0.value1;\n $copy_memo = snoc(memo)(v.value0.value0);\n return;\n };\n throw new Error(\"Failed pattern match at Data.CatQueue (line 161, column 24 - line 163, column 57): \" + [ v.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_source, $copy_memo);\n };\n return $tco_result;\n };\n };\n return go(b)(empty);\n };\n },\n Unfoldable10: function () {\n return unfoldable1CatQueue;\n }\n};\nvar cqEq = function (dictEq) {\n var elemEq = Data_Eq.eq(dictEq);\n var go = function ($copy_xs) {\n return function ($copy_ys) {\n var $tco_var_xs = $copy_xs;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(xs, ys) {\n var v = uncons(ys);\n var v1 = uncons(xs);\n if (v1 instanceof Data_Maybe.Just && (v instanceof Data_Maybe.Just && elemEq(v1.value0.value0)(v.value0.value0))) {\n $tco_var_xs = v1.value0.value1;\n $copy_ys = v.value0.value1;\n return;\n };\n if (v1 instanceof Data_Maybe.Nothing && v instanceof Data_Maybe.Nothing) {\n $tco_done = true;\n return true;\n };\n $tco_done = true;\n return false;\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_xs, $copy_ys);\n };\n return $tco_result;\n };\n };\n return go;\n};\nvar eqCatQueue = function (dictEq) {\n return {\n eq: cqEq(dictEq)\n };\n};\nvar cqCompare = function (dictOrd) {\n var elemCompare = Data_Ord.compare(dictOrd);\n var go = function ($copy_xs) {\n return function ($copy_ys) {\n var $tco_var_xs = $copy_xs;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(xs, ys) {\n var v = uncons(ys);\n var v1 = uncons(xs);\n if (v1 instanceof Data_Maybe.Just && v instanceof Data_Maybe.Just) {\n var v2 = elemCompare(v1.value0.value0)(v.value0.value0);\n if (v2 instanceof Data_Ordering.EQ) {\n $tco_var_xs = v1.value0.value1;\n $copy_ys = v.value0.value1;\n return;\n };\n $tco_done = true;\n return v2;\n };\n if (v1 instanceof Data_Maybe.Just && v instanceof Data_Maybe.Nothing) {\n $tco_done = true;\n return Data_Ordering.GT.value;\n };\n if (v1 instanceof Data_Maybe.Nothing && v instanceof Data_Maybe.Just) {\n $tco_done = true;\n return Data_Ordering.LT.value;\n };\n if (v1 instanceof Data_Maybe.Nothing && v instanceof Data_Maybe.Nothing) {\n $tco_done = true;\n return Data_Ordering.EQ.value;\n };\n throw new Error(\"Failed pattern match at Data.CatQueue (line 117, column 16 - line 124, column 30): \" + [ v1.constructor.name, v.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_xs, $copy_ys);\n };\n return $tco_result;\n };\n };\n return go;\n};\nvar ordCatQueue = function (dictOrd) {\n return {\n compare: cqCompare(dictOrd),\n Eq0: function () {\n return eqCatQueue(dictOrd.Eq0());\n }\n };\n};\nvar cons = function (a) {\n return function (v) {\n return new CatQueue(new Data_List_Types.Cons(a, v.value0), v.value1);\n };\n};\nvar monadCatQueue = {\n Applicative0: function () {\n return applicativeCatQueue;\n },\n Bind1: function () {\n return bindCatQueue;\n }\n};\nvar bindCatQueue = {\n bind: /* #__PURE__ */ Data_Function.flip(/* #__PURE__ */ Data_Foldable.foldMap(foldableCatQueue)(monoidCatQueue)),\n Apply0: function () {\n return $lazy_applyCatQueue(0);\n }\n};\nvar applicativeCatQueue = {\n pure: singleton,\n Apply0: function () {\n return $lazy_applyCatQueue(0);\n }\n};\nvar $lazy_applyCatQueue = /* #__PURE__ */ $runtime_lazy(\"applyCatQueue\", \"Data.CatQueue\", function () {\n return {\n apply: Control_Monad.ap(monadCatQueue),\n Functor0: function () {\n return functorCatQueue;\n }\n };\n});\nvar applyCatQueue = /* #__PURE__ */ $lazy_applyCatQueue(174);\nvar altCatQueue = {\n alt: /* #__PURE__ */ Data_Semigroup.append(semigroupCatQueue),\n Functor0: function () {\n return functorCatQueue;\n }\n};\nvar plusCatQueue = {\n empty: empty,\n Alt0: function () {\n return altCatQueue;\n }\n};\nvar alternativeCatQueue = {\n Applicative0: function () {\n return applicativeCatQueue;\n },\n Plus1: function () {\n return plusCatQueue;\n }\n};\nvar monadPlusCatQueue = {\n Monad0: function () {\n return monadCatQueue;\n },\n Alternative1: function () {\n return alternativeCatQueue;\n }\n};\nexport {\n CatQueue,\n empty,\n $$null as null,\n singleton,\n length,\n cons,\n snoc,\n uncons,\n unsnoc,\n fromFoldable,\n eqCatQueue,\n ordCatQueue,\n semigroupCatQueue,\n monoidCatQueue,\n showCatQueue,\n foldableCatQueue,\n unfoldable1CatQueue,\n unfoldableCatQueue,\n traversableCatQueue,\n functorCatQueue,\n applyCatQueue,\n applicativeCatQueue,\n bindCatQueue,\n monadCatQueue,\n altCatQueue,\n plusCatQueue,\n alternativeCatQueue,\n monadPlusCatQueue\n};\n","// Generated by purs version 0.15.2\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Apply from \"../Control.Apply/index.js\";\nimport * as Control_Monad from \"../Control.Monad/index.js\";\nimport * as Data_CatQueue from \"../Data.CatQueue/index.js\";\nimport * as Data_Foldable from \"../Data.Foldable/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_List_Types from \"../Data.List.Types/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Monoid from \"../Data.Monoid/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nimport * as Data_Semiring from \"../Data.Semiring/index.js\";\nimport * as Data_Show from \"../Data.Show/index.js\";\nimport * as Data_Traversable from \"../Data.Traversable/index.js\";\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nvar $runtime_lazy = function (name, moduleName, init) {\n var state = 0;\n var val;\n return function (lineNumber) {\n if (state === 2) return val;\n if (state === 1) throw new ReferenceError(name + \" was needed before it finished initializing (module \" + moduleName + \", line \" + lineNumber + \")\", moduleName, lineNumber);\n state = 1;\n val = init();\n state = 2;\n return val;\n };\n};\nvar CatNil = /* #__PURE__ */ (function () {\n function CatNil() {\n\n };\n CatNil.value = new CatNil();\n return CatNil;\n})();\nvar CatCons = /* #__PURE__ */ (function () {\n function CatCons(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n CatCons.create = function (value0) {\n return function (value1) {\n return new CatCons(value0, value1);\n };\n };\n return CatCons;\n})();\nvar showCatList = function (dictShow) {\n return {\n show: function (v) {\n if (v instanceof CatNil) {\n return \"CatNil\";\n };\n if (v instanceof CatCons) {\n return \"(CatList \" + (Data_Show.show(dictShow)(v.value0) + (\" \" + (Data_Show.show(Data_CatQueue.showCatQueue(showCatList(dictShow)))(v.value1) + \")\")));\n };\n throw new Error(\"Failed pattern match at Data.CatList (line 147, column 1 - line 149, column 71): \" + [ v.constructor.name ]);\n }\n };\n};\nvar $$null = function (v) {\n if (v instanceof CatNil) {\n return true;\n };\n return false;\n};\nvar link = function (v) {\n return function (v1) {\n if (v instanceof CatNil) {\n return v1;\n };\n if (v1 instanceof CatNil) {\n return v;\n };\n if (v instanceof CatCons) {\n return new CatCons(v.value0, Data_CatQueue.snoc(v.value1)(v1));\n };\n throw new Error(\"Failed pattern match at Data.CatList (line 108, column 1 - line 108, column 54): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n};\nvar foldr = function (k) {\n return function (b) {\n return function (q) {\n var foldl = function ($copy_v) {\n return function ($copy_c) {\n return function ($copy_v1) {\n var $tco_var_v = $copy_v;\n var $tco_var_c = $copy_c;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(v, c, v1) {\n if (v1 instanceof Data_List_Types.Nil) {\n $tco_done = true;\n return c;\n };\n if (v1 instanceof Data_List_Types.Cons) {\n $tco_var_v = v;\n $tco_var_c = v(c)(v1.value0);\n $copy_v1 = v1.value1;\n return;\n };\n throw new Error(\"Failed pattern match at Data.CatList (line 124, column 3 - line 124, column 59): \" + [ v.constructor.name, c.constructor.name, v1.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_v, $tco_var_c, $copy_v1);\n };\n return $tco_result;\n };\n };\n };\n var go = function ($copy_xs) {\n return function ($copy_ys) {\n var $tco_var_xs = $copy_xs;\n var $tco_done1 = false;\n var $tco_result;\n function $tco_loop(xs, ys) {\n var v = Data_CatQueue.uncons(xs);\n if (v instanceof Data_Maybe.Nothing) {\n $tco_done1 = true;\n return foldl(function (x) {\n return function (i) {\n return i(x);\n };\n })(b)(ys);\n };\n if (v instanceof Data_Maybe.Just) {\n $tco_var_xs = v.value0.value1;\n $copy_ys = new Data_List_Types.Cons(k(v.value0.value0), ys);\n return;\n };\n throw new Error(\"Failed pattern match at Data.CatList (line 120, column 14 - line 122, column 67): \" + [ v.constructor.name ]);\n };\n while (!$tco_done1) {\n $tco_result = $tco_loop($tco_var_xs, $copy_ys);\n };\n return $tco_result;\n };\n };\n return go(q)(Data_List_Types.Nil.value);\n };\n };\n};\nvar uncons = function (v) {\n if (v instanceof CatNil) {\n return Data_Maybe.Nothing.value;\n };\n if (v instanceof CatCons) {\n return new Data_Maybe.Just(new Data_Tuple.Tuple(v.value0, (function () {\n var $45 = Data_CatQueue[\"null\"](v.value1);\n if ($45) {\n return CatNil.value;\n };\n return foldr(link)(CatNil.value)(v.value1);\n })()));\n };\n throw new Error(\"Failed pattern match at Data.CatList (line 99, column 1 - line 99, column 61): \" + [ v.constructor.name ]);\n};\nvar foldableCatList = {\n foldMap: function (dictMonoid) {\n return Data_Foldable.foldMapDefaultL(foldableCatList)(dictMonoid);\n },\n foldr: function (f) {\n return function (s) {\n return function (l) {\n return Data_Foldable.foldrDefault(foldableCatList)(f)(s)(l);\n };\n };\n },\n foldl: function (f) {\n var go = function ($copy_acc) {\n return function ($copy_q) {\n var $tco_var_acc = $copy_acc;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(acc, q) {\n var v = uncons(q);\n if (v instanceof Data_Maybe.Just) {\n $tco_var_acc = f(acc)(v.value0.value0);\n $copy_q = v.value0.value1;\n return;\n };\n if (v instanceof Data_Maybe.Nothing) {\n $tco_done = true;\n return acc;\n };\n throw new Error(\"Failed pattern match at Data.CatList (line 156, column 16 - line 158, column 22): \" + [ v.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_acc, $copy_q);\n };\n return $tco_result;\n };\n };\n return go;\n }\n};\nvar length = /* #__PURE__ */ Data_Foldable.length(foldableCatList)(Data_Semiring.semiringInt);\nvar foldMap = function (dictMonoid) {\n return function (v) {\n return function (v1) {\n if (v1 instanceof CatNil) {\n return Data_Monoid.mempty(dictMonoid);\n };\n if (v1 instanceof CatCons) {\n var d = (function () {\n var $54 = Data_CatQueue[\"null\"](v1.value1);\n if ($54) {\n return CatNil.value;\n };\n return foldr(link)(CatNil.value)(v1.value1);\n })();\n return Data_Semigroup.append(dictMonoid.Semigroup0())(v(v1.value0))(foldMap(dictMonoid)(v)(d));\n };\n throw new Error(\"Failed pattern match at Data.CatList (line 134, column 1 - line 134, column 62): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n };\n};\nvar empty = /* #__PURE__ */ (function () {\n return CatNil.value;\n})();\nvar append = link;\nvar cons = function (a) {\n return function (cat) {\n return append(new CatCons(a, Data_CatQueue.empty))(cat);\n };\n};\nvar functorCatList = {\n map: function (v) {\n return function (v1) {\n if (v1 instanceof CatNil) {\n return CatNil.value;\n };\n if (v1 instanceof CatCons) {\n var d = (function () {\n var $59 = Data_CatQueue[\"null\"](v1.value1);\n if ($59) {\n return CatNil.value;\n };\n return foldr(link)(CatNil.value)(v1.value1);\n })();\n return cons(v(v1.value0))(Data_Functor.map(functorCatList)(v)(d));\n };\n throw new Error(\"Failed pattern match at Data.CatList (line 184, column 1 - line 188, column 26): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n }\n};\nvar singleton = function (a) {\n return cons(a)(CatNil.value);\n};\nvar traversableCatList = {\n traverse: function (dictApplicative) {\n return function (v) {\n return function (v1) {\n if (v1 instanceof CatNil) {\n return Control_Applicative.pure(dictApplicative)(CatNil.value);\n };\n if (v1 instanceof CatCons) {\n var d = (function () {\n var $64 = Data_CatQueue[\"null\"](v1.value1);\n if ($64) {\n return CatNil.value;\n };\n return foldr(link)(CatNil.value)(v1.value1);\n })();\n return Control_Apply.apply(dictApplicative.Apply0())(Data_Functor.map((dictApplicative.Apply0()).Functor0())(cons)(v(v1.value0)))(Data_Traversable.traverse(traversableCatList)(dictApplicative)(v)(d));\n };\n throw new Error(\"Failed pattern match at Data.CatList (line 174, column 1 - line 182, column 33): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n };\n },\n sequence: function (dictApplicative) {\n return function (v) {\n if (v instanceof CatNil) {\n return Control_Applicative.pure(dictApplicative)(CatNil.value);\n };\n if (v instanceof CatCons) {\n var d = (function () {\n var $68 = Data_CatQueue[\"null\"](v.value1);\n if ($68) {\n return CatNil.value;\n };\n return foldr(link)(CatNil.value)(v.value1);\n })();\n return Control_Apply.apply(dictApplicative.Apply0())(Data_Functor.map((dictApplicative.Apply0()).Functor0())(cons)(v.value0))(Data_Traversable.sequence(traversableCatList)(dictApplicative)(d));\n };\n throw new Error(\"Failed pattern match at Data.CatList (line 174, column 1 - line 182, column 33): \" + [ v.constructor.name ]);\n };\n },\n Functor0: function () {\n return functorCatList;\n },\n Foldable1: function () {\n return foldableCatList;\n }\n};\nvar semigroupCatList = {\n append: append\n};\nvar monoidCatList = /* #__PURE__ */ (function () {\n return {\n mempty: CatNil.value,\n Semigroup0: function () {\n return semigroupCatList;\n }\n };\n})();\nvar monadCatList = {\n Applicative0: function () {\n return applicativeCatList;\n },\n Bind1: function () {\n return bindCatList;\n }\n};\nvar bindCatList = {\n bind: /* #__PURE__ */ Data_Function.flip(/* #__PURE__ */ foldMap(monoidCatList)),\n Apply0: function () {\n return $lazy_applyCatList(0);\n }\n};\nvar applicativeCatList = {\n pure: singleton,\n Apply0: function () {\n return $lazy_applyCatList(0);\n }\n};\nvar $lazy_applyCatList = /* #__PURE__ */ $runtime_lazy(\"applyCatList\", \"Data.CatList\", function () {\n return {\n apply: Control_Monad.ap(monadCatList),\n Functor0: function () {\n return functorCatList;\n }\n };\n});\nvar applyCatList = /* #__PURE__ */ $lazy_applyCatList(190);\nvar fromFoldable = function (dictFoldable) {\n return function (f) {\n return Data_Foldable.foldMap(dictFoldable)(monoidCatList)(singleton)(f);\n };\n};\nvar snoc = function (cat) {\n return function (a) {\n return append(cat)(new CatCons(a, Data_CatQueue.empty));\n };\n};\nvar unfoldable1CatList = {\n unfoldr1: function (f) {\n return function (b) {\n var go = function ($copy_source) {\n return function ($copy_memo) {\n var $tco_var_source = $copy_source;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(source, memo) {\n var v = f(source);\n if (v.value1 instanceof Data_Maybe.Nothing) {\n $tco_done = true;\n return snoc(memo)(v.value0);\n };\n if (v.value1 instanceof Data_Maybe.Just) {\n $tco_var_source = v.value1.value0;\n $copy_memo = snoc(memo)(v.value0);\n return;\n };\n throw new Error(\"Failed pattern match at Data.CatList (line 170, column 24 - line 172, column 57): \" + [ v.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_source, $copy_memo);\n };\n return $tco_result;\n };\n };\n return go(b)(CatNil.value);\n };\n }\n};\nvar unfoldableCatList = {\n unfoldr: function (f) {\n return function (b) {\n var go = function ($copy_source) {\n return function ($copy_memo) {\n var $tco_var_source = $copy_source;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(source, memo) {\n var v = f(source);\n if (v instanceof Data_Maybe.Nothing) {\n $tco_done = true;\n return memo;\n };\n if (v instanceof Data_Maybe.Just) {\n $tco_var_source = v.value0.value1;\n $copy_memo = snoc(memo)(v.value0.value0);\n return;\n };\n throw new Error(\"Failed pattern match at Data.CatList (line 163, column 24 - line 165, column 57): \" + [ v.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_source, $copy_memo);\n };\n return $tco_result;\n };\n };\n return go(b)(CatNil.value);\n };\n },\n Unfoldable10: function () {\n return unfoldable1CatList;\n }\n};\nvar altCatList = {\n alt: append,\n Functor0: function () {\n return functorCatList;\n }\n};\nvar plusCatList = {\n empty: empty,\n Alt0: function () {\n return altCatList;\n }\n};\nvar alternativeCatList = {\n Applicative0: function () {\n return applicativeCatList;\n },\n Plus1: function () {\n return plusCatList;\n }\n};\nvar monadPlusCatList = {\n Monad0: function () {\n return monadCatList;\n },\n Alternative1: function () {\n return alternativeCatList;\n }\n};\nexport {\n CatNil,\n CatCons,\n empty,\n $$null as null,\n singleton,\n length,\n append,\n cons,\n snoc,\n uncons,\n fromFoldable,\n semigroupCatList,\n monoidCatList,\n showCatList,\n foldableCatList,\n unfoldableCatList,\n unfoldable1CatList,\n traversableCatList,\n functorCatList,\n applyCatList,\n applicativeCatList,\n bindCatList,\n monadCatList,\n altCatList,\n plusCatList,\n alternativeCatList,\n monadPlusCatList\n};\n","// Generated by purs version 0.15.2\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Apply from \"../Control.Apply/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Control_Monad from \"../Control.Monad/index.js\";\nimport * as Control_Monad_Rec_Class from \"../Control.Monad.Rec.Class/index.js\";\nimport * as Data_CatList from \"../Data.CatList/index.js\";\nimport * as Data_Either from \"../Data.Either/index.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Foldable from \"../Data.Foldable/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Monoid from \"../Data.Monoid/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Data_Ordering from \"../Data.Ordering/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nimport * as Data_Traversable from \"../Data.Traversable/index.js\";\nimport * as Unsafe_Coerce from \"../Unsafe.Coerce/index.js\";\nvar $runtime_lazy = function (name, moduleName, init) {\n var state = 0;\n var val;\n return function (lineNumber) {\n if (state === 2) return val;\n if (state === 1) throw new ReferenceError(name + \" was needed before it finished initializing (module \" + moduleName + \", line \" + lineNumber + \")\", moduleName, lineNumber);\n state = 1;\n val = init();\n state = 2;\n return val;\n };\n};\nvar ExpF = function (x) {\n return x;\n};\nvar Free = /* #__PURE__ */ (function () {\n function Free(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n Free.create = function (value0) {\n return function (value1) {\n return new Free(value0, value1);\n };\n };\n return Free;\n})();\nvar Return = /* #__PURE__ */ (function () {\n function Return(value0) {\n this.value0 = value0;\n };\n Return.create = function (value0) {\n return new Return(value0);\n };\n return Return;\n})();\nvar Bind = /* #__PURE__ */ (function () {\n function Bind(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n Bind.create = function (value0) {\n return function (value1) {\n return new Bind(value0, value1);\n };\n };\n return Bind;\n})();\nvar toView = function ($copy_v) {\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(v) {\n var runExpF = function (v2) {\n return v2;\n };\n var concatF = function (v2) {\n return function (r) {\n return new Free(v2.value0, Data_Semigroup.append(Data_CatList.semigroupCatList)(v2.value1)(r));\n };\n };\n if (v.value0 instanceof Return) {\n var v2 = Data_CatList.uncons(v.value1);\n if (v2 instanceof Data_Maybe.Nothing) {\n $tco_done = true;\n return new Return(v.value0.value0);\n };\n if (v2 instanceof Data_Maybe.Just) {\n $copy_v = concatF(runExpF(v2.value0.value0)(v.value0.value0))(v2.value0.value1);\n return;\n };\n throw new Error(\"Failed pattern match at Control.Monad.Free (line 227, column 7 - line 231, column 64): \" + [ v2.constructor.name ]);\n };\n if (v.value0 instanceof Bind) {\n $tco_done = true;\n return new Bind(v.value0.value0, function (a) {\n return concatF(v.value0.value1(a))(v.value1);\n });\n };\n throw new Error(\"Failed pattern match at Control.Monad.Free (line 225, column 3 - line 233, column 56): \" + [ v.value0.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($copy_v);\n };\n return $tco_result;\n};\nvar runFreeM = function (dictFunctor) {\n return function (dictMonadRec) {\n return function (k) {\n var go = function (f) {\n var v = toView(f);\n if (v instanceof Return) {\n return Data_Functor.map((((dictMonadRec.Monad0()).Bind1()).Apply0()).Functor0())(Control_Monad_Rec_Class.Done.create)(Control_Applicative.pure((dictMonadRec.Monad0()).Applicative0())(v.value0));\n };\n if (v instanceof Bind) {\n return Data_Functor.map((((dictMonadRec.Monad0()).Bind1()).Apply0()).Functor0())(Control_Monad_Rec_Class.Loop.create)(k(Data_Functor.map(dictFunctor)(v.value1)(v.value0)));\n };\n throw new Error(\"Failed pattern match at Control.Monad.Free (line 194, column 10 - line 196, column 37): \" + [ v.constructor.name ]);\n };\n return Control_Monad_Rec_Class.tailRecM(dictMonadRec)(go);\n };\n };\n};\nvar runFree = function (dictFunctor) {\n return function (k) {\n var go = function ($copy_f) {\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(f) {\n var v = toView(f);\n if (v instanceof Return) {\n $tco_done = true;\n return v.value0;\n };\n if (v instanceof Bind) {\n $copy_f = k(Data_Functor.map(dictFunctor)(v.value1)(v.value0));\n return;\n };\n throw new Error(\"Failed pattern match at Control.Monad.Free (line 178, column 10 - line 180, column 33): \" + [ v.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($copy_f);\n };\n return $tco_result;\n };\n return go;\n };\n};\nvar resume$prime = function (k) {\n return function (j) {\n return function (f) {\n var v = toView(f);\n if (v instanceof Return) {\n return j(v.value0);\n };\n if (v instanceof Bind) {\n return k(v.value0)(v.value1);\n };\n throw new Error(\"Failed pattern match at Control.Monad.Free (line 213, column 17 - line 215, column 20): \" + [ v.constructor.name ]);\n };\n };\n};\nvar resume = function (dictFunctor) {\n return resume$prime(function (g) {\n return function (i) {\n return new Data_Either.Left(Data_Functor.map(dictFunctor)(i)(g));\n };\n })(Data_Either.Right.create);\n};\nvar fromView = function (f) {\n return new Free(f, Data_CatList.empty);\n};\nvar wrap = function (f) {\n return fromView(new Bind(f, Unsafe_Coerce.unsafeCoerce));\n};\nvar suspendF = function (dictApplicative) {\n return function (f) {\n return wrap(Control_Applicative.pure(dictApplicative)(f));\n };\n};\nvar freeMonad = {\n Applicative0: function () {\n return freeApplicative;\n },\n Bind1: function () {\n return freeBind;\n }\n};\nvar freeFunctor = {\n map: function (k) {\n return function (f) {\n return Control_Bind.bindFlipped(freeBind)((function () {\n var $119 = Control_Applicative.pure(freeApplicative);\n return function ($120) {\n return $119(k($120));\n };\n })())(f);\n };\n }\n};\nvar freeBind = {\n bind: function (v) {\n return function (k) {\n return new Free(v.value0, Data_CatList.snoc(v.value1)(k));\n };\n },\n Apply0: function () {\n return $lazy_freeApply(0);\n }\n};\nvar freeApplicative = {\n pure: function ($121) {\n return fromView(Return.create($121));\n },\n Apply0: function () {\n return $lazy_freeApply(0);\n }\n};\nvar $lazy_freeApply = /* #__PURE__ */ $runtime_lazy(\"freeApply\", \"Control.Monad.Free\", function () {\n return {\n apply: Control_Monad.ap(freeMonad),\n Functor0: function () {\n return freeFunctor;\n }\n };\n});\nvar freeApply = /* #__PURE__ */ $lazy_freeApply(77);\nvar semigroupFree = function (dictSemigroup) {\n return {\n append: Control_Apply.lift2(freeApply)(Data_Semigroup.append(dictSemigroup))\n };\n};\nvar freeMonadRec = {\n tailRecM: function (k) {\n return function (a) {\n return Control_Bind.bind(freeBind)(k(a))(function (v) {\n if (v instanceof Control_Monad_Rec_Class.Loop) {\n return Control_Monad_Rec_Class.tailRecM(freeMonadRec)(k)(v.value0);\n };\n if (v instanceof Control_Monad_Rec_Class.Done) {\n return Control_Applicative.pure(freeApplicative)(v.value0);\n };\n throw new Error(\"Failed pattern match at Control.Monad.Free (line 86, column 26 - line 88, column 21): \" + [ v.constructor.name ]);\n });\n };\n },\n Monad0: function () {\n return freeMonad;\n }\n};\nvar liftF = function (f) {\n return fromView(new Bind(f, (function () {\n var $122 = Control_Applicative.pure(freeApplicative);\n return function ($123) {\n return $122($123);\n };\n })()));\n};\nvar freeMonadTrans = {\n lift: function (dictMonad) {\n return liftF;\n }\n};\nvar monoidFree = function (dictMonoid) {\n return {\n mempty: Control_Applicative.pure(freeApplicative)(Data_Monoid.mempty(dictMonoid)),\n Semigroup0: function () {\n return semigroupFree(dictMonoid.Semigroup0());\n }\n };\n};\nvar substFree = function (k) {\n var go = function (f) {\n var v = toView(f);\n if (v instanceof Return) {\n return Control_Applicative.pure(freeApplicative)(v.value0);\n };\n if (v instanceof Bind) {\n return Control_Bind.bind(freeBind)(k(v.value0))(Data_Functor.map(Data_Functor.functorFn)(go)(v.value1));\n };\n throw new Error(\"Failed pattern match at Control.Monad.Free (line 168, column 10 - line 170, column 33): \" + [ v.constructor.name ]);\n };\n return go;\n};\nvar hoistFree = function (k) {\n return substFree(function ($124) {\n return liftF(k($124));\n });\n};\nvar foldableFree = function (dictFunctor) {\n return function (dictFoldable) {\n return {\n foldMap: function (dictMonoid) {\n return function (f) {\n var $lazy_go = $runtime_lazy(\"go\", \"Control.Monad.Free\", function () {\n var $125 = resume(dictFunctor);\n return function ($126) {\n return (function (v) {\n if (v instanceof Data_Either.Left) {\n return Data_Foldable.foldMap(dictFoldable)(dictMonoid)($lazy_go(94))(v.value0);\n };\n if (v instanceof Data_Either.Right) {\n return f(v.value0);\n };\n throw new Error(\"Failed pattern match at Control.Monad.Free (line 93, column 21 - line 95, column 21): \" + [ v.constructor.name ]);\n })($125($126));\n };\n });\n var go = $lazy_go(93);\n return go;\n };\n },\n foldl: function (f) {\n var go = function (r) {\n var $127 = resume(dictFunctor);\n return function ($128) {\n return (function (v) {\n if (v instanceof Data_Either.Left) {\n return Data_Foldable.foldl(dictFoldable)(go)(r)(v.value0);\n };\n if (v instanceof Data_Either.Right) {\n return f(r)(v.value0);\n };\n throw new Error(\"Failed pattern match at Control.Monad.Free (line 98, column 23 - line 100, column 23): \" + [ v.constructor.name ]);\n })($127($128));\n };\n };\n return go;\n },\n foldr: function (f) {\n var go = function (r) {\n var $129 = resume(dictFunctor);\n return function ($130) {\n return (function (v) {\n if (v instanceof Data_Either.Left) {\n return Data_Foldable.foldr(dictFoldable)(Data_Function.flip(go))(r)(v.value0);\n };\n if (v instanceof Data_Either.Right) {\n return f(v.value0)(r);\n };\n throw new Error(\"Failed pattern match at Control.Monad.Free (line 103, column 23 - line 105, column 23): \" + [ v.constructor.name ]);\n })($129($130));\n };\n };\n return go;\n }\n };\n };\n};\nvar traversableFree = function (dictTraversable) {\n return {\n traverse: function (dictApplicative) {\n return function (f) {\n var $lazy_go = $runtime_lazy(\"go\", \"Control.Monad.Free\", function () {\n var $131 = resume(dictTraversable.Functor0());\n return function ($132) {\n return (function (v) {\n if (v instanceof Data_Either.Left) {\n return Data_Functor.map((dictApplicative.Apply0()).Functor0())((function () {\n var $133 = Control_Bind.join(freeBind);\n return function ($134) {\n return $133(liftF($134));\n };\n })())(Data_Traversable.traverse(dictTraversable)(dictApplicative)($lazy_go(111))(v.value0));\n };\n if (v instanceof Data_Either.Right) {\n return Data_Functor.map((dictApplicative.Apply0()).Functor0())(Control_Applicative.pure(freeApplicative))(f(v.value0));\n };\n throw new Error(\"Failed pattern match at Control.Monad.Free (line 110, column 21 - line 112, column 30): \" + [ v.constructor.name ]);\n })($131($132));\n };\n });\n var go = $lazy_go(110);\n return go;\n };\n },\n sequence: function (dictApplicative) {\n return function (tma) {\n return Data_Traversable.traverse(traversableFree(dictTraversable))(dictApplicative)(Control_Category.identity(Control_Category.categoryFn))(tma);\n };\n },\n Functor0: function () {\n return freeFunctor;\n },\n Foldable1: function () {\n return foldableFree(dictTraversable.Functor0())(dictTraversable.Foldable1());\n }\n };\n};\nvar foldFree = function (dictMonadRec) {\n return function (k) {\n var go = function (f) {\n var v = toView(f);\n if (v instanceof Return) {\n return Data_Functor.map((((dictMonadRec.Monad0()).Bind1()).Apply0()).Functor0())(Control_Monad_Rec_Class.Done.create)(Control_Applicative.pure((dictMonadRec.Monad0()).Applicative0())(v.value0));\n };\n if (v instanceof Bind) {\n return Data_Functor.map((((dictMonadRec.Monad0()).Bind1()).Apply0()).Functor0())(function ($135) {\n return Control_Monad_Rec_Class.Loop.create(v.value1($135));\n })(k(v.value0));\n };\n throw new Error(\"Failed pattern match at Control.Monad.Free (line 158, column 10 - line 160, column 37): \" + [ v.constructor.name ]);\n };\n return Control_Monad_Rec_Class.tailRecM(dictMonadRec)(go);\n };\n};\nvar eqFree = function (dictFunctor) {\n return function (dictEq1) {\n return function (dictEq) {\n return {\n eq: function (x) {\n return function (y) {\n var v = resume(dictFunctor)(y);\n var v1 = resume(dictFunctor)(x);\n if (v1 instanceof Data_Either.Left && v instanceof Data_Either.Left) {\n return Data_Eq.eq1(dictEq1)(eqFree(dictFunctor)(dictEq1)(dictEq))(v1.value0)(v.value0);\n };\n if (v1 instanceof Data_Either.Right && v instanceof Data_Either.Right) {\n return Data_Eq.eq(dictEq)(v1.value0)(v.value0);\n };\n return false;\n };\n }\n };\n };\n };\n};\nvar ordFree = function (dictFunctor) {\n return function (dictOrd1) {\n return function (dictOrd) {\n return {\n compare: function (x) {\n return function (y) {\n var v = resume(dictFunctor)(y);\n var v1 = resume(dictFunctor)(x);\n if (v1 instanceof Data_Either.Left && v instanceof Data_Either.Left) {\n return Data_Ord.compare1(dictOrd1)(ordFree(dictFunctor)(dictOrd1)(dictOrd))(v1.value0)(v.value0);\n };\n if (v1 instanceof Data_Either.Left) {\n return Data_Ordering.LT.value;\n };\n if (v instanceof Data_Either.Left) {\n return Data_Ordering.GT.value;\n };\n if (v1 instanceof Data_Either.Right && v instanceof Data_Either.Right) {\n return Data_Ord.compare(dictOrd)(v1.value0)(v.value0);\n };\n throw new Error(\"Failed pattern match at Control.Monad.Free (line 56, column 17 - line 60, column 36): \" + [ v1.constructor.name, v.constructor.name ]);\n };\n },\n Eq0: function () {\n return eqFree(dictFunctor)(dictOrd1.Eq10())(dictOrd.Eq0());\n }\n };\n };\n };\n};\nvar eq1Free = function (dictFunctor) {\n return function (dictEq1) {\n return {\n eq1: function (dictEq) {\n return Data_Eq.eq(eqFree(dictFunctor)(dictEq1)(dictEq));\n }\n };\n };\n};\nvar ord1Free = function (dictFunctor) {\n return function (dictOrd1) {\n return {\n compare1: function (dictOrd) {\n return Data_Ord.compare(ordFree(dictFunctor)(dictOrd1)(dictOrd));\n },\n Eq10: function () {\n return eq1Free(dictFunctor)(dictOrd1.Eq10());\n }\n };\n };\n};\nexport {\n suspendF,\n wrap,\n liftF,\n hoistFree,\n foldFree,\n substFree,\n runFree,\n runFreeM,\n resume,\n resume$prime,\n eqFree,\n eq1Free,\n ordFree,\n ord1Free,\n freeFunctor,\n freeBind,\n freeApplicative,\n freeApply,\n freeMonad,\n freeMonadTrans,\n freeMonadRec,\n foldableFree,\n traversableFree,\n semigroupFree,\n monoidFree\n};\n","// Generated by purs version 0.15.2\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Apply from \"../Control.Apply/index.js\";\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Foldable from \"../Data.Foldable/index.js\";\nimport * as Data_FoldableWithIndex from \"../Data.FoldableWithIndex/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_FunctorWithIndex from \"../Data.FunctorWithIndex/index.js\";\nimport * as Data_HeytingAlgebra from \"../Data.HeytingAlgebra/index.js\";\nimport * as Data_List from \"../Data.List/index.js\";\nimport * as Data_List_Lazy from \"../Data.List.Lazy/index.js\";\nimport * as Data_List_Lazy_Types from \"../Data.List.Lazy.Types/index.js\";\nimport * as Data_List_Types from \"../Data.List.Types/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Monoid from \"../Data.Monoid/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Data_Ordering from \"../Data.Ordering/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nimport * as Data_Show from \"../Data.Show/index.js\";\nimport * as Data_Traversable from \"../Data.Traversable/index.js\";\nimport * as Data_TraversableWithIndex from \"../Data.TraversableWithIndex/index.js\";\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nimport * as Data_Unfoldable from \"../Data.Unfoldable/index.js\";\nimport * as Partial_Unsafe from \"../Partial.Unsafe/index.js\";\nvar Leaf = /* #__PURE__ */ (function () {\n function Leaf() {\n\n };\n Leaf.value = new Leaf();\n return Leaf;\n})();\nvar Two = /* #__PURE__ */ (function () {\n function Two(value0, value1, value2, value3) {\n this.value0 = value0;\n this.value1 = value1;\n this.value2 = value2;\n this.value3 = value3;\n };\n Two.create = function (value0) {\n return function (value1) {\n return function (value2) {\n return function (value3) {\n return new Two(value0, value1, value2, value3);\n };\n };\n };\n };\n return Two;\n})();\nvar Three = /* #__PURE__ */ (function () {\n function Three(value0, value1, value2, value3, value4, value5, value6) {\n this.value0 = value0;\n this.value1 = value1;\n this.value2 = value2;\n this.value3 = value3;\n this.value4 = value4;\n this.value5 = value5;\n this.value6 = value6;\n };\n Three.create = function (value0) {\n return function (value1) {\n return function (value2) {\n return function (value3) {\n return function (value4) {\n return function (value5) {\n return function (value6) {\n return new Three(value0, value1, value2, value3, value4, value5, value6);\n };\n };\n };\n };\n };\n };\n };\n return Three;\n})();\nvar TwoLeft = /* #__PURE__ */ (function () {\n function TwoLeft(value0, value1, value2) {\n this.value0 = value0;\n this.value1 = value1;\n this.value2 = value2;\n };\n TwoLeft.create = function (value0) {\n return function (value1) {\n return function (value2) {\n return new TwoLeft(value0, value1, value2);\n };\n };\n };\n return TwoLeft;\n})();\nvar TwoRight = /* #__PURE__ */ (function () {\n function TwoRight(value0, value1, value2) {\n this.value0 = value0;\n this.value1 = value1;\n this.value2 = value2;\n };\n TwoRight.create = function (value0) {\n return function (value1) {\n return function (value2) {\n return new TwoRight(value0, value1, value2);\n };\n };\n };\n return TwoRight;\n})();\nvar ThreeLeft = /* #__PURE__ */ (function () {\n function ThreeLeft(value0, value1, value2, value3, value4, value5) {\n this.value0 = value0;\n this.value1 = value1;\n this.value2 = value2;\n this.value3 = value3;\n this.value4 = value4;\n this.value5 = value5;\n };\n ThreeLeft.create = function (value0) {\n return function (value1) {\n return function (value2) {\n return function (value3) {\n return function (value4) {\n return function (value5) {\n return new ThreeLeft(value0, value1, value2, value3, value4, value5);\n };\n };\n };\n };\n };\n };\n return ThreeLeft;\n})();\nvar ThreeMiddle = /* #__PURE__ */ (function () {\n function ThreeMiddle(value0, value1, value2, value3, value4, value5) {\n this.value0 = value0;\n this.value1 = value1;\n this.value2 = value2;\n this.value3 = value3;\n this.value4 = value4;\n this.value5 = value5;\n };\n ThreeMiddle.create = function (value0) {\n return function (value1) {\n return function (value2) {\n return function (value3) {\n return function (value4) {\n return function (value5) {\n return new ThreeMiddle(value0, value1, value2, value3, value4, value5);\n };\n };\n };\n };\n };\n };\n return ThreeMiddle;\n})();\nvar ThreeRight = /* #__PURE__ */ (function () {\n function ThreeRight(value0, value1, value2, value3, value4, value5) {\n this.value0 = value0;\n this.value1 = value1;\n this.value2 = value2;\n this.value3 = value3;\n this.value4 = value4;\n this.value5 = value5;\n };\n ThreeRight.create = function (value0) {\n return function (value1) {\n return function (value2) {\n return function (value3) {\n return function (value4) {\n return function (value5) {\n return new ThreeRight(value0, value1, value2, value3, value4, value5);\n };\n };\n };\n };\n };\n };\n return ThreeRight;\n})();\nvar KickUp = /* #__PURE__ */ (function () {\n function KickUp(value0, value1, value2, value3) {\n this.value0 = value0;\n this.value1 = value1;\n this.value2 = value2;\n this.value3 = value3;\n };\n KickUp.create = function (value0) {\n return function (value1) {\n return function (value2) {\n return function (value3) {\n return new KickUp(value0, value1, value2, value3);\n };\n };\n };\n };\n return KickUp;\n})();\nvar size = function (v) {\n if (v instanceof Leaf) {\n return 0;\n };\n if (v instanceof Two) {\n return (1 + size(v.value0) | 0) + size(v.value3) | 0;\n };\n if (v instanceof Three) {\n return ((2 + size(v.value0) | 0) + size(v.value3) | 0) + size(v.value6) | 0;\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 705, column 1 - line 705, column 35): \" + [ v.constructor.name ]);\n};\nvar singleton = function (k) {\n return function (v) {\n return new Two(Leaf.value, k, v, Leaf.value);\n };\n};\nvar toUnfoldable = function (dictUnfoldable) {\n return function (m) {\n var go = function ($copy_v) {\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(v) {\n if (v instanceof Data_List_Types.Nil) {\n $tco_done = true;\n return Data_Maybe.Nothing.value;\n };\n if (v instanceof Data_List_Types.Cons) {\n if (v.value0 instanceof Leaf) {\n $copy_v = v.value1;\n return;\n };\n if (v.value0 instanceof Two && (v.value0.value0 instanceof Leaf && v.value0.value3 instanceof Leaf)) {\n $tco_done = true;\n return new Data_Maybe.Just(new Data_Tuple.Tuple(new Data_Tuple.Tuple(v.value0.value1, v.value0.value2), v.value1));\n };\n if (v.value0 instanceof Two && v.value0.value0 instanceof Leaf) {\n $tco_done = true;\n return new Data_Maybe.Just(new Data_Tuple.Tuple(new Data_Tuple.Tuple(v.value0.value1, v.value0.value2), new Data_List_Types.Cons(v.value0.value3, v.value1)));\n };\n if (v.value0 instanceof Two) {\n $copy_v = new Data_List_Types.Cons(v.value0.value0, new Data_List_Types.Cons(singleton(v.value0.value1)(v.value0.value2), new Data_List_Types.Cons(v.value0.value3, v.value1)));\n return;\n };\n if (v.value0 instanceof Three) {\n $copy_v = new Data_List_Types.Cons(v.value0.value0, new Data_List_Types.Cons(singleton(v.value0.value1)(v.value0.value2), new Data_List_Types.Cons(v.value0.value3, new Data_List_Types.Cons(singleton(v.value0.value4)(v.value0.value5), new Data_List_Types.Cons(v.value0.value6, v.value1)))));\n return;\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 624, column 18 - line 633, column 71): \" + [ v.value0.constructor.name ]);\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 623, column 3 - line 623, column 19): \" + [ v.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($copy_v);\n };\n return $tco_result;\n };\n return Data_Unfoldable.unfoldr(dictUnfoldable)(go)(new Data_List_Types.Cons(m, Data_List_Types.Nil.value));\n };\n};\nvar toAscArray = /* #__PURE__ */ toUnfoldable(Data_Unfoldable.unfoldableArray);\nvar toUnfoldableUnordered = function (dictUnfoldable) {\n return function (m) {\n var go = function ($copy_v) {\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(v) {\n if (v instanceof Data_List_Types.Nil) {\n $tco_done = true;\n return Data_Maybe.Nothing.value;\n };\n if (v instanceof Data_List_Types.Cons) {\n if (v.value0 instanceof Leaf) {\n $copy_v = v.value1;\n return;\n };\n if (v.value0 instanceof Two) {\n $tco_done = true;\n return new Data_Maybe.Just(new Data_Tuple.Tuple(new Data_Tuple.Tuple(v.value0.value1, v.value0.value2), new Data_List_Types.Cons(v.value0.value0, new Data_List_Types.Cons(v.value0.value3, v.value1))));\n };\n if (v.value0 instanceof Three) {\n $tco_done = true;\n return new Data_Maybe.Just(new Data_Tuple.Tuple(new Data_Tuple.Tuple(v.value0.value1, v.value0.value2), new Data_List_Types.Cons(singleton(v.value0.value4)(v.value0.value5), new Data_List_Types.Cons(v.value0.value0, new Data_List_Types.Cons(v.value0.value3, new Data_List_Types.Cons(v.value0.value6, v.value1))))));\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 645, column 18 - line 650, column 77): \" + [ v.value0.constructor.name ]);\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 644, column 3 - line 644, column 19): \" + [ v.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($copy_v);\n };\n return $tco_result;\n };\n return Data_Unfoldable.unfoldr(dictUnfoldable)(go)(new Data_List_Types.Cons(m, Data_List_Types.Nil.value));\n };\n};\nvar showTree = function (dictShow) {\n return function (dictShow1) {\n return function (v) {\n if (v instanceof Leaf) {\n return \"Leaf\";\n };\n if (v instanceof Two) {\n return \"Two (\" + (showTree(dictShow)(dictShow1)(v.value0) + (\") (\" + (Data_Show.show(dictShow)(v.value1) + (\") (\" + (Data_Show.show(dictShow1)(v.value2) + (\") (\" + (showTree(dictShow)(dictShow1)(v.value3) + \")\")))))));\n };\n if (v instanceof Three) {\n return \"Three (\" + (showTree(dictShow)(dictShow1)(v.value0) + (\") (\" + (Data_Show.show(dictShow)(v.value1) + (\") (\" + (Data_Show.show(dictShow1)(v.value2) + (\") (\" + (showTree(dictShow)(dictShow1)(v.value3) + (\") (\" + (Data_Show.show(dictShow)(v.value4) + (\") (\" + (Data_Show.show(dictShow1)(v.value5) + (\") (\" + (showTree(dictShow)(dictShow1)(v.value6) + \")\")))))))))))));\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 194, column 1 - line 194, column 62): \" + [ v.constructor.name ]);\n };\n };\n};\nvar showMap = function (dictShow) {\n return function (dictShow1) {\n return {\n show: function (m) {\n return \"(fromFoldable \" + (Data_Show.show(Data_Show.showArray(Data_Tuple.showTuple(dictShow)(dictShow1)))(toAscArray(m)) + \")\");\n }\n };\n };\n};\nvar lookupLE = function (dictOrd) {\n return function (k) {\n var comp = Data_Ord.compare(dictOrd);\n var go = function (v) {\n if (v instanceof Leaf) {\n return Data_Maybe.Nothing.value;\n };\n if (v instanceof Two) {\n var v2 = comp(k)(v.value1);\n if (v2 instanceof Data_Ordering.EQ) {\n return new Data_Maybe.Just({\n key: v.value1,\n value: v.value2\n });\n };\n if (v2 instanceof Data_Ordering.GT) {\n return new Data_Maybe.Just(Data_Maybe.fromMaybe({\n key: v.value1,\n value: v.value2\n })(go(v.value3)));\n };\n if (v2 instanceof Data_Ordering.LT) {\n return go(v.value0);\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 266, column 33 - line 269, column 20): \" + [ v2.constructor.name ]);\n };\n if (v instanceof Three) {\n var v3 = comp(k)(v.value4);\n if (v3 instanceof Data_Ordering.EQ) {\n return new Data_Maybe.Just({\n key: v.value4,\n value: v.value5\n });\n };\n if (v3 instanceof Data_Ordering.GT) {\n return new Data_Maybe.Just(Data_Maybe.fromMaybe({\n key: v.value4,\n value: v.value5\n })(go(v.value6)));\n };\n if (v3 instanceof Data_Ordering.LT) {\n return go(new Two(v.value0, v.value1, v.value2, v.value3));\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 270, column 45 - line 273, column 36): \" + [ v3.constructor.name ]);\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 265, column 5 - line 265, column 22): \" + [ v.constructor.name ]);\n };\n return go;\n };\n};\nvar lookupGE = function (dictOrd) {\n return function (k) {\n var comp = Data_Ord.compare(dictOrd);\n var go = function (v) {\n if (v instanceof Leaf) {\n return Data_Maybe.Nothing.value;\n };\n if (v instanceof Two) {\n var v2 = comp(k)(v.value1);\n if (v2 instanceof Data_Ordering.EQ) {\n return new Data_Maybe.Just({\n key: v.value1,\n value: v.value2\n });\n };\n if (v2 instanceof Data_Ordering.LT) {\n return new Data_Maybe.Just(Data_Maybe.fromMaybe({\n key: v.value1,\n value: v.value2\n })(go(v.value0)));\n };\n if (v2 instanceof Data_Ordering.GT) {\n return go(v.value3);\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 300, column 33 - line 303, column 21): \" + [ v2.constructor.name ]);\n };\n if (v instanceof Three) {\n var v3 = comp(k)(v.value1);\n if (v3 instanceof Data_Ordering.EQ) {\n return new Data_Maybe.Just({\n key: v.value1,\n value: v.value2\n });\n };\n if (v3 instanceof Data_Ordering.LT) {\n return new Data_Maybe.Just(Data_Maybe.fromMaybe({\n key: v.value1,\n value: v.value2\n })(go(v.value0)));\n };\n if (v3 instanceof Data_Ordering.GT) {\n return go(new Two(v.value3, v.value4, v.value5, v.value6));\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 304, column 45 - line 307, column 37): \" + [ v3.constructor.name ]);\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 299, column 5 - line 299, column 22): \" + [ v.constructor.name ]);\n };\n return go;\n };\n};\nvar lookup = function (dictOrd) {\n return function (k) {\n var comp = Data_Ord.compare(dictOrd);\n var go = function ($copy_v) {\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(v) {\n if (v instanceof Leaf) {\n $tco_done = true;\n return Data_Maybe.Nothing.value;\n };\n if (v instanceof Two) {\n var v2 = comp(k)(v.value1);\n if (v2 instanceof Data_Ordering.EQ) {\n $tco_done = true;\n return new Data_Maybe.Just(v.value2);\n };\n if (v2 instanceof Data_Ordering.LT) {\n $copy_v = v.value0;\n return;\n };\n $copy_v = v.value3;\n return;\n };\n if (v instanceof Three) {\n var v3 = comp(k)(v.value1);\n if (v3 instanceof Data_Ordering.EQ) {\n $tco_done = true;\n return new Data_Maybe.Just(v.value2);\n };\n var v4 = comp(k)(v.value4);\n if (v4 instanceof Data_Ordering.EQ) {\n $tco_done = true;\n return new Data_Maybe.Just(v.value5);\n };\n if (v3 instanceof Data_Ordering.LT) {\n $copy_v = v.value0;\n return;\n };\n if (v4 instanceof Data_Ordering.GT) {\n $copy_v = v.value6;\n return;\n };\n $copy_v = v.value3;\n return;\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 241, column 5 - line 241, column 22): \" + [ v.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($copy_v);\n };\n return $tco_result;\n };\n return go;\n };\n};\nvar member = function (dictOrd) {\n return function (k) {\n return function (m) {\n return Data_Maybe.isJust(lookup(dictOrd)(k)(m));\n };\n };\n};\nvar isSubmap = function (dictOrd) {\n return function (dictEq) {\n return function (m1) {\n return function (m2) {\n var f = function (v) {\n return Data_Eq.eq(Data_Maybe.eqMaybe(dictEq))(lookup(dictOrd)(v.value0)(m2))(new Data_Maybe.Just(v.value1));\n };\n return Data_Foldable.all(Data_List_Lazy_Types.foldableList)(Data_HeytingAlgebra.heytingAlgebraBoolean)(f)(toUnfoldable(Data_List_Lazy_Types.unfoldableList)(m1));\n };\n };\n };\n};\nvar isEmpty = function (v) {\n if (v instanceof Leaf) {\n return true;\n };\n return false;\n};\nvar functorMap = {\n map: function (v) {\n return function (v1) {\n if (v1 instanceof Leaf) {\n return Leaf.value;\n };\n if (v1 instanceof Two) {\n return new Two(Data_Functor.map(functorMap)(v)(v1.value0), v1.value1, v(v1.value2), Data_Functor.map(functorMap)(v)(v1.value3));\n };\n if (v1 instanceof Three) {\n return new Three(Data_Functor.map(functorMap)(v)(v1.value0), v1.value1, v(v1.value2), Data_Functor.map(functorMap)(v)(v1.value3), v1.value4, v(v1.value5), Data_Functor.map(functorMap)(v)(v1.value6));\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 116, column 1 - line 119, column 110): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n }\n};\nvar functorWithIndexMap = {\n mapWithIndex: function (v) {\n return function (v1) {\n if (v1 instanceof Leaf) {\n return Leaf.value;\n };\n if (v1 instanceof Two) {\n return new Two(Data_FunctorWithIndex.mapWithIndex(functorWithIndexMap)(v)(v1.value0), v1.value1, v(v1.value1)(v1.value2), Data_FunctorWithIndex.mapWithIndex(functorWithIndexMap)(v)(v1.value3));\n };\n if (v1 instanceof Three) {\n return new Three(Data_FunctorWithIndex.mapWithIndex(functorWithIndexMap)(v)(v1.value0), v1.value1, v(v1.value1)(v1.value2), Data_FunctorWithIndex.mapWithIndex(functorWithIndexMap)(v)(v1.value3), v1.value4, v(v1.value4)(v1.value5), Data_FunctorWithIndex.mapWithIndex(functorWithIndexMap)(v)(v1.value6));\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 121, column 1 - line 124, column 152): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n },\n Functor0: function () {\n return functorMap;\n }\n};\nvar fromZipper = function ($copy_dictOrd) {\n return function ($copy_v) {\n return function ($copy_tree) {\n var $tco_var_dictOrd = $copy_dictOrd;\n var $tco_var_v = $copy_v;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(dictOrd, v, tree) {\n if (v instanceof Data_List_Types.Nil) {\n $tco_done = true;\n return tree;\n };\n if (v instanceof Data_List_Types.Cons) {\n if (v.value0 instanceof TwoLeft) {\n $tco_var_dictOrd = dictOrd;\n $tco_var_v = v.value1;\n $copy_tree = new Two(tree, v.value0.value0, v.value0.value1, v.value0.value2);\n return;\n };\n if (v.value0 instanceof TwoRight) {\n $tco_var_dictOrd = dictOrd;\n $tco_var_v = v.value1;\n $copy_tree = new Two(v.value0.value0, v.value0.value1, v.value0.value2, tree);\n return;\n };\n if (v.value0 instanceof ThreeLeft) {\n $tco_var_dictOrd = dictOrd;\n $tco_var_v = v.value1;\n $copy_tree = new Three(tree, v.value0.value0, v.value0.value1, v.value0.value2, v.value0.value3, v.value0.value4, v.value0.value5);\n return;\n };\n if (v.value0 instanceof ThreeMiddle) {\n $tco_var_dictOrd = dictOrd;\n $tco_var_v = v.value1;\n $copy_tree = new Three(v.value0.value0, v.value0.value1, v.value0.value2, tree, v.value0.value3, v.value0.value4, v.value0.value5);\n return;\n };\n if (v.value0 instanceof ThreeRight) {\n $tco_var_dictOrd = dictOrd;\n $tco_var_v = v.value1;\n $copy_tree = new Three(v.value0.value0, v.value0.value1, v.value0.value2, v.value0.value3, v.value0.value4, v.value0.value5, tree);\n return;\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 462, column 3 - line 467, column 88): \" + [ v.value0.constructor.name ]);\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 459, column 1 - line 459, column 80): \" + [ v.constructor.name, tree.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_dictOrd, $tco_var_v, $copy_tree);\n };\n return $tco_result;\n };\n };\n};\nvar insert = function (dictOrd) {\n return function (k) {\n return function (v) {\n var up = function ($copy_v1) {\n return function ($copy_v2) {\n var $tco_var_v1 = $copy_v1;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(v1, v2) {\n if (v1 instanceof Data_List_Types.Nil) {\n $tco_done = true;\n return new Two(v2.value0, v2.value1, v2.value2, v2.value3);\n };\n if (v1 instanceof Data_List_Types.Cons) {\n if (v1.value0 instanceof TwoLeft) {\n $tco_done = true;\n return fromZipper(dictOrd)(v1.value1)(new Three(v2.value0, v2.value1, v2.value2, v2.value3, v1.value0.value0, v1.value0.value1, v1.value0.value2));\n };\n if (v1.value0 instanceof TwoRight) {\n $tco_done = true;\n return fromZipper(dictOrd)(v1.value1)(new Three(v1.value0.value0, v1.value0.value1, v1.value0.value2, v2.value0, v2.value1, v2.value2, v2.value3));\n };\n if (v1.value0 instanceof ThreeLeft) {\n $tco_var_v1 = v1.value1;\n $copy_v2 = new KickUp(new Two(v2.value0, v2.value1, v2.value2, v2.value3), v1.value0.value0, v1.value0.value1, new Two(v1.value0.value2, v1.value0.value3, v1.value0.value4, v1.value0.value5));\n return;\n };\n if (v1.value0 instanceof ThreeMiddle) {\n $tco_var_v1 = v1.value1;\n $copy_v2 = new KickUp(new Two(v1.value0.value0, v1.value0.value1, v1.value0.value2, v2.value0), v2.value1, v2.value2, new Two(v2.value3, v1.value0.value3, v1.value0.value4, v1.value0.value5));\n return;\n };\n if (v1.value0 instanceof ThreeRight) {\n $tco_var_v1 = v1.value1;\n $copy_v2 = new KickUp(new Two(v1.value0.value0, v1.value0.value1, v1.value0.value2, v1.value0.value3), v1.value0.value4, v1.value0.value5, new Two(v2.value0, v2.value1, v2.value2, v2.value3));\n return;\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 498, column 5 - line 503, column 108): \" + [ v1.value0.constructor.name, v2.constructor.name ]);\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 495, column 3 - line 495, column 56): \" + [ v1.constructor.name, v2.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_v1, $copy_v2);\n };\n return $tco_result;\n };\n };\n var comp = Data_Ord.compare(dictOrd);\n var down = function ($copy_ctx) {\n return function ($copy_v1) {\n var $tco_var_ctx = $copy_ctx;\n var $tco_done1 = false;\n var $tco_result;\n function $tco_loop(ctx, v1) {\n if (v1 instanceof Leaf) {\n $tco_done1 = true;\n return up(ctx)(new KickUp(Leaf.value, k, v, Leaf.value));\n };\n if (v1 instanceof Two) {\n var v2 = comp(k)(v1.value1);\n if (v2 instanceof Data_Ordering.EQ) {\n $tco_done1 = true;\n return fromZipper(dictOrd)(ctx)(new Two(v1.value0, k, v, v1.value3));\n };\n if (v2 instanceof Data_Ordering.LT) {\n $tco_var_ctx = new Data_List_Types.Cons(new TwoLeft(v1.value1, v1.value2, v1.value3), ctx);\n $copy_v1 = v1.value0;\n return;\n };\n $tco_var_ctx = new Data_List_Types.Cons(new TwoRight(v1.value0, v1.value1, v1.value2), ctx);\n $copy_v1 = v1.value3;\n return;\n };\n if (v1 instanceof Three) {\n var v3 = comp(k)(v1.value1);\n if (v3 instanceof Data_Ordering.EQ) {\n $tco_done1 = true;\n return fromZipper(dictOrd)(ctx)(new Three(v1.value0, k, v, v1.value3, v1.value4, v1.value5, v1.value6));\n };\n var v4 = comp(k)(v1.value4);\n if (v4 instanceof Data_Ordering.EQ) {\n $tco_done1 = true;\n return fromZipper(dictOrd)(ctx)(new Three(v1.value0, v1.value1, v1.value2, v1.value3, k, v, v1.value6));\n };\n if (v3 instanceof Data_Ordering.LT) {\n $tco_var_ctx = new Data_List_Types.Cons(new ThreeLeft(v1.value1, v1.value2, v1.value3, v1.value4, v1.value5, v1.value6), ctx);\n $copy_v1 = v1.value0;\n return;\n };\n if (v3 instanceof Data_Ordering.GT && v4 instanceof Data_Ordering.LT) {\n $tco_var_ctx = new Data_List_Types.Cons(new ThreeMiddle(v1.value0, v1.value1, v1.value2, v1.value4, v1.value5, v1.value6), ctx);\n $copy_v1 = v1.value3;\n return;\n };\n $tco_var_ctx = new Data_List_Types.Cons(new ThreeRight(v1.value0, v1.value1, v1.value2, v1.value3, v1.value4, v1.value5), ctx);\n $copy_v1 = v1.value6;\n return;\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 478, column 3 - line 478, column 55): \" + [ ctx.constructor.name, v1.constructor.name ]);\n };\n while (!$tco_done1) {\n $tco_result = $tco_loop($tco_var_ctx, $copy_v1);\n };\n return $tco_result;\n };\n };\n return down(Data_List_Types.Nil.value);\n };\n };\n};\nvar pop = function (dictOrd) {\n return function (k) {\n var up = function ($copy_ctxs) {\n return function ($copy_tree) {\n var $tco_var_ctxs = $copy_ctxs;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(ctxs, tree) {\n if (ctxs instanceof Data_List_Types.Nil) {\n $tco_done = true;\n return tree;\n };\n if (ctxs instanceof Data_List_Types.Cons) {\n if (ctxs.value0 instanceof TwoLeft && (ctxs.value0.value2 instanceof Leaf && tree instanceof Leaf)) {\n $tco_done = true;\n return fromZipper(dictOrd)(ctxs.value1)(new Two(Leaf.value, ctxs.value0.value0, ctxs.value0.value1, Leaf.value));\n };\n if (ctxs.value0 instanceof TwoRight && (ctxs.value0.value0 instanceof Leaf && tree instanceof Leaf)) {\n $tco_done = true;\n return fromZipper(dictOrd)(ctxs.value1)(new Two(Leaf.value, ctxs.value0.value1, ctxs.value0.value2, Leaf.value));\n };\n if (ctxs.value0 instanceof TwoLeft && ctxs.value0.value2 instanceof Two) {\n $tco_var_ctxs = ctxs.value1;\n $copy_tree = new Three(tree, ctxs.value0.value0, ctxs.value0.value1, ctxs.value0.value2.value0, ctxs.value0.value2.value1, ctxs.value0.value2.value2, ctxs.value0.value2.value3);\n return;\n };\n if (ctxs.value0 instanceof TwoRight && ctxs.value0.value0 instanceof Two) {\n $tco_var_ctxs = ctxs.value1;\n $copy_tree = new Three(ctxs.value0.value0.value0, ctxs.value0.value0.value1, ctxs.value0.value0.value2, ctxs.value0.value0.value3, ctxs.value0.value1, ctxs.value0.value2, tree);\n return;\n };\n if (ctxs.value0 instanceof TwoLeft && ctxs.value0.value2 instanceof Three) {\n $tco_done = true;\n return fromZipper(dictOrd)(ctxs.value1)(new Two(new Two(tree, ctxs.value0.value0, ctxs.value0.value1, ctxs.value0.value2.value0), ctxs.value0.value2.value1, ctxs.value0.value2.value2, new Two(ctxs.value0.value2.value3, ctxs.value0.value2.value4, ctxs.value0.value2.value5, ctxs.value0.value2.value6)));\n };\n if (ctxs.value0 instanceof TwoRight && ctxs.value0.value0 instanceof Three) {\n $tco_done = true;\n return fromZipper(dictOrd)(ctxs.value1)(new Two(new Two(ctxs.value0.value0.value0, ctxs.value0.value0.value1, ctxs.value0.value0.value2, ctxs.value0.value0.value3), ctxs.value0.value0.value4, ctxs.value0.value0.value5, new Two(ctxs.value0.value0.value6, ctxs.value0.value1, ctxs.value0.value2, tree)));\n };\n if (ctxs.value0 instanceof ThreeLeft && (ctxs.value0.value2 instanceof Leaf && (ctxs.value0.value5 instanceof Leaf && tree instanceof Leaf))) {\n $tco_done = true;\n return fromZipper(dictOrd)(ctxs.value1)(new Three(Leaf.value, ctxs.value0.value0, ctxs.value0.value1, Leaf.value, ctxs.value0.value3, ctxs.value0.value4, Leaf.value));\n };\n if (ctxs.value0 instanceof ThreeMiddle && (ctxs.value0.value0 instanceof Leaf && (ctxs.value0.value5 instanceof Leaf && tree instanceof Leaf))) {\n $tco_done = true;\n return fromZipper(dictOrd)(ctxs.value1)(new Three(Leaf.value, ctxs.value0.value1, ctxs.value0.value2, Leaf.value, ctxs.value0.value3, ctxs.value0.value4, Leaf.value));\n };\n if (ctxs.value0 instanceof ThreeRight && (ctxs.value0.value0 instanceof Leaf && (ctxs.value0.value3 instanceof Leaf && tree instanceof Leaf))) {\n $tco_done = true;\n return fromZipper(dictOrd)(ctxs.value1)(new Three(Leaf.value, ctxs.value0.value1, ctxs.value0.value2, Leaf.value, ctxs.value0.value4, ctxs.value0.value5, Leaf.value));\n };\n if (ctxs.value0 instanceof ThreeLeft && ctxs.value0.value2 instanceof Two) {\n $tco_done = true;\n return fromZipper(dictOrd)(ctxs.value1)(new Two(new Three(tree, ctxs.value0.value0, ctxs.value0.value1, ctxs.value0.value2.value0, ctxs.value0.value2.value1, ctxs.value0.value2.value2, ctxs.value0.value2.value3), ctxs.value0.value3, ctxs.value0.value4, ctxs.value0.value5));\n };\n if (ctxs.value0 instanceof ThreeMiddle && ctxs.value0.value0 instanceof Two) {\n $tco_done = true;\n return fromZipper(dictOrd)(ctxs.value1)(new Two(new Three(ctxs.value0.value0.value0, ctxs.value0.value0.value1, ctxs.value0.value0.value2, ctxs.value0.value0.value3, ctxs.value0.value1, ctxs.value0.value2, tree), ctxs.value0.value3, ctxs.value0.value4, ctxs.value0.value5));\n };\n if (ctxs.value0 instanceof ThreeMiddle && ctxs.value0.value5 instanceof Two) {\n $tco_done = true;\n return fromZipper(dictOrd)(ctxs.value1)(new Two(ctxs.value0.value0, ctxs.value0.value1, ctxs.value0.value2, new Three(tree, ctxs.value0.value3, ctxs.value0.value4, ctxs.value0.value5.value0, ctxs.value0.value5.value1, ctxs.value0.value5.value2, ctxs.value0.value5.value3)));\n };\n if (ctxs.value0 instanceof ThreeRight && ctxs.value0.value3 instanceof Two) {\n $tco_done = true;\n return fromZipper(dictOrd)(ctxs.value1)(new Two(ctxs.value0.value0, ctxs.value0.value1, ctxs.value0.value2, new Three(ctxs.value0.value3.value0, ctxs.value0.value3.value1, ctxs.value0.value3.value2, ctxs.value0.value3.value3, ctxs.value0.value4, ctxs.value0.value5, tree)));\n };\n if (ctxs.value0 instanceof ThreeLeft && ctxs.value0.value2 instanceof Three) {\n $tco_done = true;\n return fromZipper(dictOrd)(ctxs.value1)(new Three(new Two(tree, ctxs.value0.value0, ctxs.value0.value1, ctxs.value0.value2.value0), ctxs.value0.value2.value1, ctxs.value0.value2.value2, new Two(ctxs.value0.value2.value3, ctxs.value0.value2.value4, ctxs.value0.value2.value5, ctxs.value0.value2.value6), ctxs.value0.value3, ctxs.value0.value4, ctxs.value0.value5));\n };\n if (ctxs.value0 instanceof ThreeMiddle && ctxs.value0.value0 instanceof Three) {\n $tco_done = true;\n return fromZipper(dictOrd)(ctxs.value1)(new Three(new Two(ctxs.value0.value0.value0, ctxs.value0.value0.value1, ctxs.value0.value0.value2, ctxs.value0.value0.value3), ctxs.value0.value0.value4, ctxs.value0.value0.value5, new Two(ctxs.value0.value0.value6, ctxs.value0.value1, ctxs.value0.value2, tree), ctxs.value0.value3, ctxs.value0.value4, ctxs.value0.value5));\n };\n if (ctxs.value0 instanceof ThreeMiddle && ctxs.value0.value5 instanceof Three) {\n $tco_done = true;\n return fromZipper(dictOrd)(ctxs.value1)(new Three(ctxs.value0.value0, ctxs.value0.value1, ctxs.value0.value2, new Two(tree, ctxs.value0.value3, ctxs.value0.value4, ctxs.value0.value5.value0), ctxs.value0.value5.value1, ctxs.value0.value5.value2, new Two(ctxs.value0.value5.value3, ctxs.value0.value5.value4, ctxs.value0.value5.value5, ctxs.value0.value5.value6)));\n };\n if (ctxs.value0 instanceof ThreeRight && ctxs.value0.value3 instanceof Three) {\n $tco_done = true;\n return fromZipper(dictOrd)(ctxs.value1)(new Three(ctxs.value0.value0, ctxs.value0.value1, ctxs.value0.value2, new Two(ctxs.value0.value3.value0, ctxs.value0.value3.value1, ctxs.value0.value3.value2, ctxs.value0.value3.value3), ctxs.value0.value3.value4, ctxs.value0.value3.value5, new Two(ctxs.value0.value3.value6, ctxs.value0.value4, ctxs.value0.value5, tree)));\n };\n $tco_done = true;\n return Partial_Unsafe.unsafeCrashWith(\"The impossible happened in partial function `up`.\");\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 552, column 5 - line 573, column 86): \" + [ ctxs.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_ctxs, $copy_tree);\n };\n return $tco_result;\n };\n };\n var removeMaxNode = function ($copy_ctx) {\n return function ($copy_m) {\n var $tco_var_ctx = $copy_ctx;\n var $tco_done1 = false;\n var $tco_result;\n function $tco_loop(ctx, m) {\n if (m instanceof Two && (m.value0 instanceof Leaf && m.value3 instanceof Leaf)) {\n $tco_done1 = true;\n return up(ctx)(Leaf.value);\n };\n if (m instanceof Two) {\n $tco_var_ctx = new Data_List_Types.Cons(new TwoRight(m.value0, m.value1, m.value2), ctx);\n $copy_m = m.value3;\n return;\n };\n if (m instanceof Three && (m.value0 instanceof Leaf && (m.value3 instanceof Leaf && m.value6 instanceof Leaf))) {\n $tco_done1 = true;\n return up(new Data_List_Types.Cons(new TwoRight(Leaf.value, m.value1, m.value2), ctx))(Leaf.value);\n };\n if (m instanceof Three) {\n $tco_var_ctx = new Data_List_Types.Cons(new ThreeRight(m.value0, m.value1, m.value2, m.value3, m.value4, m.value5), ctx);\n $copy_m = m.value6;\n return;\n };\n $tco_done1 = true;\n return Partial_Unsafe.unsafeCrashWith(\"The impossible happened in partial function `removeMaxNode`.\");\n };\n while (!$tco_done1) {\n $tco_result = $tco_loop($tco_var_ctx, $copy_m);\n };\n return $tco_result;\n };\n };\n var maxNode = function ($copy_m) {\n var $tco_done2 = false;\n var $tco_result;\n function $tco_loop(m) {\n if (m instanceof Two && m.value3 instanceof Leaf) {\n $tco_done2 = true;\n return {\n key: m.value1,\n value: m.value2\n };\n };\n if (m instanceof Two) {\n $copy_m = m.value3;\n return;\n };\n if (m instanceof Three && m.value6 instanceof Leaf) {\n $tco_done2 = true;\n return {\n key: m.value4,\n value: m.value5\n };\n };\n if (m instanceof Three) {\n $copy_m = m.value6;\n return;\n };\n $tco_done2 = true;\n return Partial_Unsafe.unsafeCrashWith(\"The impossible happened in partial function `maxNode`.\");\n };\n while (!$tco_done2) {\n $tco_result = $tco_loop($copy_m);\n };\n return $tco_result;\n };\n var comp = Data_Ord.compare(dictOrd);\n var down = function ($copy_ctx) {\n return function ($copy_m) {\n var $tco_var_ctx = $copy_ctx;\n var $tco_done3 = false;\n var $tco_result;\n function $tco_loop(ctx, m) {\n if (m instanceof Leaf) {\n $tco_done3 = true;\n return Data_Maybe.Nothing.value;\n };\n if (m instanceof Two) {\n var v = comp(k)(m.value1);\n if (m.value3 instanceof Leaf && v instanceof Data_Ordering.EQ) {\n $tco_done3 = true;\n return new Data_Maybe.Just(new Data_Tuple.Tuple(m.value2, up(ctx)(Leaf.value)));\n };\n if (v instanceof Data_Ordering.EQ) {\n var max = maxNode(m.value0);\n $tco_done3 = true;\n return new Data_Maybe.Just(new Data_Tuple.Tuple(m.value2, removeMaxNode(new Data_List_Types.Cons(new TwoLeft(max.key, max.value, m.value3), ctx))(m.value0)));\n };\n if (v instanceof Data_Ordering.LT) {\n $tco_var_ctx = new Data_List_Types.Cons(new TwoLeft(m.value1, m.value2, m.value3), ctx);\n $copy_m = m.value0;\n return;\n };\n $tco_var_ctx = new Data_List_Types.Cons(new TwoRight(m.value0, m.value1, m.value2), ctx);\n $copy_m = m.value3;\n return;\n };\n if (m instanceof Three) {\n var leaves = (function () {\n if (m.value0 instanceof Leaf && (m.value3 instanceof Leaf && m.value6 instanceof Leaf)) {\n return true;\n };\n return false;\n })();\n var v = comp(k)(m.value4);\n var v3 = comp(k)(m.value1);\n if (leaves && v3 instanceof Data_Ordering.EQ) {\n $tco_done3 = true;\n return new Data_Maybe.Just(new Data_Tuple.Tuple(m.value2, fromZipper(dictOrd)(ctx)(new Two(Leaf.value, m.value4, m.value5, Leaf.value))));\n };\n if (leaves && v instanceof Data_Ordering.EQ) {\n $tco_done3 = true;\n return new Data_Maybe.Just(new Data_Tuple.Tuple(m.value5, fromZipper(dictOrd)(ctx)(new Two(Leaf.value, m.value1, m.value2, Leaf.value))));\n };\n if (v3 instanceof Data_Ordering.EQ) {\n var max = maxNode(m.value0);\n $tco_done3 = true;\n return new Data_Maybe.Just(new Data_Tuple.Tuple(m.value2, removeMaxNode(new Data_List_Types.Cons(new ThreeLeft(max.key, max.value, m.value3, m.value4, m.value5, m.value6), ctx))(m.value0)));\n };\n if (v instanceof Data_Ordering.EQ) {\n var max = maxNode(m.value3);\n $tco_done3 = true;\n return new Data_Maybe.Just(new Data_Tuple.Tuple(m.value5, removeMaxNode(new Data_List_Types.Cons(new ThreeMiddle(m.value0, m.value1, m.value2, max.key, max.value, m.value6), ctx))(m.value3)));\n };\n if (v3 instanceof Data_Ordering.LT) {\n $tco_var_ctx = new Data_List_Types.Cons(new ThreeLeft(m.value1, m.value2, m.value3, m.value4, m.value5, m.value6), ctx);\n $copy_m = m.value0;\n return;\n };\n if (v3 instanceof Data_Ordering.GT && v instanceof Data_Ordering.LT) {\n $tco_var_ctx = new Data_List_Types.Cons(new ThreeMiddle(m.value0, m.value1, m.value2, m.value4, m.value5, m.value6), ctx);\n $copy_m = m.value3;\n return;\n };\n $tco_var_ctx = new Data_List_Types.Cons(new ThreeRight(m.value0, m.value1, m.value2, m.value3, m.value4, m.value5), ctx);\n $copy_m = m.value6;\n return;\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 525, column 16 - line 548, column 80): \" + [ m.constructor.name ]);\n };\n while (!$tco_done3) {\n $tco_result = $tco_loop($tco_var_ctx, $copy_m);\n };\n return $tco_result;\n };\n };\n return down(Data_List_Types.Nil.value);\n };\n};\nvar foldableMap = {\n foldr: function (f) {\n return function (z) {\n return function (m) {\n if (m instanceof Leaf) {\n return z;\n };\n if (m instanceof Two) {\n return Data_Foldable.foldr(foldableMap)(f)(f(m.value2)(Data_Foldable.foldr(foldableMap)(f)(z)(m.value3)))(m.value0);\n };\n if (m instanceof Three) {\n return Data_Foldable.foldr(foldableMap)(f)(f(m.value2)(Data_Foldable.foldr(foldableMap)(f)(f(m.value5)(Data_Foldable.foldr(foldableMap)(f)(z)(m.value6)))(m.value3)))(m.value0);\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 133, column 17 - line 136, column 85): \" + [ m.constructor.name ]);\n };\n };\n },\n foldl: function (f) {\n return function (z) {\n return function (m) {\n if (m instanceof Leaf) {\n return z;\n };\n if (m instanceof Two) {\n return Data_Foldable.foldl(foldableMap)(f)(f(Data_Foldable.foldl(foldableMap)(f)(z)(m.value0))(m.value2))(m.value3);\n };\n if (m instanceof Three) {\n return Data_Foldable.foldl(foldableMap)(f)(f(Data_Foldable.foldl(foldableMap)(f)(f(Data_Foldable.foldl(foldableMap)(f)(z)(m.value0))(m.value2))(m.value3))(m.value5))(m.value6);\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 137, column 17 - line 140, column 85): \" + [ m.constructor.name ]);\n };\n };\n },\n foldMap: function (dictMonoid) {\n return function (f) {\n return function (m) {\n if (m instanceof Leaf) {\n return Data_Monoid.mempty(dictMonoid);\n };\n if (m instanceof Two) {\n return Data_Semigroup.append(dictMonoid.Semigroup0())(Data_Foldable.foldMap(foldableMap)(dictMonoid)(f)(m.value0))(Data_Semigroup.append(dictMonoid.Semigroup0())(f(m.value2))(Data_Foldable.foldMap(foldableMap)(dictMonoid)(f)(m.value3)));\n };\n if (m instanceof Three) {\n return Data_Semigroup.append(dictMonoid.Semigroup0())(Data_Foldable.foldMap(foldableMap)(dictMonoid)(f)(m.value0))(Data_Semigroup.append(dictMonoid.Semigroup0())(f(m.value2))(Data_Semigroup.append(dictMonoid.Semigroup0())(Data_Foldable.foldMap(foldableMap)(dictMonoid)(f)(m.value3))(Data_Semigroup.append(dictMonoid.Semigroup0())(f(m.value5))(Data_Foldable.foldMap(foldableMap)(dictMonoid)(f)(m.value6)))));\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 141, column 17 - line 144, column 93): \" + [ m.constructor.name ]);\n };\n };\n }\n};\nvar foldableWithIndexMap = {\n foldrWithIndex: function (f) {\n return function (z) {\n return function (m) {\n if (m instanceof Leaf) {\n return z;\n };\n if (m instanceof Two) {\n return Data_FoldableWithIndex.foldrWithIndex(foldableWithIndexMap)(f)(f(m.value1)(m.value2)(Data_FoldableWithIndex.foldrWithIndex(foldableWithIndexMap)(f)(z)(m.value3)))(m.value0);\n };\n if (m instanceof Three) {\n return Data_FoldableWithIndex.foldrWithIndex(foldableWithIndexMap)(f)(f(m.value1)(m.value2)(Data_FoldableWithIndex.foldrWithIndex(foldableWithIndexMap)(f)(f(m.value4)(m.value5)(Data_FoldableWithIndex.foldrWithIndex(foldableWithIndexMap)(f)(z)(m.value6)))(m.value3)))(m.value0);\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 147, column 26 - line 150, column 120): \" + [ m.constructor.name ]);\n };\n };\n },\n foldlWithIndex: function (f) {\n return function (z) {\n return function (m) {\n if (m instanceof Leaf) {\n return z;\n };\n if (m instanceof Two) {\n return Data_FoldableWithIndex.foldlWithIndex(foldableWithIndexMap)(f)(f(m.value1)(Data_FoldableWithIndex.foldlWithIndex(foldableWithIndexMap)(f)(z)(m.value0))(m.value2))(m.value3);\n };\n if (m instanceof Three) {\n return Data_FoldableWithIndex.foldlWithIndex(foldableWithIndexMap)(f)(f(m.value4)(Data_FoldableWithIndex.foldlWithIndex(foldableWithIndexMap)(f)(f(m.value1)(Data_FoldableWithIndex.foldlWithIndex(foldableWithIndexMap)(f)(z)(m.value0))(m.value2))(m.value3))(m.value5))(m.value6);\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 151, column 26 - line 154, column 120): \" + [ m.constructor.name ]);\n };\n };\n },\n foldMapWithIndex: function (dictMonoid) {\n return function (f) {\n return function (m) {\n if (m instanceof Leaf) {\n return Data_Monoid.mempty(dictMonoid);\n };\n if (m instanceof Two) {\n return Data_Semigroup.append(dictMonoid.Semigroup0())(Data_FoldableWithIndex.foldMapWithIndex(foldableWithIndexMap)(dictMonoid)(f)(m.value0))(Data_Semigroup.append(dictMonoid.Semigroup0())(f(m.value1)(m.value2))(Data_FoldableWithIndex.foldMapWithIndex(foldableWithIndexMap)(dictMonoid)(f)(m.value3)));\n };\n if (m instanceof Three) {\n return Data_Semigroup.append(dictMonoid.Semigroup0())(Data_FoldableWithIndex.foldMapWithIndex(foldableWithIndexMap)(dictMonoid)(f)(m.value0))(Data_Semigroup.append(dictMonoid.Semigroup0())(f(m.value1)(m.value2))(Data_Semigroup.append(dictMonoid.Semigroup0())(Data_FoldableWithIndex.foldMapWithIndex(foldableWithIndexMap)(dictMonoid)(f)(m.value3))(Data_Semigroup.append(dictMonoid.Semigroup0())(f(m.value4)(m.value5))(Data_FoldableWithIndex.foldMapWithIndex(foldableWithIndexMap)(dictMonoid)(f)(m.value6)))));\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 155, column 26 - line 158, column 128): \" + [ m.constructor.name ]);\n };\n };\n },\n Foldable0: function () {\n return foldableMap;\n }\n};\nvar keys = /* #__PURE__ */ (function () {\n return Data_FoldableWithIndex.foldrWithIndex(foldableWithIndexMap)(function (k) {\n return function (v) {\n return function (acc) {\n return new Data_List_Types.Cons(k, acc);\n };\n };\n })(Data_List_Types.Nil.value);\n})();\nvar traversableMap = {\n traverse: function (dictApplicative) {\n return function (v) {\n return function (v1) {\n if (v1 instanceof Leaf) {\n return Control_Applicative.pure(dictApplicative)(Leaf.value);\n };\n if (v1 instanceof Two) {\n return Control_Apply.apply(dictApplicative.Apply0())(Control_Apply.apply(dictApplicative.Apply0())(Control_Apply.apply(dictApplicative.Apply0())(Data_Functor.map((dictApplicative.Apply0()).Functor0())(Two.create)(Data_Traversable.traverse(traversableMap)(dictApplicative)(v)(v1.value0)))(Control_Applicative.pure(dictApplicative)(v1.value1)))(v(v1.value2)))(Data_Traversable.traverse(traversableMap)(dictApplicative)(v)(v1.value3));\n };\n if (v1 instanceof Three) {\n return Control_Apply.apply(dictApplicative.Apply0())(Control_Apply.apply(dictApplicative.Apply0())(Control_Apply.apply(dictApplicative.Apply0())(Control_Apply.apply(dictApplicative.Apply0())(Control_Apply.apply(dictApplicative.Apply0())(Control_Apply.apply(dictApplicative.Apply0())(Data_Functor.map((dictApplicative.Apply0()).Functor0())(Three.create)(Data_Traversable.traverse(traversableMap)(dictApplicative)(v)(v1.value0)))(Control_Applicative.pure(dictApplicative)(v1.value1)))(v(v1.value2)))(Data_Traversable.traverse(traversableMap)(dictApplicative)(v)(v1.value3)))(Control_Applicative.pure(dictApplicative)(v1.value4)))(v(v1.value5)))(Data_Traversable.traverse(traversableMap)(dictApplicative)(v)(v1.value6));\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 160, column 1 - line 175, column 31): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n };\n },\n sequence: function (dictApplicative) {\n return Data_Traversable.traverse(traversableMap)(dictApplicative)(Control_Category.identity(Control_Category.categoryFn));\n },\n Functor0: function () {\n return functorMap;\n },\n Foldable1: function () {\n return foldableMap;\n }\n};\nvar traversableWithIndexMap = {\n traverseWithIndex: function (dictApplicative) {\n return function (v) {\n return function (v1) {\n if (v1 instanceof Leaf) {\n return Control_Applicative.pure(dictApplicative)(Leaf.value);\n };\n if (v1 instanceof Two) {\n return Control_Apply.apply(dictApplicative.Apply0())(Control_Apply.apply(dictApplicative.Apply0())(Control_Apply.apply(dictApplicative.Apply0())(Data_Functor.map((dictApplicative.Apply0()).Functor0())(Two.create)(Data_TraversableWithIndex.traverseWithIndex(traversableWithIndexMap)(dictApplicative)(v)(v1.value0)))(Control_Applicative.pure(dictApplicative)(v1.value1)))(v(v1.value1)(v1.value2)))(Data_TraversableWithIndex.traverseWithIndex(traversableWithIndexMap)(dictApplicative)(v)(v1.value3));\n };\n if (v1 instanceof Three) {\n return Control_Apply.apply(dictApplicative.Apply0())(Control_Apply.apply(dictApplicative.Apply0())(Control_Apply.apply(dictApplicative.Apply0())(Control_Apply.apply(dictApplicative.Apply0())(Control_Apply.apply(dictApplicative.Apply0())(Control_Apply.apply(dictApplicative.Apply0())(Data_Functor.map((dictApplicative.Apply0()).Functor0())(Three.create)(Data_TraversableWithIndex.traverseWithIndex(traversableWithIndexMap)(dictApplicative)(v)(v1.value0)))(Control_Applicative.pure(dictApplicative)(v1.value1)))(v(v1.value1)(v1.value2)))(Data_TraversableWithIndex.traverseWithIndex(traversableWithIndexMap)(dictApplicative)(v)(v1.value3)))(Control_Applicative.pure(dictApplicative)(v1.value4)))(v(v1.value4)(v1.value5)))(Data_TraversableWithIndex.traverseWithIndex(traversableWithIndexMap)(dictApplicative)(v)(v1.value6));\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 177, column 1 - line 191, column 40): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n };\n },\n FunctorWithIndex0: function () {\n return functorWithIndexMap;\n },\n FoldableWithIndex1: function () {\n return foldableWithIndexMap;\n },\n Traversable2: function () {\n return traversableMap;\n }\n};\nvar values = /* #__PURE__ */ (function () {\n return Data_Foldable.foldr(foldableMap)(Data_List_Types.Cons.create)(Data_List_Types.Nil.value);\n})();\nvar foldSubmapBy = function (dictOrd) {\n return function (appendFn) {\n return function (memptyValue) {\n return function (kmin) {\n return function (kmax) {\n return function (f) {\n var tooSmall = (function () {\n if (kmin instanceof Data_Maybe.Just) {\n return function (k) {\n return Data_Ord.lessThan(dictOrd)(k)(kmin.value0);\n };\n };\n if (kmin instanceof Data_Maybe.Nothing) {\n return Data_Function[\"const\"](false);\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 363, column 7 - line 367, column 22): \" + [ kmin.constructor.name ]);\n })();\n var tooLarge = (function () {\n if (kmax instanceof Data_Maybe.Just) {\n return function (k) {\n return Data_Ord.greaterThan(dictOrd)(k)(kmax.value0);\n };\n };\n if (kmax instanceof Data_Maybe.Nothing) {\n return Data_Function[\"const\"](false);\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 370, column 7 - line 374, column 22): \" + [ kmax.constructor.name ]);\n })();\n var inBounds = (function () {\n if (kmin instanceof Data_Maybe.Just && kmax instanceof Data_Maybe.Just) {\n return function (k) {\n return Data_Ord.lessThanOrEq(dictOrd)(kmin.value0)(k) && Data_Ord.lessThanOrEq(dictOrd)(k)(kmax.value0);\n };\n };\n if (kmin instanceof Data_Maybe.Just && kmax instanceof Data_Maybe.Nothing) {\n return function (k) {\n return Data_Ord.lessThanOrEq(dictOrd)(kmin.value0)(k);\n };\n };\n if (kmin instanceof Data_Maybe.Nothing && kmax instanceof Data_Maybe.Just) {\n return function (k) {\n return Data_Ord.lessThanOrEq(dictOrd)(k)(kmax.value0);\n };\n };\n if (kmin instanceof Data_Maybe.Nothing && kmax instanceof Data_Maybe.Nothing) {\n return Data_Function[\"const\"](true);\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 377, column 7 - line 385, column 21): \" + [ kmin.constructor.name, kmax.constructor.name ]);\n })();\n var go = function (v) {\n if (v instanceof Leaf) {\n return memptyValue;\n };\n if (v instanceof Two) {\n return appendFn(appendFn((function () {\n var $689 = tooSmall(v.value1);\n if ($689) {\n return memptyValue;\n };\n return go(v.value0);\n })())((function () {\n var $690 = inBounds(v.value1);\n if ($690) {\n return f(v.value1)(v.value2);\n };\n return memptyValue;\n })()))((function () {\n var $691 = tooLarge(v.value1);\n if ($691) {\n return memptyValue;\n };\n return go(v.value3);\n })());\n };\n if (v instanceof Three) {\n return appendFn(appendFn(appendFn(appendFn((function () {\n var $696 = tooSmall(v.value1);\n if ($696) {\n return memptyValue;\n };\n return go(v.value0);\n })())((function () {\n var $697 = inBounds(v.value1);\n if ($697) {\n return f(v.value1)(v.value2);\n };\n return memptyValue;\n })()))((function () {\n var $698 = tooSmall(v.value4) || tooLarge(v.value1);\n if ($698) {\n return memptyValue;\n };\n return go(v.value3);\n })()))((function () {\n var $699 = inBounds(v.value4);\n if ($699) {\n return f(v.value4)(v.value5);\n };\n return memptyValue;\n })()))((function () {\n var $700 = tooLarge(v.value4);\n if ($700) {\n return memptyValue;\n };\n return go(v.value6);\n })());\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 403, column 10 - line 415, column 67): \" + [ v.constructor.name ]);\n };\n return go;\n };\n };\n };\n };\n };\n};\nvar foldSubmap = function (dictOrd) {\n return function (dictMonoid) {\n return foldSubmapBy(dictOrd)(Data_Semigroup.append(dictMonoid.Semigroup0()))(Data_Monoid.mempty(dictMonoid));\n };\n};\nvar findMin = /* #__PURE__ */ (function () {\n var go = function ($copy_v) {\n return function ($copy_v1) {\n var $tco_var_v = $copy_v;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(v, v1) {\n if (v1 instanceof Leaf) {\n $tco_done = true;\n return v;\n };\n if (v1 instanceof Two) {\n $tco_var_v = new Data_Maybe.Just({\n key: v1.value1,\n value: v1.value2\n });\n $copy_v1 = v1.value0;\n return;\n };\n if (v1 instanceof Three) {\n $tco_var_v = new Data_Maybe.Just({\n key: v1.value1,\n value: v1.value2\n });\n $copy_v1 = v1.value0;\n return;\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 338, column 5 - line 338, column 22): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_v, $copy_v1);\n };\n return $tco_result;\n };\n };\n return go(Data_Maybe.Nothing.value);\n})();\nvar lookupGT = function (dictOrd) {\n return function (k) {\n var comp = Data_Ord.compare(dictOrd);\n var go = function (v) {\n if (v instanceof Leaf) {\n return Data_Maybe.Nothing.value;\n };\n if (v instanceof Two) {\n var v2 = comp(k)(v.value1);\n if (v2 instanceof Data_Ordering.EQ) {\n return findMin(v.value3);\n };\n if (v2 instanceof Data_Ordering.LT) {\n return new Data_Maybe.Just(Data_Maybe.fromMaybe({\n key: v.value1,\n value: v.value2\n })(go(v.value0)));\n };\n if (v2 instanceof Data_Ordering.GT) {\n return go(v.value3);\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 317, column 33 - line 320, column 21): \" + [ v2.constructor.name ]);\n };\n if (v instanceof Three) {\n var v3 = comp(k)(v.value1);\n if (v3 instanceof Data_Ordering.EQ) {\n return findMin(new Two(v.value3, v.value4, v.value5, v.value6));\n };\n if (v3 instanceof Data_Ordering.LT) {\n return new Data_Maybe.Just(Data_Maybe.fromMaybe({\n key: v.value1,\n value: v.value2\n })(go(v.value0)));\n };\n if (v3 instanceof Data_Ordering.GT) {\n return go(new Two(v.value3, v.value4, v.value5, v.value6));\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 321, column 45 - line 324, column 37): \" + [ v3.constructor.name ]);\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 316, column 5 - line 316, column 22): \" + [ v.constructor.name ]);\n };\n return go;\n };\n};\nvar findMax = /* #__PURE__ */ (function () {\n var go = function ($copy_v) {\n return function ($copy_v1) {\n var $tco_var_v = $copy_v;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(v, v1) {\n if (v1 instanceof Leaf) {\n $tco_done = true;\n return v;\n };\n if (v1 instanceof Two) {\n $tco_var_v = new Data_Maybe.Just({\n key: v1.value1,\n value: v1.value2\n });\n $copy_v1 = v1.value3;\n return;\n };\n if (v1 instanceof Three) {\n $tco_var_v = new Data_Maybe.Just({\n key: v1.value4,\n value: v1.value5\n });\n $copy_v1 = v1.value6;\n return;\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 330, column 5 - line 330, column 22): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_v, $copy_v1);\n };\n return $tco_result;\n };\n };\n return go(Data_Maybe.Nothing.value);\n})();\nvar lookupLT = function (dictOrd) {\n return function (k) {\n var comp = Data_Ord.compare(dictOrd);\n var go = function (v) {\n if (v instanceof Leaf) {\n return Data_Maybe.Nothing.value;\n };\n if (v instanceof Two) {\n var v2 = comp(k)(v.value1);\n if (v2 instanceof Data_Ordering.EQ) {\n return findMax(v.value0);\n };\n if (v2 instanceof Data_Ordering.GT) {\n return new Data_Maybe.Just(Data_Maybe.fromMaybe({\n key: v.value1,\n value: v.value2\n })(go(v.value3)));\n };\n if (v2 instanceof Data_Ordering.LT) {\n return go(v.value0);\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 283, column 33 - line 286, column 20): \" + [ v2.constructor.name ]);\n };\n if (v instanceof Three) {\n var v3 = comp(k)(v.value4);\n if (v3 instanceof Data_Ordering.EQ) {\n return findMax(new Two(v.value0, v.value1, v.value2, v.value3));\n };\n if (v3 instanceof Data_Ordering.GT) {\n return new Data_Maybe.Just(Data_Maybe.fromMaybe({\n key: v.value4,\n value: v.value5\n })(go(v.value6)));\n };\n if (v3 instanceof Data_Ordering.LT) {\n return go(new Two(v.value0, v.value1, v.value2, v.value3));\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 287, column 45 - line 290, column 36): \" + [ v3.constructor.name ]);\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 282, column 5 - line 282, column 22): \" + [ v.constructor.name ]);\n };\n return go;\n };\n};\nvar eqMap = function (dictEq) {\n return function (dictEq1) {\n return {\n eq: function (m1) {\n return function (m2) {\n return Data_Eq.eq(Data_Eq.eqArray(Data_Tuple.eqTuple(dictEq)(dictEq1)))(toAscArray(m1))(toAscArray(m2));\n };\n }\n };\n };\n};\nvar ordMap = function (dictOrd) {\n return function (dictOrd1) {\n return {\n compare: function (m1) {\n return function (m2) {\n return Data_Ord.compare(Data_Ord.ordArray(Data_Tuple.ordTuple(dictOrd)(dictOrd1)))(toAscArray(m1))(toAscArray(m2));\n };\n },\n Eq0: function () {\n return eqMap(dictOrd.Eq0())(dictOrd1.Eq0());\n }\n };\n };\n};\nvar eq1Map = function (dictEq) {\n return {\n eq1: function (dictEq1) {\n return Data_Eq.eq(eqMap(dictEq)(dictEq1));\n }\n };\n};\nvar ord1Map = function (dictOrd) {\n return {\n compare1: function (dictOrd1) {\n return Data_Ord.compare(ordMap(dictOrd)(dictOrd1));\n },\n Eq10: function () {\n return eq1Map(dictOrd.Eq0());\n }\n };\n};\nvar empty = /* #__PURE__ */ (function () {\n return Leaf.value;\n})();\nvar fromFoldable = function (dictOrd) {\n return function (dictFoldable) {\n return Data_Foldable.foldl(dictFoldable)(function (m) {\n return function (v) {\n return insert(dictOrd)(v.value0)(v.value1)(m);\n };\n })(empty);\n };\n};\nvar filterWithKey = function (dictOrd) {\n return function (predicate) {\n var $797 = fromFoldable(dictOrd)(Data_List_Lazy_Types.foldableList);\n var $798 = Data_List_Lazy.filter(Data_Tuple.uncurry(predicate));\n var $799 = toUnfoldable(Data_List_Lazy_Types.unfoldableList);\n return function ($800) {\n return $797($798($799($800)));\n };\n };\n};\nvar filter = function (dictOrd) {\n return function (predicate) {\n return filterWithKey(dictOrd)(Data_Function[\"const\"](predicate));\n };\n};\nvar filterKeys = function (dictOrd) {\n return function (predicate) {\n return filterWithKey(dictOrd)(function ($801) {\n return Data_Function[\"const\"](predicate($801));\n });\n };\n};\nvar fromFoldableWithIndex = function (dictOrd) {\n return function (dictFoldableWithIndex) {\n return Data_FoldableWithIndex.foldlWithIndex(dictFoldableWithIndex)(function (k) {\n return function (m) {\n return function (v) {\n return insert(dictOrd)(k)(v)(m);\n };\n };\n })(empty);\n };\n};\nvar intersectionWith = function (dictOrd) {\n return function (f) {\n return function (m1) {\n return function (m2) {\n var go = function ($copy_v) {\n return function ($copy_v1) {\n return function ($copy_m) {\n var $tco_var_v = $copy_v;\n var $tco_var_v1 = $copy_v1;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(v, v1, m) {\n if (v instanceof Data_List_Types.Nil) {\n $tco_done = true;\n return m;\n };\n if (v1 instanceof Data_List_Types.Nil) {\n $tco_done = true;\n return m;\n };\n if (v instanceof Data_List_Types.Cons && v1 instanceof Data_List_Types.Cons) {\n var v2 = Data_Ord.compare(dictOrd)(v.value0.value0)(v1.value0.value0);\n if (v2 instanceof Data_Ordering.LT) {\n $tco_var_v = v.value1;\n $tco_var_v1 = v1;\n $copy_m = m;\n return;\n };\n if (v2 instanceof Data_Ordering.EQ) {\n $tco_var_v = v.value1;\n $tco_var_v1 = v1.value1;\n $copy_m = insert(dictOrd)(v.value0.value0)(f(v.value0.value1)(v1.value0.value1))(m);\n return;\n };\n if (v2 instanceof Data_Ordering.GT) {\n $tco_var_v = v;\n $tco_var_v1 = v1.value1;\n $copy_m = m;\n return;\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 684, column 5 - line 687, column 27): \" + [ v2.constructor.name ]);\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 681, column 3 - line 681, column 17): \" + [ v.constructor.name, v1.constructor.name, m.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_v, $tco_var_v1, $copy_m);\n };\n return $tco_result;\n };\n };\n };\n return go(toUnfoldable(Data_List_Types.unfoldableList)(m1))(toUnfoldable(Data_List_Types.unfoldableList)(m2))(empty);\n };\n };\n };\n};\nvar intersection = function (dictOrd) {\n return intersectionWith(dictOrd)(Data_Function[\"const\"]);\n};\nvar mapMaybeWithKey = function (dictOrd) {\n return function (f) {\n return Data_FoldableWithIndex.foldrWithIndex(foldableWithIndexMap)(function (k) {\n return function (a) {\n return function (acc) {\n return Data_Maybe.maybe(acc)(function (b) {\n return insert(dictOrd)(k)(b)(acc);\n })(f(k)(a));\n };\n };\n })(empty);\n };\n};\nvar mapMaybe = function (dictOrd) {\n var $802 = mapMaybeWithKey(dictOrd);\n return function ($803) {\n return $802(Data_Function[\"const\"]($803));\n };\n};\nvar $$delete = function (dictOrd) {\n return function (k) {\n return function (m) {\n return Data_Maybe.maybe(m)(Data_Tuple.snd)(pop(dictOrd)(k)(m));\n };\n };\n};\nvar difference = function (dictOrd) {\n return function (m1) {\n return function (m2) {\n return Data_Foldable.foldl(Data_List_Types.foldableList)(Data_Function.flip($$delete(dictOrd)))(m1)(keys(m2));\n };\n };\n};\nvar checkValid = function (tree) {\n var allHeights = function (v) {\n if (v instanceof Leaf) {\n return Control_Applicative.pure(Data_List_Types.applicativeList)(0);\n };\n if (v instanceof Two) {\n return Data_Functor.map(Data_List_Types.functorList)(function (n) {\n return n + 1 | 0;\n })(Data_Semigroup.append(Data_List_Types.semigroupList)(allHeights(v.value0))(allHeights(v.value3)));\n };\n if (v instanceof Three) {\n return Data_Functor.map(Data_List_Types.functorList)(function (n) {\n return n + 1 | 0;\n })(Data_Semigroup.append(Data_List_Types.semigroupList)(allHeights(v.value0))(Data_Semigroup.append(Data_List_Types.semigroupList)(allHeights(v.value3))(allHeights(v.value6))));\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 229, column 3 - line 229, column 36): \" + [ v.constructor.name ]);\n };\n return Data_List.length(Data_List.nub(Data_Ord.ordInt)(allHeights(tree))) === 1;\n};\nvar catMaybes = function (dictOrd) {\n return mapMaybe(dictOrd)(Control_Category.identity(Control_Category.categoryFn));\n};\nvar applyMap = function (dictOrd) {\n return {\n apply: intersectionWith(dictOrd)(Control_Category.identity(Control_Category.categoryFn)),\n Functor0: function () {\n return functorMap;\n }\n };\n};\nvar bindMap = function (dictOrd) {\n return {\n bind: function (m) {\n return function (f) {\n return mapMaybeWithKey(dictOrd)(function (k) {\n var $804 = lookup(dictOrd)(k);\n return function ($805) {\n return $804(f($805));\n };\n })(m);\n };\n },\n Apply0: function () {\n return applyMap(dictOrd);\n }\n };\n};\nvar alter = function (dictOrd) {\n return function (f) {\n return function (k) {\n return function (m) {\n var v = f(lookup(dictOrd)(k)(m));\n if (v instanceof Data_Maybe.Nothing) {\n return $$delete(dictOrd)(k)(m);\n };\n if (v instanceof Data_Maybe.Just) {\n return insert(dictOrd)(k)(v.value0)(m);\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 596, column 15 - line 598, column 25): \" + [ v.constructor.name ]);\n };\n };\n };\n};\nvar fromFoldableWith = function (dictOrd) {\n return function (dictFoldable) {\n return function (f) {\n var combine = function (v) {\n return function (v1) {\n if (v1 instanceof Data_Maybe.Just) {\n return new Data_Maybe.Just(f(v)(v1.value0));\n };\n if (v1 instanceof Data_Maybe.Nothing) {\n return new Data_Maybe.Just(v);\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 613, column 3 - line 613, column 38): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n };\n return Data_Foldable.foldl(dictFoldable)(function (m) {\n return function (v) {\n return alter(dictOrd)(combine(v.value1))(v.value0)(m);\n };\n })(empty);\n };\n };\n};\nvar insertWith = function (dictOrd) {\n return function (f) {\n return function (k) {\n return function (v) {\n return alter(dictOrd)((function () {\n var $806 = Data_Maybe.maybe(v)(Data_Function.flip(f)(v));\n return function ($807) {\n return Data_Maybe.Just.create($806($807));\n };\n })())(k);\n };\n };\n };\n};\nvar unionWith = function (dictOrd) {\n return function (f) {\n return function (m1) {\n return function (m2) {\n var go = function (k) {\n return function (m) {\n return function (v) {\n return alter(dictOrd)((function () {\n var $808 = Data_Maybe.maybe(v)(f(v));\n return function ($809) {\n return Data_Maybe.Just.create($808($809));\n };\n })())(k)(m);\n };\n };\n };\n return Data_FoldableWithIndex.foldlWithIndex(foldableWithIndexMap)(go)(m2)(m1);\n };\n };\n };\n};\nvar semigroupMap = function () {\n return function (dictOrd) {\n return function (dictSemigroup) {\n return {\n append: function (l) {\n return function (r) {\n return unionWith(dictOrd)(Data_Semigroup.append(dictSemigroup))(l)(r);\n };\n }\n };\n };\n };\n};\nvar monoidSemigroupMap = function () {\n return function (dictOrd) {\n return function (dictSemigroup) {\n return {\n mempty: empty,\n Semigroup0: function () {\n return semigroupMap()(dictOrd)(dictSemigroup);\n }\n };\n };\n };\n};\nvar union = function (dictOrd) {\n return unionWith(dictOrd)(Data_Function[\"const\"]);\n};\nvar submap = function (dictOrd) {\n return function (kmin) {\n return function (kmax) {\n return foldSubmapBy(dictOrd)(union(dictOrd))(empty)(kmin)(kmax)(singleton);\n };\n };\n};\nvar unions = function (dictOrd) {\n return function (dictFoldable) {\n return Data_Foldable.foldl(dictFoldable)(union(dictOrd))(empty);\n };\n};\nvar update = function (dictOrd) {\n return function (f) {\n return function (k) {\n return function (m) {\n return alter(dictOrd)(Data_Maybe.maybe(Data_Maybe.Nothing.value)(f))(k)(m);\n };\n };\n };\n};\nvar altMap = function (dictOrd) {\n return {\n alt: union(dictOrd),\n Functor0: function () {\n return functorMap;\n }\n };\n};\nvar plusMap = function (dictOrd) {\n return {\n empty: empty,\n Alt0: function () {\n return altMap(dictOrd);\n }\n };\n};\nexport {\n Leaf,\n Two,\n Three,\n showTree,\n empty,\n isEmpty,\n singleton,\n checkValid,\n insert,\n insertWith,\n lookup,\n lookupLE,\n lookupLT,\n lookupGE,\n lookupGT,\n findMin,\n findMax,\n foldSubmap,\n submap,\n fromFoldable,\n fromFoldableWith,\n fromFoldableWithIndex,\n toUnfoldable,\n toUnfoldableUnordered,\n $$delete as delete,\n pop,\n member,\n alter,\n update,\n keys,\n values,\n union,\n unionWith,\n unions,\n intersection,\n intersectionWith,\n difference,\n isSubmap,\n size,\n filterWithKey,\n filterKeys,\n filter,\n mapMaybeWithKey,\n mapMaybe,\n catMaybes,\n eq1Map,\n eqMap,\n ord1Map,\n ordMap,\n showMap,\n semigroupMap,\n monoidSemigroupMap,\n altMap,\n plusMap,\n functorMap,\n functorWithIndexMap,\n applyMap,\n bindMap,\n foldableMap,\n foldableWithIndexMap,\n traversableMap,\n traversableWithIndexMap\n};\n","// Generated by purs version 0.15.2\nimport * as Data_Boolean from \"../Data.Boolean/index.js\";\nimport * as Data_Foldable from \"../Data.Foldable/index.js\";\nimport * as Data_Map_Internal from \"../Data.Map.Internal/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Monoid_Alternate from \"../Data.Monoid.Alternate/index.js\";\nimport * as Data_Newtype from \"../Data.Newtype/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Data_Symbol from \"../Data.Symbol/index.js\";\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nimport * as Halogen_Data_OrdBox from \"../Halogen.Data.OrdBox/index.js\";\nvar SlotStorage = function (x) {\n return x;\n};\nvar slots = function () {\n return function (dictIsSymbol) {\n return function (dictOrd) {\n return function (sym) {\n return function (v) {\n var key = Data_Symbol.reflectSymbol(dictIsSymbol)(sym);\n var go = function (v1) {\n return function (val) {\n if (key === v1.value0) {\n return Data_Map_Internal.singleton(Halogen_Data_OrdBox.unOrdBox(v1.value1))(val);\n };\n if (Data_Boolean.otherwise) {\n return Data_Map_Internal.empty;\n };\n throw new Error(\"Failed pattern match at Halogen.Data.Slot (line 121, column 3 - line 123, column 38): \" + [ v1.constructor.name, val.constructor.name ]);\n };\n };\n return Data_Newtype.un()(Data_Monoid_Alternate.Alternate)(Data_Map_Internal.foldSubmap(Data_Tuple.ordTuple(Data_Ord.ordString)(Halogen_Data_OrdBox.ordOrdBox))(Data_Monoid_Alternate.monoidAlternate(Data_Map_Internal.plusMap(dictOrd)))(Data_Maybe.Nothing.value)(Data_Maybe.Nothing.value)(go)(v));\n };\n };\n };\n };\n};\nvar pop = function () {\n return function (dictIsSymbol) {\n return function (dictOrd) {\n return function (sym) {\n return function (key) {\n return function (v) {\n return Data_Map_Internal.pop(Data_Tuple.ordTuple(Data_Ord.ordString)(Halogen_Data_OrdBox.ordOrdBox))(new Data_Tuple.Tuple(Data_Symbol.reflectSymbol(dictIsSymbol)(sym), Halogen_Data_OrdBox.mkOrdBox(dictOrd)(key)))(v);\n };\n };\n };\n };\n };\n};\nvar lookup = function () {\n return function (dictIsSymbol) {\n return function (dictOrd) {\n return function (sym) {\n return function (key) {\n return function (v) {\n return Data_Map_Internal.lookup(Data_Tuple.ordTuple(Data_Ord.ordString)(Halogen_Data_OrdBox.ordOrdBox))(new Data_Tuple.Tuple(Data_Symbol.reflectSymbol(dictIsSymbol)(sym), Halogen_Data_OrdBox.mkOrdBox(dictOrd)(key)))(v);\n };\n };\n };\n };\n };\n};\nvar insert = function () {\n return function (dictIsSymbol) {\n return function (dictOrd) {\n return function (sym) {\n return function (key) {\n return function (val) {\n return function (v) {\n return Data_Map_Internal.insert(Data_Tuple.ordTuple(Data_Ord.ordString)(Halogen_Data_OrdBox.ordOrdBox))(new Data_Tuple.Tuple(Data_Symbol.reflectSymbol(dictIsSymbol)(sym), Halogen_Data_OrdBox.mkOrdBox(dictOrd)(key)))(val)(v);\n };\n };\n };\n };\n };\n };\n};\nvar foreachSlot = function (dictApplicative) {\n return function (v) {\n return function (k) {\n return Data_Foldable.traverse_(dictApplicative)(Data_Map_Internal.foldableMap)(function ($33) {\n return k($33);\n })(v);\n };\n };\n};\nvar empty = Data_Map_Internal.empty;\nexport {\n empty,\n lookup,\n insert,\n pop,\n slots,\n foreachSlot\n};\n","// Generated by purs version 0.15.2\nimport * as Unsafe_Coerce from \"../Unsafe.Coerce/index.js\";\nvar ChildQuery = /* #__PURE__ */ (function () {\n function ChildQuery(value0, value1, value2) {\n this.value0 = value0;\n this.value1 = value1;\n this.value2 = value2;\n };\n ChildQuery.create = function (value0) {\n return function (value1) {\n return function (value2) {\n return new ChildQuery(value0, value1, value2);\n };\n };\n };\n return ChildQuery;\n})();\nvar unChildQueryBox = Unsafe_Coerce.unsafeCoerce;\nvar mkChildQueryBox = Unsafe_Coerce.unsafeCoerce;\nvar functorChildQuery = {\n map: function (f) {\n return unChildQueryBox(function (v) {\n return mkChildQueryBox(new ChildQuery(function (dictApplicative) {\n return v.value0(dictApplicative);\n }, v.value1, function ($6) {\n return f(v.value2($6));\n }));\n });\n }\n};\nexport {\n ChildQuery,\n mkChildQueryBox,\n unChildQueryBox,\n functorChildQuery\n};\n","// Generated by purs version 0.15.2\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nvar UnsafeRefEqFallback = function (x) {\n return x;\n};\nvar UnsafeRefEq = function (x) {\n return x;\n};\nvar unsafeRefEq = $foreign.reallyUnsafeRefEq;\nvar eqUnsafeRefEqFallback = function (dictEq) {\n return {\n eq: function (v) {\n return function (v1) {\n return unsafeRefEq(v)(v1) || Data_Eq.eq(dictEq)(v)(v1);\n };\n }\n };\n};\nvar eqUnsafeRefEq = {\n eq: function (v) {\n return function (v1) {\n return unsafeRefEq(v)(v1);\n };\n }\n};\nexport {\n reallyUnsafeRefEq\n} from \"./foreign.js\";\nexport {\n unsafeRefEq,\n UnsafeRefEq,\n UnsafeRefEqFallback,\n eqUnsafeRefEq,\n eqUnsafeRefEqFallback\n};\n","export function reallyUnsafeRefEq(a) {\n return function (b) {\n return a === b;\n };\n}\n","// Generated by purs version 0.15.2\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Apply from \"../Control.Apply/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Data_Array from \"../Data.Array/index.js\";\nimport * as Data_Foldable from \"../Data.Foldable/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Monoid from \"../Data.Monoid/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nimport * as Effect from \"../Effect/index.js\";\nimport * as Effect_Ref from \"../Effect.Ref/index.js\";\nimport * as Effect_Unsafe from \"../Effect.Unsafe/index.js\";\nimport * as Safe_Coerce from \"../Safe.Coerce/index.js\";\nimport * as Unsafe_Reference from \"../Unsafe.Reference/index.js\";\nvar Subscription = function (x) {\n return x;\n};\nvar Listener = function (x) {\n return x;\n};\nvar Emitter = function (x) {\n return x;\n};\nvar unsubscribe = function (v) {\n return v;\n};\nvar subscribe = function (v) {\n return function (k) {\n return v((function () {\n var $55 = Data_Functor[\"void\"](Effect.functorEffect);\n return function ($56) {\n return $55(k($56));\n };\n })());\n };\n};\nvar semigroupSubscription = /* #__PURE__ */ Effect.semigroupEffect(Data_Semigroup.semigroupUnit);\nvar notify = function (v) {\n return function (a) {\n return v(a);\n };\n};\nvar monoidSubscription = /* #__PURE__ */ Effect.monoidEffect(Data_Monoid.monoidUnit);\nvar makeEmitter = /* #__PURE__ */ Safe_Coerce.coerce();\nvar functorEmitter = {\n map: function (f) {\n return function (v) {\n return function (k) {\n return v(function ($57) {\n return k(f($57));\n });\n };\n };\n }\n};\nvar fold = function (f) {\n return function (v) {\n return function (b) {\n return function (k) {\n return function __do() {\n var result = Effect_Ref[\"new\"](b)();\n return v(function (a) {\n return Control_Bind.bind(Effect.bindEffect)(Effect_Ref.modify(f(a))(result))(k);\n })();\n };\n };\n };\n };\n};\nvar filter = function (p) {\n return function (v) {\n return function (k) {\n return v(function (a) {\n var $36 = p(a);\n if ($36) {\n return k(a);\n };\n return Control_Applicative.pure(Effect.applicativeEffect)(Data_Unit.unit);\n });\n };\n };\n};\nvar create = function __do() {\n var subscribers = Effect_Ref[\"new\"]([ ])();\n return {\n emitter: function (k) {\n return function __do() {\n Effect_Ref.modify_(function (v) {\n return Data_Semigroup.append(Data_Semigroup.semigroupArray)(v)([ k ]);\n })(subscribers)();\n return Effect_Ref.modify_(Data_Array.deleteBy(Unsafe_Reference.unsafeRefEq)(k))(subscribers);\n };\n },\n listener: function (a) {\n return Control_Bind.bind(Effect.bindEffect)(Effect_Ref.read(subscribers))(Data_Foldable.traverse_(Effect.applicativeEffect)(Data_Foldable.foldableArray)(function (k) {\n return k(a);\n }));\n }\n };\n};\nvar fix = function (f) {\n var v = Effect_Unsafe.unsafePerformEffect(create);\n var v1 = f(v.emitter);\n return function (k) {\n return function __do() {\n var v2 = subscribe(v1.input)(notify(v.listener))();\n var v3 = subscribe(v1.output)(k)();\n return Control_Apply.applySecond(Effect.applyEffect)(v2)(v3);\n };\n };\n};\nvar contravariantListener = {\n cmap: function (f) {\n return function (v) {\n return Safe_Coerce.coerce()(function ($58) {\n return v(f($58));\n });\n };\n }\n};\nvar applyEmitter = {\n apply: function (v) {\n return function (v1) {\n return function (k) {\n return function __do() {\n var latestA = Effect_Ref[\"new\"](Data_Maybe.Nothing.value)();\n var latestB = Effect_Ref[\"new\"](Data_Maybe.Nothing.value)();\n var v2 = v(function (a) {\n return function __do() {\n Effect_Ref.write(new Data_Maybe.Just(a))(latestA)();\n return Control_Bind.bind(Effect.bindEffect)(Effect_Ref.read(latestB))(Data_Foldable.traverse_(Effect.applicativeEffect)(Data_Foldable.foldableMaybe)(function ($59) {\n return k(a($59));\n }))();\n };\n })();\n var v3 = v1(function (b) {\n return function __do() {\n Effect_Ref.write(new Data_Maybe.Just(b))(latestB)();\n return Control_Bind.bind(Effect.bindEffect)(Effect_Ref.read(latestA))(Data_Foldable.traverse_(Effect.applicativeEffect)(Data_Foldable.foldableMaybe)(function ($60) {\n return k((function (v3) {\n return v3(b);\n })($60));\n }))();\n };\n })();\n return Control_Apply.applySecond(Effect.applyEffect)(v2)(v3);\n };\n };\n };\n },\n Functor0: function () {\n return functorEmitter;\n }\n};\nvar semigroupEmitter = function (dictSemigroup) {\n return {\n append: Control_Apply.lift2(applyEmitter)(Data_Semigroup.append(dictSemigroup))\n };\n};\nvar monoidEmitter = function (dictMonoid) {\n return {\n mempty: Data_Monoid.mempty(Data_Monoid.monoidFn(Effect.monoidEffect(monoidSubscription))),\n Semigroup0: function () {\n return semigroupEmitter(dictMonoid.Semigroup0());\n }\n };\n};\nvar applicativeEmitter = {\n pure: function (a) {\n return function (k) {\n return function __do() {\n k(a)();\n return Control_Applicative.pure(Effect.applicativeEffect)(Data_Unit.unit);\n };\n };\n },\n Apply0: function () {\n return applyEmitter;\n }\n};\nvar altEmitter = {\n alt: function (v) {\n return function (v1) {\n return function (k) {\n return function __do() {\n var v2 = v(k)();\n var v3 = v1(k)();\n return Control_Apply.applySecond(Effect.applyEffect)(v2)(v3);\n };\n };\n };\n },\n Functor0: function () {\n return functorEmitter;\n }\n};\nvar plusEmitter = {\n empty: function (v) {\n return Control_Applicative.pure(Effect.applicativeEffect)(Control_Applicative.pure(Effect.applicativeEffect)(Data_Unit.unit));\n },\n Alt0: function () {\n return altEmitter;\n }\n};\nvar alternativeEmitter = {\n Applicative0: function () {\n return applicativeEmitter;\n },\n Plus1: function () {\n return plusEmitter;\n }\n};\nexport {\n create,\n notify,\n makeEmitter,\n subscribe,\n unsubscribe,\n fold,\n filter,\n fix,\n functorEmitter,\n applyEmitter,\n applicativeEmitter,\n altEmitter,\n plusEmitter,\n alternativeEmitter,\n semigroupEmitter,\n monoidEmitter,\n contravariantListener,\n semigroupSubscription,\n monoidSubscription\n};\n","// Generated by purs version 0.15.2\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Applicative_Free from \"../Control.Applicative.Free/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Control_Monad_Error_Class from \"../Control.Monad.Error.Class/index.js\";\nimport * as Control_Monad_Free from \"../Control.Monad.Free/index.js\";\nimport * as Control_Monad_Reader_Class from \"../Control.Monad.Reader.Class/index.js\";\nimport * as Control_Monad_Rec_Class from \"../Control.Monad.Rec.Class/index.js\";\nimport * as Control_Monad_Writer_Class from \"../Control.Monad.Writer.Class/index.js\";\nimport * as Data_Bifunctor from \"../Data.Bifunctor/index.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_FoldableWithIndex from \"../Data.FoldableWithIndex/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Map_Internal from \"../Data.Map.Internal/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Newtype from \"../Data.Newtype/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Data_Traversable from \"../Data.Traversable/index.js\";\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nimport * as Effect_Aff_Class from \"../Effect.Aff.Class/index.js\";\nimport * as Effect_Class from \"../Effect.Class/index.js\";\nimport * as Halogen_Data_Slot from \"../Halogen.Data.Slot/index.js\";\nimport * as Halogen_Query_ChildQuery from \"../Halogen.Query.ChildQuery/index.js\";\nimport * as Halogen_Subscription from \"../Halogen.Subscription/index.js\";\nvar SubscriptionId = function (x) {\n return x;\n};\nvar ForkId = function (x) {\n return x;\n};\nvar State = /* #__PURE__ */ (function () {\n function State(value0) {\n this.value0 = value0;\n };\n State.create = function (value0) {\n return new State(value0);\n };\n return State;\n})();\nvar Subscribe = /* #__PURE__ */ (function () {\n function Subscribe(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n Subscribe.create = function (value0) {\n return function (value1) {\n return new Subscribe(value0, value1);\n };\n };\n return Subscribe;\n})();\nvar Unsubscribe = /* #__PURE__ */ (function () {\n function Unsubscribe(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n Unsubscribe.create = function (value0) {\n return function (value1) {\n return new Unsubscribe(value0, value1);\n };\n };\n return Unsubscribe;\n})();\nvar Lift = /* #__PURE__ */ (function () {\n function Lift(value0) {\n this.value0 = value0;\n };\n Lift.create = function (value0) {\n return new Lift(value0);\n };\n return Lift;\n})();\nvar ChildQuery = /* #__PURE__ */ (function () {\n function ChildQuery(value0) {\n this.value0 = value0;\n };\n ChildQuery.create = function (value0) {\n return new ChildQuery(value0);\n };\n return ChildQuery;\n})();\nvar Raise = /* #__PURE__ */ (function () {\n function Raise(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n Raise.create = function (value0) {\n return function (value1) {\n return new Raise(value0, value1);\n };\n };\n return Raise;\n})();\nvar Par = /* #__PURE__ */ (function () {\n function Par(value0) {\n this.value0 = value0;\n };\n Par.create = function (value0) {\n return new Par(value0);\n };\n return Par;\n})();\nvar Fork = /* #__PURE__ */ (function () {\n function Fork(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n Fork.create = function (value0) {\n return function (value1) {\n return new Fork(value0, value1);\n };\n };\n return Fork;\n})();\nvar Join = /* #__PURE__ */ (function () {\n function Join(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n Join.create = function (value0) {\n return function (value1) {\n return new Join(value0, value1);\n };\n };\n return Join;\n})();\nvar Kill = /* #__PURE__ */ (function () {\n function Kill(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n Kill.create = function (value0) {\n return function (value1) {\n return new Kill(value0, value1);\n };\n };\n return Kill;\n})();\nvar GetRef = /* #__PURE__ */ (function () {\n function GetRef(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n GetRef.create = function (value0) {\n return function (value1) {\n return new GetRef(value0, value1);\n };\n };\n return GetRef;\n})();\nvar HalogenAp = function (x) {\n return x;\n};\nvar HalogenM = function (x) {\n return x;\n};\nvar unsubscribe = function (sid) {\n return Control_Monad_Free.liftF(new Unsubscribe(sid, Data_Unit.unit));\n};\nvar subscribe$prime = function (esc) {\n return Control_Monad_Free.liftF(new Subscribe(esc, Data_Function[\"const\"](Data_Unit.unit)));\n};\nvar subscribe = function (es) {\n return Control_Monad_Free.liftF(new Subscribe(function (v) {\n return es;\n }, Control_Category.identity(Control_Category.categoryFn)));\n};\nvar semigroupHalogenM = function (dictSemigroup) {\n return Control_Monad_Free.semigroupFree(dictSemigroup);\n};\nvar raise = function (o) {\n return Control_Monad_Free.liftF(new Raise(o, Data_Unit.unit));\n};\nvar queryAll = function () {\n return function (dictIsSymbol) {\n return function (dictOrd) {\n return function (label) {\n return function (q) {\n var catMapMaybes = function (dictOrd1) {\n return Data_FoldableWithIndex.foldrWithIndex(Data_Map_Internal.foldableWithIndexMap)(function (k) {\n return function (v) {\n return function (acc) {\n return Data_Maybe.maybe(acc)(Data_Function.flip(Data_Map_Internal.insert(dictOrd1)(k))(acc))(v);\n };\n };\n })(Data_Map_Internal.empty);\n };\n return Control_Monad_Free.liftF(new ChildQuery(Halogen_Query_ChildQuery.mkChildQueryBox(new Halogen_Query_ChildQuery.ChildQuery(function (dictApplicative) {\n return function (k) {\n var $136 = Data_Functor.map((dictApplicative.Apply0()).Functor0())(catMapMaybes(dictOrd));\n var $137 = Data_Traversable.traverse(Data_Map_Internal.traversableMap)(dictApplicative)(k);\n var $138 = Halogen_Data_Slot.slots()(dictIsSymbol)(dictOrd)(label);\n return function ($139) {\n return $136($137($138($139)));\n };\n };\n }, q, Control_Category.identity(Control_Category.categoryFn)))));\n };\n };\n };\n };\n};\nvar query = function () {\n return function (dictIsSymbol) {\n return function (dictOrd) {\n return function (label) {\n return function (p) {\n return function (q) {\n return Control_Monad_Free.liftF(new ChildQuery(Halogen_Query_ChildQuery.mkChildQueryBox(new Halogen_Query_ChildQuery.ChildQuery(function (dictApplicative) {\n return function (k) {\n var $140 = Data_Maybe.maybe(Control_Applicative.pure(dictApplicative)(Data_Maybe.Nothing.value))(k);\n var $141 = Halogen_Data_Slot.lookup()(dictIsSymbol)(dictOrd)(label)(p);\n return function ($142) {\n return $140($141($142));\n };\n };\n }, q, Control_Category.identity(Control_Category.categoryFn)))));\n };\n };\n };\n };\n };\n};\nvar ordSubscriptionId = Data_Ord.ordInt;\nvar ordForkId = Data_Ord.ordInt;\nvar newtypeHalogenAp = {\n Coercible0: function () {\n return undefined;\n }\n};\nvar monoidHalogenM = function (dictMonoid) {\n return Control_Monad_Free.monoidFree(dictMonoid);\n};\nvar monadTransHalogenM = {\n lift: function (dictMonad) {\n return function ($143) {\n return HalogenM(Control_Monad_Free.liftF(Lift.create($143)));\n };\n }\n};\nvar monadHalogenM = Control_Monad_Free.freeMonad;\nvar monadStateHalogenM = {\n state: function ($144) {\n return HalogenM(Control_Monad_Free.liftF(State.create($144)));\n },\n Monad0: function () {\n return monadHalogenM;\n }\n};\nvar monadTellHalogenM = function (dictMonadTell) {\n return {\n tell: (function () {\n var $145 = Control_Monad_Writer_Class.tell(dictMonadTell);\n return function ($146) {\n return HalogenM(Control_Monad_Free.liftF(Lift.create($145($146))));\n };\n })(),\n Semigroup0: dictMonadTell.Semigroup0,\n Monad1: function () {\n return monadHalogenM;\n }\n };\n};\nvar monadThrowHalogenM = function (dictMonadThrow) {\n return {\n throwError: (function () {\n var $147 = Control_Monad_Error_Class.throwError(dictMonadThrow);\n return function ($148) {\n return HalogenM(Control_Monad_Free.liftF(Lift.create($147($148))));\n };\n })(),\n Monad0: function () {\n return monadHalogenM;\n }\n };\n};\nvar monadEffectHalogenM = function (dictMonadEffect) {\n return {\n liftEffect: (function () {\n var $149 = Effect_Class.liftEffect(dictMonadEffect);\n return function ($150) {\n return HalogenM(Control_Monad_Free.liftF(Lift.create($149($150))));\n };\n })(),\n Monad0: function () {\n return monadHalogenM;\n }\n };\n};\nvar monadAskHalogenM = function (dictMonadAsk) {\n return {\n ask: Control_Monad_Free.liftF(new Lift(Control_Monad_Reader_Class.ask(dictMonadAsk))),\n Monad0: function () {\n return monadHalogenM;\n }\n };\n};\nvar monadAffHalogenM = function (dictMonadAff) {\n return {\n liftAff: (function () {\n var $151 = Effect_Aff_Class.liftAff(dictMonadAff);\n return function ($152) {\n return HalogenM(Control_Monad_Free.liftF(Lift.create($151($152))));\n };\n })(),\n MonadEffect0: function () {\n return monadEffectHalogenM(dictMonadAff.MonadEffect0());\n }\n };\n};\nvar mapOutput = function (f) {\n return function (v) {\n var go = function (v1) {\n if (v1 instanceof State) {\n return new State(v1.value0);\n };\n if (v1 instanceof Subscribe) {\n return new Subscribe(v1.value0, v1.value1);\n };\n if (v1 instanceof Unsubscribe) {\n return new Unsubscribe(v1.value0, v1.value1);\n };\n if (v1 instanceof Lift) {\n return new Lift(v1.value0);\n };\n if (v1 instanceof ChildQuery) {\n return new ChildQuery(v1.value0);\n };\n if (v1 instanceof Raise) {\n return new Raise(f(v1.value0), v1.value1);\n };\n if (v1 instanceof Par) {\n return new Par(Data_Newtype.over()()(HalogenAp)(Control_Applicative_Free.hoistFreeAp(mapOutput(f)))(v1.value0));\n };\n if (v1 instanceof Fork) {\n return new Fork(mapOutput(f)(v1.value0), v1.value1);\n };\n if (v1 instanceof Join) {\n return new Join(v1.value0, v1.value1);\n };\n if (v1 instanceof Kill) {\n return new Kill(v1.value0, v1.value1);\n };\n if (v1 instanceof GetRef) {\n return new GetRef(v1.value0, v1.value1);\n };\n throw new Error(\"Failed pattern match at Halogen.Query.HalogenM (line 290, column 8 - line 301, column 29): \" + [ v1.constructor.name ]);\n };\n return Control_Monad_Free.hoistFree(go)(v);\n };\n};\nvar mapAction = function (dictFunctor) {\n return function (f) {\n return function (v) {\n var go = function (v1) {\n if (v1 instanceof State) {\n return new State(v1.value0);\n };\n if (v1 instanceof Subscribe) {\n return new Subscribe((function () {\n var $153 = Data_Functor.map(Halogen_Subscription.functorEmitter)(f);\n return function ($154) {\n return $153(v1.value0($154));\n };\n })(), v1.value1);\n };\n if (v1 instanceof Unsubscribe) {\n return new Unsubscribe(v1.value0, v1.value1);\n };\n if (v1 instanceof Lift) {\n return new Lift(v1.value0);\n };\n if (v1 instanceof ChildQuery) {\n return new ChildQuery(v1.value0);\n };\n if (v1 instanceof Raise) {\n return new Raise(v1.value0, v1.value1);\n };\n if (v1 instanceof Par) {\n return new Par(Data_Newtype.over()()(HalogenAp)(Control_Applicative_Free.hoistFreeAp(mapAction(dictFunctor)(f)))(v1.value0));\n };\n if (v1 instanceof Fork) {\n return new Fork(mapAction(dictFunctor)(f)(v1.value0), v1.value1);\n };\n if (v1 instanceof Join) {\n return new Join(v1.value0, v1.value1);\n };\n if (v1 instanceof Kill) {\n return new Kill(v1.value0, v1.value1);\n };\n if (v1 instanceof GetRef) {\n return new GetRef(v1.value0, v1.value1);\n };\n throw new Error(\"Failed pattern match at Halogen.Query.HalogenM (line 269, column 8 - line 280, column 29): \" + [ v1.constructor.name ]);\n };\n return Control_Monad_Free.hoistFree(go)(v);\n };\n };\n};\nvar kill = function (fid) {\n return Control_Monad_Free.liftF(new Kill(fid, Data_Unit.unit));\n};\nvar join = function (fid) {\n return Control_Monad_Free.liftF(new Join(fid, Data_Unit.unit));\n};\nvar imapState = function (f) {\n return function (f$prime) {\n return function (v) {\n var go = function (v1) {\n if (v1 instanceof State) {\n return new State((function () {\n var $155 = Data_Functor.map(Data_Tuple.functorTuple)(f);\n return function ($156) {\n return $155(v1.value0(f$prime($156)));\n };\n })());\n };\n if (v1 instanceof Subscribe) {\n return new Subscribe(v1.value0, v1.value1);\n };\n if (v1 instanceof Unsubscribe) {\n return new Unsubscribe(v1.value0, v1.value1);\n };\n if (v1 instanceof Lift) {\n return new Lift(v1.value0);\n };\n if (v1 instanceof ChildQuery) {\n return new ChildQuery(v1.value0);\n };\n if (v1 instanceof Raise) {\n return new Raise(v1.value0, v1.value1);\n };\n if (v1 instanceof Par) {\n return new Par(Data_Newtype.over()()(HalogenAp)(Control_Applicative_Free.hoistFreeAp(imapState(f)(f$prime)))(v1.value0));\n };\n if (v1 instanceof Fork) {\n return new Fork(imapState(f)(f$prime)(v1.value0), v1.value1);\n };\n if (v1 instanceof Join) {\n return new Join(v1.value0, v1.value1);\n };\n if (v1 instanceof Kill) {\n return new Kill(v1.value0, v1.value1);\n };\n if (v1 instanceof GetRef) {\n return new GetRef(v1.value0, v1.value1);\n };\n throw new Error(\"Failed pattern match at Halogen.Query.HalogenM (line 247, column 8 - line 258, column 29): \" + [ v1.constructor.name ]);\n };\n return Control_Monad_Free.hoistFree(go)(v);\n };\n };\n};\nvar hoist = function (dictFunctor) {\n return function (nat) {\n return function (v) {\n var go = function (v1) {\n if (v1 instanceof State) {\n return new State(v1.value0);\n };\n if (v1 instanceof Subscribe) {\n return new Subscribe(v1.value0, v1.value1);\n };\n if (v1 instanceof Unsubscribe) {\n return new Unsubscribe(v1.value0, v1.value1);\n };\n if (v1 instanceof Lift) {\n return new Lift(nat(v1.value0));\n };\n if (v1 instanceof ChildQuery) {\n return new ChildQuery(v1.value0);\n };\n if (v1 instanceof Raise) {\n return new Raise(v1.value0, v1.value1);\n };\n if (v1 instanceof Par) {\n return new Par(Data_Newtype.over()()(HalogenAp)(Control_Applicative_Free.hoistFreeAp(hoist(dictFunctor)(nat)))(v1.value0));\n };\n if (v1 instanceof Fork) {\n return new Fork(hoist(dictFunctor)(nat)(v1.value0), v1.value1);\n };\n if (v1 instanceof Join) {\n return new Join(v1.value0, v1.value1);\n };\n if (v1 instanceof Kill) {\n return new Kill(v1.value0, v1.value1);\n };\n if (v1 instanceof GetRef) {\n return new GetRef(v1.value0, v1.value1);\n };\n throw new Error(\"Failed pattern match at Halogen.Query.HalogenM (line 312, column 8 - line 323, column 29): \" + [ v1.constructor.name ]);\n };\n return Control_Monad_Free.hoistFree(go)(v);\n };\n };\n};\nvar getRef = function (p) {\n return Control_Monad_Free.liftF(new GetRef(p, Control_Category.identity(Control_Category.categoryFn)));\n};\nvar functorHalogenM = Control_Monad_Free.freeFunctor;\nvar functorHalogenAp = Control_Applicative_Free.functorFreeAp;\nvar functorHalogenF = function (dictFunctor) {\n return {\n map: function (f) {\n return function (v) {\n if (v instanceof State) {\n return new State((function () {\n var $157 = Data_Bifunctor.lmap(Data_Bifunctor.bifunctorTuple)(f);\n return function ($158) {\n return $157(v.value0($158));\n };\n })());\n };\n if (v instanceof Subscribe) {\n return new Subscribe(v.value0, function ($159) {\n return f(v.value1($159));\n });\n };\n if (v instanceof Unsubscribe) {\n return new Unsubscribe(v.value0, f(v.value1));\n };\n if (v instanceof Lift) {\n return new Lift(Data_Functor.map(dictFunctor)(f)(v.value0));\n };\n if (v instanceof ChildQuery) {\n return new ChildQuery(Data_Functor.map(Halogen_Query_ChildQuery.functorChildQuery)(f)(v.value0));\n };\n if (v instanceof Raise) {\n return new Raise(v.value0, f(v.value1));\n };\n if (v instanceof Par) {\n return new Par(Data_Functor.map(functorHalogenAp)(f)(v.value0));\n };\n if (v instanceof Fork) {\n return new Fork(v.value0, function ($160) {\n return f(v.value1($160));\n });\n };\n if (v instanceof Join) {\n return new Join(v.value0, f(v.value1));\n };\n if (v instanceof Kill) {\n return new Kill(v.value0, f(v.value1));\n };\n if (v instanceof GetRef) {\n return new GetRef(v.value0, function ($161) {\n return f(v.value1($161));\n });\n };\n throw new Error(\"Failed pattern match at Halogen.Query.HalogenM (line 57, column 11 - line 68, column 37): \" + [ v.constructor.name ]);\n };\n }\n };\n};\nvar fork = function (hmu) {\n return Control_Monad_Free.liftF(new Fork(hmu, Control_Category.identity(Control_Category.categoryFn)));\n};\nvar eqSubscriptionId = Data_Eq.eqInt;\nvar eqForkId = Data_Eq.eqInt;\nvar bindHalogenM = Control_Monad_Free.freeBind;\nvar applyHalogenM = Control_Monad_Free.freeApply;\nvar applyHalogenAp = Control_Applicative_Free.applyFreeAp;\nvar applicativeHalogenM = Control_Monad_Free.freeApplicative;\nvar monadRecHalogenM = {\n tailRecM: function (k) {\n return function (a) {\n return Control_Bind.bind(bindHalogenM)(k(a))(function (v) {\n if (v instanceof Control_Monad_Rec_Class.Loop) {\n return Control_Monad_Rec_Class.tailRecM(monadRecHalogenM)(k)(v.value0);\n };\n if (v instanceof Control_Monad_Rec_Class.Done) {\n return Control_Applicative.pure(applicativeHalogenM)(v.value0);\n };\n throw new Error(\"Failed pattern match at Halogen.Query.HalogenM (line 105, column 26 - line 107, column 21): \" + [ v.constructor.name ]);\n });\n };\n },\n Monad0: function () {\n return monadHalogenM;\n }\n};\nvar applicativeHalogenAp = Control_Applicative_Free.applicativeFreeAp;\nvar parallelHalogenM = {\n parallel: function ($162) {\n return HalogenAp(Control_Applicative_Free.liftFreeAp($162));\n },\n sequential: function ($163) {\n return HalogenM(Control_Monad_Free.liftF(Par.create($163)));\n },\n Monad0: function () {\n return monadHalogenM;\n },\n Applicative1: function () {\n return applicativeHalogenAp;\n }\n};\nexport {\n State,\n Subscribe,\n Unsubscribe,\n Lift,\n ChildQuery,\n Raise,\n Par,\n Fork,\n Join,\n Kill,\n GetRef,\n HalogenM,\n HalogenAp,\n raise,\n query,\n queryAll,\n SubscriptionId,\n subscribe,\n subscribe$prime,\n unsubscribe,\n ForkId,\n fork,\n join,\n kill,\n getRef,\n imapState,\n mapAction,\n mapOutput,\n hoist,\n functorHalogenF,\n functorHalogenM,\n applyHalogenM,\n applicativeHalogenM,\n bindHalogenM,\n monadHalogenM,\n semigroupHalogenM,\n monoidHalogenM,\n monadEffectHalogenM,\n monadAffHalogenM,\n parallelHalogenM,\n monadTransHalogenM,\n monadRecHalogenM,\n monadStateHalogenM,\n monadAskHalogenM,\n monadTellHalogenM,\n monadThrowHalogenM,\n newtypeHalogenAp,\n functorHalogenAp,\n applyHalogenAp,\n applicativeHalogenAp,\n eqSubscriptionId,\n ordSubscriptionId,\n eqForkId,\n ordForkId\n};\n","// Generated by purs version 0.15.2\nimport * as Unsafe_Coerce from \"../Unsafe.Coerce/index.js\";\nvar runExists = Unsafe_Coerce.unsafeCoerce;\nvar mkExists = Unsafe_Coerce.unsafeCoerce;\nexport {\n mkExists,\n runExists\n};\n","// Generated by purs version 0.15.2\nimport * as Control_Alt from \"../Control.Alt/index.js\";\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Apply from \"../Control.Apply/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Control_Comonad from \"../Control.Comonad/index.js\";\nimport * as Control_Extend from \"../Control.Extend/index.js\";\nimport * as Control_Plus from \"../Control.Plus/index.js\";\nimport * as Data_Distributive from \"../Data.Distributive/index.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Exists from \"../Data.Exists/index.js\";\nimport * as Data_Foldable from \"../Data.Foldable/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Functor_Invariant from \"../Data.Functor.Invariant/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Data_Semigroup_Foldable from \"../Data.Semigroup.Foldable/index.js\";\nimport * as Data_Semigroup_Traversable from \"../Data.Semigroup.Traversable/index.js\";\nimport * as Data_Traversable from \"../Data.Traversable/index.js\";\nvar CoyonedaF = /* #__PURE__ */ (function () {\n function CoyonedaF(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n CoyonedaF.create = function (value0) {\n return function (value1) {\n return new CoyonedaF(value0, value1);\n };\n };\n return CoyonedaF;\n})();\nvar Coyoneda = function (x) {\n return x;\n};\nvar unCoyoneda = function (f) {\n return function (v) {\n return Data_Exists.runExists(function (v1) {\n return f(v1.value0)(v1.value1);\n })(v);\n };\n};\nvar lowerCoyoneda = function (dictFunctor) {\n return unCoyoneda(Data_Functor.map(dictFunctor));\n};\nvar foldableCoyoneda = function (dictFoldable) {\n return {\n foldr: function (f) {\n return function (z) {\n return unCoyoneda(function (k) {\n return Data_Foldable.foldr(dictFoldable)(function ($78) {\n return f(k($78));\n })(z);\n });\n };\n },\n foldl: function (f) {\n return function (z) {\n return unCoyoneda(function (k) {\n return Data_Foldable.foldl(dictFoldable)(function (x) {\n var $79 = f(x);\n return function ($80) {\n return $79(k($80));\n };\n })(z);\n });\n };\n },\n foldMap: function (dictMonoid) {\n return function (f) {\n return unCoyoneda(function (k) {\n return Data_Foldable.foldMap(dictFoldable)(dictMonoid)(function ($81) {\n return f(k($81));\n });\n });\n };\n }\n };\n};\nvar foldable1Coyoneda = function (dictFoldable1) {\n return {\n foldMap1: function (dictSemigroup) {\n return function (f) {\n return unCoyoneda(function (k) {\n return Data_Semigroup_Foldable.foldMap1(dictFoldable1)(dictSemigroup)(function ($82) {\n return f(k($82));\n });\n });\n };\n },\n foldr1: Data_Semigroup_Foldable.foldr1Default(foldable1Coyoneda(dictFoldable1)),\n foldl1: Data_Semigroup_Foldable.foldl1Default(foldable1Coyoneda(dictFoldable1)),\n Foldable0: function () {\n return foldableCoyoneda(dictFoldable1.Foldable0());\n }\n };\n};\nvar eqCoyoneda = function (dictFunctor) {\n return function (dictEq1) {\n return function (dictEq) {\n return {\n eq: function (x) {\n return function (y) {\n return Data_Eq.eq1(dictEq1)(dictEq)(lowerCoyoneda(dictFunctor)(x))(lowerCoyoneda(dictFunctor)(y));\n };\n }\n };\n };\n };\n};\nvar ordCoyoneda = function (dictFunctor) {\n return function (dictOrd1) {\n return function (dictOrd) {\n return {\n compare: function (x) {\n return function (y) {\n return Data_Ord.compare1(dictOrd1)(dictOrd)(lowerCoyoneda(dictFunctor)(x))(lowerCoyoneda(dictFunctor)(y));\n };\n },\n Eq0: function () {\n return eqCoyoneda(dictFunctor)(dictOrd1.Eq10())(dictOrd.Eq0());\n }\n };\n };\n };\n};\nvar eq1Coyoneda = function (dictFunctor) {\n return function (dictEq1) {\n return {\n eq1: function (dictEq) {\n return Data_Eq.eq(eqCoyoneda(dictFunctor)(dictEq1)(dictEq));\n }\n };\n };\n};\nvar ord1Coyoneda = function (dictFunctor) {\n return function (dictOrd1) {\n return {\n compare1: function (dictOrd) {\n return Data_Ord.compare(ordCoyoneda(dictFunctor)(dictOrd1)(dictOrd));\n },\n Eq10: function () {\n return eq1Coyoneda(dictFunctor)(dictOrd1.Eq10());\n }\n };\n };\n};\nvar coyoneda = function (k) {\n return function (fi) {\n return Data_Exists.mkExists(new CoyonedaF(k, fi));\n };\n};\nvar functorCoyoneda = {\n map: function (f) {\n return function (v) {\n return Data_Exists.runExists(function (v1) {\n return coyoneda(function ($83) {\n return f(v1.value0($83));\n })(v1.value1);\n })(v);\n };\n }\n};\nvar invatiantCoyoneda = {\n imap: /* #__PURE__ */ Data_Functor_Invariant.imapF(functorCoyoneda)\n};\nvar hoistCoyoneda = function (nat) {\n return function (v) {\n return Data_Exists.runExists(function (v1) {\n return coyoneda(v1.value0)(nat(v1.value1));\n })(v);\n };\n};\nvar liftCoyoneda = /* #__PURE__ */ coyoneda(/* #__PURE__ */ Control_Category.identity(Control_Category.categoryFn));\nvar distributiveCoyoneda = function (dictDistributive) {\n return {\n collect: function (dictFunctor) {\n return function (f) {\n var $84 = Data_Distributive.collect(dictDistributive)(dictFunctor)((function () {\n var $86 = lowerCoyoneda(dictDistributive.Functor0());\n return function ($87) {\n return $86(f($87));\n };\n })());\n return function ($85) {\n return liftCoyoneda($84($85));\n };\n };\n },\n distribute: function (dictFunctor) {\n var $88 = Data_Distributive.collect(dictDistributive)(dictFunctor)(lowerCoyoneda(dictDistributive.Functor0()));\n return function ($89) {\n return liftCoyoneda($88($89));\n };\n },\n Functor0: function () {\n return functorCoyoneda;\n }\n };\n};\nvar extendCoyoneda = function (dictExtend) {\n return {\n extend: function (f) {\n return function (v) {\n return Data_Exists.runExists(function (v1) {\n return liftCoyoneda(Control_Extend.extend(dictExtend)((function () {\n var $90 = coyoneda(v1.value0);\n return function ($91) {\n return f($90($91));\n };\n })())(v1.value1));\n })(v);\n };\n },\n Functor0: function () {\n return functorCoyoneda;\n }\n };\n};\nvar monadTransCoyoneda = {\n lift: function (dictMonad) {\n return liftCoyoneda;\n }\n};\nvar traversableCoyoneda = function (dictTraversable) {\n return {\n traverse: function (dictApplicative) {\n return function (f) {\n return unCoyoneda(function (k) {\n var $92 = Data_Functor.map((dictApplicative.Apply0()).Functor0())(liftCoyoneda);\n var $93 = Data_Traversable.traverse(dictTraversable)(dictApplicative)(function ($95) {\n return f(k($95));\n });\n return function ($94) {\n return $92($93($94));\n };\n });\n };\n },\n sequence: function (dictApplicative) {\n return unCoyoneda(function (k) {\n var $96 = Data_Functor.map((dictApplicative.Apply0()).Functor0())(liftCoyoneda);\n var $97 = Data_Traversable.traverse(dictTraversable)(dictApplicative)(k);\n return function ($98) {\n return $96($97($98));\n };\n });\n },\n Functor0: function () {\n return functorCoyoneda;\n },\n Foldable1: function () {\n return foldableCoyoneda(dictTraversable.Foldable1());\n }\n };\n};\nvar traversable1Coyoneda = function (dictTraversable1) {\n return {\n traverse1: function (dictApply) {\n return function (f) {\n return unCoyoneda(function (k) {\n var $99 = Data_Functor.map(dictApply.Functor0())(liftCoyoneda);\n var $100 = Data_Semigroup_Traversable.traverse1(dictTraversable1)(dictApply)(function ($102) {\n return f(k($102));\n });\n return function ($101) {\n return $99($100($101));\n };\n });\n };\n },\n sequence1: function (dictApply) {\n return unCoyoneda(function (k) {\n var $103 = Data_Functor.map(dictApply.Functor0())(liftCoyoneda);\n var $104 = Data_Semigroup_Traversable.sequence1(dictTraversable1)(dictApply);\n var $105 = Data_Functor.map((dictTraversable1.Traversable1()).Functor0())(k);\n return function ($106) {\n return $103($104($105($106)));\n };\n });\n },\n Foldable10: function () {\n return foldable1Coyoneda(dictTraversable1.Foldable10());\n },\n Traversable1: function () {\n return traversableCoyoneda(dictTraversable1.Traversable1());\n }\n };\n};\nvar comonadCoyoneda = function (dictComonad) {\n return {\n extract: function (v) {\n return Data_Exists.runExists(function (v1) {\n return v1.value0(Control_Comonad.extract(dictComonad)(v1.value1));\n })(v);\n },\n Extend0: function () {\n return extendCoyoneda(dictComonad.Extend0());\n }\n };\n};\nvar applyCoyoneda = function (dictApply) {\n return {\n apply: function (f) {\n return function (g) {\n return liftCoyoneda(Control_Apply.apply(dictApply)(lowerCoyoneda(dictApply.Functor0())(f))(lowerCoyoneda(dictApply.Functor0())(g)));\n };\n },\n Functor0: function () {\n return functorCoyoneda;\n }\n };\n};\nvar bindCoyoneda = function (dictBind) {\n return {\n bind: function (v) {\n return function (f) {\n return liftCoyoneda(Data_Exists.runExists(function (v1) {\n return Control_Bind.bindFlipped(dictBind)((function () {\n var $107 = lowerCoyoneda((dictBind.Apply0()).Functor0());\n return function ($108) {\n return $107(f(v1.value0($108)));\n };\n })())(v1.value1);\n })(v));\n };\n },\n Apply0: function () {\n return applyCoyoneda(dictBind.Apply0());\n }\n };\n};\nvar applicativeCoyoneda = function (dictApplicative) {\n return {\n pure: (function () {\n var $109 = Control_Applicative.pure(dictApplicative);\n return function ($110) {\n return liftCoyoneda($109($110));\n };\n })(),\n Apply0: function () {\n return applyCoyoneda(dictApplicative.Apply0());\n }\n };\n};\nvar monadCoyoneda = function (dictMonad) {\n return {\n Applicative0: function () {\n return applicativeCoyoneda(dictMonad.Applicative0());\n },\n Bind1: function () {\n return bindCoyoneda(dictMonad.Bind1());\n }\n };\n};\nvar altCoyoneda = function (dictAlt) {\n return {\n alt: function (x) {\n return function (y) {\n return liftCoyoneda(Control_Alt.alt(dictAlt)(lowerCoyoneda(dictAlt.Functor0())(x))(lowerCoyoneda(dictAlt.Functor0())(y)));\n };\n },\n Functor0: function () {\n return functorCoyoneda;\n }\n };\n};\nvar plusCoyoneda = function (dictPlus) {\n return {\n empty: liftCoyoneda(Control_Plus.empty(dictPlus)),\n Alt0: function () {\n return altCoyoneda(dictPlus.Alt0());\n }\n };\n};\nvar alternativeCoyoneda = function (dictAlternative) {\n return {\n Applicative0: function () {\n return applicativeCoyoneda(dictAlternative.Applicative0());\n },\n Plus1: function () {\n return plusCoyoneda(dictAlternative.Plus1());\n }\n };\n};\nvar monadPlusCoyoneda = function (dictMonadPlus) {\n return {\n Monad0: function () {\n return monadCoyoneda(dictMonadPlus.Monad0());\n },\n Alternative1: function () {\n return alternativeCoyoneda(dictMonadPlus.Alternative1());\n }\n };\n};\nexport {\n Coyoneda,\n coyoneda,\n unCoyoneda,\n liftCoyoneda,\n lowerCoyoneda,\n hoistCoyoneda,\n eqCoyoneda,\n eq1Coyoneda,\n ordCoyoneda,\n ord1Coyoneda,\n functorCoyoneda,\n invatiantCoyoneda,\n applyCoyoneda,\n applicativeCoyoneda,\n altCoyoneda,\n plusCoyoneda,\n alternativeCoyoneda,\n bindCoyoneda,\n monadCoyoneda,\n monadTransCoyoneda,\n monadPlusCoyoneda,\n extendCoyoneda,\n comonadCoyoneda,\n foldableCoyoneda,\n traversableCoyoneda,\n foldable1Coyoneda,\n traversable1Coyoneda,\n distributiveCoyoneda\n};\n","// Generated by purs version 0.15.2\nimport * as Data_Coyoneda from \"../Data.Coyoneda/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nvar Initialize = /* #__PURE__ */ (function () {\n function Initialize(value0) {\n this.value0 = value0;\n };\n Initialize.create = function (value0) {\n return new Initialize(value0);\n };\n return Initialize;\n})();\nvar Finalize = /* #__PURE__ */ (function () {\n function Finalize(value0) {\n this.value0 = value0;\n };\n Finalize.create = function (value0) {\n return new Finalize(value0);\n };\n return Finalize;\n})();\nvar Receive = /* #__PURE__ */ (function () {\n function Receive(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n Receive.create = function (value0) {\n return function (value1) {\n return new Receive(value0, value1);\n };\n };\n return Receive;\n})();\nvar Action = /* #__PURE__ */ (function () {\n function Action(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n Action.create = function (value0) {\n return function (value1) {\n return new Action(value0, value1);\n };\n };\n return Action;\n})();\nvar Query = /* #__PURE__ */ (function () {\n function Query(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n Query.create = function (value0) {\n return function (value1) {\n return new Query(value0, value1);\n };\n };\n return Query;\n})();\nvar functorHalogenQ = {\n map: function (f) {\n return function (m) {\n if (m instanceof Initialize) {\n return new Initialize(f(m.value0));\n };\n if (m instanceof Finalize) {\n return new Finalize(f(m.value0));\n };\n if (m instanceof Receive) {\n return new Receive(m.value0, f(m.value1));\n };\n if (m instanceof Action) {\n return new Action(m.value0, f(m.value1));\n };\n if (m instanceof Query) {\n return new Query(Data_Functor.map(Data_Coyoneda.functorCoyoneda)(f)(m.value0), Data_Functor.map(Data_Functor.functorFn)(f)(m.value1));\n };\n throw new Error(\"Failed pattern match at Halogen.Query.HalogenQ (line 0, column 0 - line 0, column 0): \" + [ m.constructor.name ]);\n };\n }\n};\nvar bifunctorHalogenQ = {\n bimap: function (f) {\n return function (g) {\n return function (v) {\n if (v instanceof Initialize) {\n return new Initialize(g(v.value0));\n };\n if (v instanceof Finalize) {\n return new Finalize(g(v.value0));\n };\n if (v instanceof Receive) {\n return new Receive(f(v.value0), g(v.value1));\n };\n if (v instanceof Action) {\n return new Action(v.value0, g(v.value1));\n };\n if (v instanceof Query) {\n return new Query(Data_Functor.map(Data_Coyoneda.functorCoyoneda)(g)(v.value0), Data_Functor.map(Data_Functor.functorFn)(g)(v.value1));\n };\n throw new Error(\"Failed pattern match at Halogen.Query.HalogenQ (line 16, column 15 - line 21, column 45): \" + [ v.constructor.name ]);\n };\n };\n }\n};\nexport {\n Initialize,\n Finalize,\n Receive,\n Action,\n Query,\n bifunctorHalogenQ,\n functorHalogenQ\n};\n","export function _read(nothing, just, value) {\n var tag = Object.prototype.toString.call(value);\n if (tag.indexOf(\"[object HTML\") === 0 && tag.indexOf(\"Element]\") === tag.length - 8) {\n return just(value);\n } else {\n return nothing;\n }\n}\n\n// ----------------------------------------------------------------------------\n\nexport function title(elt) {\n return function () {\n return elt.title;\n };\n}\n\nexport function setTitle(title) {\n return function (elt) {\n return function () {\n elt.title = title;\n };\n };\n}\n\n// ----------------------------------------------------------------------------\n\nexport function lang(elt) {\n return function () {\n return elt.lang;\n };\n}\n\nexport function setLang(lang) {\n return function (elt) {\n return function () {\n elt.lang = lang;\n };\n };\n}\n\n// ----------------------------------------------------------------------------\n\nexport function dir(elt) {\n return function () {\n return elt.dir;\n };\n}\n\nexport function setDir(dir) {\n return function (elt) {\n return function () {\n elt.dir = dir;\n };\n };\n}\n\n// ----------------------------------------------------------------------------\n\nexport function hidden(elt) {\n return function () {\n return elt.hidden;\n };\n}\n\nexport function setHidden(hidden) {\n return function (elt) {\n return function () {\n elt.hidden = hidden;\n };\n };\n}\n\n// ----------------------------------------------------------------------------\n\nexport function tabIndex(elt) {\n return function () {\n return elt.tabIndex;\n };\n}\n\nexport function setTabIndex(tabIndex) {\n return function (elt) {\n return function () {\n elt.tabIndex = tabIndex;\n };\n };\n}\n\n// ----------------------------------------------------------------------------\n\nexport function draggable(elt) {\n return function () {\n return elt.draggable;\n };\n}\n\nexport function setDraggable(draggable) {\n return function (elt) {\n return function () {\n elt.draggable = draggable;\n };\n };\n}\n\n// ----------------------------------------------------------------------------\n\nexport function contentEditable(elt) {\n return function () {\n return elt.contentEditable;\n };\n}\n\nexport function setContentEditable(contentEditable) {\n return function (elt) {\n return function () {\n elt.contentEditable = contentEditable;\n };\n };\n}\n\nexport function isContentEditable(elt) {\n return function () {\n return elt.isContentEditable;\n };\n}\n\n// ----------------------------------------------------------------------------\n\nexport function spellcheck(elt) {\n return function () {\n return elt.spellcheck;\n };\n}\n\nexport function setSpellcheck(spellcheck) {\n return function (elt) {\n return function () {\n elt.spellcheck = spellcheck;\n };\n };\n}\n\n// ----------------------------------------------------------------------------\n\nexport function click(elt) {\n return function () {\n return elt.click();\n };\n}\n\nexport function focus(elt) {\n return function () {\n return elt.focus();\n };\n}\n\nexport function blur(elt) {\n return function () {\n return elt.blur();\n };\n}\n\n// - CSSOM ---------------------------------------------------------------------\n\nexport function _offsetParent(el) {\n return function () {\n return el.offsetParent;\n };\n}\n\nexport function offsetTop(el) {\n return function () {\n return el.offsetTop;\n };\n}\n\nexport function offsetLeft(el) {\n return function () {\n return el.offsetLeft;\n };\n}\n\nexport function offsetWidth(el) {\n return function () {\n return el.offsetWidth;\n };\n}\n\nexport function offsetHeight(el) {\n return function () {\n return el.offsetHeight;\n };\n}\n","// Generated by purs version 0.15.2\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Nullable from \"../Data.Nullable/index.js\";\nimport * as Effect from \"../Effect/index.js\";\nimport * as Unsafe_Coerce from \"../Unsafe.Coerce/index.js\";\nvar toParentNode = Unsafe_Coerce.unsafeCoerce;\nvar toNonDocumentTypeChildNode = Unsafe_Coerce.unsafeCoerce;\nvar toNode = Unsafe_Coerce.unsafeCoerce;\nvar toEventTarget = Unsafe_Coerce.unsafeCoerce;\nvar toElement = Unsafe_Coerce.unsafeCoerce;\nvar toChildNode = Unsafe_Coerce.unsafeCoerce;\nvar offsetParent = /* #__PURE__ */ (function () {\n var $0 = Data_Functor.map(Effect.functorEffect)(Data_Nullable.toMaybe);\n return function ($1) {\n return $0($foreign[\"_offsetParent\"]($1));\n };\n})();\nvar fromParentNode = function (x) {\n return $foreign[\"_read\"](Data_Maybe.Nothing.value, Data_Maybe.Just.create, x);\n};\nvar fromNonDocumentTypeChildNode = function (x) {\n return $foreign[\"_read\"](Data_Maybe.Nothing.value, Data_Maybe.Just.create, x);\n};\nvar fromNode = function (x) {\n return $foreign[\"_read\"](Data_Maybe.Nothing.value, Data_Maybe.Just.create, x);\n};\nvar fromEventTarget = function (x) {\n return $foreign[\"_read\"](Data_Maybe.Nothing.value, Data_Maybe.Just.create, x);\n};\nvar fromElement = function (x) {\n return $foreign[\"_read\"](Data_Maybe.Nothing.value, Data_Maybe.Just.create, x);\n};\nvar fromChildNode = function (x) {\n return $foreign[\"_read\"](Data_Maybe.Nothing.value, Data_Maybe.Just.create, x);\n};\nexport {\n title,\n setTitle,\n lang,\n setLang,\n dir,\n setDir,\n hidden,\n setHidden,\n tabIndex,\n setTabIndex,\n draggable,\n setDraggable,\n contentEditable,\n setContentEditable,\n isContentEditable,\n spellcheck,\n setSpellcheck,\n click,\n focus,\n blur,\n offsetTop,\n offsetLeft,\n offsetWidth,\n offsetHeight\n} from \"./foreign.js\";\nexport {\n fromElement,\n fromNode,\n fromChildNode,\n fromNonDocumentTypeChildNode,\n fromParentNode,\n fromEventTarget,\n toElement,\n toNode,\n toChildNode,\n toNonDocumentTypeChildNode,\n toParentNode,\n toEventTarget,\n offsetParent\n};\n","// Generated by purs version 0.15.2\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Control_Monad_State_Class from \"../Control.Monad.State.Class/index.js\";\nimport * as Control_Monad_Trans_Class from \"../Control.Monad.Trans.Class/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nimport * as Effect_Aff_Class from \"../Effect.Aff.Class/index.js\";\nimport * as Effect_Class from \"../Effect.Class/index.js\";\nimport * as Halogen_Query_HalogenM from \"../Halogen.Query.HalogenM/index.js\";\nimport * as Halogen_Query_HalogenQ from \"../Halogen.Query.HalogenQ/index.js\";\nimport * as Halogen_Query_Input from \"../Halogen.Query.Input/index.js\";\nimport * as Web_HTML_HTMLElement from \"../Web.HTML.HTMLElement/index.js\";\nvar tellAll = function () {\n return function (dictIsSymbol) {\n return function (dictOrd) {\n return function (label) {\n return function (req) {\n return Data_Functor[\"void\"](Halogen_Query_HalogenM.functorHalogenM)(Halogen_Query_HalogenM.queryAll()(dictIsSymbol)(dictOrd)(label)(req(Data_Unit.unit)));\n };\n };\n };\n };\n};\nvar tell = function () {\n return function (dictIsSymbol) {\n return function (dictOrd) {\n return function (slot) {\n return function (label) {\n return function (req) {\n return Data_Functor[\"void\"](Halogen_Query_HalogenM.functorHalogenM)(Halogen_Query_HalogenM.query()(dictIsSymbol)(dictOrd)(slot)(label)(req(Data_Unit.unit)));\n };\n };\n };\n };\n };\n};\nvar requestAll = function () {\n return function (dictIsSymbol) {\n return function (dictOrd) {\n return function (label) {\n return function (req) {\n return Halogen_Query_HalogenM.queryAll()(dictIsSymbol)(dictOrd)(label)(req(Control_Category.identity(Control_Category.categoryFn)));\n };\n };\n };\n };\n};\nvar request = function () {\n return function (dictIsSymbol) {\n return function (dictOrd) {\n return function (slot) {\n return function (label) {\n return function (req) {\n return Halogen_Query_HalogenM.query()(dictIsSymbol)(dictOrd)(slot)(label)(req(Control_Category.identity(Control_Category.categoryFn)));\n };\n };\n };\n };\n };\n};\nvar mkTell = function (act) {\n return act(Data_Unit.unit);\n};\nvar mkRequest = function (req) {\n return req(Control_Category.identity(Control_Category.categoryFn));\n};\nvar getHTMLElementRef = /* #__PURE__ */ (function () {\n var $9 = Data_Functor.map(Halogen_Query_HalogenM.functorHalogenM)(function (v) {\n return Control_Bind.bindFlipped(Data_Maybe.bindMaybe)(Web_HTML_HTMLElement.fromElement)(v);\n });\n return function ($10) {\n return $9(Halogen_Query_HalogenM.getRef($10));\n };\n})();\nexport {\n mkTell,\n tell,\n tellAll,\n mkRequest,\n request,\n requestAll,\n getHTMLElementRef\n};\nexport {\n get,\n gets,\n modify,\n modify_,\n put\n} from \"../Control.Monad.State.Class/index.js\";\nexport {\n lift\n} from \"../Control.Monad.Trans.Class/index.js\";\nexport {\n liftAff\n} from \"../Effect.Aff.Class/index.js\";\nexport {\n liftEffect\n} from \"../Effect.Class/index.js\";\nexport {\n ChildQuery,\n Fork,\n GetRef,\n Join,\n Kill,\n Lift,\n Par,\n Raise,\n State,\n Subscribe,\n Unsubscribe,\n HalogenM,\n fork,\n getRef,\n join,\n kill,\n query,\n queryAll,\n raise,\n subscribe,\n subscribe$prime,\n unsubscribe\n} from \"../Halogen.Query.HalogenM/index.js\";\nexport {\n Action,\n Finalize,\n Initialize,\n Query,\n Receive\n} from \"../Halogen.Query.HalogenQ/index.js\";\nexport {\n RefLabel\n} from \"../Halogen.Query.Input/index.js\";\n","// Generated by purs version 0.15.2\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_String_Common from \"../Data.String.Common/index.js\";\nimport * as Halogen_HTML_Core from \"../Halogen.HTML.Core/index.js\";\nimport * as Halogen_HTML_Elements from \"../Halogen.HTML.Elements/index.js\";\nimport * as Halogen_HTML_Properties from \"../Halogen.HTML.Properties/index.js\";\nvar renderLineEnding = /* #__PURE__ */ Halogen_HTML_Core.text(\"\\x0a\");\nvar classString = function (string) {\n return Halogen_HTML_Properties.classes(Data_Functor.mapFlipped(Data_Functor.functorArray)(Data_String_Common.split(\" \")(string))(function (s) {\n return s;\n }));\n};\nvar fontAwesome = function (glyphName) {\n return Halogen_HTML_Elements.i([ classString(\"fas \" + glyphName) ])([ ]);\n};\nvar optionalHtml = function (html) {\n return Halogen_HTML_Elements.span([ classString(\"largeViewport\") ])([ html ]);\n};\nvar optionalText = function (text) {\n return Halogen_HTML_Elements.span([ classString(\"largeViewport\") ])([ Halogen_HTML_Core.text(text) ]);\n};\nvar alternativeHtml = function (longHtml) {\n return function (shortAlt) {\n return [ Halogen_HTML_Elements.span([ classString(\"largeViewport\") ])([ longHtml ]), Halogen_HTML_Elements.span([ classString(\"smallViewport\") ])([ shortAlt ]) ];\n };\n};\nexport {\n scrollBy\n} from \"./foreign.js\";\nexport {\n classString,\n fontAwesome,\n optionalText,\n optionalHtml,\n alternativeHtml,\n renderLineEnding\n};\n","// Generated by purs version 0.15.2\nimport * as Control_Alt from \"../Control.Alt/index.js\";\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Apply from \"../Control.Apply/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Control_Monad_ST_Internal from \"../Control.Monad.ST.Internal/index.js\";\nimport * as Control_Plus from \"../Control.Plus/index.js\";\nimport * as Data_Array from \"../Data.Array/index.js\";\nimport * as Data_Array_ST from \"../Data.Array.ST/index.js\";\nimport * as Data_Array_ST_Iterator from \"../Data.Array.ST.Iterator/index.js\";\nimport * as Data_Either from \"../Data.Either/index.js\";\nimport * as Data_Foldable from \"../Data.Foldable/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_List from \"../Data.List/index.js\";\nimport * as Data_List_Types from \"../Data.List.Types/index.js\";\nimport * as Data_Map_Internal from \"../Data.Map.Internal/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Monoid from \"../Data.Monoid/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nvar separate = function (dict) {\n return dict.separate;\n};\nvar mapToList = function (dictOrd) {\n return Data_Map_Internal.toUnfoldable(Data_List_Types.unfoldableList);\n};\nvar compactableMaybe = {\n compact: /* #__PURE__ */ Control_Bind.join(Data_Maybe.bindMaybe),\n separate: function (v) {\n if (v instanceof Data_Maybe.Nothing) {\n return {\n left: Data_Maybe.Nothing.value,\n right: Data_Maybe.Nothing.value\n };\n };\n if (v instanceof Data_Maybe.Just) {\n if (v.value0 instanceof Data_Either.Left) {\n return {\n left: new Data_Maybe.Just(v.value0.value0),\n right: Data_Maybe.Nothing.value\n };\n };\n if (v.value0 instanceof Data_Either.Right) {\n return {\n left: Data_Maybe.Nothing.value,\n right: new Data_Maybe.Just(v.value0.value0)\n };\n };\n throw new Error(\"Failed pattern match at Data.Compactable (line 91, column 23 - line 93, column 48): \" + [ v.value0.constructor.name ]);\n };\n throw new Error(\"Failed pattern match at Data.Compactable (line 87, column 1 - line 93, column 48): \" + [ v.constructor.name ]);\n }\n};\nvar compactableMap = function (dictOrd) {\n return {\n compact: (function () {\n var select = function (v) {\n return function (m) {\n return Data_Map_Internal.alter(dictOrd)(Data_Function[\"const\"](v.value1))(v.value0)(m);\n };\n };\n var $73 = Data_Foldable.foldr(Data_List_Types.foldableList)(select)(Data_Map_Internal.empty);\n var $74 = mapToList(dictOrd);\n return function ($75) {\n return $73($74($75));\n };\n })(),\n separate: (function () {\n var select = function (v) {\n return function (v1) {\n if (v.value1 instanceof Data_Either.Left) {\n return {\n left: Data_Map_Internal.insert(dictOrd)(v.value0)(v.value1.value0)(v1.left),\n right: v1.right\n };\n };\n if (v.value1 instanceof Data_Either.Right) {\n return {\n left: v1.left,\n right: Data_Map_Internal.insert(dictOrd)(v.value0)(v.value1.value0)(v1.right)\n };\n };\n throw new Error(\"Failed pattern match at Data.Compactable (line 142, column 44 - line 144, column 63): \" + [ v.value1.constructor.name ]);\n };\n };\n var $76 = Data_Foldable.foldr(Data_List_Types.foldableList)(select)({\n left: Data_Map_Internal.empty,\n right: Data_Map_Internal.empty\n });\n var $77 = mapToList(dictOrd);\n return function ($78) {\n return $76($77($78));\n };\n })()\n };\n};\nvar compactableList = {\n compact: Data_List.catMaybes,\n separate: /* #__PURE__ */ (function () {\n var go = function (acc) {\n return function (v) {\n if (v instanceof Data_Either.Left) {\n return {\n left: Control_Alt.alt(Data_List_Types.altList)(acc.left)(Control_Applicative.pure(Data_List_Types.applicativeList)(v.value0)),\n right: acc.right\n };\n };\n if (v instanceof Data_Either.Right) {\n return {\n right: Control_Alt.alt(Data_List_Types.altList)(acc.right)(Control_Applicative.pure(Data_List_Types.applicativeList)(v.value0)),\n left: acc.left\n };\n };\n throw new Error(\"Failed pattern match at Data.Compactable (line 131, column 14 - line 133, column 54): \" + [ v.constructor.name ]);\n };\n };\n return Data_Foldable.foldl(Data_List_Types.foldableList)(go)({\n left: Control_Plus.empty(Data_List_Types.plusList),\n right: Control_Plus.empty(Data_List_Types.plusList)\n });\n })()\n};\nvar compactableEither = function (dictMonoid) {\n return {\n compact: function (v) {\n if (v instanceof Data_Either.Left) {\n return new Data_Either.Left(v.value0);\n };\n if (v instanceof Data_Either.Right) {\n if (v.value0 instanceof Data_Maybe.Just) {\n return new Data_Either.Right(v.value0.value0);\n };\n if (v.value0 instanceof Data_Maybe.Nothing) {\n return new Data_Either.Left(Data_Monoid.mempty(dictMonoid));\n };\n throw new Error(\"Failed pattern match at Data.Compactable (line 97, column 23 - line 99, column 27): \" + [ v.value0.constructor.name ]);\n };\n throw new Error(\"Failed pattern match at Data.Compactable (line 95, column 1 - line 104, column 53): \" + [ v.constructor.name ]);\n },\n separate: function (v) {\n if (v instanceof Data_Either.Left) {\n return {\n left: new Data_Either.Left(v.value0),\n right: new Data_Either.Left(v.value0)\n };\n };\n if (v instanceof Data_Either.Right) {\n if (v.value0 instanceof Data_Either.Left) {\n return {\n left: new Data_Either.Right(v.value0.value0),\n right: new Data_Either.Left(Data_Monoid.mempty(dictMonoid))\n };\n };\n if (v.value0 instanceof Data_Either.Right) {\n return {\n left: new Data_Either.Left(Data_Monoid.mempty(dictMonoid)),\n right: new Data_Either.Right(v.value0.value0)\n };\n };\n throw new Error(\"Failed pattern match at Data.Compactable (line 102, column 24 - line 104, column 53): \" + [ v.value0.constructor.name ]);\n };\n throw new Error(\"Failed pattern match at Data.Compactable (line 95, column 1 - line 104, column 53): \" + [ v.constructor.name ]);\n }\n };\n};\nvar compactableArray = {\n compact: function (xs) {\n return (function __do() {\n var result = Data_Array_ST[\"new\"]();\n var iter = Data_Array_ST_Iterator.iterator(function (v) {\n return Data_Array.index(xs)(v);\n })();\n Data_Array_ST_Iterator.iterate(iter)((function () {\n var $79 = Data_Functor[\"void\"](Control_Monad_ST_Internal.functorST);\n return function ($80) {\n return $79((function (v) {\n if (v instanceof Data_Maybe.Nothing) {\n return Control_Applicative.pure(Control_Monad_ST_Internal.applicativeST)(0);\n };\n if (v instanceof Data_Maybe.Just) {\n return Data_Array_ST.push(v.value0)(result);\n };\n throw new Error(\"Failed pattern match at Data.Compactable (line 111, column 34 - line 113, column 35): \" + [ v.constructor.name ]);\n })($80));\n };\n })())();\n return Data_Array_ST.unsafeFreeze(result)();\n })();\n },\n separate: function (xs) {\n return (function __do() {\n var ls = Data_Array_ST[\"new\"]();\n var rs = Data_Array_ST[\"new\"]();\n var iter = Data_Array_ST_Iterator.iterator(function (v) {\n return Data_Array.index(xs)(v);\n })();\n Data_Array_ST_Iterator.iterate(iter)((function () {\n var $81 = Data_Functor[\"void\"](Control_Monad_ST_Internal.functorST);\n return function ($82) {\n return $81((function (v) {\n if (v instanceof Data_Either.Left) {\n return Data_Array_ST.push(v.value0)(ls);\n };\n if (v instanceof Data_Either.Right) {\n return Data_Array_ST.push(v.value0)(rs);\n };\n throw new Error(\"Failed pattern match at Data.Compactable (line 122, column 34 - line 124, column 31): \" + [ v.constructor.name ]);\n })($82));\n };\n })())();\n return Control_Apply.apply(Control_Monad_ST_Internal.applyST)(Data_Functor.map(Control_Monad_ST_Internal.functorST)(function (v) {\n return function (v1) {\n return {\n left: v,\n right: v1\n };\n };\n })(Data_Array_ST.unsafeFreeze(ls)))(Data_Array_ST.unsafeFreeze(rs))();\n })();\n }\n};\nvar compactDefault = function (dictFunctor) {\n return function (dictCompactable) {\n var $83 = separate(dictCompactable);\n var $84 = Data_Functor.map(dictFunctor)(Data_Either.note(Data_Unit.unit));\n return function ($85) {\n return (function (v) {\n return v.right;\n })($83($84($85)));\n };\n };\n};\nvar compact = function (dict) {\n return dict.compact;\n};\nvar separateDefault = function (dictFunctor) {\n return function (dictCompactable) {\n return function (xs) {\n var swapEither = function (e) {\n if (e instanceof Data_Either.Left) {\n return new Data_Either.Right(e.value0);\n };\n if (e instanceof Data_Either.Right) {\n return new Data_Either.Left(e.value0);\n };\n throw new Error(\"Failed pattern match at Data.Compactable (line 83, column 20 - line 85, column 24): \" + [ e.constructor.name ]);\n };\n return {\n left: compact(dictCompactable)(Data_Functor.map(dictFunctor)(function ($86) {\n return Data_Either.hush(swapEither($86));\n })(xs)),\n right: compact(dictCompactable)(Data_Functor.map(dictFunctor)(Data_Either.hush)(xs))\n };\n };\n };\n};\nvar bindMaybe = function (dictBind) {\n return function (dictCompactable) {\n return function (x) {\n var $87 = compact(dictCompactable);\n var $88 = Control_Bind.bind(dictBind)(x);\n return function ($89) {\n return $87($88($89));\n };\n };\n };\n};\nvar bindEither = function (dictBind) {\n return function (dictCompactable) {\n return function (x) {\n var $90 = separate(dictCompactable);\n var $91 = Control_Bind.bind(dictBind)(x);\n return function ($92) {\n return $90($91($92));\n };\n };\n };\n};\nvar applyMaybe = function (dictApply) {\n return function (dictCompactable) {\n return function (p) {\n var $93 = compact(dictCompactable);\n var $94 = Control_Apply.apply(dictApply)(p);\n return function ($95) {\n return $93($94($95));\n };\n };\n };\n};\nvar applyEither = function (dictApply) {\n return function (dictCompactable) {\n return function (p) {\n var $96 = separate(dictCompactable);\n var $97 = Control_Apply.apply(dictApply)(p);\n return function ($98) {\n return $96($97($98));\n };\n };\n };\n};\nexport {\n compact,\n separate,\n compactDefault,\n separateDefault,\n applyMaybe,\n applyEither,\n bindMaybe,\n bindEither,\n compactableMaybe,\n compactableEither,\n compactableArray,\n compactableList,\n compactableMap\n};\n","// Generated by purs version 0.15.2\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Data_Array from \"../Data.Array/index.js\";\nimport * as Data_Compactable from \"../Data.Compactable/index.js\";\nimport * as Data_Either from \"../Data.Either/index.js\";\nimport * as Data_Foldable from \"../Data.Foldable/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_HeytingAlgebra from \"../Data.HeytingAlgebra/index.js\";\nimport * as Data_List from \"../Data.List/index.js\";\nimport * as Data_List_Types from \"../Data.List.Types/index.js\";\nimport * as Data_Map_Internal from \"../Data.Map.Internal/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Monoid from \"../Data.Monoid/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nvar partitionMapDefault = function (dictFilterable) {\n return function (p) {\n var $89 = Data_Compactable.separate(dictFilterable.Compactable0());\n var $90 = Data_Functor.map(dictFilterable.Functor1())(p);\n return function ($91) {\n return $89($90($91));\n };\n };\n};\nvar partitionMap = function (dict) {\n return dict.partitionMap;\n};\nvar partition = function (dict) {\n return dict.partition;\n};\nvar maybeBool = function (p) {\n return function (x) {\n var $38 = p(x);\n if ($38) {\n return new Data_Maybe.Just(x);\n };\n return Data_Maybe.Nothing.value;\n };\n};\nvar filterableList = {\n partitionMap: function (p) {\n return function (xs) {\n var select = function (x) {\n return function (v) {\n var v1 = p(x);\n if (v1 instanceof Data_Either.Left) {\n return {\n left: new Data_List_Types.Cons(v1.value0, v.left),\n right: v.right\n };\n };\n if (v1 instanceof Data_Either.Right) {\n return {\n left: v.left,\n right: new Data_List_Types.Cons(v1.value0, v.right)\n };\n };\n throw new Error(\"Failed pattern match at Data.Filterable (line 190, column 36 - line 192, column 83): \" + [ v1.constructor.name ]);\n };\n };\n return Data_Foldable.foldr(Data_List_Types.foldableList)(select)({\n left: Data_List_Types.Nil.value,\n right: Data_List_Types.Nil.value\n })(xs);\n };\n },\n partition: function (p) {\n return function (xs) {\n var select = function (x) {\n return function (v) {\n var $48 = p(x);\n if ($48) {\n return {\n no: v.no,\n yes: new Data_List_Types.Cons(x, v.yes)\n };\n };\n return {\n no: new Data_List_Types.Cons(x, v.no),\n yes: v.yes\n };\n };\n };\n return Data_Foldable.foldr(Data_List_Types.foldableList)(select)({\n no: Data_List_Types.Nil.value,\n yes: Data_List_Types.Nil.value\n })(xs);\n };\n },\n filterMap: function (p) {\n return Data_List.mapMaybe(p);\n },\n filter: Data_List.filter,\n Compactable0: function () {\n return Data_Compactable.compactableList;\n },\n Functor1: function () {\n return Data_List_Types.functorList;\n }\n};\nvar filterableArray = {\n partitionMap: function (p) {\n var go = function (acc) {\n return function (x) {\n var v = p(x);\n if (v instanceof Data_Either.Left) {\n return {\n left: Data_Semigroup.append(Data_Semigroup.semigroupArray)(acc.left)([ v.value0 ]),\n right: acc.right\n };\n };\n if (v instanceof Data_Either.Right) {\n return {\n right: Data_Semigroup.append(Data_Semigroup.semigroupArray)(acc.right)([ v.value0 ]),\n left: acc.left\n };\n };\n throw new Error(\"Failed pattern match at Data.Filterable (line 149, column 16 - line 151, column 50): \" + [ v.constructor.name ]);\n };\n };\n return Data_Foldable.foldl(Data_Foldable.foldableArray)(go)({\n left: [ ],\n right: [ ]\n });\n },\n partition: Data_Array.partition,\n filterMap: Data_Array.mapMaybe,\n filter: Data_Array.filter,\n Compactable0: function () {\n return Data_Compactable.compactableArray;\n },\n Functor1: function () {\n return Data_Functor.functorArray;\n }\n};\nvar filterMapDefault = function (dictFilterable) {\n return function (p) {\n var $92 = Data_Compactable.compact(dictFilterable.Compactable0());\n var $93 = Data_Functor.map(dictFilterable.Functor1())(p);\n return function ($94) {\n return $92($93($94));\n };\n };\n};\nvar filterMap = function (dict) {\n return dict.filterMap;\n};\nvar partitionDefaultFilterMap = function (dictFilterable) {\n return function (p) {\n return function (xs) {\n return {\n yes: filterMap(dictFilterable)(maybeBool(p))(xs),\n no: filterMap(dictFilterable)(maybeBool(Data_HeytingAlgebra.not(Data_HeytingAlgebra.heytingAlgebraFunction(Data_HeytingAlgebra.heytingAlgebraBoolean))(p)))(xs)\n };\n };\n };\n};\nvar filterDefaultPartition = function (dictFilterable) {\n return function (p) {\n return function (xs) {\n return (partition(dictFilterable)(p)(xs)).yes;\n };\n };\n};\nvar filterDefault = function (dictFilterable) {\n var $95 = filterMap(dictFilterable);\n return function ($96) {\n return $95(maybeBool($96));\n };\n};\nvar filter = function (dict) {\n return dict.filter;\n};\nvar partitionDefaultFilter = function (dictFilterable) {\n return function (p) {\n return function (xs) {\n return {\n yes: filter(dictFilterable)(p)(xs),\n no: filter(dictFilterable)(Data_HeytingAlgebra.not(Data_HeytingAlgebra.heytingAlgebraFunction(Data_HeytingAlgebra.heytingAlgebraBoolean))(p))(xs)\n };\n };\n };\n};\nvar eitherBool = function (p) {\n return function (x) {\n var $56 = p(x);\n if ($56) {\n return new Data_Either.Right(x);\n };\n return new Data_Either.Left(x);\n };\n};\nvar filterDefaultPartitionMap = function (dictFilterable) {\n return function (p) {\n return function (xs) {\n return (partitionMap(dictFilterable)(eitherBool(p))(xs)).right;\n };\n };\n};\nvar partitionDefault = function (dictFilterable) {\n return function (p) {\n return function (xs) {\n var o = partitionMap(dictFilterable)(eitherBool(p))(xs);\n return {\n no: o.left,\n yes: o.right\n };\n };\n };\n};\nvar filterableEither = function (dictMonoid) {\n return {\n partitionMap: function (v) {\n return function (v1) {\n if (v1 instanceof Data_Either.Left) {\n return {\n left: new Data_Either.Left(v1.value0),\n right: new Data_Either.Left(v1.value0)\n };\n };\n if (v1 instanceof Data_Either.Right) {\n var v2 = v(v1.value0);\n if (v2 instanceof Data_Either.Left) {\n return {\n left: new Data_Either.Right(v2.value0),\n right: new Data_Either.Left(Data_Monoid.mempty(dictMonoid))\n };\n };\n if (v2 instanceof Data_Either.Right) {\n return {\n left: new Data_Either.Left(Data_Monoid.mempty(dictMonoid)),\n right: new Data_Either.Right(v2.value0)\n };\n };\n throw new Error(\"Failed pattern match at Data.Filterable (line 173, column 30 - line 175, column 53): \" + [ v2.constructor.name ]);\n };\n throw new Error(\"Failed pattern match at Data.Filterable (line 171, column 1 - line 184, column 29): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n },\n partition: function (p) {\n return partitionDefault(filterableEither(dictMonoid))(p);\n },\n filterMap: function (v) {\n return function (v1) {\n if (v1 instanceof Data_Either.Left) {\n return new Data_Either.Left(v1.value0);\n };\n if (v1 instanceof Data_Either.Right) {\n var v2 = v(v1.value0);\n if (v2 instanceof Data_Maybe.Nothing) {\n return new Data_Either.Left(Data_Monoid.mempty(dictMonoid));\n };\n if (v2 instanceof Data_Maybe.Just) {\n return new Data_Either.Right(v2.value0);\n };\n throw new Error(\"Failed pattern match at Data.Filterable (line 180, column 27 - line 182, column 22): \" + [ v2.constructor.name ]);\n };\n throw new Error(\"Failed pattern match at Data.Filterable (line 171, column 1 - line 184, column 29): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n },\n filter: function (p) {\n return filterDefault(filterableEither(dictMonoid))(p);\n },\n Compactable0: function () {\n return Data_Compactable.compactableEither(dictMonoid);\n },\n Functor1: function () {\n return Data_Either.functorEither;\n }\n };\n};\nvar filterableMap = function (dictOrd) {\n return {\n partitionMap: function (p) {\n return function (xs) {\n var toList = Data_Map_Internal.toUnfoldable(Data_List_Types.unfoldableList);\n var select = function (v) {\n return function (v1) {\n var v2 = p(v.value1);\n if (v2 instanceof Data_Either.Left) {\n return {\n left: Data_Map_Internal.insert(dictOrd)(v.value0)(v2.value0)(v1.left),\n right: v1.right\n };\n };\n if (v2 instanceof Data_Either.Right) {\n return {\n left: v1.left,\n right: Data_Map_Internal.insert(dictOrd)(v.value0)(v2.value0)(v1.right)\n };\n };\n throw new Error(\"Failed pattern match at Data.Filterable (line 215, column 44 - line 217, column 57): \" + [ v2.constructor.name ]);\n };\n };\n return Data_Foldable.foldr(Data_List_Types.foldableList)(select)({\n left: Data_Map_Internal.empty,\n right: Data_Map_Internal.empty\n })(toList(xs));\n };\n },\n partition: function (p) {\n return partitionDefault(filterableMap(dictOrd))(p);\n },\n filterMap: function (p) {\n return function (xs) {\n var toList = Data_Map_Internal.toUnfoldable(Data_List_Types.unfoldableList);\n var select = function (v) {\n return function (m) {\n return Data_Map_Internal.alter(dictOrd)(Data_Function[\"const\"](p(v.value1)))(v.value0)(m);\n };\n };\n return Data_Foldable.foldr(Data_List_Types.foldableList)(select)(Data_Map_Internal.empty)(toList(xs));\n };\n },\n filter: function (p) {\n return filterDefault(filterableMap(dictOrd))(p);\n },\n Compactable0: function () {\n return Data_Compactable.compactableMap(dictOrd);\n },\n Functor1: function () {\n return Data_Map_Internal.functorMap;\n }\n };\n};\nvar filterableMaybe = {\n partitionMap: function (v) {\n return function (v1) {\n if (v1 instanceof Data_Maybe.Nothing) {\n return {\n left: Data_Maybe.Nothing.value,\n right: Data_Maybe.Nothing.value\n };\n };\n if (v1 instanceof Data_Maybe.Just) {\n var v2 = v(v1.value0);\n if (v2 instanceof Data_Either.Left) {\n return {\n left: new Data_Maybe.Just(v2.value0),\n right: Data_Maybe.Nothing.value\n };\n };\n if (v2 instanceof Data_Either.Right) {\n return {\n left: Data_Maybe.Nothing.value,\n right: new Data_Maybe.Just(v2.value0)\n };\n };\n throw new Error(\"Failed pattern match at Data.Filterable (line 161, column 29 - line 163, column 48): \" + [ v2.constructor.name ]);\n };\n throw new Error(\"Failed pattern match at Data.Filterable (line 159, column 1 - line 169, column 29): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n },\n partition: function (p) {\n return partitionDefault(filterableMaybe)(p);\n },\n filterMap: /* #__PURE__ */ Control_Bind.bindFlipped(Data_Maybe.bindMaybe),\n filter: function (p) {\n return filterDefault(filterableMaybe)(p);\n },\n Compactable0: function () {\n return Data_Compactable.compactableMaybe;\n },\n Functor1: function () {\n return Data_Maybe.functorMaybe;\n }\n};\nvar cleared = function (dictFilterable) {\n return filterMap(dictFilterable)(Data_Function[\"const\"](Data_Maybe.Nothing.value));\n};\nexport {\n partitionMap,\n partition,\n filterMap,\n filter,\n eitherBool,\n partitionDefault,\n partitionDefaultFilter,\n partitionDefaultFilterMap,\n partitionMapDefault,\n maybeBool,\n filterDefault,\n filterDefaultPartition,\n filterDefaultPartitionMap,\n filterMapDefault,\n cleared,\n filterableArray,\n filterableMaybe,\n filterableEither,\n filterableList,\n filterableMap\n};\nexport {\n compact,\n separate\n} from \"../Data.Compactable/index.js\";\n","// Generated by purs version 0.15.2\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Data_Array from \"../Data.Array/index.js\";\nimport * as Data_Filterable from \"../Data.Filterable/index.js\";\nimport * as Data_Foldable from \"../Data.Foldable/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Lens_Fold from \"../Data.Lens.Fold/index.js\";\nimport * as Data_Lens_Getter from \"../Data.Lens.Getter/index.js\";\nimport * as Data_Lens_Internal_Forget from \"../Data.Lens.Internal.Forget/index.js\";\nimport * as Data_Lens_Traversal from \"../Data.Lens.Traversal/index.js\";\nimport * as Data_List_Types from \"../Data.List.Types/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Monoid_Endo from \"../Data.Monoid.Endo/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nimport * as Data_String_CodePoints from \"../Data.String.CodePoints/index.js\";\nimport * as Data_String_Utils from \"../Data.String.Utils/index.js\";\nimport * as Halogen_HTML_Core from \"../Halogen.HTML.Core/index.js\";\nimport * as Halogen_HTML_Elements from \"../Halogen.HTML.Elements/index.js\";\nimport * as HalogenUtils from \"../HalogenUtils/index.js\";\nimport * as TablatureDocument from \"../TablatureDocument/index.js\";\nimport * as Utils from \"../Utils/index.js\";\nvar renderTablatureDocument = function (doc) {\n var renderWithClass = function (string) {\n return function (klass) {\n return Halogen_HTML_Elements.span([ HalogenUtils.classString(klass) ])([ Halogen_HTML_Core.text(string) ]);\n };\n };\n var renderTitleLineElem = function (v) {\n if (v instanceof TablatureDocument.Title) {\n return renderWithClass(v.value0)(\"tabTitle\");\n };\n if (v instanceof TablatureDocument.TitleOther) {\n return renderWithClass(v.value0)(\"tabText\");\n };\n throw new Error(\"Failed pattern match at TablatureRenderer (line 32, column 3 - line 32, column 73): \" + [ v.constructor.name ]);\n };\n var renderLine$prime = function (line) {\n return function (lineRenderer) {\n return Halogen_HTML_Elements.span_(Data_Array.fromFoldable(Data_List_Types.foldableList)(Data_Semigroup.append(Data_List_Types.semigroupList)(Data_Functor.map(Data_List_Types.functorList)(lineRenderer)(line))(new Data_List_Types.Cons(HalogenUtils.renderLineEnding, Data_List_Types.Nil.value))));\n };\n };\n var renderHeaderLineElem = function (v) {\n if (v instanceof TablatureDocument.Header) {\n return renderWithClass(v.value0)(\"tabHeader\");\n };\n if (v instanceof TablatureDocument.HeaderSuffix) {\n return renderWithClass(v.value0)(\"tabText\");\n };\n throw new Error(\"Failed pattern match at TablatureRenderer (line 48, column 3 - line 48, column 76): \" + [ v.constructor.name ]);\n };\n var renderChordLegendElem = function (v) {\n if (v instanceof TablatureDocument.ChordFret) {\n return renderWithClass(v.value0)(\"tabFret\");\n };\n if (v instanceof TablatureDocument.ChordSpecial) {\n return renderWithClass(v.value0)(\"tabSpecial\");\n };\n throw new Error(\"Failed pattern match at TablatureRenderer (line 53, column 3 - line 53, column 58): \" + [ v.constructor.name ]);\n };\n var createFontSizeCompensation = function (string) {\n return Halogen_HTML_Elements.span([ HalogenUtils.classString(\"fontsize-compensation\") ])([ Halogen_HTML_Core.text(Data_Maybe.fromMaybe(\"\")(Data_String_Utils.repeat(Data_String_CodePoints.length(string))(\" \"))) ]);\n };\n var renderChord = function (chord) {\n var chordMods = Data_Foldable.foldr(Data_List_Types.foldableList)(Data_Semigroup.append(Data_Semigroup.semigroupString))(\"\")(Data_Functor.map(Data_List_Types.functorList)(Utils.print(TablatureDocument.printChordMod))(Data_Lens_Getter.view((function () {\n var $49 = TablatureDocument[\"_elem\"](Data_Lens_Internal_Forget.strongForget);\n var $50 = TablatureDocument[\"_mods\"](Data_Lens_Internal_Forget.strongForget);\n return function ($51) {\n return $49($50($51));\n };\n })())(chord)));\n return Halogen_HTML_Elements.span([ HalogenUtils.classString(\"tabChord\") ])(Data_Filterable.filterMap(Data_Filterable.filterableArray)(Control_Category.identity(Control_Category.categoryFn))([ new Data_Maybe.Just(Halogen_HTML_Core.text(Utils.print(TablatureDocument.printNoteLetter)(Data_Lens_Getter.view((function () {\n var $52 = TablatureDocument[\"_elem\"](Data_Lens_Internal_Forget.strongForget);\n var $53 = TablatureDocument[\"_root\"](Data_Lens_Internal_Forget.strongForget);\n var $54 = TablatureDocument[\"_letter\"](Data_Lens_Internal_Forget.strongForget);\n return function ($55) {\n return $52($53($54($55)));\n };\n })())(chord)))), new Data_Maybe.Just(Halogen_HTML_Elements.sub_([ Halogen_HTML_Core.text(Data_Lens_Getter.view((function () {\n var $56 = TablatureDocument[\"_elem\"](Data_Lens_Internal_Forget.strongForget);\n var $57 = TablatureDocument[\"_root\"](Data_Lens_Internal_Forget.strongForget);\n var $58 = TablatureDocument[\"_mod\"](Data_Lens_Internal_Forget.strongForget);\n return function ($59) {\n return $56($57($58($59)));\n };\n })())(chord)) ])), new Data_Maybe.Just(Halogen_HTML_Core.text(Data_Lens_Getter.view((function () {\n var $60 = TablatureDocument[\"_elem\"](Data_Lens_Internal_Forget.strongForget);\n var $61 = TablatureDocument[\"_type\"](Data_Lens_Internal_Forget.strongForget);\n return function ($62) {\n return $60($61($62));\n };\n })())(chord))), new Data_Maybe.Just(Halogen_HTML_Elements.sup_([ Halogen_HTML_Core.text(chordMods) ])), Data_Functor.mapFlipped(Data_Maybe.functorMaybe)(Data_Lens_Getter.view((function () {\n var $63 = TablatureDocument[\"_elem\"](Data_Lens_Internal_Forget.strongForget);\n var $64 = TablatureDocument[\"_bass\"](Data_Lens_Internal_Forget.strongForget);\n return function ($65) {\n return $63($64($65));\n };\n })())(chord))(function (v) {\n return Halogen_HTML_Core.text(\"/\" + Utils.print(TablatureDocument.printNoteLetter)(v.letter));\n }), Data_Functor.mapFlipped(Data_Maybe.functorMaybe)(Data_Lens_Getter.view((function () {\n var $66 = TablatureDocument[\"_elem\"](Data_Lens_Internal_Forget.strongForget);\n var $67 = TablatureDocument[\"_bass\"](Data_Lens_Internal_Forget.strongForget);\n return function ($68) {\n return $66($67($68));\n };\n })())(chord))(function (v) {\n return Halogen_HTML_Elements.sub_([ Halogen_HTML_Core.text(v.mod) ]);\n }), new Data_Maybe.Just(Halogen_HTML_Core.text(Data_Maybe.fromMaybe(\"\")(Data_String_Utils.repeat(Data_Ord.max(Data_Ord.ordInt)(1)(Data_Lens_Getter.view(TablatureDocument[\"_spaceSuffix\"](Data_Lens_Internal_Forget.strongForget))(chord)))(\" \")))), new Data_Maybe.Just(Halogen_HTML_Elements.sub_([ createFontSizeCompensation(Data_Lens_Getter.view((function () {\n var $69 = TablatureDocument[\"_elem\"](Data_Lens_Internal_Forget.strongForget);\n var $70 = TablatureDocument[\"_root\"](Data_Lens_Internal_Forget.strongForget);\n var $71 = TablatureDocument[\"_mod\"](Data_Lens_Internal_Forget.strongForget);\n return function ($72) {\n return $69($70($71($72)));\n };\n })())(chord)) ])), new Data_Maybe.Just(Halogen_HTML_Elements.sup_([ createFontSizeCompensation(chordMods) ])), Data_Functor.mapFlipped(Data_Maybe.functorMaybe)(Data_Lens_Getter.view((function () {\n var $73 = TablatureDocument[\"_elem\"](Data_Lens_Internal_Forget.strongForget);\n var $74 = TablatureDocument[\"_bass\"](Data_Lens_Internal_Forget.strongForget);\n return function ($75) {\n return $73($74($75));\n };\n })())(chord))(function (v) {\n return Halogen_HTML_Elements.sub_([ createFontSizeCompensation(v.mod) ]);\n }) ]));\n };\n var renderChordLineElem = function (v) {\n if (v instanceof TablatureDocument.ChordComment) {\n return renderWithClass(v.value0)(\"tabSuffix\");\n };\n if (v instanceof TablatureDocument.ChordLineChord) {\n return renderChord(v.value0);\n };\n throw new Error(\"Failed pattern match at TablatureRenderer (line 50, column 3 - line 50, column 81): \" + [ v.constructor.name ]);\n };\n var renderTextLineElem = function (v) {\n if (v instanceof TablatureDocument.Text) {\n return renderWithClass(v.value0)(\"tabText\");\n };\n if (v instanceof TablatureDocument.Spaces) {\n return renderWithClass(v.value0)(\"tabText\");\n };\n if (v instanceof TablatureDocument.TextLineChord) {\n return renderChord(v.value0);\n };\n if (v instanceof TablatureDocument.ChordLegend) {\n return Halogen_HTML_Elements.span_(Data_Array.fromFoldable(Data_List_Types.foldableList)(Data_Functor.map(Data_List_Types.functorList)(renderChordLegendElem)(v.value0)));\n };\n throw new Error(\"Failed pattern match at TablatureRenderer (line 35, column 3 - line 35, column 52): \" + [ v.constructor.name ]);\n };\n var _tuningSpaceSuffixes = function (dictWander) {\n var $76 = Data_Lens_Traversal.traversed(Data_List_Types.traversableList)(dictWander);\n var $77 = TablatureDocument[\"_TablatureLine\"](dictWander.Choice1());\n var $78 = Data_Lens_Traversal.traversed(Data_List_Types.traversableList)(dictWander);\n var $79 = TablatureDocument[\"_Tuning\"](dictWander.Choice1());\n var $80 = TablatureDocument[\"_spaceSuffix\"](dictWander.Strong0());\n return function ($81) {\n return $76($77($78($79($80($81)))));\n };\n };\n var minTuningSpace = Data_Maybe.fromMaybe(0)(Data_Lens_Fold.minimumOf(Data_Ord.ordInt)(_tuningSpaceSuffixes(Data_Lens_Internal_Forget.wanderForget(Data_Monoid_Endo.monoidEndo(Control_Category.categoryFn))))(doc));\n var renderTuning = function (spacedNote) {\n return Halogen_HTML_Elements.span([ HalogenUtils.classString(\"tabChord\") ])([ Halogen_HTML_Core.text(Utils.print(TablatureDocument.printNoteLetter)(Data_Lens_Getter.view((function () {\n var $82 = TablatureDocument[\"_elem\"](Data_Lens_Internal_Forget.strongForget);\n var $83 = TablatureDocument[\"_letter\"](Data_Lens_Internal_Forget.strongForget);\n return function ($84) {\n return $82($83($84));\n };\n })())(spacedNote))), Halogen_HTML_Elements.sub_([ Halogen_HTML_Core.text(Data_Lens_Getter.view((function () {\n var $85 = TablatureDocument[\"_elem\"](Data_Lens_Internal_Forget.strongForget);\n var $86 = TablatureDocument[\"_mod\"](Data_Lens_Internal_Forget.strongForget);\n return function ($87) {\n return $85($86($87));\n };\n })())(spacedNote)) ]), Halogen_HTML_Core.text(Data_Maybe.fromMaybe(\"\")(Data_String_Utils.repeat(Data_Lens_Getter.view(TablatureDocument[\"_spaceSuffix\"](Data_Lens_Internal_Forget.strongForget))(spacedNote) - minTuningSpace | 0)(\" \"))), Halogen_HTML_Elements.sub_([ createFontSizeCompensation(Data_Lens_Getter.view((function () {\n var $88 = TablatureDocument[\"_elem\"](Data_Lens_Internal_Forget.strongForget);\n var $89 = TablatureDocument[\"_mod\"](Data_Lens_Internal_Forget.strongForget);\n return function ($90) {\n return $88($89($90));\n };\n })())(spacedNote)) ]) ]);\n };\n var renderTablatureLineElem = function (v) {\n if (v instanceof TablatureDocument.Prefix) {\n return renderWithClass(v.value0)(\"tabPrefix\");\n };\n if (v instanceof TablatureDocument.Tuning) {\n return renderTuning(v.value0);\n };\n if (v instanceof TablatureDocument.Suffix) {\n return renderWithClass(v.value0)(\"tabSuffix\");\n };\n if (v instanceof TablatureDocument.Special) {\n return renderWithClass(v.value0)(\"tabSpecial\");\n };\n if (v instanceof TablatureDocument.TimelineSep) {\n return renderWithClass(v.value0)(\"tabTimeline\");\n };\n if (v instanceof TablatureDocument.TimelineConnection) {\n return renderWithClass(v.value0)(\"tabTimeline\");\n };\n if (v instanceof TablatureDocument.TimelineSpace) {\n return renderWithClass(v.value0)(\"tabTimeline\");\n };\n if (v instanceof TablatureDocument.Fret) {\n return renderWithClass(v.value0)(\"tabFret\");\n };\n throw new Error(\"Failed pattern match at TablatureRenderer (line 40, column 3 - line 40, column 79): \" + [ v.constructor.name ]);\n };\n var renderLine = function (v) {\n if (v instanceof TablatureDocument.TitleLine) {\n return renderLine$prime(v.value0)(renderTitleLineElem);\n };\n if (v instanceof TablatureDocument.TextLine) {\n return renderLine$prime(v.value0)(renderTextLineElem);\n };\n if (v instanceof TablatureDocument.ChordLine) {\n return renderLine$prime(v.value0)(renderChordLineElem);\n };\n if (v instanceof TablatureDocument.HeaderLine) {\n return renderLine$prime(v.value0)(renderHeaderLineElem);\n };\n if (v instanceof TablatureDocument.TablatureLine) {\n return renderLine$prime(v.value0)(renderTablatureLineElem);\n };\n throw new Error(\"Failed pattern match at TablatureRenderer (line 22, column 3 - line 22, column 53): \" + [ v.constructor.name ]);\n };\n return Data_Functor.map(Data_List_Types.functorList)(renderLine)(doc);\n};\nexport {\n renderTablatureDocument\n};\n","// Generated by purs version 0.15.2\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Nullable from \"../Data.Nullable/index.js\";\nimport * as Effect from \"../Effect/index.js\";\nimport * as Unsafe_Coerce from \"../Unsafe.Coerce/index.js\";\nimport * as Web_HTML_SelectionMode from \"../Web.HTML.SelectionMode/index.js\";\nimport * as Web_Internal_FFI from \"../Web.Internal.FFI/index.js\";\nvar toParentNode = Unsafe_Coerce.unsafeCoerce;\nvar toNonDocumentTypeChildNode = Unsafe_Coerce.unsafeCoerce;\nvar toNode = Unsafe_Coerce.unsafeCoerce;\nvar toHTMLElement = Unsafe_Coerce.unsafeCoerce;\nvar toEventTarget = Unsafe_Coerce.unsafeCoerce;\nvar toElement = Unsafe_Coerce.unsafeCoerce;\nvar toChildNode = Unsafe_Coerce.unsafeCoerce;\nvar setRangeText$prime = function (rpl) {\n return function (s) {\n return function (e) {\n return function (mode) {\n return function (area) {\n return function () {\n return $foreign[\"_setRangeText\"](rpl, s, e, Web_HTML_SelectionMode.print(mode), area);\n };\n };\n };\n };\n };\n};\nvar fromParentNode = /* #__PURE__ */ Web_Internal_FFI.unsafeReadProtoTagged(\"HTMLTextAreaElement\");\nvar fromNonDocumentTypeChildNode = /* #__PURE__ */ Web_Internal_FFI.unsafeReadProtoTagged(\"HTMLTextAreaElement\");\nvar fromNode = /* #__PURE__ */ Web_Internal_FFI.unsafeReadProtoTagged(\"HTMLTextAreaElement\");\nvar fromHTMLElement = /* #__PURE__ */ Web_Internal_FFI.unsafeReadProtoTagged(\"HTMLTextAreaElement\");\nvar fromEventTarget = /* #__PURE__ */ Web_Internal_FFI.unsafeReadProtoTagged(\"HTMLTextAreaElement\");\nvar fromElement = /* #__PURE__ */ Web_Internal_FFI.unsafeReadProtoTagged(\"HTMLTextAreaElement\");\nvar fromChildNode = /* #__PURE__ */ Web_Internal_FFI.unsafeReadProtoTagged(\"HTMLTextAreaElement\");\nvar form = /* #__PURE__ */ (function () {\n var $0 = Data_Functor.map(Effect.functorEffect)(Data_Nullable.toMaybe);\n return function ($1) {\n return $0($foreign[\"_form\"]($1));\n };\n})();\nexport {\n autocomplete,\n setAutocomplete,\n autofocus,\n setAutofocus,\n cols,\n setCols,\n dirName,\n setDirName,\n disabled,\n setDisabled,\n maxLength,\n setMaxLength,\n minLength,\n setMinLength,\n name,\n setName,\n placeholder,\n setPlaceholder,\n readOnly,\n setReadOnly,\n required,\n setRequired,\n rows,\n setRows,\n wrap,\n setWrap,\n type_,\n defaultValue,\n setDefaultValue,\n value,\n setValue,\n textLength,\n willValidate,\n validity,\n validationMessage,\n checkValidity,\n reportValidity,\n setCustomValidity,\n labels,\n select,\n selectionStart,\n setSelectionStart,\n selectionEnd,\n setSelectionEnd,\n selectionDirection,\n setSelectionDirection,\n setRangeText,\n setSelectionRange\n} from \"./foreign.js\";\nexport {\n fromHTMLElement,\n fromElement,\n fromNode,\n fromChildNode,\n fromNonDocumentTypeChildNode,\n fromParentNode,\n fromEventTarget,\n toHTMLElement,\n toElement,\n toNode,\n toChildNode,\n toNonDocumentTypeChildNode,\n toParentNode,\n toEventTarget,\n form,\n setRangeText$prime\n};\n","export function key(e) {\n return e.key;\n}\n\nexport function code(e) {\n return e.code;\n}\n\nexport function locationIndex(e) {\n return e.location;\n}\n\nexport function ctrlKey(e) {\n return e.ctrlKey;\n}\n\nexport function shiftKey(e) {\n return e.shiftKey;\n}\n\nexport function altKey(e) {\n return e.altKey;\n}\n\nexport function metaKey(e) {\n return e.metaKey;\n}\n\nexport function repeat(e) {\n return e.repeat;\n}\n\nexport function isComposing(e) {\n return e.isComposing;\n}\n\nexport function getModifierState(s) {\n return function (e) {\n return function () {\n return e.getModifierState(s);\n };\n };\n}\n","// Generated by purs version 0.15.2\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Enum from \"../Data.Enum/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Ordering from \"../Data.Ordering/index.js\";\nimport * as Unsafe_Coerce from \"../Unsafe.Coerce/index.js\";\nimport * as Web_Internal_FFI from \"../Web.Internal.FFI/index.js\";\nvar Standard = /* #__PURE__ */ (function () {\n function Standard() {\n\n };\n Standard.value = new Standard();\n return Standard;\n})();\nvar Left = /* #__PURE__ */ (function () {\n function Left() {\n\n };\n Left.value = new Left();\n return Left;\n})();\nvar Right = /* #__PURE__ */ (function () {\n function Right() {\n\n };\n Right.value = new Right();\n return Right;\n})();\nvar Numpad = /* #__PURE__ */ (function () {\n function Numpad() {\n\n };\n Numpad.value = new Numpad();\n return Numpad;\n})();\nvar toUIEvent = Unsafe_Coerce.unsafeCoerce;\nvar toEvent = Unsafe_Coerce.unsafeCoerce;\nvar toEnumKeyLocation = function (v) {\n if (v === 0) {\n return new Data_Maybe.Just(Standard.value);\n };\n if (v === 1) {\n return new Data_Maybe.Just(Left.value);\n };\n if (v === 2) {\n return new Data_Maybe.Just(Right.value);\n };\n if (v === 3) {\n return new Data_Maybe.Just(Numpad.value);\n };\n return Data_Maybe.Nothing.value;\n};\nvar fromUIEvent = /* #__PURE__ */ Web_Internal_FFI.unsafeReadProtoTagged(\"KeyboardEvent\");\nvar fromEvent = /* #__PURE__ */ Web_Internal_FFI.unsafeReadProtoTagged(\"KeyboardEvent\");\nvar fromEnumKeyLocation = function (v) {\n if (v instanceof Standard) {\n return 0;\n };\n if (v instanceof Left) {\n return 1;\n };\n if (v instanceof Right) {\n return 2;\n };\n if (v instanceof Numpad) {\n return 3;\n };\n throw new Error(\"Failed pattern match at Web.UIEvent.KeyboardEvent (line 107, column 3 - line 111, column 16): \" + [ v.constructor.name ]);\n};\nvar eqKeyLocation = {\n eq: function (x) {\n return function (y) {\n if (x instanceof Standard && y instanceof Standard) {\n return true;\n };\n if (x instanceof Left && y instanceof Left) {\n return true;\n };\n if (x instanceof Right && y instanceof Right) {\n return true;\n };\n if (x instanceof Numpad && y instanceof Numpad) {\n return true;\n };\n return false;\n };\n }\n};\nvar ordKeyLocation = {\n compare: function (x) {\n return function (y) {\n if (x instanceof Standard && y instanceof Standard) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof Standard) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof Standard) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof Left && y instanceof Left) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof Left) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof Left) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof Right && y instanceof Right) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof Right) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof Right) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof Numpad && y instanceof Numpad) {\n return Data_Ordering.EQ.value;\n };\n throw new Error(\"Failed pattern match at Web.UIEvent.KeyboardEvent (line 0, column 0 - line 0, column 0): \" + [ x.constructor.name, y.constructor.name ]);\n };\n },\n Eq0: function () {\n return eqKeyLocation;\n }\n};\nvar enumKeyLocation = {\n succ: /* #__PURE__ */ Data_Enum.defaultSucc(toEnumKeyLocation)(fromEnumKeyLocation),\n pred: /* #__PURE__ */ Data_Enum.defaultPred(toEnumKeyLocation)(fromEnumKeyLocation),\n Ord0: function () {\n return ordKeyLocation;\n }\n};\nvar boundedKeyLocation = /* #__PURE__ */ (function () {\n return {\n bottom: Standard.value,\n top: Numpad.value,\n Ord0: function () {\n return ordKeyLocation;\n }\n };\n})();\nvar boundedEnumKeyLocation = {\n cardinality: 4,\n toEnum: toEnumKeyLocation,\n fromEnum: fromEnumKeyLocation,\n Bounded0: function () {\n return boundedKeyLocation;\n },\n Enum1: function () {\n return enumKeyLocation;\n }\n};\nvar location = function () {\n var $12 = Data_Maybe.fromJust();\n var $13 = Data_Enum.toEnum(boundedEnumKeyLocation);\n return function ($14) {\n return $12($13($foreign.locationIndex($14)));\n };\n};\nexport {\n key,\n code,\n locationIndex,\n ctrlKey,\n shiftKey,\n altKey,\n metaKey,\n repeat,\n isComposing,\n getModifierState\n} from \"./foreign.js\";\nexport {\n fromUIEvent,\n fromEvent,\n toUIEvent,\n toEvent,\n location,\n Standard,\n Left,\n Right,\n Numpad,\n toEnumKeyLocation,\n fromEnumKeyLocation,\n eqKeyLocation,\n ordKeyLocation,\n boundedKeyLocation,\n enumKeyLocation,\n boundedEnumKeyLocation\n};\n","// Generated by purs version 0.15.2\nimport * as AppActions from \"../AppActions/index.js\";\nimport * as AppState from \"../AppState/index.js\";\nimport * as AutoscrollSpeed from \"../AutoscrollSpeed/index.js\";\nimport * as Cache from \"../Cache/index.js\";\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Apply from \"../Control.Apply/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Data_Array from \"../Data.Array/index.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Lens_Getter from \"../Data.Lens.Getter/index.js\";\nimport * as Data_Lens_Internal_Forget from \"../Data.Lens.Internal.Forget/index.js\";\nimport * as Data_List_Types from \"../Data.List.Types/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Number_Format from \"../Data.Number.Format/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nimport * as Data_Show from \"../Data.Show/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nimport * as Effect from \"../Effect/index.js\";\nimport * as Effect_Class from \"../Effect.Class/index.js\";\nimport * as Effect_Console from \"../Effect.Console/index.js\";\nimport * as Effect_Timer from \"../Effect.Timer/index.js\";\nimport * as Halogen_HTML_Core from \"../Halogen.HTML.Core/index.js\";\nimport * as Halogen_HTML_Elements from \"../Halogen.HTML.Elements/index.js\";\nimport * as Halogen_HTML_Events from \"../Halogen.HTML.Events/index.js\";\nimport * as Halogen_HTML_Properties from \"../Halogen.HTML.Properties/index.js\";\nimport * as Halogen_Query from \"../Halogen.Query/index.js\";\nimport * as Halogen_Query_HalogenM from \"../Halogen.Query.HalogenM/index.js\";\nimport * as HalogenUtils from \"../HalogenUtils/index.js\";\nimport * as TablatureDocument from \"../TablatureDocument/index.js\";\nimport * as TablatureRenderer from \"../TablatureRenderer/index.js\";\nimport * as TablatureRewriter from \"../TablatureRewriter/index.js\";\nimport * as Utils from \"../Utils/index.js\";\nimport * as Web_DOM_Element from \"../Web.DOM.Element/index.js\";\nimport * as Web_HTML_HTMLElement from \"../Web.HTML.HTMLElement/index.js\";\nimport * as Web_HTML_HTMLInputElement from \"../Web.HTML.HTMLInputElement/index.js\";\nimport * as Web_HTML_HTMLTextAreaElement from \"../Web.HTML.HTMLTextAreaElement/index.js\";\nimport * as Web_UIEvent_KeyboardEvent from \"../Web.UIEvent.KeyboardEvent/index.js\";\nvar stopAutoscroll = function (dictMonadEffect) {\n return function (dictMonadState) {\n return Control_Bind.bind((dictMonadEffect.Monad0()).Bind1())(AppState.viewState(dictMonadState)(function (dictStrong) {\n return AppState[\"_autoscrollTimer\"](dictStrong);\n }))(function (autoscrollTimer) {\n if (autoscrollTimer instanceof Data_Maybe.Nothing) {\n return Control_Applicative.pure((dictMonadEffect.Monad0()).Applicative0())(Data_Unit.unit);\n };\n if (autoscrollTimer instanceof Data_Maybe.Just) {\n return Control_Bind.discard(Control_Bind.discardUnit)((dictMonadEffect.Monad0()).Bind1())(Effect_Class.liftEffect(dictMonadEffect)(Effect_Timer.clearInterval(autoscrollTimer.value0)))(function () {\n return AppState.setState(dictMonadState)(function (dictStrong) {\n return AppState[\"_autoscrollTimer\"](dictStrong);\n })(Data_Maybe.Nothing.value);\n });\n };\n throw new Error(\"Failed pattern match at AppHtml (line 426, column 3 - line 430, column 40): \" + [ autoscrollTimer.constructor.name ]);\n });\n };\n};\nvar startAutoscrollOnElement = function (dictMonadEffect) {\n return function (dictMonadState) {\n return function (elem) {\n return Control_Bind.bind((dictMonadEffect.Monad0()).Bind1())(AppState.viewState(dictMonadState)(function (dictStrong) {\n return AppState[\"_autoscrollSpeed\"](dictStrong);\n }))(function (autoscrollSpeed) {\n return Control_Bind.bind((dictMonadEffect.Monad0()).Bind1())(Effect_Class.liftEffect(dictMonadEffect)(Effect_Timer.setInterval(AutoscrollSpeed.speedToIntervalMs(autoscrollSpeed))(HalogenUtils.scrollBy(0)(AutoscrollSpeed.speedToIntervalPixelDelta(autoscrollSpeed))(elem))))(function (intervalId) {\n return AppState.setState(dictMonadState)(function (dictStrong) {\n return AppState[\"_autoscrollTimer\"](dictStrong);\n })(new Data_Maybe.Just(intervalId));\n });\n });\n };\n };\n};\nvar refTablatureViewer = \"tablatureViewer\";\nvar refTablatureSearchInput = \"tablatureSearchInput\";\nvar refTablatureEditor = \"tablatureEditor\";\nvar render = function (state) {\n var toggleButtonTitle = (function () {\n var v = Data_Lens_Getter.view(AppState[\"_mode\"](Data_Lens_Internal_Forget.strongForget))(state);\n if (v instanceof AppState.EditMode) {\n return \"Save tablature\";\n };\n return \"Edit tablature\";\n })();\n var renderViewMenu = Halogen_HTML_Elements.div([ HalogenUtils.classString(\"dropdown-menu\") ])([ Halogen_HTML_Elements.div([ HalogenUtils.classString(\"dropdown-item\") ])([ Halogen_HTML_Elements.button([ Halogen_HTML_Properties.title(\"Toggle normalization for tabs on or off\"), Halogen_HTML_Events.onClick(function (v) {\n return AppActions.ToggleTabNormalization.value;\n }) ])([ (function () {\n var $48 = Cache.peek(AppState[\"_tabNormalizationEnabled\"])(state);\n if ($48) {\n return HalogenUtils.fontAwesome(\"fa-toggle-on\");\n };\n return HalogenUtils.fontAwesome(\"fa-toggle-off\");\n })() ]), Halogen_HTML_Elements.div_([ Halogen_HTML_Core.text(\"Normalize tabs\") ]) ]), Halogen_HTML_Elements.div([ HalogenUtils.classString(\"dropdown-item\") ])([ (function () {\n var $49 = Cache.peek(AppState[\"_ignoreDozenalization\"])(state);\n if ($49) {\n return Halogen_HTML_Elements.button([ Halogen_HTML_Properties.title(\"Tablature is already dozenal\"), HalogenUtils.classString(\"disabled\") ])([ HalogenUtils.fontAwesome(\"fa-toggle-off\") ]);\n };\n return Halogen_HTML_Elements.button([ Halogen_HTML_Properties.title(\"Toggle decimal to dozenal conversion for tabs on or off\"), Halogen_HTML_Events.onClick(function (v) {\n return AppActions.ToggleTabDozenalization.value;\n }) ])([ (function () {\n var $50 = Cache.peek(AppState[\"_tabDozenalizationEnabled\"])(state);\n if ($50) {\n return HalogenUtils.fontAwesome(\"fa-toggle-on\");\n };\n return HalogenUtils.fontAwesome(\"fa-toggle-off\");\n })() ]);\n })(), Halogen_HTML_Elements.div_([ Halogen_HTML_Core.text(\"Dozenalize tabs\") ]) ]), Halogen_HTML_Elements.div([ HalogenUtils.classString(\"dropdown-item\") ])([ Halogen_HTML_Elements.button([ Halogen_HTML_Properties.title(\"Toggle normalization for chords on or off\"), Halogen_HTML_Events.onClick(function (v) {\n return AppActions.ToggleChordNormalization.value;\n }) ])([ (function () {\n var $51 = Cache.peek(AppState[\"_chordNormalizationEnabled\"])(state);\n if ($51) {\n return HalogenUtils.fontAwesome(\"fa-toggle-on\");\n };\n return HalogenUtils.fontAwesome(\"fa-toggle-off\");\n })() ]), Halogen_HTML_Elements.div_([ Halogen_HTML_Core.text(\"Normalize chords\") ]) ]), Halogen_HTML_Elements.div([ HalogenUtils.classString(\"dropdown-item\") ])([ (function () {\n var $52 = Cache.peek(AppState[\"_ignoreDozenalization\"])(state);\n if ($52) {\n return Halogen_HTML_Elements.button([ Halogen_HTML_Properties.title(\"Tablature is already dozenal\"), HalogenUtils.classString(\"disabled\") ])([ HalogenUtils.fontAwesome(\"fa-toggle-off\") ]);\n };\n return Halogen_HTML_Elements.button([ Halogen_HTML_Properties.title(\"Toggle decimal to dozenal conversion for chords on or off\"), Halogen_HTML_Events.onClick(function (v) {\n return AppActions.ToggleChordDozenalization.value;\n }) ])([ (function () {\n var $53 = Cache.peek(AppState[\"_chordDozenalizationEnabled\"])(state);\n if ($53) {\n return HalogenUtils.fontAwesome(\"fa-toggle-on\");\n };\n return HalogenUtils.fontAwesome(\"fa-toggle-off\");\n })() ]);\n })(), Halogen_HTML_Elements.div_([ Halogen_HTML_Core.text(\" Dozenalize chords\") ]) ]), Halogen_HTML_Elements.div([ Halogen_HTML_Properties.title(\"Transpose the tablature\"), HalogenUtils.classString(\"dropdown-item\") ])([ Halogen_HTML_Elements.button([ Halogen_HTML_Properties.title(\"Transpose down\"), Halogen_HTML_Events.onClick(function (v) {\n return AppActions.DecreaseTransposition.value;\n }) ])([ HalogenUtils.fontAwesome(\"fa-caret-down\") ]), Halogen_HTML_Elements.button([ Halogen_HTML_Properties.title(\"Transpose up\"), Halogen_HTML_Events.onClick(function (v) {\n return AppActions.IncreaseTransposition.value;\n }) ])([ HalogenUtils.fontAwesome(\"fa-caret-up\") ]), Halogen_HTML_Elements.div_([ Halogen_HTML_Core.text(\"Transpose \" + Data_Show.show(TablatureDocument.showTransposition)((Cache.peek(AppState[\"_urlParams\"])(state)).transposition)) ]) ]), Halogen_HTML_Elements.div([ Halogen_HTML_Properties.title(\"Preferred note orientation\"), HalogenUtils.classString(\"dropdown-item\") ])((function () {\n var noteOrientation = (Cache.peek(AppState[\"_urlParams\"])(state)).noteOrientation;\n return [ Halogen_HTML_Elements.button([ Halogen_HTML_Properties.title(\"default\"), Halogen_HTML_Events.onClick(function (v) {\n return AppActions.DefaultNoteOrientation.value;\n }), (function () {\n var $54 = Data_Eq.eq(TablatureRewriter.eqNoteOrientation)(noteOrientation)(TablatureRewriter.Default.value);\n if ($54) {\n return HalogenUtils.classString(\"selected\");\n };\n return HalogenUtils.classString(\"\");\n })() ])([ Halogen_HTML_Core.text(\"default\") ]), Halogen_HTML_Elements.button([ Halogen_HTML_Properties.title(\"Prefer flat\"), Halogen_HTML_Events.onClick(function (v) {\n return AppActions.FlatNoteOrientation.value;\n }), (function () {\n var $55 = Data_Eq.eq(TablatureRewriter.eqNoteOrientation)(noteOrientation)(TablatureRewriter.Flat.value);\n if ($55) {\n return HalogenUtils.classString(\"selected\");\n };\n return HalogenUtils.classString(\"\");\n })() ])([ Halogen_HTML_Core.text(\"flat\") ]), Halogen_HTML_Elements.button([ Halogen_HTML_Properties.title(\"Prefer sharp\"), Halogen_HTML_Events.onClick(function (v) {\n return AppActions.SharpNoteOrientation.value;\n }), (function () {\n var $56 = Data_Eq.eq(TablatureRewriter.eqNoteOrientation)(noteOrientation)(TablatureRewriter.Sharp.value);\n if ($56) {\n return HalogenUtils.classString(\"selected\");\n };\n return HalogenUtils.classString(\"\");\n })() ])([ Halogen_HTML_Core.text(\"sharp\") ]), Halogen_HTML_Elements.div_([ Halogen_HTML_Core.text(\"Note orientation\") ]) ];\n })()), Halogen_HTML_Elements.div([ Halogen_HTML_Properties.title(\"Change the autoscroll speed\"), HalogenUtils.classString(\"dropdown-item\") ])([ Halogen_HTML_Elements.button([ Halogen_HTML_Properties.title(\"Decrease the autoscroll speed\"), Halogen_HTML_Events.onClick(function (v) {\n return AppActions.DecreaseAutoscrollSpeed.value;\n }) ])([ HalogenUtils.fontAwesome(\"fa-backward\") ]), Halogen_HTML_Elements.button([ Halogen_HTML_Properties.title(\"Increase the autoscroll speed\"), Halogen_HTML_Events.onClick(function (v) {\n return AppActions.IncreaseAutoscrollSpeed.value;\n }) ])([ HalogenUtils.fontAwesome(\"fa-forward\") ]), Halogen_HTML_Elements.div_([ Halogen_HTML_Core.text(\"Autoscroll speed \" + Utils.print(AutoscrollSpeed.printAutoscrollSpeed)(Data_Lens_Getter.view(AppState[\"_autoscrollSpeed\"](Data_Lens_Internal_Forget.strongForget))(state))) ]) ]) ]);\n var renderTitle = Halogen_HTML_Elements.div([ HalogenUtils.classString(\"title largeViewport\") ])([ Halogen_HTML_Elements.a([ Halogen_HTML_Properties.href(\"https://github.com/tablature-viewer/tablature-viewer.github.io\"), Halogen_HTML_Properties.target(\"_blank\") ])([ Halogen_HTML_Elements.h1_([ Halogen_HTML_Core.text(\"Tablature Viewer\") ]) ]) ]);\n var renderTablature = Data_Array.fromFoldable(Data_List_Types.foldableList)(TablatureRenderer.renderTablatureDocument(Cache.peek(AppState[\"_rewriteResult\"])(state)));\n var renderSearchResult = function (searchResult) {\n return Halogen_HTML_Elements.tr([ Halogen_HTML_Events.onClick(function (v) {\n return new AppActions.ImportFromUrl(searchResult.url);\n }), Halogen_HTML_Events.onKeyDown(function (e) {\n var $57 = Web_UIEvent_KeyboardEvent.key(e) === \"Enter\" || Web_UIEvent_KeyboardEvent.key(e) === \" \";\n if ($57) {\n return new AppActions.ImportFromUrl(searchResult.url);\n };\n return AppActions.NoAction.value;\n }), Halogen_HTML_Properties.tabIndex(0) ])([ Halogen_HTML_Elements.td([ ])([ Halogen_HTML_Core.text(searchResult.name) ]), Halogen_HTML_Elements.td([ ])([ Halogen_HTML_Core.text(searchResult.artist) ]), Halogen_HTML_Elements.td([ ])([ Halogen_HTML_Core.text(Data_Maybe.fromMaybe(\"\")(Data_Functor.mapFlipped(Data_Maybe.functorMaybe)(searchResult.rating)(Data_Number_Format.toStringWith(Data_Number_Format.precision(3))))) ]), Halogen_HTML_Elements.td([ ])([ Halogen_HTML_Core.text(Data_Maybe.fromMaybe(\"\")(searchResult.contentType)) ]) ]);\n };\n var renderSearchResults = Halogen_HTML_Elements.div([ HalogenUtils.classString(\"searchResults\") ])([ (function () {\n var v = Data_Lens_Getter.view(AppState[\"_searchResults\"](Data_Lens_Internal_Forget.strongForget))(state);\n if (v instanceof Data_Maybe.Nothing) {\n return Halogen_HTML_Elements.span([ ])([ Halogen_HTML_Core.text(\"Type something in the search bar\") ]);\n };\n if (v instanceof Data_Maybe.Just && v.value0.length === 0) {\n return Halogen_HTML_Elements.span([ ])([ Halogen_HTML_Core.text(\"No search results\") ]);\n };\n if (v instanceof Data_Maybe.Just) {\n return Halogen_HTML_Elements.table([ ])(Data_Semigroup.append(Data_Semigroup.semigroupArray)([ Halogen_HTML_Elements.th([ ])([ Halogen_HTML_Core.text(\"Song\") ]), Halogen_HTML_Elements.th([ ])([ Halogen_HTML_Core.text(\"Artist\") ]), Halogen_HTML_Elements.th([ ])([ Halogen_HTML_Core.text(\"Rating\") ]), Halogen_HTML_Elements.th([ ])([ Halogen_HTML_Core.text(\"Type\") ]) ])(Data_Functor.mapFlipped(Data_Functor.functorArray)(v.value0)(renderSearchResult)));\n };\n throw new Error(\"Failed pattern match at AppHtml (line 98, column 7 - line 107, column 12): \" + [ v.constructor.name ]);\n })() ]);\n var renderSearchBar = Halogen_HTML_Elements.input([ Halogen_HTML_Properties.ref(refTablatureSearchInput), Halogen_HTML_Events.onValueChange(AppActions.SearchInput.create), HalogenUtils.classString(\"searchBar\") ]);\n var renderLoadingIcon = Halogen_HTML_Elements.div([ HalogenUtils.classString(\"loadingIcon lds-ellipsis\") ])((function () {\n var $61 = Data_Lens_Getter.view(AppState[\"_loading\"](Data_Lens_Internal_Forget.strongForget))(state);\n if ($61) {\n return [ Halogen_HTML_Elements.div_([ ]), Halogen_HTML_Elements.div_([ ]), Halogen_HTML_Elements.div_([ ]), Halogen_HTML_Elements.div_([ ]) ];\n };\n return [ ];\n })());\n var renderFileMenu = Halogen_HTML_Elements.div([ HalogenUtils.classString(\"dropdown-menu\") ])([ Halogen_HTML_Elements.div([ HalogenUtils.classString((function () {\n var $62 = Data_Eq.notEq(AppState.eqMode)(Data_Lens_Getter.view(AppState[\"_mode\"](Data_Lens_Internal_Forget.strongForget))(state))(AppState.ViewMode.value);\n if ($62) {\n return \"hidden\";\n };\n return \"dropdown-item\";\n })()) ])([ Halogen_HTML_Elements.button([ Halogen_HTML_Properties.title(toggleButtonTitle), Halogen_HTML_Events.onClick(function (v) {\n return AppActions.ToggleEditMode.value;\n }) ])([ HalogenUtils.fontAwesome(\"fa-edit\") ]), Halogen_HTML_Elements.div_([ Halogen_HTML_Core.text(\"Edit tablature\") ]) ]), Halogen_HTML_Elements.div([ HalogenUtils.classString(\"dropdown-item\") ])([ Halogen_HTML_Elements.a([ Halogen_HTML_Properties.href(\"./\"), Halogen_HTML_Properties.target(\"_blank\"), Halogen_HTML_Properties.tabIndex(-1 | 0) ])([ Halogen_HTML_Elements.button([ Halogen_HTML_Properties.title(\"Open an empty tablature in a new browser tab\") ])([ HalogenUtils.fontAwesome(\"fa-plus\") ]) ]), Halogen_HTML_Elements.div_([ Halogen_HTML_Core.text(\"New tablature\") ]) ]), Halogen_HTML_Elements.div([ HalogenUtils.classString(\"dropdown-item\") ])([ Halogen_HTML_Elements.button([ Halogen_HTML_Properties.title(\"Create a short link to the tablature for sharing with other people\"), Halogen_HTML_Events.onClick(function (v) {\n return AppActions.CreateShortUrl.value;\n }) ])([ HalogenUtils.fontAwesome(\"fa-share\") ]), Halogen_HTML_Elements.div_([ Halogen_HTML_Core.text(\"Share tablature\") ]) ]) ]);\n var renderControls = Halogen_HTML_Elements.div([ HalogenUtils.classString(\"controls\") ])([ Halogen_HTML_Elements.div([ HalogenUtils.classString((function () {\n var $63 = Data_Eq.notEq(AppState.eqMode)(Data_Lens_Getter.view(AppState[\"_mode\"](Data_Lens_Internal_Forget.strongForget))(state))(AppState.ViewMode.value);\n if ($63) {\n return \"hidden\";\n };\n return \"dropdown-container\";\n })()) ])([ Halogen_HTML_Elements.button([ Halogen_HTML_Properties.title(\"File\"), Halogen_HTML_Events.onClick(function (v) {\n return AppActions.ClickFileMenu.value;\n }), HalogenUtils.classString(\"header-button dropdown-header\"), (function () {\n var $64 = Data_Eq.notEq(AppState.eqActiveMenu)(Data_Lens_Getter.view(AppState[\"_activeMenu\"](Data_Lens_Internal_Forget.strongForget))(state))(AppState.FileMenu.value);\n if ($64) {\n return HalogenUtils.classString(\"header-button dropdown-header\");\n };\n return HalogenUtils.classString(\"header-button dropdown-header selected\");\n })() ])([ HalogenUtils.fontAwesome(\"fa-file\"), HalogenUtils.optionalText(\" File\") ]), (function () {\n var $65 = Data_Eq.notEq(AppState.eqActiveMenu)(Data_Lens_Getter.view(AppState[\"_activeMenu\"](Data_Lens_Internal_Forget.strongForget))(state))(AppState.FileMenu.value);\n if ($65) {\n return Halogen_HTML_Elements.div([ ])([ ]);\n };\n return renderFileMenu;\n })() ]), Halogen_HTML_Elements.button([ Halogen_HTML_Properties.title(toggleButtonTitle), Halogen_HTML_Events.onClick(function (v) {\n return AppActions.ToggleEditMode.value;\n }), HalogenUtils.classString((function () {\n var $66 = Data_Eq.notEq(AppState.eqMode)(Data_Lens_Getter.view(AppState[\"_mode\"](Data_Lens_Internal_Forget.strongForget))(state))(AppState.EditMode.value);\n if ($66) {\n return \"hidden\";\n };\n return \"header-button\";\n })()) ])([ HalogenUtils.fontAwesome(\"fa-save\"), HalogenUtils.optionalText(\" Save\") ]), Halogen_HTML_Elements.div([ HalogenUtils.classString((function () {\n var $67 = Data_Eq.notEq(AppState.eqMode)(Data_Lens_Getter.view(AppState[\"_mode\"](Data_Lens_Internal_Forget.strongForget))(state))(AppState.ViewMode.value);\n if ($67) {\n return \"hidden\";\n };\n return \"dropdown-container\";\n })()) ])([ Halogen_HTML_Elements.button([ Halogen_HTML_Properties.title(\"View\"), Halogen_HTML_Events.onClick(function (v) {\n return AppActions.ClickSettingsMenu.value;\n }), (function () {\n var $68 = Data_Eq.notEq(AppState.eqActiveMenu)(Data_Lens_Getter.view(AppState[\"_activeMenu\"](Data_Lens_Internal_Forget.strongForget))(state))(AppState.SettingsMenu.value);\n if ($68) {\n return HalogenUtils.classString(\"header-button dropdown-header\");\n };\n return HalogenUtils.classString(\"header-button dropdown-header selected\");\n })() ])([ HalogenUtils.fontAwesome(\"fa-wrench\"), HalogenUtils.optionalText(\" View\") ]), (function () {\n var $69 = Data_Eq.notEq(AppState.eqActiveMenu)(Data_Lens_Getter.view(AppState[\"_activeMenu\"](Data_Lens_Internal_Forget.strongForget))(state))(AppState.SettingsMenu.value);\n if ($69) {\n return Halogen_HTML_Elements.div([ ])([ ]);\n };\n return renderViewMenu;\n })() ]), Halogen_HTML_Elements.button([ Halogen_HTML_Properties.title(\"Toggle search mode\"), Halogen_HTML_Events.onClick(function (v) {\n return AppActions.ToggleSearch.value;\n }), HalogenUtils.classString(\"header-button\") ])([ (function () {\n var $70 = Data_Eq.eq(AppState.eqMode)(Data_Lens_Getter.view(AppState[\"_mode\"](Data_Lens_Internal_Forget.strongForget))(state))(AppState.SearchMode.value);\n if ($70) {\n return HalogenUtils.fontAwesome(\"fa-chevron-left\");\n };\n return HalogenUtils.fontAwesome(\"fa-search\");\n })(), (function () {\n var $71 = Data_Eq.eq(AppState.eqMode)(Data_Lens_Getter.view(AppState[\"_mode\"](Data_Lens_Internal_Forget.strongForget))(state))(AppState.SearchMode.value);\n if ($71) {\n return HalogenUtils.optionalText(\" Exit Search\");\n };\n return HalogenUtils.optionalText(\" Search\");\n })() ]), Halogen_HTML_Elements.button([ Halogen_HTML_Properties.title(\"Toggle autoscrolling\"), Halogen_HTML_Events.onClick(function (v) {\n return AppActions.ToggleAutoscroll.value;\n }), HalogenUtils.classString((function () {\n var $72 = Data_Eq.notEq(AppState.eqMode)(Data_Lens_Getter.view(AppState[\"_mode\"](Data_Lens_Internal_Forget.strongForget))(state))(AppState.ViewMode.value);\n if ($72) {\n return \"hidden\";\n };\n return \"header-button\";\n })()) ])((function () {\n var $73 = Data_Lens_Getter.view(AppState[\"_autoscroll\"](Data_Lens_Internal_Forget.strongForget))(state);\n if ($73) {\n return [ HalogenUtils.fontAwesome(\"fa-stop\"), HalogenUtils.optionalText(\" Autoscroll\") ];\n };\n return [ HalogenUtils.fontAwesome(\"fa-play\"), HalogenUtils.optionalText(\" Autoscroll\") ];\n })()), Halogen_HTML_Elements.a([ Halogen_HTML_Properties.href(\"https://github.com/tablature-viewer/tablature-viewer.github.io\"), Halogen_HTML_Properties.target(\"_blank\"), Halogen_HTML_Properties.tabIndex(-1 | 0), HalogenUtils.classString(\"header-button\") ])([ Halogen_HTML_Elements.button([ Halogen_HTML_Properties.title(\"Open the README in a new browser tab\") ])([ HalogenUtils.fontAwesome(\"fa-question\"), HalogenUtils.optionalText(\" Readme\") ]) ]) ]);\n var renderHeader = Halogen_HTML_Elements.div([ HalogenUtils.classString(\"header\") ])([ renderTitle, renderControls, renderLoadingIcon ]);\n var clickNoMenuEvent = (function () {\n var $74 = Data_Eq.notEq(AppState.eqActiveMenu)(Data_Lens_Getter.view(AppState[\"_activeMenu\"](Data_Lens_Internal_Forget.strongForget))(state))(AppState.NoMenu.value);\n if ($74) {\n return [ Halogen_HTML_Events.onClick(function (v) {\n return AppActions.ClickNoMenu.value;\n }) ];\n };\n return [ ];\n })();\n var renderBody = (function () {\n var v = Data_Lens_Getter.view(AppState[\"_mode\"](Data_Lens_Internal_Forget.strongForget))(state);\n if (v instanceof AppState.ViewMode) {\n return Halogen_HTML_Elements.div(Data_Semigroup.append(Data_Semigroup.semigroupArray)([ HalogenUtils.classString(\"tablatureViewer tablature\"), Halogen_HTML_Properties.ref(refTablatureViewer), Halogen_HTML_Properties.tabIndex(1) ])(clickNoMenuEvent))([ Halogen_HTML_Elements.pre_(renderTablature) ]);\n };\n if (v instanceof AppState.EditMode) {\n return Halogen_HTML_Elements.textarea(Data_Semigroup.append(Data_Semigroup.semigroupArray)([ Halogen_HTML_Properties.ref(refTablatureEditor), Halogen_HTML_Properties.tabIndex(1), HalogenUtils.classString(\"tablatureEditor\"), Halogen_HTML_Properties.placeholder(\"Paste your plaintext tablature or chord sheet here, click 'Save' and bookmark it\"), Halogen_HTML_Properties.spellcheck(false) ])(clickNoMenuEvent));\n };\n if (v instanceof AppState.SearchMode) {\n return Halogen_HTML_Elements.div(Data_Semigroup.append(Data_Semigroup.semigroupArray)([ HalogenUtils.classString(\"tablatureSearch\"), Halogen_HTML_Properties.tabIndex(1) ])(clickNoMenuEvent))([ renderSearchBar, renderSearchResults ]);\n };\n throw new Error(\"Failed pattern match at AppHtml (line 63, column 16 - line 88, column 49): \" + [ v.constructor.name ]);\n })();\n return Halogen_HTML_Elements.div_([ Halogen_HTML_Elements.div([ HalogenUtils.classString(\"app\") ])([ renderHeader, renderBody ]), Halogen_HTML_Elements.div([ HalogenUtils.classString(\"tablaturePrinter tablature\") ])([ Halogen_HTML_Elements.pre_(renderTablature) ]) ]);\n};\nvar getTablatureEditorElement = function (dictMonadEffect) {\n return Data_Functor.mapFlipped(Halogen_Query_HalogenM.functorHalogenM)(Halogen_Query.getHTMLElementRef(refTablatureEditor))(function (maybeHtmlElement) {\n return Control_Bind.bind(Data_Maybe.bindMaybe)(maybeHtmlElement)(Web_HTML_HTMLTextAreaElement.fromHTMLElement);\n });\n};\nvar getTablatureTextFromEditor = function (dictMonadEffect) {\n return Control_Bind.bind(Halogen_Query_HalogenM.bindHalogenM)(getTablatureEditorElement(dictMonadEffect))(function (maybeTextArea) {\n if (maybeTextArea instanceof Data_Maybe.Nothing) {\n return Effect_Class.liftEffect(Halogen_Query_HalogenM.monadEffectHalogenM(dictMonadEffect))(Control_Apply.applySecond(Effect.applyEffect)(Effect_Console.error(\"Could not find textareaTablature\"))(Control_Applicative.pure(Effect.applicativeEffect)(\"\")));\n };\n if (maybeTextArea instanceof Data_Maybe.Just) {\n return Effect_Class.liftEffect(Halogen_Query_HalogenM.monadEffectHalogenM(dictMonadEffect))(Web_HTML_HTMLTextAreaElement.value(maybeTextArea.value0));\n };\n throw new Error(\"Failed pattern match at AppHtml (line 369, column 3 - line 371, column 72): \" + [ maybeTextArea.constructor.name ]);\n });\n};\nvar setTablatureTextInEditor = function (dictMonadEffect) {\n return function (text) {\n return Control_Bind.bind(Halogen_Query_HalogenM.bindHalogenM)(getTablatureEditorElement(dictMonadEffect))(function (maybeTextArea) {\n if (maybeTextArea instanceof Data_Maybe.Nothing) {\n return Effect_Class.liftEffect(Halogen_Query_HalogenM.monadEffectHalogenM(dictMonadEffect))(Control_Apply.applySecond(Effect.applyEffect)(Effect_Console.error(\"Could not find textareaTablature to set text\"))(Control_Applicative.pure(Effect.applicativeEffect)(Data_Unit.unit)));\n };\n if (maybeTextArea instanceof Data_Maybe.Just) {\n return Effect_Class.liftEffect(Halogen_Query_HalogenM.monadEffectHalogenM(dictMonadEffect))(Web_HTML_HTMLTextAreaElement.setValue(text)(maybeTextArea.value0));\n };\n throw new Error(\"Failed pattern match at AppHtml (line 419, column 3 - line 421, column 80): \" + [ maybeTextArea.constructor.name ]);\n });\n };\n};\nvar getTablatureContainerHtmlElement = function (dictMonadEffect) {\n return Control_Bind.bind(Halogen_Query_HalogenM.bindHalogenM)(AppState.viewState(Halogen_Query_HalogenM.monadStateHalogenM)(function (dictStrong) {\n return AppState[\"_mode\"](dictStrong);\n }))(function (mode) {\n if (mode instanceof AppState.EditMode) {\n return Halogen_Query.getHTMLElementRef(refTablatureEditor);\n };\n if (mode instanceof AppState.ViewMode) {\n return Halogen_Query.getHTMLElementRef(refTablatureViewer);\n };\n if (mode instanceof AppState.SearchMode) {\n return Control_Applicative.pure(Halogen_Query_HalogenM.applicativeHalogenM)(Data_Maybe.Nothing.value);\n };\n throw new Error(\"Failed pattern match at AppHtml (line 376, column 3 - line 379, column 31): \" + [ mode.constructor.name ]);\n });\n};\nvar getTablatureContainerElement = function (dictMonadEffect) {\n return Data_Functor.mapFlipped(Halogen_Query_HalogenM.functorHalogenM)(getTablatureContainerHtmlElement(dictMonadEffect))(Data_Functor.map(Data_Maybe.functorMaybe)(Web_HTML_HTMLElement.toElement));\n};\nvar loadScrollTop = function (dictMonadEffect) {\n return Control_Bind.bind(Halogen_Query_HalogenM.bindHalogenM)(getTablatureContainerElement(dictMonadEffect))(function (maybeTablatureContainerElem) {\n if (maybeTablatureContainerElem instanceof Data_Maybe.Nothing) {\n return Effect_Class.liftEffect(Halogen_Query_HalogenM.monadEffectHalogenM(dictMonadEffect))(Effect_Console.error(\"Could not find tablatureContainer to load scroll top\"));\n };\n if (maybeTablatureContainerElem instanceof Data_Maybe.Just) {\n return Control_Bind.bind(Halogen_Query_HalogenM.bindHalogenM)(AppState.viewState(Halogen_Query_HalogenM.monadStateHalogenM)(function (dictStrong) {\n return AppState[\"_scrollTop\"](dictStrong);\n }))(function (scrollTop) {\n return Effect_Class.liftEffect(Halogen_Query_HalogenM.monadEffectHalogenM(dictMonadEffect))(Web_DOM_Element.setScrollTop(scrollTop)(maybeTablatureContainerElem.value0));\n });\n };\n throw new Error(\"Failed pattern match at AppHtml (line 396, column 3 - line 400, column 65): \" + [ maybeTablatureContainerElem.constructor.name ]);\n });\n};\nvar saveScrollTop = function (dictMonadEffect) {\n return Control_Bind.bind(Halogen_Query_HalogenM.bindHalogenM)(getTablatureContainerElement(dictMonadEffect))(function (maybeTablatureContainerElem) {\n if (maybeTablatureContainerElem instanceof Data_Maybe.Nothing) {\n return Effect_Class.liftEffect(Halogen_Query_HalogenM.monadEffectHalogenM(dictMonadEffect))(Effect_Console.error(\"Could not find tablatureContainer to save scroll top\"));\n };\n if (maybeTablatureContainerElem instanceof Data_Maybe.Just) {\n return Control_Bind.bind(Halogen_Query_HalogenM.bindHalogenM)(Effect_Class.liftEffect(Halogen_Query_HalogenM.monadEffectHalogenM(dictMonadEffect))(Web_DOM_Element.scrollTop(maybeTablatureContainerElem.value0)))(function (newScrollTop) {\n return AppState.setState(Halogen_Query_HalogenM.monadStateHalogenM)(function (dictStrong) {\n return AppState[\"_scrollTop\"](dictStrong);\n })(newScrollTop);\n });\n };\n throw new Error(\"Failed pattern match at AppHtml (line 387, column 3 - line 391, column 39): \" + [ maybeTablatureContainerElem.constructor.name ]);\n });\n};\nvar getSearchInputHtmlElement = function (dictMonadEffect) {\n return Halogen_Query.getHTMLElementRef(refTablatureSearchInput);\n};\nvar getSearchInputElement = function (dictMonadEffect) {\n return Data_Functor.mapFlipped(Halogen_Query_HalogenM.functorHalogenM)(getSearchInputHtmlElement(dictMonadEffect))(function (maybeHtmlElement) {\n return Control_Bind.bind(Data_Maybe.bindMaybe)(maybeHtmlElement)(Web_HTML_HTMLInputElement.fromHTMLElement);\n });\n};\nvar focusTablatureContainer = function (dictMonadEffect) {\n return Control_Bind.bind(Halogen_Query_HalogenM.bindHalogenM)(getTablatureContainerHtmlElement(dictMonadEffect))(function (maybeTablatureContainerElem) {\n if (maybeTablatureContainerElem instanceof Data_Maybe.Nothing) {\n return Effect_Class.liftEffect(Halogen_Query_HalogenM.monadEffectHalogenM(dictMonadEffect))(Effect_Console.error(\"Could not find tablatureContainer to focus\"));\n };\n if (maybeTablatureContainerElem instanceof Data_Maybe.Just) {\n return Effect_Class.liftEffect(Halogen_Query_HalogenM.monadEffectHalogenM(dictMonadEffect))(Web_HTML_HTMLElement.focus(maybeTablatureContainerElem.value0));\n };\n throw new Error(\"Failed pattern match at AppHtml (line 412, column 3 - line 414, column 77): \" + [ maybeTablatureContainerElem.constructor.name ]);\n });\n};\nvar focusSearchInput = function (dictMonadEffect) {\n return Control_Bind.bind(Halogen_Query_HalogenM.bindHalogenM)(getSearchInputHtmlElement(dictMonadEffect))(function (maybeSearchInputElement) {\n if (maybeSearchInputElement instanceof Data_Maybe.Nothing) {\n return Effect_Class.liftEffect(Halogen_Query_HalogenM.monadEffectHalogenM(dictMonadEffect))(Effect_Console.error(\"Could not find search element to focus\"));\n };\n if (maybeSearchInputElement instanceof Data_Maybe.Just) {\n return Effect_Class.liftEffect(Halogen_Query_HalogenM.monadEffectHalogenM(dictMonadEffect))(Web_HTML_HTMLElement.focus(maybeSearchInputElement.value0));\n };\n throw new Error(\"Failed pattern match at AppHtml (line 405, column 3 - line 407, column 69): \" + [ maybeSearchInputElement.constructor.name ]);\n });\n};\nexport {\n refTablatureEditor,\n refTablatureViewer,\n refTablatureSearchInput,\n render,\n getSearchInputHtmlElement,\n getSearchInputElement,\n getTablatureEditorElement,\n getTablatureTextFromEditor,\n getTablatureContainerHtmlElement,\n getTablatureContainerElement,\n saveScrollTop,\n loadScrollTop,\n focusSearchInput,\n focusTablatureContainer,\n setTablatureTextInEditor,\n stopAutoscroll,\n startAutoscrollOnElement\n};\n","'use strict';\n\nfunction scrollBy(x) {\n return function (y) {\n return function (elt) {\n return function () {\n elt.scrollBy({\n top: y,\n left: x,\n behavior: 'instant'\n });\n };\n };\n };\n};\n\nexport { scrollBy }\n","const windowImpl = function () {\n return window;\n};\nexport { windowImpl as window };\n","// Generated by purs version 0.15.2\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Ordering from \"../Data.Ordering/index.js\";\nvar Loading = /* #__PURE__ */ (function () {\n function Loading() {\n\n };\n Loading.value = new Loading();\n return Loading;\n})();\nvar Interactive = /* #__PURE__ */ (function () {\n function Interactive() {\n\n };\n Interactive.value = new Interactive();\n return Interactive;\n})();\nvar Complete = /* #__PURE__ */ (function () {\n function Complete() {\n\n };\n Complete.value = new Complete();\n return Complete;\n})();\nvar showReadyState = {\n show: function (v) {\n if (v instanceof Loading) {\n return \"Loading\";\n };\n if (v instanceof Interactive) {\n return \"Interactive\";\n };\n if (v instanceof Complete) {\n return \"Complete\";\n };\n throw new Error(\"Failed pattern match at Web.HTML.HTMLDocument.ReadyState (line 15, column 10 - line 18, column 27): \" + [ v.constructor.name ]);\n }\n};\nvar print = function (v) {\n if (v instanceof Loading) {\n return \"loading\";\n };\n if (v instanceof Interactive) {\n return \"interactive\";\n };\n if (v instanceof Complete) {\n return \"complete\";\n };\n throw new Error(\"Failed pattern match at Web.HTML.HTMLDocument.ReadyState (line 21, column 9 - line 24, column 25): \" + [ v.constructor.name ]);\n};\nvar parse = function (v) {\n if (v === \"loading\") {\n return new Data_Maybe.Just(Loading.value);\n };\n if (v === \"interactive\") {\n return new Data_Maybe.Just(Interactive.value);\n };\n if (v === \"complete\") {\n return new Data_Maybe.Just(Complete.value);\n };\n return Data_Maybe.Nothing.value;\n};\nvar eqReadyState = {\n eq: function (x) {\n return function (y) {\n if (x instanceof Loading && y instanceof Loading) {\n return true;\n };\n if (x instanceof Interactive && y instanceof Interactive) {\n return true;\n };\n if (x instanceof Complete && y instanceof Complete) {\n return true;\n };\n return false;\n };\n }\n};\nvar ordReadyState = {\n compare: function (x) {\n return function (y) {\n if (x instanceof Loading && y instanceof Loading) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof Loading) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof Loading) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof Interactive && y instanceof Interactive) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof Interactive) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof Interactive) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof Complete && y instanceof Complete) {\n return Data_Ordering.EQ.value;\n };\n throw new Error(\"Failed pattern match at Web.HTML.HTMLDocument.ReadyState (line 0, column 0 - line 0, column 0): \" + [ x.constructor.name, y.constructor.name ]);\n };\n },\n Eq0: function () {\n return eqReadyState;\n }\n};\nexport {\n Loading,\n Interactive,\n Complete,\n print,\n parse,\n eqReadyState,\n ordReadyState,\n showReadyState\n};\n","// Generated by purs version 0.15.2\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Nullable from \"../Data.Nullable/index.js\";\nimport * as Effect from \"../Effect/index.js\";\nimport * as Unsafe_Coerce from \"../Unsafe.Coerce/index.js\";\nimport * as Web_HTML_HTMLDocument_ReadyState from \"../Web.HTML.HTMLDocument.ReadyState/index.js\";\nimport * as Web_Internal_FFI from \"../Web.Internal.FFI/index.js\";\nvar toParentNode = Unsafe_Coerce.unsafeCoerce;\nvar toNonElementParentNode = Unsafe_Coerce.unsafeCoerce;\nvar toNode = Unsafe_Coerce.unsafeCoerce;\nvar toEventTarget = Unsafe_Coerce.unsafeCoerce;\nvar toDocument = Unsafe_Coerce.unsafeCoerce;\nvar readyState = /* #__PURE__ */ (function () {\n var $0 = Data_Functor.map(Effect.functorEffect)((function () {\n var $2 = Data_Maybe.fromMaybe(Web_HTML_HTMLDocument_ReadyState.Loading.value);\n return function ($3) {\n return $2(Web_HTML_HTMLDocument_ReadyState.parse($3));\n };\n })());\n return function ($1) {\n return $0($foreign[\"_readyState\"]($1));\n };\n})();\nvar head = /* #__PURE__ */ (function () {\n var $4 = Data_Functor.map(Effect.functorEffect)(Data_Nullable.toMaybe);\n return function ($5) {\n return $4($foreign[\"_head\"]($5));\n };\n})();\nvar fromParentNode = /* #__PURE__ */ Web_Internal_FFI.unsafeReadProtoTagged(\"HTMLDocument\");\nvar fromNonElementParentNode = /* #__PURE__ */ Web_Internal_FFI.unsafeReadProtoTagged(\"HTMLDocument\");\nvar fromNode = /* #__PURE__ */ Web_Internal_FFI.unsafeReadProtoTagged(\"HTMLDocument\");\nvar fromEventTarget = /* #__PURE__ */ Web_Internal_FFI.unsafeReadProtoTagged(\"HTMLDocument\");\nvar fromDocument = /* #__PURE__ */ Web_Internal_FFI.unsafeReadProtoTagged(\"HTMLDocument\");\nvar documentElement = /* #__PURE__ */ (function () {\n var $6 = Data_Functor.map(Effect.functorEffect)(Data_Nullable.toMaybe);\n return function ($7) {\n return $6($foreign[\"_documentElement\"]($7));\n };\n})();\nvar currentScript = /* #__PURE__ */ (function () {\n var $8 = Data_Functor.map(Effect.functorEffect)(Data_Nullable.toMaybe);\n return function ($9) {\n return $8($foreign[\"_currentScript\"]($9));\n };\n})();\nvar body = /* #__PURE__ */ (function () {\n var $10 = Data_Functor.map(Effect.functorEffect)(Data_Nullable.toMaybe);\n return function ($11) {\n return $10($foreign[\"_body\"]($11));\n };\n})();\nvar activeElement = /* #__PURE__ */ (function () {\n var $12 = Data_Functor.map(Effect.functorEffect)(Data_Nullable.toMaybe);\n return function ($13) {\n return $12($foreign[\"_activeElement\"]($13));\n };\n})();\nexport {\n referrer,\n title,\n setTitle\n} from \"./foreign.js\";\nexport {\n fromDocument,\n fromNode,\n fromParentNode,\n fromNonElementParentNode,\n fromEventTarget,\n toDocument,\n toNode,\n toParentNode,\n toNonElementParentNode,\n toEventTarget,\n documentElement,\n head,\n body,\n readyState,\n activeElement,\n currentScript\n};\n","export function _documentElement(doc) {\n return function () {\n return doc.documentElement;\n };\n}\n\nexport function _head(doc) {\n return function () {\n return doc.head;\n };\n}\n\nexport function _body(doc) {\n return function () {\n return doc.body;\n };\n}\n\nexport function _readyState(doc) {\n return function () {\n return doc.readyState;\n };\n}\n\nexport function _activeElement(doc) {\n return function () {\n return doc.activeElement;\n };\n}\n\nexport function _currentScript(doc) {\n return function () {\n return doc.currentScript;\n };\n}\n\nexport function referrer(doc) {\n return function () {\n return doc.referrer;\n };\n}\n\nexport function title(doc) {\n return function () {\n return doc.title;\n };\n}\n\nexport function setTitle(title) {\n return function (doc) {\n return function () {\n doc.title = title;\n };\n };\n}\n","export function document(window) {\n return function () {\n return window.document;\n };\n}\n\nexport function navigator(window) {\n return function () {\n return window.navigator;\n };\n}\n\nexport function location(window) {\n return function () {\n return window.location;\n };\n}\n\nexport function history(window) {\n return function() {\n return window.history;\n };\n}\n\nexport function innerWidth(window) {\n return function () {\n return window.innerWidth;\n };\n}\n\nexport function innerHeight(window) {\n return function () {\n return window.innerHeight;\n };\n}\n\nexport function alert(str) {\n return function (window) {\n return function () {\n window.alert(str);\n };\n };\n}\n\nexport function confirm(str) {\n return function (window) {\n return function () {\n return window.confirm(str);\n };\n };\n}\n\nexport function moveBy(xDelta) {\n return function (yDelta) {\n return function (window) {\n return function () {\n window.moveBy(xDelta, yDelta);\n };\n };\n };\n}\n\nexport function moveTo(width) {\n return function (height) {\n return function (window) {\n return function () {\n window.moveTo(width, height);\n };\n };\n };\n}\n\nexport function _open(url) {\n return function (name) {\n return function (features) {\n return function (window) {\n return function () {\n return window.open(url, name, features);\n };\n };\n };\n };\n}\n\nexport function outerHeight(window) {\n return function () {\n return window.outerHeight;\n };\n}\n\nexport function outerWidth(window) {\n return function () {\n return window.outerWidth;\n };\n}\n\nexport function print(window) {\n return function () {\n window.print();\n };\n}\n\nexport function _prompt(str) {\n return function (defaultText) {\n return function (window) {\n return function () {\n return window.prompt(str, defaultText);\n };\n };\n };\n}\n\nexport function resizeBy(xDelta) {\n return function (yDelta) {\n return function (window) {\n return function () {\n window.resizeBy(xDelta, yDelta);\n };\n };\n };\n}\n\nexport function resizeTo(width) {\n return function (height) {\n return function (window) {\n return function () {\n window.resizeTo(width, height);\n };\n };\n };\n}\n\nexport function screenX(window) {\n return function () {\n return window.screenX;\n };\n}\n\nexport function screenY(window) {\n return function () {\n return window.screenY;\n };\n}\n\nexport function scroll(xCoord) {\n return function (yCoord) {\n return function (window) {\n return function () {\n window.scroll(xCoord, yCoord);\n };\n };\n };\n}\n\nexport function scrollBy(xCoord) {\n return function (yCoord) {\n return function (window) {\n return function () {\n window.scrollBy(xCoord, yCoord);\n };\n };\n };\n}\n\nexport function scrollX(window) {\n return function () {\n return window.scrollX;\n };\n}\n\nexport function scrollY(window) {\n return function () {\n return window.scrollY;\n };\n}\n\nexport function localStorage(window) {\n return function () {\n return window.localStorage;\n };\n}\n\nexport function sessionStorage(window) {\n return function () {\n return window.sessionStorage;\n };\n}\n\nexport function requestAnimationFrame(fn) {\n return function(window) {\n return function() {\n return window.requestAnimationFrame(fn);\n };\n };\n}\n\nexport function cancelAnimationFrame(id) {\n return function(window) {\n return function() {\n return window.cancelAnimationFrame(id);\n };\n };\n}\n\nexport function requestIdleCallback(opts) {\n return function(fn) {\n return function(window) {\n return function() {\n return window.requestIdleCallback(fn, opts);\n };\n };\n };\n}\n\nexport function cancelIdleCallback(id) {\n return function(window) {\n return function() {\n return window.cancelIdleCallback(id);\n };\n };\n}\n\nexport function parent(window) {\n return function() {\n return window.parent;\n };\n}\n\nexport function _opener(window) {\n return function() {\n return window.opener;\n };\n}\n","// Generated by purs version 0.15.2\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Nullable from \"../Data.Nullable/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Effect from \"../Effect/index.js\";\nimport * as Unsafe_Coerce from \"../Unsafe.Coerce/index.js\";\nimport * as Web_Internal_FFI from \"../Web.Internal.FFI/index.js\";\nvar RequestIdleCallbackId = function (x) {\n return x;\n};\nvar RequestAnimationFrameId = function (x) {\n return x;\n};\nvar toEventTarget = Unsafe_Coerce.unsafeCoerce;\nvar promptDefault = function (msg) {\n return function (defaultText) {\n return function (window) {\n return Data_Functor.map(Effect.functorEffect)(Data_Nullable.toMaybe)($foreign[\"_prompt\"](msg)(defaultText)(window));\n };\n };\n};\nvar prompt = function (msg) {\n return function (window) {\n return Data_Functor.map(Effect.functorEffect)(Data_Nullable.toMaybe)($foreign[\"_prompt\"](msg)(\"\")(window));\n };\n};\nvar opener = function (window) {\n return Data_Functor.map(Effect.functorEffect)(Data_Nullable.toMaybe)($foreign[\"_opener\"](window));\n};\nvar open = function (url$prime) {\n return function (name) {\n return function (features) {\n return function (window) {\n return Data_Functor.map(Effect.functorEffect)(Data_Nullable.toMaybe)($foreign[\"_open\"](url$prime)(name)(features)(window));\n };\n };\n };\n};\nvar fromEventTarget = /* #__PURE__ */ Web_Internal_FFI.unsafeReadProtoTagged(\"Window\");\nvar eqRequestIdleCallbackId = {\n eq: function (x) {\n return function (y) {\n return x === y;\n };\n }\n};\nvar ordRequestIdleCallbackId = {\n compare: function (x) {\n return function (y) {\n return Data_Ord.compare(Data_Ord.ordInt)(x)(y);\n };\n },\n Eq0: function () {\n return eqRequestIdleCallbackId;\n }\n};\nvar eqRequestAnimationFrameId = {\n eq: function (x) {\n return function (y) {\n return x === y;\n };\n }\n};\nvar ordRequestAnimationFrameId = {\n compare: function (x) {\n return function (y) {\n return Data_Ord.compare(Data_Ord.ordInt)(x)(y);\n };\n },\n Eq0: function () {\n return eqRequestAnimationFrameId;\n }\n};\nexport {\n document,\n navigator,\n location,\n history,\n innerWidth,\n innerHeight,\n alert,\n confirm,\n moveBy,\n moveTo,\n outerHeight,\n outerWidth,\n print,\n resizeBy,\n resizeTo,\n screenX,\n screenY,\n scroll,\n scrollBy,\n scrollX,\n scrollY,\n localStorage,\n sessionStorage,\n requestAnimationFrame,\n cancelAnimationFrame,\n requestIdleCallback,\n cancelIdleCallback,\n parent\n} from \"./foreign.js\";\nexport {\n toEventTarget,\n fromEventTarget,\n open,\n prompt,\n promptDefault,\n opener,\n eqRequestAnimationFrameId,\n ordRequestAnimationFrameId,\n eqRequestIdleCallbackId,\n ordRequestIdleCallbackId\n};\n","// Generated by purs version 0.15.2\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Control_Monad_Error_Class from \"../Control.Monad.Error.Class/index.js\";\nimport * as Data_Either from \"../Data.Either/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nimport * as Effect from \"../Effect/index.js\";\nimport * as Effect_Aff from \"../Effect.Aff/index.js\";\nimport * as Effect_Class from \"../Effect.Class/index.js\";\nimport * as Effect_Exception from \"../Effect.Exception/index.js\";\nimport * as Web_DOM_ParentNode from \"../Web.DOM.ParentNode/index.js\";\nimport * as Web_Event_EventTarget from \"../Web.Event.EventTarget/index.js\";\nimport * as Web_HTML from \"../Web.HTML/index.js\";\nimport * as Web_HTML_Event_EventTypes from \"../Web.HTML.Event.EventTypes/index.js\";\nimport * as Web_HTML_HTMLDocument from \"../Web.HTML.HTMLDocument/index.js\";\nimport * as Web_HTML_HTMLDocument_ReadyState from \"../Web.HTML.HTMLDocument.ReadyState/index.js\";\nimport * as Web_HTML_HTMLElement from \"../Web.HTML.HTMLElement/index.js\";\nimport * as Web_HTML_Window from \"../Web.HTML.Window/index.js\";\nvar selectElement = function (query) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Control_Bind.bindFlipped(Effect.bindEffect)(Control_Bind.composeKleisliFlipped(Effect.bindEffect)((function () {\n var $2 = Web_DOM_ParentNode.querySelector(query);\n return function ($3) {\n return $2(Web_HTML_HTMLDocument.toParentNode($3));\n };\n })())(Web_HTML_Window.document))(Web_HTML.window)))(function (mel) {\n return Control_Applicative.pure(Effect_Aff.applicativeAff)(Control_Bind.bindFlipped(Data_Maybe.bindMaybe)(Web_HTML_HTMLElement.fromElement)(mel));\n });\n};\nvar runHalogenAff = /* #__PURE__ */ Effect_Aff.runAff_(/* #__PURE__ */ Data_Either.either(Effect_Exception.throwException)(/* #__PURE__ */ Data_Function[\"const\"](/* #__PURE__ */ Control_Applicative.pure(Effect.applicativeEffect)(Data_Unit.unit))));\nvar awaitLoad = /* #__PURE__ */ Effect_Aff.makeAff(function (callback) {\n return function __do() {\n var rs = Control_Bind.bindFlipped(Effect.bindEffect)(Web_HTML_HTMLDocument.readyState)(Control_Bind.bindFlipped(Effect.bindEffect)(Web_HTML_Window.document)(Web_HTML.window))();\n if (rs instanceof Web_HTML_HTMLDocument_ReadyState.Loading) {\n var et = Data_Functor.map(Effect.functorEffect)(Web_HTML_Window.toEventTarget)(Web_HTML.window)();\n var listener = Web_Event_EventTarget.eventListener(function (v) {\n return callback(new Data_Either.Right(Data_Unit.unit));\n })();\n Web_Event_EventTarget.addEventListener(Web_HTML_Event_EventTypes.domcontentloaded)(listener)(false)(et)();\n return Effect_Aff.effectCanceler(Web_Event_EventTarget.removeEventListener(Web_HTML_Event_EventTypes.domcontentloaded)(listener)(false)(et));\n };\n callback(new Data_Either.Right(Data_Unit.unit))();\n return Effect_Aff.nonCanceler;\n };\n});\nvar awaitBody = /* #__PURE__ */ Control_Bind.discard(Control_Bind.discardUnit)(Effect_Aff.bindAff)(awaitLoad)(function () {\n return Control_Bind.bind(Effect_Aff.bindAff)(selectElement(\"body\"))(function (body) {\n return Data_Maybe.maybe(Control_Monad_Error_Class.throwError(Effect_Aff.monadThrowAff)(Effect_Exception.error(\"Could not find body\")))(Control_Applicative.pure(Effect_Aff.applicativeAff))(body);\n });\n});\nexport {\n awaitLoad,\n awaitBody,\n selectElement,\n runHalogenAff\n};\n","// Generated by purs version 0.15.2\nimport * as Data_Function_Uncurried from \"../Data.Function.Uncurried/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Halogen_VDom_DOM from \"../Halogen.VDom.DOM/index.js\";\nimport * as Halogen_VDom_Machine from \"../Halogen.VDom.Machine/index.js\";\nimport * as Halogen_VDom_Util from \"../Halogen.VDom.Util/index.js\";\nimport * as Unsafe_Coerce from \"../Unsafe.Coerce/index.js\";\nvar $runtime_lazy = function (name, moduleName, init) {\n var state = 0;\n var val;\n return function (lineNumber) {\n if (state === 2) return val;\n if (state === 1) throw new ReferenceError(name + \" was needed before it finished initializing (module \" + moduleName + \", line \" + lineNumber + \")\", moduleName, lineNumber);\n state = 1;\n val = init();\n state = 2;\n return val;\n };\n};\nvar Thunk = /* #__PURE__ */ (function () {\n function Thunk(value0, value1, value2, value3) {\n this.value0 = value0;\n this.value1 = value1;\n this.value2 = value2;\n this.value3 = value3;\n };\n Thunk.create = function (value0) {\n return function (value1) {\n return function (value2) {\n return function (value3) {\n return new Thunk(value0, value1, value2, value3);\n };\n };\n };\n };\n return Thunk;\n})();\nvar unsafeThunkId = Unsafe_Coerce.unsafeCoerce;\nvar unsafeEqThunk = function (v, v1) {\n return Halogen_VDom_Util.refEq(v.value0, v1.value0) && (Halogen_VDom_Util.refEq(v.value1, v1.value1) && v.value1(v.value3, v1.value3));\n};\nvar thunk = function (tid, eqFn, f, a) {\n return new Thunk(tid, eqFn, f, a);\n};\nvar thunk1 = function (f, a) {\n return thunk(unsafeThunkId(f), Halogen_VDom_Util.refEq, f, a);\n};\nvar thunk2 = /* #__PURE__ */ (function () {\n var eqFn = function (a, b) {\n return Halogen_VDom_Util.refEq(a[\"_1\"], b[\"_1\"]) && Halogen_VDom_Util.refEq(a[\"_2\"], b[\"_2\"]);\n };\n return function (f, a, b) {\n return thunk(unsafeThunkId(f), eqFn, function (v) {\n return f(v[\"_1\"])(v[\"_2\"]);\n }, {\n \"_1\": a,\n \"_2\": b\n });\n };\n})();\nvar thunk3 = /* #__PURE__ */ (function () {\n var eqFn = function (a, b) {\n return Halogen_VDom_Util.refEq(a[\"_1\"], b[\"_1\"]) && (Halogen_VDom_Util.refEq(a[\"_2\"], b[\"_2\"]) && Halogen_VDom_Util.refEq(a[\"_3\"], b[\"_3\"]));\n };\n return function (f, a, b, c) {\n return thunk(unsafeThunkId(f), eqFn, function (v) {\n return f(v[\"_1\"])(v[\"_2\"])(v[\"_3\"]);\n }, {\n \"_1\": a,\n \"_2\": b,\n \"_3\": c\n });\n };\n})();\nvar thunked = function (eqFn) {\n return function (f) {\n var tid = unsafeThunkId({\n f: f\n });\n var eqFn$prime = Data_Function_Uncurried.mkFn2(eqFn);\n return function (a) {\n return thunk(tid, eqFn$prime, f, a);\n };\n };\n};\nvar runThunk = function (v) {\n return v.value2(v.value3);\n};\nvar mapThunk = function (k) {\n return function (v) {\n return new Thunk(v.value0, v.value1, function ($46) {\n return k(v.value2($46));\n }, v.value3);\n };\n};\nvar hoist = mapThunk;\nvar functorThunk = function (dictFunctor) {\n return {\n map: function (f) {\n return function (v) {\n return new Thunk(v.value0, v.value1, (function () {\n var $47 = Data_Functor.map(dictFunctor)(f);\n return function ($48) {\n return $47(v.value2($48));\n };\n })(), v.value3);\n };\n }\n };\n};\nvar buildThunk = function (toVDom) {\n var haltThunk = function (state) {\n return Halogen_VDom_Machine.halt(state.vdom);\n };\n var $lazy_patchThunk = $runtime_lazy(\"patchThunk\", \"Halogen.VDom.Thunk\", function () {\n return function (state, t2) {\n var $43 = unsafeEqThunk(state.thunk, t2);\n if ($43) {\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(Halogen_VDom_Machine.extract(state.vdom), state, $lazy_patchThunk(112), haltThunk));\n };\n var vdom = Halogen_VDom_Machine.step(state.vdom, toVDom(runThunk(t2)));\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(Halogen_VDom_Machine.extract(vdom), {\n vdom: vdom,\n thunk: t2\n }, $lazy_patchThunk(115), haltThunk));\n };\n });\n var patchThunk = $lazy_patchThunk(108);\n var renderThunk = function (spec) {\n return function (t) {\n var vdom = Halogen_VDom_DOM.buildVDom(spec)(toVDom(runThunk(t)));\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(Halogen_VDom_Machine.extract(vdom), {\n thunk: t,\n vdom: vdom\n }, patchThunk, haltThunk));\n };\n };\n return renderThunk;\n};\nexport {\n buildThunk,\n runThunk,\n hoist,\n mapThunk,\n thunked,\n thunk1,\n thunk2,\n thunk3,\n functorThunk\n};\n","// Generated by purs version 0.15.2\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Data_Bifunctor from \"../Data.Bifunctor/index.js\";\nimport * as Data_Coyoneda from \"../Data.Coyoneda/index.js\";\nimport * as Data_Foldable from \"../Data.Foldable/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nimport * as Halogen_Data_Slot from \"../Halogen.Data.Slot/index.js\";\nimport * as Halogen_HTML_Core from \"../Halogen.HTML.Core/index.js\";\nimport * as Halogen_Query_HalogenM from \"../Halogen.Query.HalogenM/index.js\";\nimport * as Halogen_Query_HalogenQ from \"../Halogen.Query.HalogenQ/index.js\";\nimport * as Halogen_VDom_Thunk from \"../Halogen.VDom.Thunk/index.js\";\nimport * as Unsafe_Coerce from \"../Unsafe.Coerce/index.js\";\nvar ComponentSlot = /* #__PURE__ */ (function () {\n function ComponentSlot(value0) {\n this.value0 = value0;\n };\n ComponentSlot.create = function (value0) {\n return new ComponentSlot(value0);\n };\n return ComponentSlot;\n})();\nvar ThunkSlot = /* #__PURE__ */ (function () {\n function ThunkSlot(value0) {\n this.value0 = value0;\n };\n ThunkSlot.create = function (value0) {\n return new ThunkSlot(value0);\n };\n return ThunkSlot;\n})();\nvar unComponentSlot = Unsafe_Coerce.unsafeCoerce;\nvar unComponent = Unsafe_Coerce.unsafeCoerce;\nvar mkEval = function (args) {\n return function (v) {\n if (v instanceof Halogen_Query_HalogenQ.Initialize) {\n return Data_Functor.voidLeft(Halogen_Query_HalogenM.functorHalogenM)(Data_Foldable.traverse_(Halogen_Query_HalogenM.applicativeHalogenM)(Data_Foldable.foldableMaybe)(args.handleAction)(args.initialize))(v.value0);\n };\n if (v instanceof Halogen_Query_HalogenQ.Finalize) {\n return Data_Functor.voidLeft(Halogen_Query_HalogenM.functorHalogenM)(Data_Foldable.traverse_(Halogen_Query_HalogenM.applicativeHalogenM)(Data_Foldable.foldableMaybe)(args.handleAction)(args.finalize))(v.value0);\n };\n if (v instanceof Halogen_Query_HalogenQ.Receive) {\n return Data_Functor.voidLeft(Halogen_Query_HalogenM.functorHalogenM)(Data_Foldable.traverse_(Halogen_Query_HalogenM.applicativeHalogenM)(Data_Foldable.foldableMaybe)(args.handleAction)(args.receive(v.value0)))(v.value1);\n };\n if (v instanceof Halogen_Query_HalogenQ.Action) {\n return Data_Functor.voidLeft(Halogen_Query_HalogenM.functorHalogenM)(args.handleAction(v.value0))(v.value1);\n };\n if (v instanceof Halogen_Query_HalogenQ.Query) {\n return Data_Coyoneda.unCoyoneda(function (g) {\n var $24 = Data_Functor.map(Halogen_Query_HalogenM.functorHalogenM)(Data_Maybe.maybe(v.value1(Data_Unit.unit))(g));\n return function ($25) {\n return $24(args.handleQuery($25));\n };\n })(v.value0);\n };\n throw new Error(\"Failed pattern match at Halogen.Component (line 182, column 15 - line 192, column 71): \" + [ v.constructor.name ]);\n };\n};\nvar mkComponentSlot = Unsafe_Coerce.unsafeCoerce;\nvar mkComponent = Unsafe_Coerce.unsafeCoerce;\nvar hoistSlot = function (dictFunctor) {\n return function (nat) {\n return function (v) {\n if (v instanceof ComponentSlot) {\n return unComponentSlot(function (slot) {\n return new ComponentSlot(mkComponentSlot({\n get: slot.get,\n pop: slot.pop,\n set: slot.set,\n component: hoist(dictFunctor)(nat)(slot.component),\n input: slot.input,\n output: slot.output\n }));\n })(v.value0);\n };\n if (v instanceof ThunkSlot) {\n return new ThunkSlot(Halogen_VDom_Thunk.hoist(Data_Bifunctor.lmap(Halogen_HTML_Core.bifunctorHTML)(hoistSlot(dictFunctor)(nat)))(v.value0));\n };\n throw new Error(\"Failed pattern match at Halogen.Component (line 279, column 17 - line 284, column 53): \" + [ v.constructor.name ]);\n };\n };\n};\nvar hoist = function (dictFunctor) {\n return function (nat) {\n return unComponent(function (c) {\n return mkComponent({\n initialState: c.initialState,\n render: (function () {\n var $26 = Data_Bifunctor.lmap(Halogen_HTML_Core.bifunctorHTML)(hoistSlot(dictFunctor)(nat));\n return function ($27) {\n return $26(c.render($27));\n };\n })(),\n \"eval\": (function () {\n var $28 = Halogen_Query_HalogenM.hoist(dictFunctor)(nat);\n return function ($29) {\n return $28(c[\"eval\"]($29));\n };\n })()\n });\n });\n };\n};\nvar functorComponentSlotBox = {\n map: function (f) {\n return unComponentSlot(function (slot) {\n return mkComponentSlot({\n get: slot.get,\n pop: slot.pop,\n set: slot.set,\n component: slot.component,\n input: slot.input,\n output: Data_Functor.map(Data_Functor.functorFn)(Data_Functor.map(Data_Maybe.functorMaybe)(f))(slot.output)\n });\n });\n }\n};\nvar functorComponentSlot = {\n map: function (f) {\n return function (v) {\n if (v instanceof ComponentSlot) {\n return new ComponentSlot(Data_Functor.map(functorComponentSlotBox)(f)(v.value0));\n };\n if (v instanceof ThunkSlot) {\n return new ThunkSlot(Halogen_VDom_Thunk.mapThunk(Data_Bifunctor.bimap(Halogen_HTML_Core.bifunctorHTML)(Data_Functor.map(functorComponentSlot)(f))(f))(v.value0));\n };\n throw new Error(\"Failed pattern match at Halogen.Component (line 209, column 11 - line 211, column 74): \" + [ v.constructor.name ]);\n };\n }\n};\nvar defaultEval = /* #__PURE__ */ (function () {\n return {\n handleAction: Data_Function[\"const\"](Control_Applicative.pure(Halogen_Query_HalogenM.applicativeHalogenM)(Data_Unit.unit)),\n handleQuery: Data_Function[\"const\"](Control_Applicative.pure(Halogen_Query_HalogenM.applicativeHalogenM)(Data_Maybe.Nothing.value)),\n receive: Data_Function[\"const\"](Data_Maybe.Nothing.value),\n initialize: Data_Maybe.Nothing.value,\n finalize: Data_Maybe.Nothing.value\n };\n})();\nvar componentSlot = function () {\n return function (dictIsSymbol) {\n return function (dictOrd) {\n return function (label) {\n return function (p) {\n return function (comp) {\n return function (input) {\n return function (output) {\n return mkComponentSlot({\n get: Halogen_Data_Slot.lookup()(dictIsSymbol)(dictOrd)(label)(p),\n pop: Halogen_Data_Slot.pop()(dictIsSymbol)(dictOrd)(label)(p),\n set: Halogen_Data_Slot.insert()(dictIsSymbol)(dictOrd)(label)(p),\n component: comp,\n input: input,\n output: output\n });\n };\n };\n };\n };\n };\n };\n };\n};\nexport {\n mkComponent,\n unComponent,\n hoist,\n mkEval,\n defaultEval,\n ComponentSlot,\n ThunkSlot,\n componentSlot,\n mkComponentSlot,\n unComponentSlot,\n hoistSlot,\n functorComponentSlotBox,\n functorComponentSlot\n};\n","// Generated by purs version 0.15.2\nimport * as Control_Monad_Reader_Trans from \"../Control.Monad.Reader.Trans/index.js\";\nimport * as Control_Monad_Trans_Class from \"../Control.Monad.Trans.Class/index.js\";\nimport * as Effect_Aff from \"../Effect.Aff/index.js\";\nvar Completed = /* #__PURE__ */ (function () {\n function Completed(value0) {\n this.value0 = value0;\n };\n Completed.create = function (value0) {\n return new Completed(value0);\n };\n return Completed;\n})();\nvar Failed = /* #__PURE__ */ (function () {\n function Failed(value0) {\n this.value0 = value0;\n };\n Failed.create = function (value0) {\n return new Failed(value0);\n };\n return Failed;\n})();\nvar Killed = /* #__PURE__ */ (function () {\n function Killed(value0) {\n this.value0 = value0;\n };\n Killed.create = function (value0) {\n return new Killed(value0);\n };\n return Killed;\n})();\nvar uninterruptible = function (dict) {\n return dict.uninterruptible;\n};\nvar suspend = function (dict) {\n return dict.suspend;\n};\nvar never = function (dict) {\n return dict.never;\n};\nvar monadForkAff = {\n suspend: Effect_Aff.suspendAff,\n fork: Effect_Aff.forkAff,\n join: Effect_Aff.joinFiber,\n Monad0: function () {\n return Effect_Aff.monadAff;\n },\n Functor1: function () {\n return Effect_Aff.functorFiber;\n }\n};\nvar monadKillAff = {\n kill: Effect_Aff.killFiber,\n MonadFork0: function () {\n return monadForkAff;\n },\n MonadThrow1: function () {\n return Effect_Aff.monadThrowAff;\n }\n};\nvar monadBracketAff = {\n bracket: function (acquire) {\n return function (release) {\n return function (run) {\n return Effect_Aff.generalBracket(acquire)({\n completed: function ($18) {\n return release(Completed.create($18));\n },\n failed: function ($19) {\n return release(Failed.create($19));\n },\n killed: function ($20) {\n return release(Killed.create($20));\n }\n })(run);\n };\n };\n },\n uninterruptible: Effect_Aff.invincible,\n never: Effect_Aff.never,\n MonadKill0: function () {\n return monadKillAff;\n },\n MonadError1: function () {\n return Effect_Aff.monadErrorAff;\n }\n};\nvar kill = function (dict) {\n return dict.kill;\n};\nvar join = function (dict) {\n return dict.join;\n};\nvar fork = function (dict) {\n return dict.fork;\n};\nvar monadForkReaderT = function (dictMonadFork) {\n return {\n suspend: function (v) {\n var $21 = suspend(dictMonadFork);\n return function ($22) {\n return $21(v($22));\n };\n },\n fork: function (v) {\n var $23 = fork(dictMonadFork);\n return function ($24) {\n return $23(v($24));\n };\n },\n join: (function () {\n var $25 = Control_Monad_Trans_Class.lift(Control_Monad_Reader_Trans.monadTransReaderT)(dictMonadFork.Monad0());\n var $26 = join(dictMonadFork);\n return function ($27) {\n return $25($26($27));\n };\n })(),\n Monad0: function () {\n return Control_Monad_Reader_Trans.monadReaderT(dictMonadFork.Monad0());\n },\n Functor1: dictMonadFork.Functor1\n };\n};\nvar monadKillReaderT = function (dictMonadKill) {\n return {\n kill: function (e) {\n var $28 = Control_Monad_Trans_Class.lift(Control_Monad_Reader_Trans.monadTransReaderT)((dictMonadKill.MonadThrow1()).Monad0());\n var $29 = kill(dictMonadKill)(e);\n return function ($30) {\n return $28($29($30));\n };\n },\n MonadFork0: function () {\n return monadForkReaderT(dictMonadKill.MonadFork0());\n },\n MonadThrow1: function () {\n return Control_Monad_Reader_Trans.monadThrowReaderT(dictMonadKill.MonadThrow1());\n }\n };\n};\nvar bracket = function (dict) {\n return dict.bracket;\n};\nvar monadBracketReaderT = function (dictMonadBracket) {\n return {\n bracket: function (v) {\n return function (release) {\n return function (run) {\n return function (r) {\n return bracket(dictMonadBracket)(v(r))(function (c) {\n return function (a) {\n return Control_Monad_Reader_Trans.runReaderT(release(c)(a))(r);\n };\n })(function (a) {\n return Control_Monad_Reader_Trans.runReaderT(run(a))(r);\n });\n };\n };\n };\n },\n uninterruptible: function (k) {\n return function (r) {\n return uninterruptible(dictMonadBracket)(Control_Monad_Reader_Trans.runReaderT(k)(r));\n };\n },\n never: Control_Monad_Trans_Class.lift(Control_Monad_Reader_Trans.monadTransReaderT)(((dictMonadBracket.MonadError1()).MonadThrow0()).Monad0())(never(dictMonadBracket)),\n MonadKill0: function () {\n return monadKillReaderT(dictMonadBracket.MonadKill0());\n },\n MonadError1: function () {\n return Control_Monad_Reader_Trans.monadErrorReaderT(dictMonadBracket.MonadError1());\n }\n };\n};\nexport {\n bracket,\n fork,\n join,\n kill,\n never,\n suspend,\n uninterruptible,\n Completed,\n Failed,\n Killed,\n monadForkAff,\n monadForkReaderT,\n monadKillAff,\n monadKillReaderT,\n monadBracketAff,\n monadBracketReaderT\n};\n","// Generated by purs version 0.15.2\nimport * as Data_Foldable from \"../Data.Foldable/index.js\";\nimport * as Data_List_Types from \"../Data.List.Types/index.js\";\nimport * as Data_Map_Internal from \"../Data.Map.Internal/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Effect_Ref from \"../Effect.Ref/index.js\";\nimport * as Halogen_Data_Slot from \"../Halogen.Data.Slot/index.js\";\nimport * as Unsafe_Coerce from \"../Unsafe.Coerce/index.js\";\nvar DriverStateRef = function (x) {\n return x;\n};\nvar DriverState = function (x) {\n return x;\n};\nvar unRenderStateX = Unsafe_Coerce.unsafeCoerce;\nvar unDriverStateX = Unsafe_Coerce.unsafeCoerce;\nvar renderStateX_ = function (dictApplicative) {\n return function (f) {\n return unDriverStateX(function (st) {\n return Data_Foldable.traverse_(dictApplicative)(Data_Foldable.foldableMaybe)(f)(st.rendering);\n });\n };\n};\nvar mkRenderStateX = Unsafe_Coerce.unsafeCoerce;\nvar renderStateX = function (dictFunctor) {\n return function (f) {\n return unDriverStateX(function (st) {\n return mkRenderStateX(f(st.rendering));\n });\n };\n};\nvar mkDriverStateXRef = Unsafe_Coerce.unsafeCoerce;\nvar mapDriverState = function (f) {\n return function (v) {\n return f(v);\n };\n};\nvar initDriverState = function (component) {\n return function (input) {\n return function (handler) {\n return function (lchs) {\n return function __do() {\n var selfRef = Effect_Ref[\"new\"]({})();\n var childrenIn = Effect_Ref[\"new\"](Halogen_Data_Slot.empty)();\n var childrenOut = Effect_Ref[\"new\"](Halogen_Data_Slot.empty)();\n var handlerRef = Effect_Ref[\"new\"](handler)();\n var pendingQueries = Effect_Ref[\"new\"](new Data_Maybe.Just(Data_List_Types.Nil.value))();\n var pendingOuts = Effect_Ref[\"new\"](new Data_Maybe.Just(Data_List_Types.Nil.value))();\n var pendingHandlers = Effect_Ref[\"new\"](Data_Maybe.Nothing.value)();\n var fresh = Effect_Ref[\"new\"](1)();\n var subscriptions = Effect_Ref[\"new\"](new Data_Maybe.Just(Data_Map_Internal.empty))();\n var forks = Effect_Ref[\"new\"](Data_Map_Internal.empty)();\n var ds = {\n component: component,\n state: component.initialState(input),\n refs: Data_Map_Internal.empty,\n children: Halogen_Data_Slot.empty,\n childrenIn: childrenIn,\n childrenOut: childrenOut,\n selfRef: selfRef,\n handlerRef: handlerRef,\n pendingQueries: pendingQueries,\n pendingOuts: pendingOuts,\n pendingHandlers: pendingHandlers,\n rendering: Data_Maybe.Nothing.value,\n fresh: fresh,\n subscriptions: subscriptions,\n forks: forks,\n lifecycleHandlers: lchs\n };\n Effect_Ref.write(ds)(selfRef)();\n return mkDriverStateXRef(selfRef);\n };\n };\n };\n };\n};\nexport {\n DriverState,\n mapDriverState,\n DriverStateRef,\n unDriverStateX,\n mkDriverStateXRef,\n renderStateX,\n renderStateX_,\n unRenderStateX,\n initDriverState\n};\n","// Generated by purs version 0.15.2\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Applicative_Free from \"../Control.Applicative.Free/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Control_Monad from \"../Control.Monad/index.js\";\nimport * as Control_Monad_Fork_Class from \"../Control.Monad.Fork.Class/index.js\";\nimport * as Control_Monad_Free from \"../Control.Monad.Free/index.js\";\nimport * as Control_Parallel from \"../Control.Parallel/index.js\";\nimport * as Control_Parallel_Class from \"../Control.Parallel.Class/index.js\";\nimport * as Data_Boolean from \"../Data.Boolean/index.js\";\nimport * as Data_Coyoneda from \"../Data.Coyoneda/index.js\";\nimport * as Data_Either from \"../Data.Either/index.js\";\nimport * as Data_Foldable from \"../Data.Foldable/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_List_Types from \"../Data.List.Types/index.js\";\nimport * as Data_Map_Internal from \"../Data.Map.Internal/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nimport * as Effect from \"../Effect/index.js\";\nimport * as Effect_Aff from \"../Effect.Aff/index.js\";\nimport * as Effect_Class from \"../Effect.Class/index.js\";\nimport * as Effect_Exception from \"../Effect.Exception/index.js\";\nimport * as Effect_Ref from \"../Effect.Ref/index.js\";\nimport * as Halogen_Aff_Driver_State from \"../Halogen.Aff.Driver.State/index.js\";\nimport * as Halogen_Query_ChildQuery from \"../Halogen.Query.ChildQuery/index.js\";\nimport * as Halogen_Query_HalogenM from \"../Halogen.Query.HalogenM/index.js\";\nimport * as Halogen_Query_HalogenQ from \"../Halogen.Query.HalogenQ/index.js\";\nimport * as Halogen_Query_Input from \"../Halogen.Query.Input/index.js\";\nimport * as Halogen_Subscription from \"../Halogen.Subscription/index.js\";\nimport * as Unsafe_Reference from \"../Unsafe.Reference/index.js\";\nvar unsubscribe = function (sid) {\n return function (ref) {\n return function __do() {\n var v = Effect_Ref.read(ref)();\n var subs = Effect_Ref.read(v.subscriptions)();\n return Data_Foldable.traverse_(Effect.applicativeEffect)(Data_Foldable.foldableMaybe)(Halogen_Subscription.unsubscribe)(Control_Bind.bindFlipped(Data_Maybe.bindMaybe)(Data_Map_Internal.lookup(Halogen_Query_HalogenM.ordSubscriptionId)(sid))(subs))();\n };\n };\n};\nvar queueOrRun = function (ref) {\n return function (au) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.read(ref)))(function (v) {\n if (v instanceof Data_Maybe.Nothing) {\n return au;\n };\n if (v instanceof Data_Maybe.Just) {\n return Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.write(new Data_Maybe.Just(new Data_List_Types.Cons(au, v.value0)))(ref));\n };\n throw new Error(\"Failed pattern match at Halogen.Aff.Driver.Eval (line 188, column 33 - line 190, column 57): \" + [ v.constructor.name ]);\n });\n };\n};\nvar handleLifecycle = function (lchs) {\n return function (f) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.write({\n initializers: Data_List_Types.Nil.value,\n finalizers: Data_List_Types.Nil.value\n })(lchs)))(function () {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(f))(function (result) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.read(lchs)))(function (v) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Effect_Aff.bindAff)(Data_Foldable.traverse_(Effect_Aff.applicativeAff)(Data_List_Types.foldableList)(Control_Monad_Fork_Class.fork(Control_Monad_Fork_Class.monadForkAff))(v.finalizers))(function () {\n return Control_Bind.discard(Control_Bind.discardUnit)(Effect_Aff.bindAff)(Control_Parallel.parSequence_(Effect_Aff.parallelAff)(Data_List_Types.foldableList)(v.initializers))(function () {\n return Control_Applicative.pure(Effect_Aff.applicativeAff)(result);\n });\n });\n });\n });\n });\n };\n};\nvar handleAff = /* #__PURE__ */ Effect_Aff.runAff_(/* #__PURE__ */ Data_Either.either(Effect_Exception.throwException)(/* #__PURE__ */ Data_Function[\"const\"](/* #__PURE__ */ Control_Applicative.pure(Effect.applicativeEffect)(Data_Unit.unit))));\nvar fresh = function (f) {\n return function (ref) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.read(ref)))(function (v) {\n return Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref[\"modify$prime\"](function (i) {\n return {\n state: i + 1 | 0,\n value: f(i)\n };\n })(v.fresh));\n });\n };\n};\nvar evalQ = function (render) {\n return function (ref) {\n return function (q) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.read(ref)))(function (v) {\n return evalM(render)(ref)(v[\"component\"][\"eval\"](new Halogen_Query_HalogenQ.Query(Data_Functor.map(Data_Coyoneda.functorCoyoneda)(Data_Maybe.Just.create)(Data_Coyoneda.liftCoyoneda(q)), Data_Function[\"const\"](Data_Maybe.Nothing.value))));\n });\n };\n };\n};\nvar evalM = function (render) {\n return function (initRef) {\n return function (v) {\n var evalChildQuery = function (ref) {\n return function (cqb) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.read(ref)))(function (v1) {\n return Halogen_Query_ChildQuery.unChildQueryBox(function (v2) {\n var evalChild = function (v3) {\n return Control_Parallel_Class.parallel(Effect_Aff.parallelAff)(Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.read(v3)))(function (dsx) {\n return Halogen_Aff_Driver_State.unDriverStateX(function (ds) {\n return evalQ(render)(ds.selfRef)(v2.value1);\n })(dsx);\n }));\n };\n return Data_Functor.map(Effect_Aff.functorAff)(v2.value2)(Control_Parallel_Class.sequential(Effect_Aff.parallelAff)(v2.value0(Effect_Aff.applicativeParAff)(evalChild)(v1.children)));\n })(cqb);\n });\n };\n };\n var go = function (ref) {\n return function (v1) {\n if (v1 instanceof Halogen_Query_HalogenM.State) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.read(ref)))(function (v2) {\n var v3 = v1.value0(v2.state);\n if (Unsafe_Reference.unsafeRefEq(v2.state)(v3.value1)) {\n return Control_Applicative.pure(Effect_Aff.applicativeAff)(v3.value0);\n };\n if (Data_Boolean.otherwise) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.write({\n component: v2.component,\n state: v3.value1,\n refs: v2.refs,\n children: v2.children,\n childrenIn: v2.childrenIn,\n childrenOut: v2.childrenOut,\n selfRef: v2.selfRef,\n handlerRef: v2.handlerRef,\n pendingQueries: v2.pendingQueries,\n pendingOuts: v2.pendingOuts,\n pendingHandlers: v2.pendingHandlers,\n rendering: v2.rendering,\n fresh: v2.fresh,\n subscriptions: v2.subscriptions,\n forks: v2.forks,\n lifecycleHandlers: v2.lifecycleHandlers\n })(ref)))(function () {\n return Control_Bind.discard(Control_Bind.discardUnit)(Effect_Aff.bindAff)(handleLifecycle(v2.lifecycleHandlers)(render(v2.lifecycleHandlers)(ref)))(function () {\n return Control_Applicative.pure(Effect_Aff.applicativeAff)(v3.value0);\n });\n });\n };\n throw new Error(\"Failed pattern match at Halogen.Aff.Driver.Eval (line 86, column 7 - line 92, column 21): \" + [ v3.constructor.name ]);\n });\n };\n if (v1 instanceof Halogen_Query_HalogenM.Subscribe) {\n return Control_Bind.bind(Effect_Aff.bindAff)(fresh(Halogen_Query_HalogenM.SubscriptionId)(ref))(function (sid) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Halogen_Subscription.subscribe(v1.value0(sid))(function (act) {\n return handleAff(evalF(render)(ref)(new Halogen_Query_Input.Action(act)));\n })))(function (finalize) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.read(ref)))(function (v2) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.modify_(Data_Functor.map(Data_Maybe.functorMaybe)(Data_Map_Internal.insert(Halogen_Query_HalogenM.ordSubscriptionId)(sid)(finalize)))(v2.subscriptions)))(function () {\n return Control_Applicative.pure(Effect_Aff.applicativeAff)(v1.value1(sid));\n });\n });\n });\n });\n };\n if (v1 instanceof Halogen_Query_HalogenM.Unsubscribe) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(unsubscribe(v1.value0)(ref)))(function () {\n return Control_Applicative.pure(Effect_Aff.applicativeAff)(v1.value1);\n });\n };\n if (v1 instanceof Halogen_Query_HalogenM.Lift) {\n return v1.value0;\n };\n if (v1 instanceof Halogen_Query_HalogenM.ChildQuery) {\n return evalChildQuery(ref)(v1.value0);\n };\n if (v1 instanceof Halogen_Query_HalogenM.Raise) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.read(ref)))(function (v2) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.read(v2.handlerRef)))(function (handler) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Effect_Aff.bindAff)(queueOrRun(v2.pendingOuts)(handler(v1.value0)))(function () {\n return Control_Applicative.pure(Effect_Aff.applicativeAff)(v1.value1);\n });\n });\n });\n };\n if (v1 instanceof Halogen_Query_HalogenM.Par) {\n return Control_Parallel_Class.sequential(Effect_Aff.parallelAff)(Control_Applicative_Free.retractFreeAp(Effect_Aff.applicativeParAff)(Control_Applicative_Free.hoistFreeAp((function () {\n var $83 = Control_Parallel_Class.parallel(Effect_Aff.parallelAff);\n var $84 = evalM(render)(ref);\n return function ($85) {\n return $83($84($85));\n };\n })())(v1.value0)));\n };\n if (v1 instanceof Halogen_Query_HalogenM.Fork) {\n return Control_Bind.bind(Effect_Aff.bindAff)(fresh(Halogen_Query_HalogenM.ForkId)(ref))(function (fid) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.read(ref)))(function (v2) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref[\"new\"](false)))(function (doneRef) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Control_Monad_Fork_Class.fork(Control_Monad_Fork_Class.monadForkAff)(Effect_Aff[\"finally\"](Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(function __do() {\n Effect_Ref.modify_(Data_Map_Internal[\"delete\"](Halogen_Query_HalogenM.ordForkId)(fid))(v2.forks)();\n return Effect_Ref.write(true)(doneRef)();\n }))(evalM(render)(ref)(v1.value0))))(function (fiber) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Control_Monad.unlessM(Effect.monadEffect)(Effect_Ref.read(doneRef))(Effect_Ref.modify_(Data_Map_Internal.insert(Halogen_Query_HalogenM.ordForkId)(fid)(fiber))(v2.forks))))(function () {\n return Control_Applicative.pure(Effect_Aff.applicativeAff)(v1.value1(fid));\n });\n });\n });\n });\n });\n };\n if (v1 instanceof Halogen_Query_HalogenM.Join) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.read(ref)))(function (v2) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.read(v2.forks)))(function (forkMap) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Effect_Aff.bindAff)(Data_Foldable.traverse_(Effect_Aff.applicativeAff)(Data_Foldable.foldableMaybe)(Effect_Aff.joinFiber)(Data_Map_Internal.lookup(Halogen_Query_HalogenM.ordForkId)(v1.value0)(forkMap)))(function () {\n return Control_Applicative.pure(Effect_Aff.applicativeAff)(v1.value1);\n });\n });\n });\n };\n if (v1 instanceof Halogen_Query_HalogenM.Kill) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.read(ref)))(function (v2) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.read(v2.forks)))(function (forkMap) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Effect_Aff.bindAff)(Data_Foldable.traverse_(Effect_Aff.applicativeAff)(Data_Foldable.foldableMaybe)(Effect_Aff.killFiber(Effect_Exception.error(\"Cancelled\")))(Data_Map_Internal.lookup(Halogen_Query_HalogenM.ordForkId)(v1.value0)(forkMap)))(function () {\n return Control_Applicative.pure(Effect_Aff.applicativeAff)(v1.value1);\n });\n });\n });\n };\n if (v1 instanceof Halogen_Query_HalogenM.GetRef) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.read(ref)))(function (v2) {\n return Control_Applicative.pure(Effect_Aff.applicativeAff)(v1.value1(Data_Map_Internal.lookup(Data_Ord.ordString)(v1.value0)(v2.refs)));\n });\n };\n throw new Error(\"Failed pattern match at Halogen.Aff.Driver.Eval (line 83, column 12 - line 139, column 33): \" + [ v1.constructor.name ]);\n };\n };\n return Control_Monad_Free.foldFree(Effect_Aff.monadRecAff)(go(initRef))(v);\n };\n };\n};\nvar evalF = function (render) {\n return function (ref) {\n return function (v) {\n if (v instanceof Halogen_Query_Input.RefUpdate) {\n return Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Data_Function.flip(Effect_Ref.modify_)(ref)(Halogen_Aff_Driver_State.mapDriverState(function (st) {\n return {\n component: st.component,\n state: st.state,\n refs: Data_Map_Internal.alter(Data_Ord.ordString)(Data_Function[\"const\"](v.value1))(v.value0)(st.refs),\n children: st.children,\n childrenIn: st.childrenIn,\n childrenOut: st.childrenOut,\n selfRef: st.selfRef,\n handlerRef: st.handlerRef,\n pendingQueries: st.pendingQueries,\n pendingOuts: st.pendingOuts,\n pendingHandlers: st.pendingHandlers,\n rendering: st.rendering,\n fresh: st.fresh,\n subscriptions: st.subscriptions,\n forks: st.forks,\n lifecycleHandlers: st.lifecycleHandlers\n };\n })));\n };\n if (v instanceof Halogen_Query_Input.Action) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.read(ref)))(function (v1) {\n return evalM(render)(ref)(v1[\"component\"][\"eval\"](new Halogen_Query_HalogenQ.Action(v.value0, Data_Unit.unit)));\n });\n };\n throw new Error(\"Failed pattern match at Halogen.Aff.Driver.Eval (line 52, column 20 - line 58, column 62): \" + [ v.constructor.name ]);\n };\n };\n};\nexport {\n evalF,\n evalQ,\n evalM,\n handleLifecycle,\n queueOrRun,\n handleAff\n};\n","// Generated by purs version 0.15.2\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Control_Monad_Fork_Class from \"../Control.Monad.Fork.Class/index.js\";\nimport * as Control_Monad_Rec_Class from \"../Control.Monad.Rec.Class/index.js\";\nimport * as Control_Parallel from \"../Control.Parallel/index.js\";\nimport * as Data_Foldable from \"../Data.Foldable/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_List from \"../Data.List/index.js\";\nimport * as Data_List_Types from \"../Data.List.Types/index.js\";\nimport * as Data_Map_Internal from \"../Data.Map.Internal/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nimport * as Effect from \"../Effect/index.js\";\nimport * as Effect_Aff from \"../Effect.Aff/index.js\";\nimport * as Effect_Class from \"../Effect.Class/index.js\";\nimport * as Effect_Console from \"../Effect.Console/index.js\";\nimport * as Effect_Exception from \"../Effect.Exception/index.js\";\nimport * as Effect_Ref from \"../Effect.Ref/index.js\";\nimport * as Halogen from \"../Halogen/index.js\";\nimport * as Halogen_Aff_Driver_Eval from \"../Halogen.Aff.Driver.Eval/index.js\";\nimport * as Halogen_Aff_Driver_State from \"../Halogen.Aff.Driver.State/index.js\";\nimport * as Halogen_Component from \"../Halogen.Component/index.js\";\nimport * as Halogen_Data_Slot from \"../Halogen.Data.Slot/index.js\";\nimport * as Halogen_Query_HalogenQ from \"../Halogen.Query.HalogenQ/index.js\";\nimport * as Halogen_Query_Input from \"../Halogen.Query.Input/index.js\";\nimport * as Halogen_Subscription from \"../Halogen.Subscription/index.js\";\nvar newLifecycleHandlers = /* #__PURE__ */ (function () {\n return Effect_Ref[\"new\"]({\n initializers: Data_List_Types.Nil.value,\n finalizers: Data_List_Types.Nil.value\n });\n})();\nvar handlePending = function (ref) {\n return function __do() {\n var queue = Effect_Ref.read(ref)();\n Effect_Ref.write(Data_Maybe.Nothing.value)(ref)();\n return Data_Foldable.for_(Effect.applicativeEffect)(Data_Foldable.foldableMaybe)(queue)((function () {\n var $28 = Data_Foldable.traverse_(Effect_Aff.applicativeAff)(Data_List_Types.foldableList)(Control_Monad_Fork_Class.fork(Control_Monad_Fork_Class.monadForkAff));\n return function ($29) {\n return Halogen_Aff_Driver_Eval.handleAff($28(Data_List.reverse($29)));\n };\n })())();\n };\n};\nvar cleanupSubscriptionsAndForks = function (v) {\n return function __do() {\n Control_Bind.bindFlipped(Effect.bindEffect)(Data_Foldable.traverse_(Effect.applicativeEffect)(Data_Foldable.foldableMaybe)(Data_Foldable.traverse_(Effect.applicativeEffect)(Data_Map_Internal.foldableMap)(Halogen_Subscription.unsubscribe)))(Effect_Ref.read(v.subscriptions))();\n Effect_Ref.write(Data_Maybe.Nothing.value)(v.subscriptions)();\n Control_Bind.bindFlipped(Effect.bindEffect)(Data_Foldable.traverse_(Effect.applicativeEffect)(Data_Map_Internal.foldableMap)((function () {\n var $30 = Effect_Aff.killFiber(Effect_Exception.error(\"finalized\"));\n return function ($31) {\n return Halogen_Aff_Driver_Eval.handleAff($30($31));\n };\n })()))(Effect_Ref.read(v.forks))();\n return Effect_Ref.write(Data_Map_Internal.empty)(v.forks)();\n };\n};\nvar runUI = function (renderSpec) {\n return function (component) {\n return function (i) {\n var squashChildInitializers = function (lchs) {\n return function (preInits) {\n return Halogen_Aff_Driver_State.unDriverStateX(function (st) {\n var parentInitializer = Halogen_Aff_Driver_Eval.evalM(render)(st.selfRef)(st[\"component\"][\"eval\"](new Halogen_Query_HalogenQ.Initialize(Data_Unit.unit)));\n return Effect_Ref.modify_(function (handlers) {\n return {\n initializers: new Data_List_Types.Cons(Control_Bind.discard(Control_Bind.discardUnit)(Effect_Aff.bindAff)(Control_Parallel.parSequence_(Effect_Aff.parallelAff)(Data_List_Types.foldableList)(Data_List.reverse(handlers.initializers)))(function () {\n return Control_Bind.discard(Control_Bind.discardUnit)(Effect_Aff.bindAff)(parentInitializer)(function () {\n return Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(function __do() {\n handlePending(st.pendingQueries)();\n return handlePending(st.pendingOuts)();\n });\n });\n }), preInits),\n finalizers: handlers.finalizers\n };\n })(lchs);\n });\n };\n };\n var runComponent = function (lchs) {\n return function (handler) {\n return function (j) {\n return Halogen_Component.unComponent(function (c) {\n return function __do() {\n var lchs$prime = newLifecycleHandlers();\n var $$var = Halogen_Aff_Driver_State.initDriverState(c)(j)(handler)(lchs$prime)();\n var pre = Effect_Ref.read(lchs)();\n Effect_Ref.write({\n initializers: Data_List_Types.Nil.value,\n finalizers: pre.finalizers\n })(lchs)();\n Control_Bind.bindFlipped(Effect.bindEffect)(Halogen_Aff_Driver_State.unDriverStateX((function () {\n var $32 = render(lchs);\n return function ($33) {\n return $32((function (v) {\n return v.selfRef;\n })($33));\n };\n })()))(Effect_Ref.read($$var))();\n Control_Bind.bindFlipped(Effect.bindEffect)(squashChildInitializers(lchs)(pre.initializers))(Effect_Ref.read($$var))();\n return $$var;\n };\n });\n };\n };\n };\n var renderChild = function (lchs) {\n return function (handler) {\n return function (childrenInRef) {\n return function (childrenOutRef) {\n return Halogen_Component.unComponentSlot(function (slot) {\n return function __do() {\n var childrenIn = Data_Functor.map(Effect.functorEffect)(slot.pop)(Effect_Ref.read(childrenInRef))();\n var $$var = (function () {\n if (childrenIn instanceof Data_Maybe.Just) {\n Effect_Ref.write(childrenIn.value0.value1)(childrenInRef)();\n var dsx = Effect_Ref.read(childrenIn.value0.value0)();\n Halogen_Aff_Driver_State.unDriverStateX(function (st) {\n return function __do() {\n Data_Function.flip(Effect_Ref.write)(st.handlerRef)((function () {\n var $34 = Data_Maybe.maybe(Control_Applicative.pure(Effect_Aff.applicativeAff)(Data_Unit.unit))(handler);\n return function ($35) {\n return $34(slot.output($35));\n };\n })())();\n return Halogen_Aff_Driver_Eval.handleAff(Halogen_Aff_Driver_Eval.evalM(render)(st.selfRef)(st[\"component\"][\"eval\"](new Halogen_Query_HalogenQ.Receive(slot.input, Data_Unit.unit))))();\n };\n })(dsx)();\n return childrenIn.value0.value0;\n };\n if (childrenIn instanceof Data_Maybe.Nothing) {\n return runComponent(lchs)((function () {\n var $36 = Data_Maybe.maybe(Control_Applicative.pure(Effect_Aff.applicativeAff)(Data_Unit.unit))(handler);\n return function ($37) {\n return $36(slot.output($37));\n };\n })())(slot.input)(slot.component)();\n };\n throw new Error(\"Failed pattern match at Halogen.Aff.Driver (line 213, column 14 - line 222, column 98): \" + [ childrenIn.constructor.name ]);\n })();\n var isDuplicate = Data_Functor.map(Effect.functorEffect)(function ($38) {\n return Data_Maybe.isJust(slot.get($38));\n })(Effect_Ref.read(childrenOutRef))();\n Control_Applicative.when(Effect.applicativeEffect)(isDuplicate)(Effect_Console.warn(\"Halogen: Duplicate slot address was detected during rendering, unexpected results may occur\"))();\n Effect_Ref.modify_(slot.set($$var))(childrenOutRef)();\n return Control_Bind.bind(Effect.bindEffect)(Effect_Ref.read($$var))(Halogen_Aff_Driver_State.renderStateX(Effect.functorEffect)(function (v) {\n if (v instanceof Data_Maybe.Nothing) {\n return Effect_Exception[\"throw\"](\"Halogen internal error: child was not initialized in renderChild\");\n };\n if (v instanceof Data_Maybe.Just) {\n return Control_Applicative.pure(Effect.applicativeEffect)(renderSpec.renderChild(v.value0));\n };\n throw new Error(\"Failed pattern match at Halogen.Aff.Driver (line 227, column 37 - line 229, column 50): \" + [ v.constructor.name ]);\n }))();\n };\n });\n };\n };\n };\n };\n var render = function (lchs) {\n return function ($$var) {\n return function __do() {\n var v = Effect_Ref.read($$var)();\n var shouldProcessHandlers = Data_Functor.map(Effect.functorEffect)(Data_Maybe.isNothing)(Effect_Ref.read(v.pendingHandlers))();\n Control_Applicative.when(Effect.applicativeEffect)(shouldProcessHandlers)(Effect_Ref.write(new Data_Maybe.Just(Data_List_Types.Nil.value))(v.pendingHandlers))();\n Effect_Ref.write(Halogen_Data_Slot.empty)(v.childrenOut)();\n Effect_Ref.write(v.children)(v.childrenIn)();\n var selfRef = Control_Category.identity(Control_Category.categoryFn)(v.selfRef);\n var pendingQueries = Control_Category.identity(Control_Category.categoryFn)(v.pendingQueries);\n var pendingHandlers = Control_Category.identity(Control_Category.categoryFn)(v.pendingHandlers);\n var handler = (function () {\n var $39 = Halogen_Aff_Driver_Eval.queueOrRun(pendingHandlers);\n var $40 = Data_Functor[\"void\"](Effect_Aff.functorAff);\n var $41 = Halogen_Aff_Driver_Eval.evalF(render)(selfRef);\n return function ($42) {\n return $39($40($41($42)));\n };\n })();\n var childHandler = (function () {\n var $43 = Halogen_Aff_Driver_Eval.queueOrRun(pendingQueries);\n return function ($44) {\n return $43(handler(Halogen_Query_Input.Action.create($44)));\n };\n })();\n var rendering = renderSpec.render(function ($45) {\n return Halogen_Aff_Driver_Eval.handleAff(handler($45));\n })(renderChild(lchs)(childHandler)(v.childrenIn)(v.childrenOut))(v.component.render(v.state))(v.rendering)();\n var children = Effect_Ref.read(v.childrenOut)();\n var childrenIn = Effect_Ref.read(v.childrenIn)();\n Halogen_Data_Slot.foreachSlot(Effect.applicativeEffect)(childrenIn)(function (v1) {\n return function __do() {\n var childDS = Effect_Ref.read(v1)();\n Halogen_Aff_Driver_State.renderStateX_(Effect.applicativeEffect)(renderSpec.removeChild)(childDS)();\n return finalize(lchs)(childDS)();\n };\n })();\n Data_Function.flip(Effect_Ref.modify_)(v.selfRef)(Halogen_Aff_Driver_State.mapDriverState(function (ds$prime) {\n return {\n component: ds$prime.component,\n state: ds$prime.state,\n refs: ds$prime.refs,\n children: children,\n childrenIn: ds$prime.childrenIn,\n childrenOut: ds$prime.childrenOut,\n selfRef: ds$prime.selfRef,\n handlerRef: ds$prime.handlerRef,\n pendingQueries: ds$prime.pendingQueries,\n pendingOuts: ds$prime.pendingOuts,\n pendingHandlers: ds$prime.pendingHandlers,\n rendering: new Data_Maybe.Just(rendering),\n fresh: ds$prime.fresh,\n subscriptions: ds$prime.subscriptions,\n forks: ds$prime.forks,\n lifecycleHandlers: ds$prime.lifecycleHandlers\n };\n }))();\n return Control_Applicative.when(Effect.applicativeEffect)(shouldProcessHandlers)(Data_Function.flip(Control_Monad_Rec_Class.tailRecM(Control_Monad_Rec_Class.monadRecEffect))(Data_Unit.unit)(function (v1) {\n return function __do() {\n var handlers = Effect_Ref.read(pendingHandlers)();\n Effect_Ref.write(new Data_Maybe.Just(Data_List_Types.Nil.value))(pendingHandlers)();\n Data_Foldable.traverse_(Effect.applicativeEffect)(Data_Foldable.foldableMaybe)((function () {\n var $46 = Data_Foldable.traverse_(Effect_Aff.applicativeAff)(Data_List_Types.foldableList)(Control_Monad_Fork_Class.fork(Control_Monad_Fork_Class.monadForkAff));\n return function ($47) {\n return Halogen_Aff_Driver_Eval.handleAff($46(Data_List.reverse($47)));\n };\n })())(handlers)();\n var mmore = Effect_Ref.read(pendingHandlers)();\n var $21 = Data_Maybe.maybe(false)(Data_List[\"null\"])(mmore);\n if ($21) {\n return Data_Functor.voidLeft(Effect.functorEffect)(Effect_Ref.write(Data_Maybe.Nothing.value)(pendingHandlers))(new Control_Monad_Rec_Class.Done(Data_Unit.unit))();\n };\n return new Control_Monad_Rec_Class.Loop(Data_Unit.unit);\n };\n }))();\n };\n };\n };\n var finalize = function (lchs) {\n return Halogen_Aff_Driver_State.unDriverStateX(function (st) {\n return function __do() {\n cleanupSubscriptionsAndForks(st)();\n var f = Halogen_Aff_Driver_Eval.evalM(render)(st.selfRef)(st[\"component\"][\"eval\"](new Halogen_Query_HalogenQ.Finalize(Data_Unit.unit)));\n Effect_Ref.modify_(function (handlers) {\n return {\n initializers: handlers.initializers,\n finalizers: new Data_List_Types.Cons(f, handlers.finalizers)\n };\n })(lchs)();\n return Halogen_Data_Slot.foreachSlot(Effect.applicativeEffect)(st.children)(function (v) {\n return function __do() {\n var dsx = Effect_Ref.read(v)();\n return finalize(lchs)(dsx)();\n };\n })();\n };\n });\n };\n var evalDriver = function (disposed) {\n return function (ref) {\n return function (q) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.read(disposed)))(function (v) {\n if (v) {\n return Control_Applicative.pure(Effect_Aff.applicativeAff)(Data_Maybe.Nothing.value);\n };\n return Halogen_Aff_Driver_Eval.evalQ(render)(ref)(q);\n });\n };\n };\n };\n var dispose = function (disposed) {\n return function (lchs) {\n return function (dsx) {\n return Halogen_Aff_Driver_Eval.handleLifecycle(lchs)(function __do() {\n var v = Effect_Ref.read(disposed)();\n if (v) {\n return Data_Unit.unit;\n };\n Effect_Ref.write(true)(disposed)();\n finalize(lchs)(dsx)();\n return Halogen_Aff_Driver_State.unDriverStateX(function (v1) {\n return function __do() {\n var v2 = Effect_Class.liftEffect(Effect_Class.monadEffectEffect)(Effect_Ref.read(v1.selfRef))();\n return Data_Foldable.for_(Effect.applicativeEffect)(Data_Foldable.foldableMaybe)(v2.rendering)(renderSpec.dispose)();\n };\n })(dsx)();\n });\n };\n };\n };\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(newLifecycleHandlers))(function (lchs) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref[\"new\"](false)))(function (disposed) {\n return Halogen_Aff_Driver_Eval.handleLifecycle(lchs)(function __do() {\n var sio = Halogen_Subscription.create();\n var dsx = Control_Bind.bindFlipped(Effect.bindEffect)(Effect_Ref.read)(runComponent(lchs)((function () {\n var $48 = Effect_Class.liftEffect(Effect_Aff.monadEffectAff);\n var $49 = Halogen_Subscription.notify(sio.listener);\n return function ($50) {\n return $48($49($50));\n };\n })())(i)(component))();\n return Halogen_Aff_Driver_State.unDriverStateX(function (st) {\n return Control_Applicative.pure(Effect.applicativeEffect)({\n query: evalDriver(disposed)(st.selfRef),\n messages: sio.emitter,\n dispose: dispose(disposed)(lchs)(dsx)\n });\n })(dsx)();\n });\n });\n });\n };\n };\n};\nexport {\n runUI\n};\n","// Generated by purs version 0.15.2\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Data_Foldable from \"../Data.Foldable/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_HeytingAlgebra from \"../Data.HeytingAlgebra/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Newtype from \"../Data.Newtype/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nimport * as Effect from \"../Effect/index.js\";\nimport * as Effect_Aff from \"../Effect.Aff/index.js\";\nimport * as Effect_Class from \"../Effect.Class/index.js\";\nimport * as Effect_Ref from \"../Effect.Ref/index.js\";\nimport * as Halogen_Aff_Driver from \"../Halogen.Aff.Driver/index.js\";\nimport * as Halogen_Aff_Driver_State from \"../Halogen.Aff.Driver.State/index.js\";\nimport * as Halogen_Component from \"../Halogen.Component/index.js\";\nimport * as Halogen_VDom_DOM from \"../Halogen.VDom.DOM/index.js\";\nimport * as Halogen_VDom_DOM_Prop from \"../Halogen.VDom.DOM.Prop/index.js\";\nimport * as Halogen_VDom_Machine from \"../Halogen.VDom.Machine/index.js\";\nimport * as Halogen_VDom_Thunk from \"../Halogen.VDom.Thunk/index.js\";\nimport * as Unsafe_Reference from \"../Unsafe.Reference/index.js\";\nimport * as Web_DOM_Node from \"../Web.DOM.Node/index.js\";\nimport * as Web_HTML from \"../Web.HTML/index.js\";\nimport * as Web_HTML_HTMLDocument from \"../Web.HTML.HTMLDocument/index.js\";\nimport * as Web_HTML_HTMLElement from \"../Web.HTML.HTMLElement/index.js\";\nimport * as Web_HTML_Window from \"../Web.HTML.Window/index.js\";\nvar $runtime_lazy = function (name, moduleName, init) {\n var state = 0;\n var val;\n return function (lineNumber) {\n if (state === 2) return val;\n if (state === 1) throw new ReferenceError(name + \" was needed before it finished initializing (module \" + moduleName + \", line \" + lineNumber + \")\", moduleName, lineNumber);\n state = 1;\n val = init();\n state = 2;\n return val;\n };\n};\nvar RenderState = function (x) {\n return x;\n};\nvar substInParent = function (v) {\n return function (v1) {\n return function (v2) {\n if (v1 instanceof Data_Maybe.Just && v2 instanceof Data_Maybe.Just) {\n return Data_Functor[\"void\"](Effect.functorEffect)(Web_DOM_Node.insertBefore(v)(v1.value0)(v2.value0));\n };\n if (v1 instanceof Data_Maybe.Nothing && v2 instanceof Data_Maybe.Just) {\n return Data_Functor[\"void\"](Effect.functorEffect)(Web_DOM_Node.appendChild(v)(v2.value0));\n };\n return Control_Applicative.pure(Effect.applicativeEffect)(Data_Unit.unit);\n };\n };\n};\nvar removeChild = function (v) {\n return function __do() {\n var npn = Web_DOM_Node.parentNode(v.node)();\n return Data_Foldable.traverse_(Effect.applicativeEffect)(Data_Foldable.foldableMaybe)(function (pn) {\n return Web_DOM_Node.removeChild(v.node)(pn);\n })(npn)();\n };\n};\nvar mkSpec = function (handler) {\n return function (renderChildRef) {\n return function (document) {\n var getNode = Halogen_Aff_Driver_State.unRenderStateX(function (v) {\n return v.node;\n });\n var done = function (st) {\n if (st instanceof Data_Maybe.Just) {\n return Halogen_VDom_Machine.halt(st.value0);\n };\n return Data_Unit.unit;\n };\n var buildWidget = function (spec) {\n var buildThunk = Halogen_VDom_Thunk.buildThunk(Data_Newtype.unwrap())(spec);\n var $lazy_patch = $runtime_lazy(\"patch\", \"Halogen.VDom.Driver\", function () {\n return function (st, slot) {\n if (st instanceof Data_Maybe.Just) {\n if (slot instanceof Halogen_Component.ComponentSlot) {\n Halogen_VDom_Machine.halt(st.value0);\n return $lazy_renderComponentSlot(100)(slot.value0);\n };\n if (slot instanceof Halogen_Component.ThunkSlot) {\n var step$prime = Halogen_VDom_Machine.step(st.value0, slot.value0);\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(Halogen_VDom_Machine.extract(step$prime), new Data_Maybe.Just(step$prime), $lazy_patch(103), done));\n };\n throw new Error(\"Failed pattern match at Halogen.VDom.Driver (line 97, column 22 - line 103, column 79): \" + [ slot.constructor.name ]);\n };\n return $lazy_render(104)(slot);\n };\n });\n var $lazy_render = $runtime_lazy(\"render\", \"Halogen.VDom.Driver\", function () {\n return function (slot) {\n if (slot instanceof Halogen_Component.ComponentSlot) {\n return $lazy_renderComponentSlot(86)(slot.value0);\n };\n if (slot instanceof Halogen_Component.ThunkSlot) {\n var step = buildThunk(slot.value0);\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(Halogen_VDom_Machine.extract(step), new Data_Maybe.Just(step), $lazy_patch(89), done));\n };\n throw new Error(\"Failed pattern match at Halogen.VDom.Driver (line 84, column 7 - line 89, column 75): \" + [ slot.constructor.name ]);\n };\n });\n var $lazy_renderComponentSlot = $runtime_lazy(\"renderComponentSlot\", \"Halogen.VDom.Driver\", function () {\n return function (cs) {\n var renderChild = Effect_Ref.read(renderChildRef)();\n var rsx = renderChild(cs)();\n var node = getNode(rsx);\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(node, Data_Maybe.Nothing.value, $lazy_patch(117), done));\n };\n });\n var patch = $lazy_patch(91);\n var render = $lazy_render(82);\n var renderComponentSlot = $lazy_renderComponentSlot(109);\n return render;\n };\n var buildAttributes = Halogen_VDom_DOM_Prop.buildProp(handler);\n return {\n buildWidget: buildWidget,\n buildAttributes: buildAttributes,\n document: document\n };\n };\n };\n};\nvar renderSpec = function (document) {\n return function (container) {\n var render = function (handler) {\n return function (child) {\n return function (v) {\n return function (v1) {\n if (v1 instanceof Data_Maybe.Nothing) {\n return function __do() {\n var renderChildRef = Effect_Ref[\"new\"](child)();\n var spec = mkSpec(handler)(renderChildRef)(document);\n var machine = Halogen_VDom_DOM.buildVDom(spec)(v);\n var node = Halogen_VDom_Machine.extract(machine);\n Data_Functor[\"void\"](Effect.functorEffect)(Web_DOM_Node.appendChild(node)(Web_HTML_HTMLElement.toNode(container)))();\n return {\n machine: machine,\n node: node,\n renderChildRef: renderChildRef\n };\n };\n };\n if (v1 instanceof Data_Maybe.Just) {\n return function __do() {\n Effect_Ref.write(child)(v1.value0.renderChildRef)();\n var parent = Web_DOM_Node.parentNode(v1.value0.node)();\n var nextSib = Web_DOM_Node.nextSibling(v1.value0.node)();\n var machine$prime = Halogen_VDom_Machine.step(v1.value0.machine, v);\n var newNode = Halogen_VDom_Machine.extract(machine$prime);\n Control_Applicative.when(Effect.applicativeEffect)(Data_HeytingAlgebra.not(Data_HeytingAlgebra.heytingAlgebraFunction(Data_HeytingAlgebra.heytingAlgebraFunction(Data_HeytingAlgebra.heytingAlgebraBoolean)))(Unsafe_Reference.unsafeRefEq)(v1.value0.node)(newNode))(substInParent(newNode)(nextSib)(parent))();\n return {\n machine: machine$prime,\n node: newNode,\n renderChildRef: v1.value0.renderChildRef\n };\n };\n };\n throw new Error(\"Failed pattern match at Halogen.VDom.Driver (line 157, column 5 - line 173, column 80): \" + [ v1.constructor.name ]);\n };\n };\n };\n };\n return {\n render: render,\n renderChild: Control_Category.identity(Control_Category.categoryFn),\n removeChild: removeChild,\n dispose: removeChild\n };\n };\n};\nvar runUI = function (component) {\n return function (i) {\n return function (element) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Data_Functor.map(Effect.functorEffect)(Web_HTML_HTMLDocument.toDocument)(Control_Bind.bindFlipped(Effect.bindEffect)(Web_HTML_Window.document)(Web_HTML.window))))(function (document) {\n return Halogen_Aff_Driver.runUI(renderSpec(document)(element))(component)(i);\n });\n };\n };\n};\nexport {\n runUI\n};\n","// Generated by purs version 0.15.2\nimport * as $foreign from \"./foreign.js\";\nimport * as AppActions from \"../AppActions/index.js\";\nimport * as AppHtml from \"../AppHtml/index.js\";\nimport * as AppState from \"../AppState/index.js\";\nimport * as AppUrl from \"../AppUrl/index.js\";\nimport * as Cache from \"../Cache/index.js\";\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Control_Monad_State_Class from \"../Control.Monad.State.Class/index.js\";\nimport * as Control_Monad_State_Trans from \"../Control.Monad.State.Trans/index.js\";\nimport * as Control_Monad_Trans_Class from \"../Control.Monad.Trans.Class/index.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nimport * as Effect_Aff from \"../Effect.Aff/index.js\";\nimport * as Effect_Aff_Class from \"../Effect.Aff.Class/index.js\";\nimport * as Effect_Class from \"../Effect.Class/index.js\";\nimport * as Halogen_Aff_Util from \"../Halogen.Aff.Util/index.js\";\nimport * as Halogen_Component from \"../Halogen.Component/index.js\";\nimport * as Halogen_Query_HalogenM from \"../Halogen.Query.HalogenM/index.js\";\nimport * as Halogen_VDom_Driver from \"../Halogen.VDom.Driver/index.js\";\nimport * as LocationString from \"../LocationString/index.js\";\nimport * as TablatureRewriter from \"../TablatureRewriter/index.js\";\nimport * as Web_HTML from \"../Web.HTML/index.js\";\nimport * as Web_HTML_HTMLDocument from \"../Web.HTML.HTMLDocument/index.js\";\nimport * as Web_HTML_Window from \"../Web.HTML.Window/index.js\";\nvar updateFocus = function (dictMonadAff) {\n return function (action) {\n if (action instanceof AppActions.Initialize) {\n return AppHtml.focusTablatureContainer(dictMonadAff.MonadEffect0());\n };\n if (action instanceof AppActions.ToggleEditMode) {\n return AppHtml.loadScrollTop(dictMonadAff.MonadEffect0());\n };\n if (action instanceof AppActions.CreateShortUrl) {\n return AppHtml.focusTablatureContainer(dictMonadAff.MonadEffect0());\n };\n if (action instanceof AppActions.ToggleSearch) {\n return Control_Bind.bind(Halogen_Query_HalogenM.bindHalogenM)(AppState.viewState(Halogen_Query_HalogenM.monadStateHalogenM)(function (dictStrong) {\n return AppState[\"_mode\"](dictStrong);\n }))(function (mode) {\n var $23 = Data_Eq.eq(AppState.eqMode)(mode)(AppState.SearchMode.value);\n if ($23) {\n return AppHtml.focusSearchInput(dictMonadAff.MonadEffect0());\n };\n return AppHtml.focusTablatureContainer(dictMonadAff.MonadEffect0());\n });\n };\n return Control_Applicative.pure(Halogen_Query_HalogenM.applicativeHalogenM)(Data_Unit.unit);\n };\n};\nvar toggleEditMode = function (dictMonadAff) {\n return Control_Bind.bind(Halogen_Query_HalogenM.bindHalogenM)(AppState.viewState(Halogen_Query_HalogenM.monadStateHalogenM)(function (dictStrong) {\n return AppState[\"_mode\"](dictStrong);\n }))(function (mode) {\n if (mode instanceof AppState.ViewMode) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Halogen_Query_HalogenM.bindHalogenM)(AppState.setState(Halogen_Query_HalogenM.monadStateHalogenM)(function (dictStrong) {\n return AppState[\"_mode\"](dictStrong);\n })(AppState.EditMode.value))(function () {\n return Control_Bind.bind(Halogen_Query_HalogenM.bindHalogenM)(Cache.read(Halogen_Query_HalogenM.monadStateHalogenM)(AppState.tablatureTextCache(Halogen_Query_HalogenM.monadAffHalogenM(dictMonadAff))(Halogen_Query_HalogenM.monadStateHalogenM)))(function (tablatureText) {\n return AppHtml.setTablatureTextInEditor(dictMonadAff.MonadEffect0())(tablatureText);\n });\n });\n };\n if (mode instanceof AppState.EditMode) {\n return Control_Bind.bind(Halogen_Query_HalogenM.bindHalogenM)(AppHtml.getTablatureTextFromEditor(dictMonadAff.MonadEffect0()))(function (tablatureText) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Halogen_Query_HalogenM.bindHalogenM)(Cache.write(Halogen_Query_HalogenM.monadStateHalogenM)(AppState.tablatureTextCache(Halogen_Query_HalogenM.monadAffHalogenM(dictMonadAff))(Halogen_Query_HalogenM.monadStateHalogenM))(tablatureText))(function () {\n return Control_Bind.discard(Control_Bind.discardUnit)(Halogen_Query_HalogenM.bindHalogenM)(AppState.setState(Halogen_Query_HalogenM.monadStateHalogenM)(function (dictStrong) {\n return AppState[\"_mode\"](dictStrong);\n })(AppState.ViewMode.value))(function () {\n return AppHtml.focusTablatureContainer(dictMonadAff.MonadEffect0());\n });\n });\n });\n };\n if (mode instanceof AppState.SearchMode) {\n return Control_Applicative.pure(Halogen_Query_HalogenM.applicativeHalogenM)(Data_Unit.unit);\n };\n throw new Error(\"Failed pattern match at Main (line 131, column 3 - line 142, column 28): \" + [ mode.constructor.name ]);\n });\n};\nvar startAutoscroll = function (dictMonadAff) {\n return Control_Bind.bind(Control_Monad_State_Trans.bindStateT(Halogen_Query_HalogenM.monadHalogenM))(Control_Monad_Trans_Class.lift(Control_Monad_State_Trans.monadTransStateT)(Halogen_Query_HalogenM.monadHalogenM)(AppHtml.getTablatureContainerElement(dictMonadAff.MonadEffect0())))(function (maybeTablatureContainerElem) {\n if (maybeTablatureContainerElem instanceof Data_Maybe.Nothing) {\n return Control_Applicative.pure(Control_Monad_State_Trans.applicativeStateT(Halogen_Query_HalogenM.monadHalogenM))(Data_Unit.unit);\n };\n if (maybeTablatureContainerElem instanceof Data_Maybe.Just) {\n return AppHtml.startAutoscrollOnElement(Control_Monad_State_Trans.monadEffectState(Halogen_Query_HalogenM.monadEffectHalogenM(dictMonadAff.MonadEffect0())))(Control_Monad_State_Trans.monadStateStateT(Halogen_Query_HalogenM.monadHalogenM))(maybeTablatureContainerElem.value0);\n };\n throw new Error(\"Failed pattern match at Main (line 164, column 3 - line 166, column 47): \" + [ maybeTablatureContainerElem.constructor.name ]);\n });\n};\nvar updateAutoscrollTimer = function (dictMonadAff) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Control_Monad_State_Trans.bindStateT(Halogen_Query_HalogenM.monadHalogenM))(AppHtml.stopAutoscroll(Control_Monad_State_Trans.monadEffectState(Halogen_Query_HalogenM.monadEffectHalogenM(dictMonadAff.MonadEffect0())))(Control_Monad_State_Trans.monadStateStateT(Halogen_Query_HalogenM.monadHalogenM)))(function () {\n return Control_Bind.bind(Control_Monad_State_Trans.bindStateT(Halogen_Query_HalogenM.monadHalogenM))(AppState.viewState(Control_Monad_State_Trans.monadStateStateT(Halogen_Query_HalogenM.monadHalogenM))(function (dictStrong) {\n return AppState[\"_autoscroll\"](dictStrong);\n }))(function (autoscroll) {\n if (autoscroll) {\n return startAutoscroll(dictMonadAff);\n };\n return Control_Applicative.pure(Control_Monad_State_Trans.applicativeStateT(Halogen_Query_HalogenM.monadHalogenM))(Data_Unit.unit);\n });\n });\n};\nvar updateAutoscroll = function (dictMonadAff) {\n return function (action) {\n return Control_Bind.bind(Control_Monad_State_Trans.bindStateT(Halogen_Query_HalogenM.monadHalogenM))(AppState.viewState(Control_Monad_State_Trans.monadStateStateT(Halogen_Query_HalogenM.monadHalogenM))(function (dictStrong) {\n return AppState[\"_autoscroll\"](dictStrong);\n }))(function (currentAutoscroll) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Control_Monad_State_Trans.bindStateT(Halogen_Query_HalogenM.monadHalogenM))(AppState.setState(Control_Monad_State_Trans.monadStateStateT(Halogen_Query_HalogenM.monadHalogenM))(function (dictStrong) {\n return AppState[\"_autoscroll\"](dictStrong);\n })((function () {\n if (action instanceof AppActions.DecreaseAutoscrollSpeed) {\n return true;\n };\n if (action instanceof AppActions.IncreaseAutoscrollSpeed) {\n return true;\n };\n if (action instanceof AppActions.ToggleAutoscroll) {\n return !currentAutoscroll;\n };\n if (action instanceof AppActions.ClickNoMenu) {\n return currentAutoscroll;\n };\n return false;\n })()))(function () {\n return updateAutoscrollTimer(dictMonadAff);\n });\n });\n };\n};\nvar setDocumentTitle = function (title) {\n return function __do() {\n var window = Web_HTML.window();\n var document = Web_HTML_Window.document(window)();\n return Web_HTML_HTMLDocument.setTitle(title)(document)();\n };\n};\nvar updateDocumentTitle = function (dictMonadAff) {\n return function (dictMonadState) {\n return Control_Bind.bind(((dictMonadAff.MonadEffect0()).Monad0()).Bind1())(Cache.read(dictMonadState)(AppState.tablatureTitleCache(dictMonadAff)(dictMonadState)))(function (tablatureTitle) {\n return Effect_Class.liftEffect(dictMonadAff.MonadEffect0())(setDocumentTitle(tablatureTitle));\n });\n };\n};\nvar prepareHtml = function (dictMonadAff) {\n return function (action) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Halogen_Query_HalogenM.bindHalogenM)(AppState.setState(Halogen_Query_HalogenM.monadStateHalogenM)(function (dictStrong) {\n return AppState[\"_loading\"](dictStrong);\n })(true))(function () {\n if (action instanceof AppActions.ToggleEditMode) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Halogen_Query_HalogenM.bindHalogenM)(AppHtml.saveScrollTop(dictMonadAff.MonadEffect0()))(function () {\n return Control_Bind.discard(Control_Bind.discardUnit)(Halogen_Query_HalogenM.bindHalogenM)(toggleEditMode(dictMonadAff))(function () {\n return Control_Bind.bind(Halogen_Query_HalogenM.bindHalogenM)(AppState.viewState(Halogen_Query_HalogenM.monadStateHalogenM)(function (dictStrong) {\n return AppState[\"_mode\"](dictStrong);\n }))(function (mode) {\n if (mode instanceof AppState.ViewMode) {\n return AppHtml.focusTablatureContainer(dictMonadAff.MonadEffect0());\n };\n if (mode instanceof AppState.EditMode) {\n return Control_Applicative.pure(Halogen_Query_HalogenM.applicativeHalogenM)(Data_Unit.unit);\n };\n if (mode instanceof AppState.SearchMode) {\n return Control_Applicative.pure(Halogen_Query_HalogenM.applicativeHalogenM)(Data_Unit.unit);\n };\n throw new Error(\"Failed pattern match at Main (line 70, column 7 - line 74, column 32): \" + [ mode.constructor.name ]);\n });\n });\n });\n };\n return Control_Applicative.pure(Halogen_Query_HalogenM.applicativeHalogenM)(Data_Unit.unit);\n });\n };\n};\nvar doAction = function (dictMonadAff) {\n return function (action) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Control_Monad_State_Trans.bindStateT(Halogen_Query_HalogenM.monadHalogenM))((function () {\n if (action instanceof AppActions.Initialize) {\n return AppActions.initialize(Effect_Aff_Class.monadAffState(Halogen_Query_HalogenM.monadAffHalogenM(dictMonadAff)))(Control_Monad_State_Trans.monadStateStateT(Halogen_Query_HalogenM.monadHalogenM));\n };\n if (action instanceof AppActions.ClickFileMenu) {\n return AppActions.clickFileMenu(Effect_Aff_Class.monadAffState(Halogen_Query_HalogenM.monadAffHalogenM(dictMonadAff)))(Control_Monad_State_Trans.monadStateStateT(Halogen_Query_HalogenM.monadHalogenM));\n };\n if (action instanceof AppActions.ClickSettingsMenu) {\n return AppActions.clickSettingsMenu(Effect_Aff_Class.monadAffState(Halogen_Query_HalogenM.monadAffHalogenM(dictMonadAff)))(Control_Monad_State_Trans.monadStateStateT(Halogen_Query_HalogenM.monadHalogenM));\n };\n if (action instanceof AppActions.ClickNoMenu) {\n return AppActions.clickNoMenu(Effect_Aff_Class.monadAffState(Halogen_Query_HalogenM.monadAffHalogenM(dictMonadAff)))(Control_Monad_State_Trans.monadStateStateT(Halogen_Query_HalogenM.monadHalogenM));\n };\n if (action instanceof AppActions.ToggleEditMode) {\n return Control_Applicative.pure(Control_Monad_State_Trans.applicativeStateT(Halogen_Query_HalogenM.monadHalogenM))(Data_Unit.unit);\n };\n if (action instanceof AppActions.ToggleTabNormalization) {\n return AppActions.toggleTabNormalization(Effect_Aff_Class.monadAffState(Halogen_Query_HalogenM.monadAffHalogenM(dictMonadAff)))(Control_Monad_State_Trans.monadStateStateT(Halogen_Query_HalogenM.monadHalogenM));\n };\n if (action instanceof AppActions.ToggleTabDozenalization) {\n return AppActions.toggleTabDozenalization(Effect_Aff_Class.monadAffState(Halogen_Query_HalogenM.monadAffHalogenM(dictMonadAff)))(Control_Monad_State_Trans.monadStateStateT(Halogen_Query_HalogenM.monadHalogenM));\n };\n if (action instanceof AppActions.ToggleChordDozenalization) {\n return AppActions.toggleChordDozenalization(Effect_Aff_Class.monadAffState(Halogen_Query_HalogenM.monadAffHalogenM(dictMonadAff)))(Control_Monad_State_Trans.monadStateStateT(Halogen_Query_HalogenM.monadHalogenM));\n };\n if (action instanceof AppActions.ToggleChordNormalization) {\n return AppActions.toggleChordNormalization(Effect_Aff_Class.monadAffState(Halogen_Query_HalogenM.monadAffHalogenM(dictMonadAff)))(Control_Monad_State_Trans.monadStateStateT(Halogen_Query_HalogenM.monadHalogenM));\n };\n if (action instanceof AppActions.CreateShortUrl) {\n return AppActions.createAndCopyShortUrl(Effect_Aff_Class.monadAffState(Halogen_Query_HalogenM.monadAffHalogenM(dictMonadAff)))(Control_Monad_State_Trans.monadStateStateT(Halogen_Query_HalogenM.monadHalogenM));\n };\n if (action instanceof AppActions.ToggleAutoscroll) {\n return Control_Applicative.pure(Control_Monad_State_Trans.applicativeStateT(Halogen_Query_HalogenM.monadHalogenM))(Data_Unit.unit);\n };\n if (action instanceof AppActions.IncreaseAutoscrollSpeed) {\n return AppActions.increaseAutoscrollSpeed(Effect_Aff_Class.monadAffState(Halogen_Query_HalogenM.monadAffHalogenM(dictMonadAff)))(Control_Monad_State_Trans.monadStateStateT(Halogen_Query_HalogenM.monadHalogenM));\n };\n if (action instanceof AppActions.DecreaseAutoscrollSpeed) {\n return AppActions.decreaseAutoscrollSpeed(Effect_Aff_Class.monadAffState(Halogen_Query_HalogenM.monadAffHalogenM(dictMonadAff)))(Control_Monad_State_Trans.monadStateStateT(Halogen_Query_HalogenM.monadHalogenM));\n };\n if (action instanceof AppActions.IncreaseTransposition) {\n return AppActions.increaseTransposition(Effect_Aff_Class.monadAffState(Halogen_Query_HalogenM.monadAffHalogenM(dictMonadAff)))(Control_Monad_State_Trans.monadStateStateT(Halogen_Query_HalogenM.monadHalogenM));\n };\n if (action instanceof AppActions.DecreaseTransposition) {\n return AppActions.decreaseTransposition(Effect_Aff_Class.monadAffState(Halogen_Query_HalogenM.monadAffHalogenM(dictMonadAff)))(Control_Monad_State_Trans.monadStateStateT(Halogen_Query_HalogenM.monadHalogenM));\n };\n if (action instanceof AppActions.FlatNoteOrientation) {\n return AppActions.setNoteOrientation(Effect_Aff_Class.monadAffState(Halogen_Query_HalogenM.monadAffHalogenM(dictMonadAff)))(TablatureRewriter.Flat.value)(Control_Monad_State_Trans.monadStateStateT(Halogen_Query_HalogenM.monadHalogenM));\n };\n if (action instanceof AppActions.SharpNoteOrientation) {\n return AppActions.setNoteOrientation(Effect_Aff_Class.monadAffState(Halogen_Query_HalogenM.monadAffHalogenM(dictMonadAff)))(TablatureRewriter.Sharp.value)(Control_Monad_State_Trans.monadStateStateT(Halogen_Query_HalogenM.monadHalogenM));\n };\n if (action instanceof AppActions.DefaultNoteOrientation) {\n return AppActions.setNoteOrientation(Effect_Aff_Class.monadAffState(Halogen_Query_HalogenM.monadAffHalogenM(dictMonadAff)))(TablatureRewriter.Default.value)(Control_Monad_State_Trans.monadStateStateT(Halogen_Query_HalogenM.monadHalogenM));\n };\n if (action instanceof AppActions.ImportFromUrl) {\n return AppActions.importFromUrl(Effect_Aff_Class.monadAffState(Halogen_Query_HalogenM.monadAffHalogenM(dictMonadAff)))(Control_Monad_State_Trans.monadStateStateT(Halogen_Query_HalogenM.monadHalogenM))(action.value0);\n };\n if (action instanceof AppActions.SearchInput) {\n return AppActions.searchInput(Effect_Aff_Class.monadAffState(Halogen_Query_HalogenM.monadAffHalogenM(dictMonadAff)))(Control_Monad_State_Trans.monadStateStateT(Halogen_Query_HalogenM.monadHalogenM))(action.value0);\n };\n if (action instanceof AppActions.ToggleSearch) {\n return AppActions.toggleSearch(Effect_Aff_Class.monadAffState(Halogen_Query_HalogenM.monadAffHalogenM(dictMonadAff)))(Control_Monad_State_Trans.monadStateStateT(Halogen_Query_HalogenM.monadHalogenM));\n };\n if (action instanceof AppActions.NoAction) {\n return Control_Applicative.pure(Control_Monad_State_Trans.applicativeStateT(Halogen_Query_HalogenM.monadHalogenM))(Data_Unit.unit);\n };\n throw new Error(\"Failed pattern match at Main (line 81, column 3 - line 103, column 26): \" + [ action.constructor.name ]);\n })())(function () {\n return Control_Bind.discard(Control_Bind.discardUnit)(Control_Monad_State_Trans.bindStateT(Halogen_Query_HalogenM.monadHalogenM))(updateAutoscroll(dictMonadAff)(action))(function () {\n return Control_Bind.discard(Control_Bind.discardUnit)(Control_Monad_State_Trans.bindStateT(Halogen_Query_HalogenM.monadHalogenM))(updateDocumentTitle(Effect_Aff_Class.monadAffState(Halogen_Query_HalogenM.monadAffHalogenM(dictMonadAff)))(Control_Monad_State_Trans.monadStateStateT(Halogen_Query_HalogenM.monadHalogenM)))(function () {\n return Control_Bind.bind(Control_Monad_State_Trans.bindStateT(Halogen_Query_HalogenM.monadHalogenM))(Cache.read(Control_Monad_State_Trans.monadStateStateT(Halogen_Query_HalogenM.monadHalogenM))(AppState.rewriteResultCache(Effect_Aff_Class.monadAffState(Halogen_Query_HalogenM.monadAffHalogenM(dictMonadAff)))(Control_Monad_State_Trans.monadStateStateT(Halogen_Query_HalogenM.monadHalogenM))))(function () {\n return AppState.setState(Control_Monad_State_Trans.monadStateStateT(Halogen_Query_HalogenM.monadHalogenM))(function (dictStrong) {\n return AppState[\"_loading\"](dictStrong);\n })(false);\n });\n });\n });\n });\n };\n};\nvar handleAction = function (dictMonadAff) {\n return function (action) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Halogen_Query_HalogenM.bindHalogenM)(prepareHtml(dictMonadAff)(action))(function () {\n return Control_Bind.discard(Control_Bind.discardUnit)(Halogen_Query_HalogenM.bindHalogenM)(Effect_Aff_Class.liftAff(Halogen_Query_HalogenM.monadAffHalogenM(dictMonadAff))(Effect_Aff.delay(0.0)))(function () {\n return Control_Bind.bind(Halogen_Query_HalogenM.bindHalogenM)(Control_Monad_State_Class.get(Halogen_Query_HalogenM.monadStateHalogenM))(function (currentState) {\n return Control_Bind.bind(Halogen_Query_HalogenM.bindHalogenM)(Control_Monad_State_Trans.execStateT(Halogen_Query_HalogenM.functorHalogenM)(doAction(dictMonadAff)(action))(currentState))(function (newState) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Halogen_Query_HalogenM.bindHalogenM)(Control_Monad_State_Class.put(Halogen_Query_HalogenM.monadStateHalogenM)(newState))(function () {\n return Control_Bind.discard(Control_Bind.discardUnit)(Halogen_Query_HalogenM.bindHalogenM)(Effect_Aff_Class.liftAff(Halogen_Query_HalogenM.monadAffHalogenM(dictMonadAff))(Effect_Aff.delay(0.0)))(function () {\n return updateFocus(dictMonadAff)(action);\n });\n });\n });\n });\n });\n });\n };\n};\nvar component = function (dictMonadAff) {\n return Halogen_Component.mkComponent({\n initialState: AppState.initialState,\n render: AppHtml.render,\n \"eval\": Halogen_Component.mkEval({\n handleAction: handleAction(dictMonadAff),\n handleQuery: Halogen_Component.defaultEval.handleQuery,\n receive: Halogen_Component.defaultEval.receive,\n initialize: new Data_Maybe.Just(AppActions.Initialize.value),\n finalize: Halogen_Component.defaultEval.finalize\n })\n });\n};\nvar main = function __do() {\n var mode = LocationString.getQueryParam(\"u\")();\n if (mode instanceof Data_Maybe.Just) {\n return AppUrl.redirectToUrlInFragment();\n };\n $foreign.executeJavascriptHacks();\n return Halogen_Aff_Util.runHalogenAff(Control_Bind.bind(Effect_Aff.bindAff)(Halogen_Aff_Util.awaitBody)(function (body) {\n return Halogen_VDom_Driver.runUI(component(Effect_Aff_Class.monadAffAff))(Data_Unit.unit)(body);\n }))();\n};\nexport {\n executeJavascriptHacks\n} from \"./foreign.js\";\nexport {\n main,\n component,\n handleAction,\n prepareHtml,\n doAction,\n updateDocumentTitle,\n updateFocus,\n toggleEditMode,\n updateAutoscroll,\n updateAutoscrollTimer,\n startAutoscroll,\n setDocumentTitle\n};\n","export function autocomplete(textarea) {\n return function () {\n return textarea.autocomplete;\n };\n}\n\nexport function setAutocomplete(autocomplete) {\n return function (textarea) {\n return function () {\n textarea.autocomplete = autocomplete;\n };\n };\n}\n\n// ----------------------------------------------------------------------------\n\nexport function autofocus(textarea) {\n return function () {\n return textarea.autofocus;\n };\n}\n\nexport function setAutofocus(autofocus) {\n return function (textarea) {\n return function () {\n textarea.autofocus = autofocus;\n };\n };\n}\n\n// ----------------------------------------------------------------------------\n\nexport function cols(textarea) {\n return function () {\n return textarea.cols;\n };\n}\n\nexport function setCols(cols) {\n return function (textarea) {\n return function () {\n textarea.cols = cols;\n };\n };\n}\n\n// ----------------------------------------------------------------------------\n\nexport function dirName(textarea) {\n return function () {\n return textarea.dirName;\n };\n}\n\nexport function setDirName(dirName) {\n return function (textarea) {\n return function () {\n textarea.dirName = dirName;\n };\n };\n}\n\n// ----------------------------------------------------------------------------\n\nexport function disabled(textarea) {\n return function () {\n return textarea.disabled;\n };\n}\n\nexport function setDisabled(disabled) {\n return function (textarea) {\n return function () {\n textarea.disabled = disabled;\n };\n };\n}\n\n// ----------------------------------------------------------------------------\n\nexport function _form(textarea) {\n return function () {\n return textarea.form;\n };\n}\n\n// ----------------------------------------------------------------------------\n\nexport function maxLength(textarea) {\n return function () {\n return textarea.maxLength;\n };\n}\n\nexport function setMaxLength(maxLength) {\n return function (textarea) {\n return function () {\n textarea.maxLength = maxLength;\n };\n };\n}\n\n// ----------------------------------------------------------------------------\n\nexport function minLength(textarea) {\n return function () {\n return textarea.minLength;\n };\n}\n\nexport function setMinLength(minLength) {\n return function (textarea) {\n return function () {\n textarea.minLength = minLength;\n };\n };\n}\n\n// ----------------------------------------------------------------------------\n\nexport function name(textarea) {\n return function () {\n return textarea.name;\n };\n}\n\nexport function setName(name) {\n return function (textarea) {\n return function () {\n textarea.name = name;\n };\n };\n}\n\n// ----------------------------------------------------------------------------\n\nexport function placeholder(textarea) {\n return function () {\n return textarea.placeholder;\n };\n}\n\nexport function setPlaceholder(placeholder) {\n return function (textarea) {\n return function () {\n textarea.placeholder = placeholder;\n };\n };\n}\n\n// ----------------------------------------------------------------------------\n\nexport function readOnly(textarea) {\n return function () {\n return textarea.readOnly;\n };\n}\n\nexport function setReadOnly(readOnly) {\n return function (textarea) {\n return function () {\n textarea.readOnly = readOnly;\n };\n };\n}\n\n// ----------------------------------------------------------------------------\n\nexport function required(textarea) {\n return function () {\n return textarea.required;\n };\n}\n\nexport function setRequired(required) {\n return function (textarea) {\n return function () {\n textarea.required = required;\n };\n };\n}\n\n// ----------------------------------------------------------------------------\n\nexport function rows(textarea) {\n return function () {\n return textarea.rows;\n };\n}\n\nexport function setRows(rows) {\n return function (textarea) {\n return function () {\n textarea.rows = rows;\n };\n };\n}\n\n// ----------------------------------------------------------------------------\n\nexport function wrap(textarea) {\n return function () {\n return textarea.wrap;\n };\n}\n\nexport function setWrap(wrap) {\n return function (textarea) {\n return function () {\n textarea.wrap = wrap;\n };\n };\n}\n\n// ----------------------------------------------------------------------------\n\nexport function type_(textarea) {\n return function () {\n return textarea.type;\n };\n}\n\n// ----------------------------------------------------------------------------\n\nexport function defaultValue(textarea) {\n return function () {\n return textarea.defaultValue;\n };\n}\n\nexport function setDefaultValue(defaultValue) {\n return function (textarea) {\n return function () {\n textarea.defaultValue = defaultValue;\n };\n };\n}\n\n// ----------------------------------------------------------------------------\n\nexport function value(textarea) {\n return function () {\n return textarea.value;\n };\n}\n\nexport function setValue(value) {\n return function (textarea) {\n return function () {\n textarea.value = value;\n };\n };\n}\n\n// ----------------------------------------------------------------------------\n\nexport function textLength(textarea) {\n return function () {\n return textarea.textLength;\n };\n}\n\n// ----------------------------------------------------------------------------\n\nexport function willValidate(textarea) {\n return function () {\n return textarea.willValidate;\n };\n}\n\n// ----------------------------------------------------------------------------\n\nexport function validity(textarea) {\n return function () {\n return textarea.validity;\n };\n}\n\n// ----------------------------------------------------------------------------\n\nexport function validationMessage(textarea) {\n return function () {\n return textarea.validationMessage;\n };\n}\n\n// ----------------------------------------------------------------------------\n\nexport function checkValidity(textarea) {\n return function () {\n return textarea.checkValidity();\n };\n}\n\n// ----------------------------------------------------------------------------\n\nexport function reportValidity(textarea) {\n return function () {\n return textarea.reportValidity();\n };\n}\n\n// ----------------------------------------------------------------------------\n\nexport function setCustomValidity(value) {\n return function (textarea) {\n return function () {\n textarea.setCustomValidity(value);\n };\n };\n}\n\n// ----------------------------------------------------------------------------\n\nexport function labels(textarea) {\n return function () {\n return textarea.labels;\n };\n}\n\n// ----------------------------------------------------------------------------\n\nexport function select(textarea) {\n return function () {\n textarea.select();\n };\n}\n\n// ----------------------------------------------------------------------------\n\nexport function selectionStart(textarea) {\n return function () {\n return textarea.selectionStart;\n };\n}\n\nexport function setSelectionStart(selectionStart) {\n return function (textarea) {\n return function () {\n textarea.selectionStart = selectionStart;\n };\n };\n}\n\n// ----------------------------------------------------------------------------\n\nexport function selectionEnd(textarea) {\n return function () {\n return textarea.selectionEnd;\n };\n}\n\nexport function setSelectionEnd(selectionEnd) {\n return function (textarea) {\n return function () {\n textarea.selectionEnd = selectionEnd;\n };\n };\n}\n\n// ----------------------------------------------------------------------------\n\nexport function selectionDirection(textarea) {\n return function () {\n return textarea.selectionDirection;\n };\n}\n\nexport function setSelectionDirection(selectionDirection) {\n return function (textarea) {\n return function () {\n textarea.selectionDirection = selectionDirection;\n };\n };\n}\n\n// ----------------------------------------------------------------------------\n\nexport function setRangeText(replacement) {\n return function (textarea) {\n return function () {\n textarea.setRangeText(replacement);\n };\n };\n}\n\nexport function _setRangeText(replacement, start, end, selectionMode, textarea) {\n textarea.setRangeText(replacement, start, end, selectionMode);\n}\n\n// ----------------------------------------------------------------------------\n\nexport function setSelectionRange(start) {\n return function (end) {\n return function (direction) {\n return function (textarea) {\n return function () {\n textarea.setSelectionRange(start, end, direction);\n };\n };\n };\n };\n}\n","var Main = require('../output/Main');\n\nfunction main () {\n /*\n Here we could add variables such as\n\n var baseUrl = process.env.BASE_URL;\n\n Parcel will replace `process.env.BASE_URL`\n with the string contents of the BASE_URL environment\n variable at bundle/build time.\n A .env file can also be used to override shell variables\n for more information, see https://en.parceljs.org/env.html\n\n These variables can be supplied to the Main.main function.\n However, you will need to change the type to accept variables, by default it is an Effect.\n You will probably want to make it a function from String -> Effect ()\n */\n\n Main.main();\n}\n\n// For HMR info see: https://parceljs.org/hmr.html\n\nconsole.log('Starting app');\nmain();\n"],"names":["LZString","f","String","fromCharCode","keyStrBase64","keyStrUriSafe","baseReverseDic","getBaseValue","alphabet","character","i","length","charAt","LZString1","compressToBase64","input","res","_compress","a","decompressFromBase64","_decompress","index","compressToUTF16","decompressFromUTF16","compressed","charCodeAt","compressToUint8Array","uncompressed","compress","buf","Uint8Array","TotalLen","current_value","decompressFromUint8Array","decompress","Array","result","forEach","c","push","join","compressToEncodedURIComponent","decompressFromEncodedURIComponent","replace","bitsPerChar","getCharFromInt","value","ii","context_dictionary","context_dictionaryToCreate","context_c","context_wc","context_w","context_enlargeIn","context_dictSize","context_numBits","context_data","context_data_val","context_data_position","Object","prototype","hasOwnProperty","call","Math","pow","resetValue","getNextValue","w","bits","resb","maxpower","power","dictionary","enlargeIn","dictSize","numBits","entry","data","val","position","define","amd","module","exports","$bbf04ce6ad0d5805$exports","webm","mp4","$50e735a1de9ac006$var$oldIOS","navigator","parseFloat","exec","userAgent","window","MSStream","$50e735a1de9ac006$var$nativeWakeLock","$62b3ded9d4f7f437$var$noSleep","$parcel$interopDefault","constructor","this","enabled","_wakeLock","handleVisibilityChange","document","visibilityState","enable","addEventListener","noSleepTimer","noSleepVideo","createElement","setAttribute","_addSourceToVideo","$50e735a1de9ac006$require$webm","$50e735a1de9ac006$require$mp4","duration","currentTime","random","element","type","dataURI","source","src","appendChild","isEnabled","wakeLock","request","then","console","log","catch","err","error","name","message","disable","warn","setInterval","hidden","location","href","split","setTimeout","stop","Promise","resolve","play","release","clearInterval","pause","$62b3ded9d4f7f437$export$5d114b05173d62d0","reload","root","querySelector","style","setProperty","max","documentElement","clientHeight","innerHeight","bgColor","getComputedStyle","getPropertyValue","m","content","head","enableNoSleep","removeEventListener","$5807467a73465f3c$export$3af17640bddf7212","compose","g","x","$5807467a73465f3c$export$f672e0b6f7222cd7","dict","$5be483788e0e6f04$export$f0954fd7d5368655","identity","$5be483788e0e6f04$export$7037e3b2ba3bd7aa","Semigroupoid0","$f57f4b701aa7b66e$export$af631764ddc44097","y","$f57f4b701aa7b66e$export$8a83211c878a3f1f","b","$f57f4b701aa7b66e$export$5b38a098e5a9e7ca","v","$c6a0478cbb9b5a21$export$accffb5fb4579e0d","$$Proxy1","$f4b2eb11fc32ed34$export$871de8747c9eaa88","map","$f4b2eb11fc32ed34$export$5c8c64e4bc0bcb7a","dictFunctor","fa","$f4b2eb11fc32ed34$export$490e536ee7389aeb","undefined","$f4b2eb11fc32ed34$export$6775eb02dd4c5e2a","$f4b2eb11fc32ed34$export$2330f868b62ed546","arr","l","$7576d3a958d66ab0$export$60d7bd9d686a5521","apply","fs","xs","k","n","j","Functor0","$7576d3a958d66ab0$export$5635d7ef4b8fee1c","$7576d3a958d66ab0$export$e48e2da4536c2eea","dictApply","$7576d3a958d66ab0$export$3d5d566a030a20fc","$7576d3a958d66ab0$export$f016650e64b51e7d","$c50cfdb0b9e8fa31$export$48ec4a2b1cfc6557","pure","$c50cfdb0b9e8fa31$export$a55877ca9db47377","dictApplicative","v1","Error","fill","$fc8c1182ec2aefec$export$7de5ece11b723a44","Cons","tail","emptyList","curryCons","foldr","list","count","listToArray","$fc8c1182ec2aefec$export$f24224f1c91d8156","$fc8c1182ec2aefec$export$3dea766d36a8935f","filter","$fc8c1182ec2aefec$export$b29f828819edca8d","yes","no","mergeFromTo","compare","fromOrdering","xs1","xs2","from","to","mid","$1f7f00687c3959c5$export$e5ed8a20a1c4d576","reflectSymbol","$d2fadbdf02925823$export$1d94535d2cda4eda","label","rec","$d2fadbdf02925823$export$444262986932b766","copy","key","$d7bf9817a417d4ae$export$d9b7100b101f2c5b","append","s1","s2","$d7bf9817a417d4ae$export$d082f07d0a8e9909","ys","concat","$d7bf9817a417d4ae$export$10d8903dec122b9d","$d7bf9817a417d4ae$export$49c9dc4575956c55","dictSemigroup","$75e93a4111e80214$export$228be17d80722ab","alt","$70cd3177464e7915$export$584af591d945b55a","discard","$70cd3177464e7915$export$794f9574ca20b986","bind","Apply0","$70cd3177464e7915$export$2385a24977818dd0","$70cd3177464e7915$export$f2077a1c19a006d9","dictBind","$70cd3177464e7915$export$ea9fbbe247ef8e50","$70cd3177464e7915$export$61a2047e1b1e0d3e","$70cd3177464e7915$export$f73711e565ded7e","$70cd3177464e7915$export$f7e2c8231c57a8bd","$d3d065da31679be1$export$551dd5524146e426","dictMonad","mb","Bind1","Applicative0","$c50cfdb0b9e8fa31$export$6f0673371501d6b6","$d3d065da31679be1$export$2f6ca3d3b1f80bf5","f$prime","a$prime","$cd1cb347a48b7ff0$export$4ffd3705721c8b5b","$cd1cb347a48b7ff0$export$d6be889e229abd84","Number","POSITIVE_INFINITY","NEGATIVE_INFINITY","$e07f6ef164bf0728$var$unsafeCompareImpl","lt","eq","gt","$e07f6ef164bf0728$export$654933317498633e","$e07f6ef164bf0728$export$bfcbb0304ffa620f","$e07f6ef164bf0728$export$5a20025607cdef3f","$f4eec6a416d226bf$var$refEq","r1","r2","$37b880af5f4991bd$export$fa624555ca2acbc8","$37b880af5f4991bd$export$e65788c6d4494539","$37b880af5f4991bd$export$bcd79f9321394c38","$37b880af5f4991bd$export$d7927e8ffc1afb48","$37b880af5f4991bd$export$9663ddc1cf085b32","$37b880af5f4991bd$export$5475dfc31a65c2cd","dictEq","$5026be88823ef1f4$export$7158f0ceb70f54c7","LT1","$5026be88823ef1f4$export$b023c82b48e70453","GT1","$5026be88823ef1f4$export$1c0a5d05eb3f6e18","EQ1","$c0e822be92afc4df$export$7f9972325ebfd559","zero","$c0e822be92afc4df$export$7e80d6910c05bd77","add","mul","one","$c0e822be92afc4df$export$e16d8520af44a096","$d061555d3b2c84b2$export$f93b5905241a7cca","sub","$d061555d3b2c84b2$export$d40e27c88e22a303","Semiring0","$d061555d3b2c84b2$export$aef51622e549b8b0","dictRing","$97937c29f879e68e$export$c5f2758e49b2b86a","Eq0","$97937c29f879e68e$export$ff461bf68e7dd332","$97937c29f879e68e$export$3abd12c96be3b09b","$97937c29f879e68e$export$398604a469f7de9a","$97937c29f879e68e$export$4be320a4fd1ac499","dictOrd","a1","a2","$97937c29f879e68e$export$9b050841a3a1b328","$97937c29f879e68e$export$8960430cfd85939f","$97937c29f879e68e$export$96ec731ed4dcb222","$97937c29f879e68e$export$7d15b64cf5a3a4c4","low","hi","$69d0e3dbb12088d2$export$1e95b668f3b82d","top","$69d0e3dbb12088d2$export$c84fa7e5ca2385dd","bottom","Ord0","$69d0e3dbb12088d2$export$7cd7c97ac7ec5b79","$69d0e3dbb12088d2$export$40e543e69a8b3fbb","$2c6b3d51d10471a7$export$e4b6cd05df3043f6","show","s","empty","toString","$2c6b3d51d10471a7$export$3d7cf516d27998a0","$2c6b3d51d10471a7$export$ad55f318773e3cd5","$2c6b3d51d10471a7$export$57bf213be019eeb0","$91c996e9c07e3b3f$export$dd5fad028b7772cd","Inl1","value0","create","$91c996e9c07e3b3f$export$df71ca4577dbdff6","Inr1","$91c996e9c07e3b3f$export$928c7f2d618c070b","NoArguments1","$91c996e9c07e3b3f$export$8bfc33963ccbb2a","$91c996e9c07e3b3f$export$2c618a4308a30424","$91c996e9c07e3b3f$export$6788812c4e6611e6","$06733ae99ed4f534$export$bebe9059409a0d04","Nothing1","$06733ae99ed4f534$export$8a67b48435b5d073","Just1","$06733ae99ed4f534$export$f8b8b9ce72e9ccbf","v2","$06733ae99ed4f534$export$4967676db1b89293","$06733ae99ed4f534$export$c15bd07a493e1236","$06733ae99ed4f534$export$fdd2427f0e60fd66","$06733ae99ed4f534$export$43db023a260c5e9f","$06733ae99ed4f534$export$2506262575dd10a7","$06733ae99ed4f534$export$8f45bb76abf9699e","$06733ae99ed4f534$export$22d9917da16590e7","$06733ae99ed4f534$export$e5fea5661dee377","$06733ae99ed4f534$export$b203ef4465f15037","$7d4cccdf062a2261$export$37c4d04eafdc5515","Left1","$7d4cccdf062a2261$export$19db0165690c701a","Right1","$7d4cccdf062a2261$export$a92e4c44d367d0af","$7d4cccdf062a2261$export$f0a413d3d6075601","$7d4cccdf062a2261$export$5f5be1bb6cd1fded","$7d4cccdf062a2261$export$3a6c138b8d0f3874","$7d4cccdf062a2261$export$d5df7cb019d08f04","$7d4cccdf062a2261$export$3806e10d0c441ac5","e","$7d4cccdf062a2261$export$400f1ef3f3ec304d","$7d4cccdf062a2261$export$b3b4ecb28e3a8df3","$50c50d1f444e5fa4$export$544bf02140fa9a77","$50c50d1f444e5fa4$export$dc85e8383eafbd81","$50c50d1f444e5fa4$export$c7d2c62721e92954","$50c50d1f444e5fa4$export$91e759983456b85e","$50c50d1f444e5fa4$export$fd3b2458e55fc503","$50c50d1f444e5fa4$export$9a2f2fd6148bc6d0","$a64f08f726dec5e9$export$5745e05f6b169cee","Ring0","$b0cd729514c2504e$export$842a2cf37af977e1","mod","$b0cd729514c2504e$export$437776face1858ae","degree","min","abs","div","floor","yy","CommutativeRing0","$b0cd729514c2504e$export$159d9494db57879b","$784e1bd3d26d71da$export$fc39f3d77fa2e58a","mempty","Semigroup0","$784e1bd3d26d71da$export$db307f59121ffcc4","$784e1bd3d26d71da$export$9a7d64bc1d75357","$784e1bd3d26d71da$export$192e81b9fe7e4abe","dictMonoid","$01fd16aefb19fd56$export$f6d4f01ca39c2fe","$6c2f8951ecf9531e$var$$runtime_lazy","moduleName","init","state","lineNumber","ReferenceError","$6c2f8951ecf9531e$export$7e900d895707a1af","$6c2f8951ecf9531e$export$89bf999217d3022a","$6c2f8951ecf9531e$export$855330f8a2a9f2e8","$6c2f8951ecf9531e$var$$lazy_applyEffect","$6c2f8951ecf9531e$var$$lazy_functorEffect","$6c2f8951ecf9531e$export$91fce01ecf0438e1","$6c2f8951ecf9531e$export$59a7b217c53300d2","$e521936ea118867a$export$aafa59e2e03f2942","ref","$e521936ea118867a$export$68d8715fc104d294","$90327512d8280b8d$export$b8cb59497041ffe4","$90327512d8280b8d$export$4d5401161a900ce1","t","$90327512d8280b8d$export$3ff57735a52b8713","s$prime","$90327512d8280b8d$export$45b91115a89d6020","$f93520de2fa37b44$export$550acbd06a1f5a6a","Loop1","$f93520de2fa37b44$export$7fe28cb29e71bf10","Done1","$f93520de2fa37b44$export$c025cfd4cc93300b","tailRecM","$f93520de2fa37b44$export$2e586eaa876dd2fd","$55","$copy_v","$tco_result","$tco_done","$tco_loop","go","$f93520de2fa37b44$export$ddd28c989be5e46c","a0","Monad0","$f93520de2fa37b44$export$c2472dc015e90d28","fromDone","r","$f93520de2fa37b44$export$61e43214bca7f031","bimap","$f11e5cd39add8df2$export$b8cb59497041ffe4","$f11e5cd39add8df2$export$aafa59e2e03f2942","$f11e5cd39add8df2$export$68d8715fc104d294","$08944f7287e2704c$export$4d5401161a900ce1","$08944f7287e2704c$export$a47991927f51461e","$08944f7287e2704c$export$962073314682c2c","$08944f7287e2704c$export$603d84e49041d7b2","$08944f7287e2704c$export$14049c9ff5b55fb3","$08944f7287e2704c$var$$lazy_applyST","$08944f7287e2704c$var$$runtime_lazy","$08944f7287e2704c$export$65915895b3a8faeb","$0dbe0c7353bd68b1$export$7c850c5af9b9983e","$0dbe0c7353bd68b1$var$copyImpl","slice","$0dbe0c7353bd68b1$export$80340c06f76ce783","$784e144d56146b5c$export$fd51609fe570ea92","$784e144d56146b5c$export$4cbf152802aa238","as","$f8fc227945eb179e$export$80bf595f9d9a1157","tt","$f8fc227945eb179e$export$6003a5f097c73977","not","$f8fc227945eb179e$export$6c53455e54f455ef","implies","$f8fc227945eb179e$export$f59495b1b7502b33","ff","$f8fc227945eb179e$export$9bd7ee00e37438db","disj","$f8fc227945eb179e$export$d7d9283ee84f4c3f","conj","b1","b2","$f8fc227945eb179e$export$fb254c661fe9c0db","$f8fc227945eb179e$export$e9ae480d80dfc592","dictHeytingAlgebra","$8dd172f1ebfb42af$var$Iterator","Iterator1","value1","$8dd172f1ebfb42af$export$48cfd1e771a65c4f","$08944f7287e2704c$export$3ff57735a52b8713","$8dd172f1ebfb42af$export$6f58e2338da23f4d","$8dd172f1ebfb42af$export$c1a059043cc9c119","iter","$$break","mx","$7abe8fbe97ebda87$export$6e22c362a0406a2c","$71f2e2e9476163f8$export$1908877435b1d5e9","Tuple1","$71f2e2e9476163f8$export$6f71268a1666ab58","$71f2e2e9476163f8$export$19ab04734dcb0ff0","$71f2e2e9476163f8$export$9e770fa6ce19a9d6","$20615e99b278adf5$export$eb54baf0b342cb1d","$20615e99b278adf5$export$2ad466be2e2b0196","dictBifunctor","$20615e99b278adf5$export$9b66d4861c364eff","$1242d110ab1edcd9$export$286e7113895e33ef","$1242d110ab1edcd9$export$e1c73e5b30670500","$1242d110ab1edcd9$export$f23e3b19aa9e04ea","$57b8542ac3131c5d$export$947ca1a8eed6111","dictCategory","dictSemigroupoid","$ac8b3532514ac019$export$401372c57776dc","$a4e6c090e9e673b6$export$8c14e57e778d3873","$4fa4836228a192cc$export$debb760848ca95a","$4fa4836228a192cc$export$3b98aa7d576b2b80","$4fa4836228a192cc$export$b533eaec53aab18a","$4fe7b6acfba7f29f$export$a11cb61c36c4a4cf","$4fe7b6acfba7f29f$export$33f63ccdb08d8723","dictFoldable","$316","$317","$4fe7b6acfba7f29f$export$9747ee7caa0b40b1","$4fe7b6acfba7f29f$export$50ae948ca12cdcbc","foldl","$4fe7b6acfba7f29f$export$739ec22334c44788","sep","acc","$4fe7b6acfba7f29f$export$8a63f25cc62965f1","dictSemiring","$4fe7b6acfba7f29f$export$ff97dbee91e727b6","z","foldMap","$4fe7b6acfba7f29f$export$e97014618a7eb593","len","$4fe7b6acfba7f29f$export$b66cdc0497d8a99a","$4fe7b6acfba7f29f$export$93e2b83da34ff82a","$4fe7b6acfba7f29f$export$4154a199d7d90455","$e2e7171b55349aa8$export$778bf95e3da1fa51","array1","array2","array3","concat2","array","bot","pivot","$10ae0394c8c3139a$export$8ad5d15375e29446","$10ae0394c8c3139a$export$c03820c48bf31fc8","$10ae0394c8c3139a$export$38647a91a5af2717","$e48f2e41a907ae60$export$c38b62d29991685f","$e48f2e41a907ae60$export$8adb2de2291fe34","$11d1e86de605dfc6$export$df3f009e3d155b20","traverse","$11d1e86de605dfc6$export$417d88f64c497aed","dictTraversable","$11d1e86de605dfc6$export$9e4a28683e28e26a","sequence","Foldable1","$6c33ca7d98a534e5$export$6368c6d238d348f0","isNothing","fromJust","fst","snd","maybe","tuple","$b1275140774187c9$export$e3753a19e82ccedc","$cf5af1199a495394$export$587ba9a9bf3cf8b4","unfoldr1","$cb5fedc2c4837e1c$export$df2b8ee1690308ae","unfoldr","$cb5fedc2c4837e1c$export$2b90ca20b4b58da5","Unfoldable10","$396c4c3d9e7fae3c$export$c40cf5aab899f397","$396c4c3d9e7fae3c$export$439306a4dcaafbb9","$396c4c3d9e7fae3c$export$b610b8812bbcded9","just","nothing","$396c4c3d9e7fae3c$export$5fd5031fecdacec3","$396c4c3d9e7fae3c$export$b7d5d9bb9ff52072","$396c4c3d9e7fae3c$export$de3a4d4a0d731119","$396c4c3d9e7fae3c$export$f444781b0adb7e4d","$396c4c3d9e7fae3c$export$5bf96401662340b7","$396c4c3d9e7fae3c$export$90f9093465da3136","l1","splice","$396c4c3d9e7fae3c$export$9ea2b6c3fae093d8","$396c4c3d9e7fae3c$export$c28c8388be0ab31a","$396c4c3d9e7fae3c$export$e70771d2e7e590a","$99","$100","$4ab74a20512cef04$export$f601457c5ee3082f","radix","isNaN","isFinite","acos","asin","atan","ceil","cos","exp","round","sign","sin","sqrt","tan","trunc","$8d5664f12212b23e$export$3004f64547af360e","digits","pattern","RegExp","test","parseInt","$8d5664f12212b23e$export$d7a050b0311540b9","$8d5664f12212b23e$export$7bbb4164c9a77bc2","$f2c9b767d25cfbb9$export$86a2e24932ca2aa0","liftEffect","$f2c9b767d25cfbb9$export$34255e15eb56d2b3","$93c729927fdf3160$export$c106dd0671a0fc2d","$93c729927fdf3160$export$a3bc9b8ed74fc","$ad2cf6904bca3ba1$export$a3bc9b8ed74fc","msg","$ad2cf6904bca3ba1$export$a8ecead220dd38a6","$ad2cf6904bca3ba1$export$de0c4a986b439e52","$ad2cf6904bca3ba1$export$d49c1c6bf2cedce5","$5dfefa023749ded0$export$8bf7aba4a9e09055","throwError","$5dfefa023749ded0$export$3dede90624df3ba9","catchError","$5dfefa023749ded0$export$410a452afcd48948","dictMonadError","MonadThrow0","$21","$22","$f2d5035ce6148af6$export$ca000e230c0caa3e","$f2d5035ce6148af6$export$327f7b26ebf455db","dictMonadState","$f2d5035ce6148af6$export$3988ae62b71be9a3","$384c24655e07f36c$export$590e8b2c435046d9","lift","$2c4a247071255d7e$export$de3113ed932c61ab","tell","$d2284b2d3e1b6f87$export$34cbd9fbda5c1fb2","$d2284b2d3e1b6f87$export$d684c62fe584fcfa","$d2284b2d3e1b6f87$export$5a198347e9244c74","$d2284b2d3e1b6f87$export$963960a96c103d2f","$d2284b2d3e1b6f87$export$a8cbc0f84e8b069b","$89","$90","$d2284b2d3e1b6f87$export$581feac922061bf0","$91","$92","$d2284b2d3e1b6f87$export$75f89ba5e7a712b0","$101","$102","$d2284b2d3e1b6f87$export$4cca4d0f6dfbd781","rm","rn","$f9f243b94d1fc188$export$64f3cd24d850d401","$d2284b2d3e1b6f87$export$998a9a780731dd5b","$f9f243b94d1fc188$export$a25b8a8a37f2d1cd","$0","$1","$c2c5bfcfd98ddabb$export$f5bbd400c2f4426f","$c2c5bfcfd98ddabb$export$348caad1e8d41c5f","isArray","$1f1c3fb67e79b37f$export$d8deaab87a4e223a","NonEmpty1","$1f1c3fb67e79b37f$export$439306a4dcaafbb9","dictPlus","$1f1c3fb67e79b37f$export$ffafc93d2cc87798","dictShow","dictShow1","$1f1c3fb67e79b37f$export$a6ffbf6bde05f5c0","$78c799cba34fcb8d$export$c1bed610ade55e1c","Nil1","$78c799cba34fcb8d$export$74c44e616647f5c0","Cons1","$78c799cba34fcb8d$export$effcdbd76139450","$78c799cba34fcb8d$export$40b9e4330ffd17e3","$copy_chunksAcc","$tco_result1","$tco_var_chunksAcc","$tco_loop1","chunksAcc","$copy_v1","$copy_acc","$tco_var_v1","$tco_done1","$78c799cba34fcb8d$export$3c979cc7d75b024c","$78c799cba34fcb8d$export$92659ee1fc91a075","rev","$tco_var_acc","$205","$206","$copy_b","$tco_var_b","$207","$208","$78c799cba34fcb8d$export$11cb7909a85856b","$78c799cba34fcb8d$export$a8cfc3dfdfca72cf","as$prime","$78c799cba34fcb8d$export$36831384a74c4427","$78c799cba34fcb8d$export$99c2ce29c0ead637","$222","$223","$225","$226","$224","$78c799cba34fcb8d$export$7e49f2fa1ca16fbc","$78c799cba34fcb8d$export$18f1a42667f2921e","$78c799cba34fcb8d$export$497dcf96eb2383ec","$78c799cba34fcb8d$export$97980ce7ea95015b","$78c799cba34fcb8d$export$55d622505c452dcb","Alt0","$78c799cba34fcb8d$export$e5d0ed5dac805e10","$236","$237","$3d4fd987da5242ff$export$439306a4dcaafbb9","$3d4fd987da5242ff$export$66c1ae025e96b4bc","$3d4fd987da5242ff$export$7b1b591b262c240","$3d4fd987da5242ff$export$17771a97d85ba7eb","dictMonadRec","dictAlternative","p","Plus1","aa","$3d4fd987da5242ff$export$b610b8812bbcded9","$tco_var_v","$3d4fd987da5242ff$export$5fd5031fecdacec3","$3d4fd987da5242ff$export$de3a4d4a0d731119","fn","$3d4fd987da5242ff$export$ee1b3e54f0441b22","$d8f9d43a2c2b18d5$export$b479f9f69f916b6a","$dcd3eefef707675c$export$ddf616d7646fcc8e","$8bcde8f642a64c7d$export$cb50937af21de128","$8bcde8f642a64c7d$export$51b220bae4359b72","$ba51d599f79a6310$var$wrappedOperation","$ba51d599f79a6310$export$effcdbd76139450","$ba51d599f79a6310$export$439306a4dcaafbb9","$169","$170","$ba51d599f79a6310$export$66c1ae025e96b4bc","$ba51d599f79a6310$export$8327ebbef2a0ba76","$092fe44bc0883be6$export$f24224f1c91d8156","$092fe44bc0883be6$export$663103110d94aac9","substring","$092fe44bc0883be6$export$b0d75975ac0be0e1","before","after","$3296d29fc7ea4822$export$bbcf894add1d392c","$1a77d6934b592676$export$71c2a1babd78d286","str","$1a77d6934b592676$export$bbcf894add1d392c","$c97d2d0f578f81ad$export$f6a37cc43a8b8898","ForeignError1","$c97d2d0f578f81ad$export$168e2d3b16829a","TypeMismatch1","$c97d2d0f578f81ad$export$20d9a5af040a79f1","ErrorAtIndex1","$c97d2d0f578f81ad$export$92e5795aa905bd26","ErrorAtProperty1","$c97d2d0f578f81ad$export$9d82982d31d9d171","$c97d2d0f578f81ad$export$19df04dfac508e15","$c97d2d0f578f81ad$export$ca110433ecb89bbf","$c97d2d0f578f81ad$export$a2293656e769bd56","$c97d2d0f578f81ad$export$2b62a06a9fee979c","$115","$116","$c97d2d0f578f81ad$export$6190f2182377b437","tag","$c97d2d0f578f81ad$export$347fd215c36b10be","$c97d2d0f578f81ad$export$ac3747cb00139c63","$117","fromNumber","$118","$c97d2d0f578f81ad$export$dda73877cb166cd3","$50707c2041acf154$export$d5b97dcb03573e55","$426T3","$50707c2041acf154$export$249033b1ea90b5e1","$e33b908fa29b9714$export$a47d25c94f569","$bf46188d6c8b331c$export$e09b5698b1daa629","$bf46188d6c8b331c$export$3b1c842301e48025","origin","pathname","$bf46188d6c8b331c$var$_setLocationString","newurl","$bf46188d6c8b331c$export$fb26b3b2bcd87ed","hash","startsWith","$bf46188d6c8b331c$var$_setFragmentString","protocol","host","search","history","pushState","$bf46188d6c8b331c$var$_setQueryString","$5b07e36f812dd04b$export$77ad94ebf1c2b9ed","s3","$5b07e36f812dd04b$export$b8b3234b4edfc4c2","$5b07e36f812dd04b$export$65980d18b75784e2","$5b07e36f812dd04b$export$b1ceac3893cbda6b","toLowerCase","$5b07e36f812dd04b$export$43df7fc17cca38a4","toUpperCase","$5b07e36f812dd04b$export$ec1dc8fbeea3467e","$90b0f96fa17fd751$export$3cfeaae924d7dc58","components","$90b0f96fa17fd751$export$95fd5664a53dd0c5","paramName","URLSearchParams","get","$bf46188d6c8b331c$export$c39857d5f9675860","$f1bb8ebf3e871e7b$export$6181bf2c9b131c6","$f1bb8ebf3e871e7b$export$806997222bb6c221","$f1bb8ebf3e871e7b$export$709ec6fd4facd918","dictGenericTop","$f1bb8ebf3e871e7b$export$809040532a805d25","$f1bb8ebf3e871e7b$export$e5021f221f1901dc","$f1bb8ebf3e871e7b$export$6664e36118e71716","dictGenericBottom","$f1bb8ebf3e871e7b$export$67bf323f19c93e99","$1cf1b1293ed20ecf$export$d90166409dd04e85","$f935a9866e211c00$export$45328c01562fb205","toEnum","$f935a9866e211c00$export$61d85e1612867711","succ","$f935a9866e211c00$export$c238ae40a8cccc17","pred","$f935a9866e211c00$export$b385cb642735011f","fromEnum","$f935a9866e211c00$export$11e799785deb08e4","toEnum$prime","fromEnum$prime","$f935a9866e211c00$export$dc42af8461b24233","$f935a9866e211c00$var$charToEnum","$f935a9866e211c00$export$8ff57056df5ff58e","$f935a9866e211c00$export$be1f07c3580164c","cardinality","Bounded0","Enum1","$591624f3e890e8f1$export$529bb0fc8518039b","$591624f3e890e8f1$export$21ed8930f14dbb8a","dictGeneric","dictGenericEnum","$98","$591624f3e890e8f1$export$d21b74e9469cda33","$591624f3e890e8f1$export$85896d1160871410","$103","$104","$105","$591624f3e890e8f1$export$bd9e316b601eb70","dictGenericEnum1","$591624f3e890e8f1$export$b96a970ca4ab7189","$591624f3e890e8f1$export$4187ba6208e60aa2","$64b04bb6c92110b4$export$7999ed7bf07e0908","$64b04bb6c92110b4$export$4abec2a7e626a96e","dimap","$24","$64b04bb6c92110b4$export$babcd87d8ce55e9e","first","$25","second","$26","Profunctor0","$64b04bb6c92110b4$export$b41051971cb8cf21","left","right","$64b04bb6c92110b4$export$b8012e26804f1c03","wander","Strong0","Choice1","$9be1c75e3223ee2e$export$e10497e40cde5fd3","a2b","c2d","b2c","$8","$9be1c75e3223ee2e$export$7c344215185fc3ac","$9be1c75e3223ee2e$export$6630987c9d273301","dictProfunctor","$00137f617725882c$export$79ffe56a765070d2","$00137f617725882c$export$fc24090daa54e09a","$65bbf210574f301e$export$311dde6ade8133c7","$65bbf210574f301e$export$43128fadae87b74a","$48c79e0fab366ce5$export$3576324867460c38","$48c79e0fab366ce5$export$cfc1ea1528b06875","$6747074e6373717a$export$1aba8f741a0eae06","pab","$03856732e0180b78$export$96b9aa254b12a908","dictStrong","$03856732e0180b78$export$21cde5187c2605a3","set","$9e314cb25c39ecff$export$e469dcfea9910464","fro","dictChoice","$9e314cb25c39ecff$export$312354c024d04a0e","$c99955db0ea3513e$export$a394bbdd6c32127d","$c99955db0ea3513e$export$ef3fc4df4d6fefd5","$c99955db0ea3513e$export$f417834c5f6f1047","$c99955db0ea3513e$export$b09e0402fa7f3ff2","$98bb5646b70a5fad$export$48abf2f204df1ff5","$6747074e6373717a$export$b0aba6e7ca90045b","$c1ace8e72317eb41$export$afce405d63da662","$8f2697950ee155e1$export$dd8987cb9f63b77e","$8f2697950ee155e1$export$c4d34fab9eba1901","d","$15e8567e7c31ba30$export$adaa4cf7ef1b65be","dictIsSymbol","$15e8567e7c31ba30$export$3988ae62b71be9a3","$83d24b6670f65c42$export$977f3f6a9323c0f6","$e9bda291f4ec10ec$export$5e0a9e9fea50cb88","$e9bda291f4ec10ec$export$d5449d946db19e3a","$e9bda291f4ec10ec$export$345b4840c14ff10f","$e9bda291f4ec10ec$export$5cbc630d6fbe2e14","$e9bda291f4ec10ec$export$f28534bdc7259c7","v3","$e9bda291f4ec10ec$export$2ea3d0ecd25a5eef","$e9bda291f4ec10ec$export$cba9856135198781","dictMonadEffect","$109","$110","$111","$e9bda291f4ec10ec$export$fc3b89a546fa5c5c","$112","$113","$5b0358e10bf152e0$export$adaa4cf7ef1b65be","$20b7e7e53aabb118$export$ce9a3b8b41ce61b6","dictWander","$1beecf5cf4a05a68$export$281e652f04014a17","constructBarlow","$1beecf5cf4a05a68$export$2ccf07702ef4caa1","constructBarlowGeneric","$125","$126","$127","$128","$1beecf5cf4a05a68$export$8fd0cc604c051e60","$1beecf5cf4a05a68$export$f850042db236fa4a","dictConstructBarlowGeneric","$139","$c99955db0ea3513e$export$3ba0c02c57edd549","$140","$141","$1beecf5cf4a05a68$export$1f2af1e431c6fd5f","$149","$150","$151","$1beecf5cf4a05a68$export$5148ff764e75a1ca","$1beecf5cf4a05a68$export$86d9364aad8c166e","dictConstructBarlow","$176","$177","$178","$1beecf5cf4a05a68$export$ee14b6210ad05a4d","$188","$189","$190","$1abdc1cddc3b0d30$export$df61b30b684217c0","$1abdc1cddc3b0d30$export$61b4289ae0638ab8","barlow","$1abdc1cddc3b0d30$export$91dc08fb815c5ffc","$544b62a378cc0091$export$f7ad98836d6849e8","genericShowArgs","$544b62a378cc0091$export$13bb3b5ea79b5fe6","$544b62a378cc0091$export$186afff91b813845","dictGenericShowArgs","separator","ctor","$544b62a378cc0091$export$c357439213aef314","$544b62a378cc0091$export$29d77e0cd7b7a3b8","dictGenericShow","dictGenericShow1","$544b62a378cc0091$export$dc29b8461849edae","$bfc50dc5547207b7$var$hasArrayFrom","$bfc50dc5547207b7$var$hasStringIterator","Symbol","iterator","$bfc50dc5547207b7$var$hasFromCodePoint","fromCodePoint","$bfc50dc5547207b7$var$hasCodePointAt","codePointAt","$bfc50dc5547207b7$export$ecb7b38eca4fe9ff","fallback","$bfc50dc5547207b7$export$6d9af221d75dd06f","accum","o","next","done","$bfc50dc5547207b7$export$c61d72f8b05641be","unsafeCodePointAt0","$3ee2158c14339cc9$var$unsurrogate","lead","trail","$3ee2158c14339cc9$var$isTrail","cu","$3ee2158c14339cc9$var$isLead","$3ee2158c14339cc9$export$b446f6baa3bb1430","cu1","cu0","$3ee2158c14339cc9$var$unconsButWithTuple","$3ee2158c14339cc9$var$toCodePointArrayFallback","$3ee2158c14339cc9$var$unsafeCodePointAt0","$bfc50dc5547207b7$export$81daff3801c9c982","$3ee2158c14339cc9$export$50a427d3c041e0d2","$3ee2158c14339cc9$export$f24224f1c91d8156","$52","$3ee2158c14339cc9$var$fromCharCode","dictBoundedEnum","$53","high","$f935a9866e211c00$export$1e2c188a485bdeae","$54","$3ee2158c14339cc9$var$singletonFallback","$3ee2158c14339cc9$export$439306a4dcaafbb9","$3ee2158c14339cc9$var$takeFallback","$3ee2158c14339cc9$export$b7df5d561049483a","$3ee2158c14339cc9$export$663103110d94aac9","$ed6295dbdc25761e$export$e0969da9b8fb378d","lastIndex","$ed6295dbdc25761e$export$77ad94ebf1c2b9ed","$fb3071975af0bbe0$export$77e76a4721f88dfa","global","ignoreCase","multiline","dotAll","sticky","unicode","$fb3071975af0bbe0$export$2afc0c80c8dff0e7","$fb3071975af0bbe0$export$90b4d2ff6acb88af","$03be6cc86948e3c6$export$17b0f4d84dbfeedf","$ed6295dbdc25761e$export$f69e81cb42c99394","$03be6cc86948e3c6$export$4659b591c19bdf3d","match","$5c0b3c602b128ea0$export$d962eb330c9c823c","$29ebf71a495a2833$export$68326237475e9a7d","searchString","$f051e3c8ff3e5c6e$export$25aeaa49aee6261e","$29ebf71a495a2833$export$76d90c956114f2c2","repeat","$f051e3c8ff3e5c6e$export$aebb0c6792549bd2","$7038ccc2f7f5bbce$export$84eda9cb75492c36","$71","$d3d065da31679be1$export$167848c32e61a4d4","$72","$7038ccc2f7f5bbce$export$3bf77092340654e0","$7038ccc2f7f5bbce$export$63cf87c0678a1d2c","$7038ccc2f7f5bbce$export$4797150488333da1","$7038ccc2f7f5bbce$export$c4ec8f671a263573","$7038ccc2f7f5bbce$export$2fa55c29b4f8d86e","$73","$74","$7038ccc2f7f5bbce$export$2f876a9cb1e407d9","$75","$76","$77","$7038ccc2f7f5bbce$export$99cfcc8edd025934","$7038ccc2f7f5bbce$export$907950ecc201e8fb","dictMonadTell","$80","Monad1","$81","$82","$247a018fd68c64cd$export$c2d084dc44961371","print","$247a018fd68c64cd$export$6ef64ebfa0554958","$247a018fd68c64cd$export$fd03cfe3dcd76ba2","$247a018fd68c64cd$export$8802485f9deae94f","$247a018fd68c64cd$export$8eff52254bb18e16","$copy_dictEq","$copy_f","$copy_x","$tco_var_dictEq","$tco_var_f","$4a4f27a1bc1d1205$export$f99233281efd08a0","Title1","$4a4f27a1bc1d1205$export$f51a6b42ed26721f","TitleOther1","$4a4f27a1bc1d1205$export$ebd11618f299a286","A1","$4a4f27a1bc1d1205$export$ef35774e6d314e91","B1","$4a4f27a1bc1d1205$export$e7094788287c5e9b","C1","$4a4f27a1bc1d1205$export$96f57966bedc81b4","D1","$4a4f27a1bc1d1205$export$a9c23c6ac3fc3eca","E1","$4a4f27a1bc1d1205$export$d66501df72047452","F1","$4a4f27a1bc1d1205$export$2329c99376c9d0a4","G1","$4a4f27a1bc1d1205$export$e77cfe0b08ec163","Prefix1","$4a4f27a1bc1d1205$export$929ca5e5f0b1941","Tuning1","$4a4f27a1bc1d1205$export$4f7489ac3ba5f304","TimelineConnection1","$4a4f27a1bc1d1205$export$952c7b481c9dd0e","TimelineSep1","$4a4f27a1bc1d1205$export$e27e1fe4585c6e4f","TimelineSpace1","$4a4f27a1bc1d1205$export$3dd03ef127bf8609","Fret1","$4a4f27a1bc1d1205$export$76dce95d1e1a78b6","Special1","$4a4f27a1bc1d1205$export$6fe455b424bdaa07","Suffix1","$4a4f27a1bc1d1205$export$8b251419efc915eb","Header1","$4a4f27a1bc1d1205$export$c03eae707927a664","HeaderSuffix1","$4a4f27a1bc1d1205$export$94d986b76bacbfd5","ChordFret1","$4a4f27a1bc1d1205$export$32b078a0c5604252","ChordSpecial1","$4a4f27a1bc1d1205$export$ea5bec4fe6ccf800","ChordLineChord1","$4a4f27a1bc1d1205$export$46a0c326e8a3eb5a","ChordComment1","$4a4f27a1bc1d1205$export$5f1af8db9871e1d6","Text1","$4a4f27a1bc1d1205$export$7ee1cf0eabcbf85d","Spaces1","$4a4f27a1bc1d1205$export$d3bca3c8230c3cb6","TextLineChord1","$4a4f27a1bc1d1205$export$d78fd3b74d21cf1f","ChordLegend1","$4a4f27a1bc1d1205$export$327ac6ab709fd275","TitleLine1","$4a4f27a1bc1d1205$export$a45863d8b85e0e85","HeaderLine1","$4a4f27a1bc1d1205$export$bd22cb4ede86a5b3","TablatureLine1","$4a4f27a1bc1d1205$export$2fa56b298cad64d6","ChordLine1","$4a4f27a1bc1d1205$export$4377c71588c2474b","TextLine1","$4a4f27a1bc1d1205$export$ad8161481beb3b00","$4a4f27a1bc1d1205$export$3bb4c3af5e764dd3","$4a4f27a1bc1d1205$export$ad4c759ed56f3b8d","$4a4f27a1bc1d1205$export$1b013579decdc741","dictPrint","elem","spaceSuffix","$4a4f27a1bc1d1205$export$927fcb0a4ea2e5f","pre","interval","post","$4a4f27a1bc1d1205$export$e60d836f92796dd1","$4a4f27a1bc1d1205$export$70b3b68be75ba100","$4a4f27a1bc1d1205$export$fe650aa86a9423a8","$4a4f27a1bc1d1205$export$4fc159fa254817aa","uppercase","primitive","lowercase","$4a4f27a1bc1d1205$export$76f0d5f6892c2da6","letter","$4a4f27a1bc1d1205$export$70fcf3a9387362ad","mods","bass","$4a4f27a1bc1d1205$export$df5278695ad3359b","$4a4f27a1bc1d1205$export$ac1c9a77ff7311c0","$4a4f27a1bc1d1205$export$d2463a0634726728","$4a4f27a1bc1d1205$export$c82619d6efb941e0","$4a4f27a1bc1d1205$export$853f6a7a36d4009e","$4a4f27a1bc1d1205$export$c8ad7e8127a442d1","$4a4f27a1bc1d1205$export$e00cf9635725fdfd","$4a4f27a1bc1d1205$export$2cdb5bd419c5bd6a","$4a4f27a1bc1d1205$export$65c3ebeb7942696c","$4a4f27a1bc1d1205$export$678b6112e3ba8f1f","$4a4f27a1bc1d1205$export$9d1e9f76d6442a33","Enum0","$4a4f27a1bc1d1205$export$547fea080080972c","$4a4f27a1bc1d1205$export$def9db0114e95ce8","$4a4f27a1bc1d1205$export$5d3155b3808b99c0","$4a4f27a1bc1d1205$export$a006015c889d4c6c","$4a4f27a1bc1d1205$export$fb9caac8a1e6fd34","$4a4f27a1bc1d1205$export$2ff84855c967f0e4","$4a4f27a1bc1d1205$export$d173351870d06ff5","$4a4f27a1bc1d1205$export$fa222c265b4c8028","$4a4f27a1bc1d1205$export$7a7c36c3589171fc","$119","$120","$1beecf5cf4a05a68$export$b9208f73809b4444","$4a4f27a1bc1d1205$export$1abee69c8e08161e","$93e924a5d6afcba3$export$e97a7fd9e3003cfa","$93e924a5d6afcba3$export$bbc32009fb41242a","$78","$93e924a5d6afcba3$export$7bce66fb9c2f13e","$93e924a5d6afcba3$export$b26c150f612c10f7","$122","$121","$027ac699fc79e3e6$export$c4ddc81c7b2c8d7a","$045da9902a5efc92$export$d50a6d81c4480dca","Flat1","$045da9902a5efc92$export$3bbd1e7d1e8f7ac4","Sharp1","$045da9902a5efc92$export$39bcc3f08a9b5fa4","Default1","$045da9902a5efc92$export$87220003b82a30bd","$045da9902a5efc92$export$feafc36c42842e89","isPotentiallyAmbiguousChord","patternString","text","isUnambiguousChord","rewriteElement","isChordLegend","containsAtLeastFourAmbiguousChords","line","$93","$94","$95","$96","$97","$39","$86","$87","$88","containsChordLegend","containsAtLeastOneUnambiguousChord","$5b0358e10bf152e0$export$fb4902fd9e525693","$045da9902a5efc92$export$fa63358cc300ea23","mapping","newElem","$045da9902a5efc92$export$7988311461054c07","settings","doc","toDozenalString","dozenal","dozenalizeTabs","elems","pendingDashes","fretString","$045da9902a5efc92$export$931eff48c86e78a","note","substitute","noteOrientation","toPreferredOrientation","$045da9902a5efc92$export$94966884eea635c4","appendSuffix","suffix","transposition","$106","$107","$108","$97937c29f879e68e$export$2335f513bbd82c6d","$045da9902a5efc92$export$e8ee500e2684389f","chordMapping","$123","$124","rewriteChordsInChordLine","rewriteChordsInTextLine","$4a4f27a1bc1d1205$export$237c3b5aa7962c2f","$4a4f27a1bc1d1205$export$270d0d9b1501647","$045da9902a5efc92$export$1b1a279a96075498","rewriteTablatureLine","string","normalizeTabs","$045da9902a5efc92$export$6a7629754c82496d","noteMapping","normalizeChords","$114","rewriteLine","$045da9902a5efc92$export$38dee6631fb26fde","$131","$132","$137","$138","$134","$135","$133","$136","$045da9902a5efc92$export$c1af354d0960a210","$142","$143","$129","dozenalize","$130","dozenalizeChords","newType","newMods","$045da9902a5efc92$export$b59027c0b391cef0","$144","$145","rewriteTablatureLineElem","$045da9902a5efc92$export$4721d910dd661c82","$146","$147","$9f8278347d63bad2$export$ac694cdbd09c19df","tablatureText","$9f8278347d63bad2$export$48e7c898b0948d50","$9f8278347d63bad2$export$8e01fdf60d2905d8","compressedUrl","$9f8278347d63bad2$export$da04d5a957334270","fragment","$9f8278347d63bad2$export$cf4f83753ab6f4d7","maybeTransposition","$9f8278347d63bad2$export$99b8dc687889ba5f","maybeNoteOrientation","$9f8278347d63bad2$export$15acd728b7d25137","$e524da361046c2d7$export$48203a90cec700d6","Slowest1","$e524da361046c2d7$export$16a733526f31d7d","Slower1","$e524da361046c2d7$export$b417a3b6f3fd58ad","Slow1","$e524da361046c2d7$export$90749bc64b569dd0","Normal1","$e524da361046c2d7$export$664a61286bf6a8ab","Fast1","$e524da361046c2d7$export$447b2be8ff88fa31","Fastest1","$e524da361046c2d7$export$b03179e86ee6cfb9","$e524da361046c2d7$export$fe77ec03a9e8ef6","$e524da361046c2d7$export$455cebb639488b64","$e524da361046c2d7$export$b8556987e6ae297c","$e524da361046c2d7$export$56225b4c371bb42d","$563345a00d3dd875$export$13baec60f43ea6b3","Flush1","$563345a00d3dd875$export$1e7deca84b429035","Fetch1","$563345a00d3dd875$export$50a83ee0d56f8c99","Cached1","$563345a00d3dd875$export$26cc3c52be8321f4","NoValue1","$563345a00d3dd875$export$3f69fa9d0fdbd320","$563345a00d3dd875$export$2bced1c2e491c3f2","$563345a00d3dd875$export$eded0ee6d73046ce","$563345a00d3dd875$export$4d3fb11e950abb9e","_key","$563345a00d3dd875$export$f720e260cf542dac","$563345a00d3dd875$export$aafa59e2e03f2942","cache","fetch","maybeValue","default","dependants","$563345a00d3dd875$export$e076d1d319db460d","$563345a00d3dd875$export$6d6d6ad02cee4c8f","$563345a00d3dd875$export$68d8715fc104d294","flush","$563345a00d3dd875$export$db21654b979109ea","$$default","$563345a00d3dd875$export$ec068583843480e7","_dependant","dependency","dependencyValue","$563345a00d3dd875$export$d3b91e183aef8799","$5d2bef8f9f5f2f4d$export$57244b7e7c76901d","localStorage","setItem","$4c364f933938dfee$export$1f73f60bdb811cb1","$5d2bef8f9f5f2f4d$export$902fb9662526b514","getItem","$4c364f933938dfee$export$d3720feff416e85b","$c02f07bc0f38e9e9$export$c62839628b30a695","Cont","ConsCell","finalCell","consList","$e39dfcf102cdca3c$var$adaptMaybe","$70","$e39dfcf102cdca3c$export$5fd5031fecdacec3","$05fb1b61396adfce$export$3634602ee36f7fe6","$56","$05fb1b61396adfce$export$2b62a06a9fee979c","pos","$05fb1b61396adfce$export$ccef557e816015a1","$05fb1b61396adfce$export$6a1d89187d209f74","$05fb1b61396adfce$export$61619fb136dbd525","$05fb1b61396adfce$export$4719e31b794cbea2","$05fb1b61396adfce$export$45def89472122d0b","$05fb1b61396adfce$export$43bf262accd661e9","$05fb1b61396adfce$export$5d06481b113f8de9","st","$05fb1b61396adfce$export$6b86c7f1e16b91d2","$05fb1b61396adfce$export$7fee2a9586c02cd9","$05fb1b61396adfce$export$b1f0061631f50ac9","$fb26133a5ec46bf7$export$410a452afcd48948","$fb26133a5ec46bf7$export$a75d1723e6bda2ec","$fb26133a5ec46bf7$export$b9803a97967f594","$fb26133a5ec46bf7$export$f6dd04063e306e74","$20","$fb26133a5ec46bf7$export$cb5d7aa1f0b188a7","$fb26133a5ec46bf7$export$14badfee79ea396f","$fb26133a5ec46bf7$export$eddf5dbe069fa672","end","inner","ending","$$continue","$fb26133a5ec46bf7$export$cf7e1b47032e4a7c","$9da596880af1a1c5$export$22b082955e083ec3","$9da596880af1a1c5$export$17b0f4d84dbfeedf","pat","$9da596880af1a1c5$export$d83becf4b42ec59","$cf21e10794af6e34$var$$runtime_lazy","$cf21e10794af6e34$export$e7e08cc659608eba","$cf21e10794af6e34$export$5700095d8e182e2d","$cf21e10794af6e34$export$e2ff5909d7e185b4","$cf21e10794af6e34$export$411f9941f113c38f","$cf21e10794af6e34$export$5a05da2a08bde205","$cf21e10794af6e34$export$e97e0539a8e933ed","$cf21e10794af6e34$export$ac5ad4388b0ec96f","$cf21e10794af6e34$export$9946f9bc2dddfe44","getPrimitive","rootLetter","rootMod","$cf21e10794af6e34$export$8547e95033790e38","$cf21e10794af6e34$export$5e04a2fb87f3d3c4","$cf21e10794af6e34$export$d091c223ba892396","$cf21e10794af6e34$export$32b71ee8358467a7","timeline","fretsAndSpecials","$cf21e10794af6e34$export$27ef36b552103e69","$cf21e10794af6e34$export$fcc6cef76e796738","$cf21e10794af6e34$export$398f695064e4931","header","$cf21e10794af6e34$export$48072ceac3aac428","prefix","title","$cf21e10794af6e34$export$7969daead0946657","$cf21e10794af6e34$export$88193a66dffe5aa3","$cf21e10794af6e34$export$e0fc7907576ce220","$cf21e10794af6e34$export$91a11862eef03702","$cf21e10794af6e34$export$797e6dd83585fcb7","$cf21e10794af6e34$export$4398b9a9543d4f37","$cf21e10794af6e34$export$55eb2b4b5656e878","countTimeLineSpaces","countTimeLineChars","countChars","nrSpaces","nrTimelineChars","nrTablineChars","$cf21e10794af6e34$export$e011b8dfb4397757","maybeTuning","tabLine","startsWithBracket","getTuning","$cf21e10794af6e34$var$$lazy_parseTablatureLinesWithPrefix","subsequentTabLine","$cf21e10794af6e34$export$8d7a99bc0436c6f5","$cf21e10794af6e34$export$7bc6a4ce3b5e0834","$cf21e10794af6e34$export$f42117d43ee7ac2c","$cf21e10794af6e34$export$621b8187b24d90c6","parseStackableChordMods","parseParenthesizedStackableChordMods","parseChordType","parseChordMods","chordType","maybeBass","$cf21e10794af6e34$export$a7f968c9172d9b4f","chord","$cf21e10794af6e34$export$2228e77d22ea9e5c","$cf21e10794af6e34$export$9bc545c5c527032f","$cf21e10794af6e34$export$e778eedcf51e11ef","commentLinesBeforeTitle","body","$cf21e10794af6e34$export$faef0faac333181","inputString","parser","$cf21e10794af6e34$export$8d95e1ea22824e5c","$cf21e10794af6e34$export$d529ba4b6bdbcf0c","$cd7e50199fab2497$export$53ec42062883b2d4","ViewMode1","$cd7e50199fab2497$export$5304145354a3bee9","EditMode1","$cd7e50199fab2497$export$4661c9f89207a566","SearchMode1","$cd7e50199fab2497$export$76e384672f53c8f9","NoMenu1","$cd7e50199fab2497$export$6126545dd7e53973","FileMenu1","$cd7e50199fab2497$export$1d7840d5cdc861d5","SettingsMenu1","$cd7e50199fab2497$export$32755e4b02a9685c","$cd7e50199fab2497$export$427fcf42e4051b3d","$cd7e50199fab2497$export$a89384752a6110e3","$cd7e50199fab2497$export$42fffed799c298bb","$cd7e50199fab2497$export$e020e7cc7762bbe9","localStorageKey","dictMonadAff","MonadEffect0","$cd7e50199fab2497$export$d4c72bab9d6cc13a","mode","activeMenu","loading","scrollTop","searchPhrase","searchResults","autoscroll","autoscrollTimer","autoscrollSpeed","parseResult","rewriteResult","tablatureTitle","tabNormalizationEnabled","tabDozenalizationEnabled","chordNormalizationEnabled","chordDozenalizationEnabled","upperCaseNotes","ignoreDozenalization","urlParams","$cd7e50199fab2497$export$b8bdf4f2c6d05ca5","$cd7e50199fab2497$export$42ff60374ce35565","params","$cd7e50199fab2497$export$1b3f8b662bd21269","$cd7e50199fab2497$export$1c0b6693e946ffd9","$cd7e50199fab2497$export$5fb8e8d67ebf8c5c","$cd7e50199fab2497$export$38b0525295cf1eb1","$cd7e50199fab2497$export$cc15f2a88c429651","$cd7e50199fab2497$export$42efbe0efc25ece8","$cd7e50199fab2497$export$b9b63be2d4f248bf","$cd7e50199fab2497$export$eceddc16d7de53b6","$cd7e50199fab2497$export$841dc5d3df52e3e0","$cd7e50199fab2497$export$8387e22b3f114124","$cd7e50199fab2497$export$89080e375d1cf94c","$cd7e50199fab2497$export$47deea7b0b4f351d","$cd7e50199fab2497$export$64faea2db0f192b7","tablatureDocument","findElement","v11","$4a4f27a1bc1d1205$export$70d1bf7729efff40","$cd7e50199fab2497$export$fe54a26f58202d85","$cd7e50199fab2497$export$c1978f45d5c8c1fd","$cd7e50199fab2497$export$870de2d49eb64966","$cd7e50199fab2497$export$aa271239f0d4f852","$cd7e50199fab2497$export$8a5f8ed4b0639af3","$cd7e50199fab2497$export$88f8d34eff7f01a0","$cd7e50199fab2497$export$13277727d7a08436","$cd7e50199fab2497$export$5c02a49702f36796","$cd7e50199fab2497$export$c2f1cb4edc8988e8","$cd7e50199fab2497$export$edcb698fcbe14f46","$cd7e50199fab2497$export$8688c5aee334756b","$cd7e50199fab2497$export$cccd39658cbe79a8","$1bb5df538ea16bd9$export$2369e6c56c47a5bd","ArrayView1","$1bb5df538ea16bd9$export$3b660928c86ff55c","Blob1","$1bb5df538ea16bd9$export$b34a105447964f9f","Document1","$1bb5df538ea16bd9$export$89b8e0fa65f6a914","$$String1","$1bb5df538ea16bd9$export$3963aa24c930693c","FormData1","$1bb5df538ea16bd9$export$bcdd6637213a40ec","FormURLEncoded1","$1bb5df538ea16bd9$export$48880ac635f47186","Json1","$1bb5df538ea16bd9$export$64f69cdd5524ddeb","$04f1e5e12069f6d8$export$5e41db7437457e4f","Accept1","$04f1e5e12069f6d8$export$e2e108cbe2e4f865","ContentType1","$04f1e5e12069f6d8$export$21640746b57e4864","RequestHeader1","$04f1e5e12069f6d8$export$2ab9a8f9f1186f14","$04f1e5e12069f6d8$export$a8ff84c12d48cfa6","$c02e13aaef170b91$export$5d43b79a1f53c8d0","$$ArrayBuffer1","$c02e13aaef170b91$export$3b660928c86ff55c","$c02e13aaef170b91$export$b34a105447964f9f","$c02e13aaef170b91$export$48880ac635f47186","$c02e13aaef170b91$export$89b8e0fa65f6a914","$c02e13aaef170b91$export$e92c65af050aed9a","Ignore1","$c02e13aaef170b91$export$17004af5aa52bce6","$c02e13aaef170b91$export$22b082955e083ec3","$c02e13aaef170b91$export$738b109e247a462c","$d5f2bbf513cce8c9$export$42f186449ccf2a6a","ResponseHeader1","$0e031af7428ef07d$export$dbafa4424a806c15","$0e031af7428ef07d$export$fac44ee5b035f737","JSON","stringify","$0e031af7428ef07d$export$8e91e9560ac84224","isNull","isBool","isNum","isStr","isArr","isObj","$03b6b966974423fe$export$6e22c362a0406a2c","$03b6b966974423fe$export$75b750e7d0325364","$03b6b966974423fe$export$4b1360bff9337362","keys","$0061661dcaa2328e$export$b8cb59497041ffe4","$c045ea5df33bba60$export$dfc7155ac0343b8","$2a035e92dc768ac1$export$d0304b893d105187","$2a035e92dc768ac1$export$1532fd4f75be8b9c","$2a035e92dc768ac1$export$d4dde8795f959ed3","$2a035e92dc768ac1$export$ec3647fa336ee4ac","$2a035e92dc768ac1$export$d7ae7d568ec9dc3c","$44e5fdc48745e77c$export$f3a8d475da9d5fc3","fail","parse","$e2dfac74220fdf7a$export$4d9ac7ad03be5d48","$554797afd3ad4541$var$toRFC3896","$554797afd3ad4541$export$5aceb7cfc152c7a0","succeed","encodeURIComponent","$554797afd3ad4541$export$737f67b1f296a4c1","$f9a555fb76059872$export$ab54ccbe87d5558","$f9a555fb76059872$export$33ec49fcdd8b3995","$d7072b1f1f4574d6$export$c564cdbbe6da493","$16","$17","$18","$0279ce8fdb6b506c$export$8eb3892b442747bd","OPTIONS1","$0279ce8fdb6b506c$export$1bb358554aac31c1","GET1","$0279ce8fdb6b506c$export$3cdc0b6c64b90aaa","HEAD1","$0279ce8fdb6b506c$export$484f3009c2ee32ad","POST1","$0279ce8fdb6b506c$export$5508c7b57250ebc6","PUT1","$0279ce8fdb6b506c$export$4bd2facc4a3e6aa1","DELETE1","$0279ce8fdb6b506c$export$8754b71dc67cd5d0","TRACE1","$0279ce8fdb6b506c$export$df50b52b1548c0dc","CONNECT1","$0279ce8fdb6b506c$export$673494e2608125f7","PROPFIND1","$0279ce8fdb6b506c$export$d16982ce725f2efb","PROPPATCH1","$0279ce8fdb6b506c$export$36dd893c77c0f7d8","MKCOL1","$0279ce8fdb6b506c$export$92f9e1ed9114d3a6","COPY1","$0279ce8fdb6b506c$export$346f08c1f0d0fe41","MOVE1","$0279ce8fdb6b506c$export$9227a1a65abc0f40","LOCK1","$0279ce8fdb6b506c$export$81c5e18fd95994a5","UNLOCK1","$0279ce8fdb6b506c$export$54950d96c4d7b0","PATCH1","$0279ce8fdb6b506c$export$7afd0cf4e939f7e8","$0279ce8fdb6b506c$export$c2d084dc44961371","$305519516124a7ff$export$9b7835891cf7097a","$0a5aaf95f168428e$export$b187f57ee1822bc5","$0a5aaf95f168428e$export$1ba013b88f4f21f3","$b28443a27438717a$var$Aff","EMPTY","PURE","THROW","CATCH","SYNC","ASYNC","BIND","BRACKET","FORK","SEQ","MAP","APPLY","ALT","CONS","RESUME","RELEASE","FINALIZER","FINALIZED","FORKED","Aff1","_1","_2","_3","AffCtr","nonCanceler","runEff","eff","runSync","runAsync","Scheduler","limit","size","ix","queue","draining","drain","thunk","isDraining","enqueue","cb","tmp","Fiber","util","supervisor","aff","runTick","status","step","interrupt","bhead","btail","attempts","bracketCount","joinId","joins","rethrow","run","localRunTick","result1","attempt","isLeft","fromRight","register","sequential","fromLeft","killed","failed","completed","handler","onComplete","jid","kill","canceler","isSuspended","runPar","par1","cb1","fiberId","fibers","killId","kills1","early","par","kid","kills","loop","lhs","rhs","fiber","fid","killError","killCb","innerKills","kid1","newKills","cancel","Pure","Throw","Catch","Sync","Async","Bind","Bracket","Fork","Seq","ParMap","ParApply","ParAlt","Supervisor","isEmpty","killAll","killCount","k1","$b28443a27438717a$export$68c6660df485915b","$b28443a27438717a$export$520252a01094c36e","$b28443a27438717a$export$f97e7884af471963","immediate","$b28443a27438717a$export$3c6532f01a0290eb","$b28443a27438717a$export$49d5975414e0a979","$b28443a27438717a$export$9ad792f02752f447","acquire","options","$b28443a27438717a$export$389c1406f5ae6ae7","ms","timer","setImmediate","clearImmediate","clearTimeout","clearDelay","$b28443a27438717a$export$139486a45824a247","$d9ef009191ddae40$export$c950a71321ef1ffc","$d9ef009191ddae40$export$502115c714790859","$d9ef009191ddae40$export$2f46a8de9e2e0acc","v4","$d9ef009191ddae40$export$c3b0a193a5475c40","$d9ef009191ddae40$export$a45df43c41b778a","$d9ef009191ddae40$export$b022f808a9791225","$86141680556a7436$export$3c7b24ce1c81e349","$86141680556a7436$export$451942af9381149c","parallel","$355d9520a1199e68$export$a907a2b4fd85b16b","dictParallel","Applicative1","$19","$355d9520a1199e68$export$3b8cfe43eb195e1d","$edf0339512807bee$var$$runtime_lazy","$edf0339512807bee$export$4de6f17bc3dfa03","$edf0339512807bee$export$d7f9012ed771d686","$edf0339512807bee$export$e8a7d9b8d7dc616a","$edf0339512807bee$export$469c8a16c186651e","$edf0339512807bee$var$ffiUtil","$edf0339512807bee$var$makeFiber","$b28443a27438717a$export$f24188c8fd3f1234","$edf0339512807bee$export$30b347ca11a80af4","$edf0339512807bee$export$1391212d75b2ee65","$edf0339512807bee$export$df5598cc12b9c8c","$edf0339512807bee$export$83901714774e2edc","aff1","aff2","$edf0339512807bee$export$b147a380fa8fdc0e","$edf0339512807bee$export$9dc0454a98607988","$edf0339512807bee$export$f885f489dcf38a2d","$edf0339512807bee$var$$lazy_applyAff","$edf0339512807bee$export$666a030cecdf96c","$edf0339512807bee$export$952106a975f35ae2","$41","$42","$edf0339512807bee$export$f3d782c2b95165ad","$edf0339512807bee$export$29466a041ff3b3e0","$edf0339512807bee$export$c65b2010df1810d","suspended","$edf0339512807bee$export$37a9b80154c7d256","$edf0339512807bee$export$9efce1646e93cba4","$edf0339512807bee$export$ef62257e6f8a5f8c","$45","$46","$edf0339512807bee$export$60f50bfed4143f9d","$edf0339512807bee$export$cb4623454f96d5e0","$edf0339512807bee$var$$lazy_applicativeParAff","$49","$50","$51","$edf0339512807bee$export$389e6cb252ce112f","$edf0339512807bee$export$974f8db4a62dd716","$edf0339512807bee$export$8deb6e154ce67af6","$28d793bcad7b6401$export$84baa7a1ea5377fd","$3b38984084ed8eff$export$b1b4758529f693c0","RequestContentError1","$3b38984084ed8eff$export$10b74a1a57a5fea2","ResponseBodyError1","$3b38984084ed8eff$export$66d311bf29d5c89c","TimeoutError1","$3b38984084ed8eff$export$4e8ebf4980bdf90a","RequestFailedError1","$3b38984084ed8eff$export$b4982b9cefddd7f3","XHROtherError1","$3b38984084ed8eff$export$b5fe3f66a567bec0","driver","req","fromResponse","responseFormat","addHeader","mh","hs","headers","reqContent","send","$4","$5","k2","$6","$7","$107430d2749bac15$export$2e3eef4f26ade0f7","platformSpecificDriver","timeoutErrorMessageIdent","requestFailedMessageIdent","mkHeader","method","url","h","field","responseType","username","password","withCredentials","timeout","errback","callback","xhr","newXHR","fixedUrl","fixupUrl","open","setRequestHeader","e1","onerror","msgIdent","ontimeout","onload","statusText","getAllResponseHeaders","indexOf","response","cancelErrback","cancelCallback","abort","$ba51d599f79a6310$export$5fd5031fecdacec3","extractContent","$3b38984084ed8eff$export$de89fc8561ede42f","$3b38984084ed8eff$export$3988ae62b71be9a3","rf","u","$d615f2c6d9bee660$export$7a292f067638ecd6","XMLHttpRequest","$f13553b3f174bc1f$export$3988ae62b71be9a3","$b6d6cce78665f23d$export$bd75e69808ef8e57","liftAff","$b6d6cce78665f23d$export$37f61af225938e0f","$b6d6cce78665f23d$export$1c14dadc45d4bfb9","$29","$30","$31","$3c700eb685e345b5$export$67c3e767d82aec77","corsUrl","$3b38984084ed8eff$export$55ee1551a3f962e6","$c941f4d7de23e74b$export$b26131a6779b8150","$79efcffe70231542$var$unsafeReadProp","$2d783a45bb716946$export$209a9e76e7f1bdd5","$79efcffe70231542$export$d133c026d013828b","$c01d1bd93cd469bc$export$76e18363199b658c","$c01d1bd93cd469bc$export$21a5ca8aa77d35ff","$bf939f6be0e180d1$export$71caa5b83defe711","$c01d1bd93cd469bc$export$df25652d1ce0a5fa","$c01d1bd93cd469bc$export$3f8fe6489e95757d","$bf939f6be0e180d1$export$e79ed0bba11ce003","$2d113844995f4966$export$dda73877cb166cd3","readImpl","$2d113844995f4966$export$ac3747cb00139c63","$2d113844995f4966$export$f6103847fe734e8","$2d113844995f4966$export$d9e5338498903fce","getFields","$2d113844995f4966$export$27924e57e9afff7f","action","$2d113844995f4966$export$ce30717759bc230c","dictReadForeign","$2d113844995f4966$export$d5523731e7fe4ded","$2d113844995f4966$export$b400c64e22f7eb4c","dictReadForeignFields","$2d113844995f4966$var$exceptTApply","fun","$2d113844995f4966$var$applyEither","$2d113844995f4966$export$5b101d49c7918908","obj","rest","withExcept$prime","$6b83fe928d8bf01f$export$181919154f900a5b","encodedUrl","shortUrl","base","$6b83fe928d8bf01f$export$ab297790d8428f34","shortLink","$d733414e45bad5e4$export$22b082955e083ec3","json","$d733414e45bad5e4$export$98e628dec113755e","$d733414e45bad5e4$export$f9574b70e1d95d9d","$d733414e45bad5e4$export$2f23118c22fb2630","$1e59ea7ed5d31b4e$export$7454531c76d47d27","DOMParser","$1e59ea7ed5d31b4e$export$26cfb4a895d40b24","documentType","sourceString","domParser","parseFromString","$3dd939a5ce699801$var$getEffProp","$4d89ff275c04492e$export$e3dc45f84eae905c","ty","proto","getPrototypeOf","constructorName","$6d8c9719a60f7848$export$5235d6e581ca586e","$241080e3b918bbae$export$c8b651b897da2de","$875f34aecc7bf161$var$getProp","doctype","$17a55b211df71f15$var$getEffProp","node","$77e12228cc269e35$export$78fb49a702cc1f2","qs","selector","$2","$6cbf6bdab8368bba$export$83a0de4644f1fbc4","$8a173c39583d4113$export$45b10814cc054894","$9c38b931c8b22574$var$getEffProp","$9c38b931c8b22574$export$72030ded560177b6","$9c38b931c8b22574$export$2eda4366e9b7c29f","$9c38b931c8b22574$export$e0e0794250e9118f","$9c38b931c8b22574$export$1b8e57c9ea42f1d2","parent","$43db1f7c9150eb00$export$b54be7ce267a037b","$3","$43db1f7c9150eb00$export$335219007e689d29","$13","$14","$5f6a8b11d233451c$var$returnIfNothing","errMay","$5f6a8b11d233451c$export$a329800cf85f316f","localName","getElementsByTagName","elMay","getText","$d2f717d4abb38e02$export$5fdad1696241dd2b","$d2f717d4abb38e02$export$18f3758fc3685a84","rating","marketingType","contentType","$d2f717d4abb38e02$export$3a6fbfe66f94581c","maybeJsonSearchResults","jsonSearchResults","maybes","values","$247a018fd68c64cd$export$d0ac118ccd5cda07","maybeResult","artist","$d2f717d4abb38e02$export$273dc1932778b351","$d2f717d4abb38e02$export$fd10e0f8b625b54d","attr","getAttribute","jsonString","$d2f717d4abb38e02$export$e1b33f37a6b44b40","$d2f717d4abb38e02$export$f6414a8071b38f2e","dataContent","maybeRawTab","rawTab","$ea938bda8724ebe6$export$b03b1c699c90a9b4","Initialize1","$ea938bda8724ebe6$export$35f812a14e9a5158","ClickFileMenu1","$ea938bda8724ebe6$export$d6fc890ff55097d7","ClickSettingsMenu1","$ea938bda8724ebe6$export$badfdfe00b38d712","ClickNoMenu1","$ea938bda8724ebe6$export$251885622ee422e6","ToggleEditMode1","$ea938bda8724ebe6$export$b735545ae5a1b8e8","ToggleTabNormalization1","$ea938bda8724ebe6$export$ae80c7d0bfbc6e39","ToggleTabDozenalization1","$ea938bda8724ebe6$export$c8a780988edc3adf","ToggleChordNormalization1","$ea938bda8724ebe6$export$5433064316c0f61","ToggleChordDozenalization1","$ea938bda8724ebe6$export$655a5b85baed512d","CreateShortUrl1","$ea938bda8724ebe6$export$7cfb23b38c55ce12","ToggleAutoscroll1","$ea938bda8724ebe6$export$c3d3945d11886b90","IncreaseAutoscrollSpeed1","$ea938bda8724ebe6$export$151a0f059d2f66d","DecreaseAutoscrollSpeed1","$ea938bda8724ebe6$export$61815e840008f088","IncreaseTransposition1","$ea938bda8724ebe6$export$95aacd352e89e3a2","DecreaseTransposition1","$ea938bda8724ebe6$export$b5d3e6c6f95f292d","FlatNoteOrientation1","$ea938bda8724ebe6$export$3bf254755dcec7fc","SharpNoteOrientation1","$ea938bda8724ebe6$export$ad88ac49517b01f5","DefaultNoteOrientation1","$ea938bda8724ebe6$export$1ef846c2801df231","ToggleSearch1","$ea938bda8724ebe6$export$55d7609a8f1eccd2","SearchInput1","$ea938bda8724ebe6$export$ce628a014200ddd2","ImportFromUrl1","$ea938bda8724ebe6$export$e2b7efdbe9e8a76b","NoAction1","$ea938bda8724ebe6$export$61ac83a69ccc3631","$ea938bda8724ebe6$export$952af3258ed45903","phrase","$cd7e50199fab2497$export$549427a9c45df2dd","$d2f717d4abb38e02$export$5092cf9f41440f33","$ea938bda8724ebe6$export$54e434bdcdaa168a","$b6d6cce78665f23d$export$7091efe953cca892","$ea938bda8724ebe6$export$e07bc364a5e4f11f","longUrl","maybeShortUrl","prompt","$6bdc250f9303b68c$var$wrap","num","$6bdc250f9303b68c$export$9815865600981587","toPrecision","$6bdc250f9303b68c$export$774771fbf04a1705","toFixed","$6bdc250f9303b68c$export$f13bf1cdd2e9b9e3","toExponential","$73e6cbfd0da8b99a$var$Precision","Precision1","$73e6cbfd0da8b99a$var$Fixed","Fixed1","$73e6cbfd0da8b99a$var$Exponential","Exponential1","$73e6cbfd0da8b99a$export$bfa12905cd10b99c","$73e6cbfd0da8b99a$export$b70eeb0e623ceb0d","$310515a555baeaaa$export$cda6c73645970615","$310515a555baeaaa$export$5c0dc72231454d02","id","$969bbf7e7aa55092$export$f4c20fd541e0bbe4","RefUpdate1","$969bbf7e7aa55092$export$e19cd5f9376f8cee","Action1","$47a0a3ebf66dcc6a$export$fd55ce593607084a","Step1","value2","value3","$47a0a3ebf66dcc6a$export$4f45170fb98a7886","$47a0a3ebf66dcc6a$export$35d34bc0ed591a92","$47a0a3ebf66dcc6a$export$dc52c2e07163a142","$47a0a3ebf66dcc6a$export$ba038fef9cd0a0de","$47a0a3ebf66dcc6a$export$f9380c9a627682d3","$bef4063d6d8fe507$export$5f1af8db9871e1d6","$bef4063d6d8fe507$export$cc2832fafe367c5e","Elem1","$bef4063d6d8fe507$export$bade370ab89110b","Keyed1","$bef4063d6d8fe507$export$a829527ff4e4114a","Widget1","$bef4063d6d8fe507$export$b73d5241bf90e3b6","Grafted1","$bef4063d6d8fe507$export$8ac9228c788aaa24","Graft1","$bef4063d6d8fe507$export$c0694dcc5ceec5fe","$bef4063d6d8fe507$export$9bae923d92949c2f","$bef4063d6d8fe507$export$45ea1942547d2591","$57","$58","$bef4063d6d8fe507$export$355e219ccdea0aec","$39e0beec4569345c$export$e21bd765865a4e96","$39e0beec4569345c$export$eecc4ddbfda9d798","$39e0beec4569345c$export$e766566cf460084","fk","$39e0beec4569345c$export$ca7590ccd55f275f","o1","f1","f2","f3","o2","$39e0beec4569345c$export$9bc2d847a861e3d8","$39e0beec4569345c$export$c8a8987d4410bf2d","ns","createElementNS","$39e0beec4569345c$export$11c1557a40268f0f","childNodes","item","insertBefore","$39e0beec4569345c$export$7ae609f7af59e4f7","parentNode","removeChild","$39e0beec4569345c$export$b54be7ce267a037b","$39e0beec4569345c$export$9fec4d97f1922e0b","el","setAttributeNS","$39e0beec4569345c$export$6399f3bb52316b2c","removeAttributeNS","removeAttribute","$ac7bed94ac89bf37$export$7ff190aa1ea44157","$ac7bed94ac89bf37$export$7c850c5af9b9983e","$ac7bed94ac89bf37$export$fcec48ff7d1e433f","$ac7bed94ac89bf37$export$af208d62fa81d7e9","$784c06f0344d34c4$var$$runtime_lazy","$784c06f0344d34c4$var$haltWidget","widget","$784c06f0344d34c4$var$$lazy_patchWidget","vdom","build","$784c06f0344d34c4$var$patchWidget","$784c06f0344d34c4$var$haltText","$784c06f0344d34c4$var$$lazy_patchText","nextState","textContent","$784c06f0344d34c4$var$patchText","$784c06f0344d34c4$var$haltKeyed","ks","$39e0beec4569345c$export$2da2a225d7cdb301","children","attrs","$784c06f0344d34c4$var$haltElem","$39e0beec4569345c$export$b658ad92e4f7ae19","$784c06f0344d34c4$var$eqElemSpec","ns1","ns2","$784c06f0344d34c4$var$$lazy_patchElem","attrs2","children2","a3","l2","$39e0beec4569345c$export$2422518e1f611f3f","$784c06f0344d34c4$var$patchElem","$784c06f0344d34c4$var$$lazy_patchKeyed","ix$prime","$784c06f0344d34c4$var$patchKeyed","$784c06f0344d34c4$export$7d13c0f6790d0505","spec","$lazy_build","createTextNode","$39e0beec4569345c$export$b2ce9ad90858ed7a","$784c06f0344d34c4$export$97ed363902aee1ba","name1","as1","ch1","$39e0beec4569345c$export$3dfbdd78bf0090db","child","buildAttributes","$784c06f0344d34c4$export$88209766f38bf9bf","$784c06f0344d34c4$export$198573fdc68576c0","buildWidget","$784c06f0344d34c4$export$150cc32b4adaaae","$98db70b23aa8a6ea$export$f5cdf3809b4587f3","event","$f9cd20a8b77a6bf5$export$f880a2f905254b02","Created1","$f9cd20a8b77a6bf5$export$bf3e0e645ed29ea3","Removed1","$f9cd20a8b77a6bf5$export$ab9c25261cd8c720","Attribute1","$f9cd20a8b77a6bf5$export$41b04b3a73e7216d","Property1","$f9cd20a8b77a6bf5$export$a428cd33b25d5283","Handler1","$f9cd20a8b77a6bf5$export$9bcc32033bdd12aa","Ref1","$f9cd20a8b77a6bf5$var$unsafeGetProperty","$f9cd20a8b77a6bf5$var$setProperty","$f9cd20a8b77a6bf5$var$propToStrKey","$f9cd20a8b77a6bf5$export$681fbf510ccdea38","$f9cd20a8b77a6bf5$export$e6c76fe186213c01","$f9cd20a8b77a6bf5$export$cb9950a5a4987d69","$f9cd20a8b77a6bf5$export$ff441cf2113a23d9","emit","removeProp","prevEvents","hasAttributeNS","hasAttribute","$39e0beec4569345c$export$7895096fcdde5712","$f9cd20a8b77a6bf5$var$removeProperty","ev","listener","$39e0beec4569345c$export$8ff9f68337b520c0","mbEmit","haltProp","props","applyProp","events","$39e0beec4569345c$export$3f65cefe8380dbea","$lazy_patchProp","ps2","onThis","onThese","diffProp","onThat","patchProp","ps1","ps1$prime","$c959b62ce0c19dfe$export$6f093cfa640b7166","$c959b62ce0c19dfe$export$32e0d8bef35d3088","toPropValue","$c959b62ce0c19dfe$export$4c390c75bcc39428","$c959b62ce0c19dfe$export$4e3e21220a22c900","$c959b62ce0c19dfe$export$c3c52e219617878","$c959b62ce0c19dfe$export$8454457683f90105","$e5b7e89a68d9c456$export$8454457683f90105","$e5b7e89a68d9c456$export$762b01c17cd5ef84","$e5b7e89a68d9c456$export$448e4850cad7c7b0","$e5b7e89a68d9c456$export$23f2a1d2818174ef","$e5b7e89a68d9c456$export$40eb7481a9b1d565","$e5b7e89a68d9c456$export$2af2ac64526e2aa9","$e5b7e89a68d9c456$export$afc1bfabebaf28a2","$e5b7e89a68d9c456$export$727654ffe296bd78","$e5b7e89a68d9c456$export$1b578d76e1a8b229","$e5b7e89a68d9c456$export$f93b5905241a7cca","$e5b7e89a68d9c456$export$2ed99a076908dcca","$e5b7e89a68d9c456$export$abe1cd54efe9b9cd","$e5b7e89a68d9c456$export$9852986a3ec5f6a0","$e5b7e89a68d9c456$export$2beef8af2014e5c6","$e5b7e89a68d9c456$export$d657bc098992a431","$e5b7e89a68d9c456$export$72451b88a72ad9c2","$e5b7e89a68d9c456$export$159d9494db57879b","$e5b7e89a68d9c456$export$3327f90baeaa2cb3","$e5b7e89a68d9c456$export$2ba01fb71ed41cb6","$e5b7e89a68d9c456$export$407448d2b89b1813","$2829090ac282514c$export$28b27b1605aa05ad","currentTarget","$10ae9db6658426ac$var$mouseHandler","$10ae9db6658426ac$var$keyHandler","$10ae9db6658426ac$export$c3c52e219617878","et","$10ae9db6658426ac$export$1d5a917feb871989","$10ae9db6658426ac$export$de8e1b1372cdb41b","$11","$12","$10ae9db6658426ac$var$addForeignPropHandler","prop","reader","$10ae9db6658426ac$export$faef864395e27f71","$94c2c7ff32ca5bd1$export$eff4d24c3ff7876e","mel","$94c2c7ff32ca5bd1$export$977f3f6a9323c0f6","dictIsProp","$23","$c959b62ce0c19dfe$export$977f3f6a9323c0f6","$94c2c7ff32ca5bd1$export$afbe3196582d9f14","$94c2c7ff32ca5bd1$export$9a625f9de50bf0b7","$94c2c7ff32ca5bd1$export$44271b4f0c6a3563","$94c2c7ff32ca5bd1$export$fb184b623420d9be","$94c2c7ff32ca5bd1$export$c7187bbd1a7a9244","$94c2c7ff32ca5bd1$export$8f51af5840e0602a","$94c2c7ff32ca5bd1$export$188d75d71883854a","$10","$dc7ffeabd143829e$var$Pure","Pure1","$dc7ffeabd143829e$var$Lift","Lift1","$dc7ffeabd143829e$var$Ap","Ap1","$dc7ffeabd143829e$var$mkAp","fba","fb","$dc7ffeabd143829e$export$9f6cb61afbf051fa","$dc7ffeabd143829e$var$goApply","$copy_dictApplicative","$copy_fStack","$copy_vals","$copy_gVal","$tco_var_dictApplicative","$tco_var_fStack","$tco_var_vals","fStack","vals","gVal","gRes","func","$dc7ffeabd143829e$export$a37c0cfb408cb5d9","$dc7ffeabd143829e$export$952b32e119338067","nat","nextVals","$copy_valStack","$copy_nat","$copy_func","$copy_count","$tco_var_valStack","$tco_var_nat","$tco_var_func","valStack","$dc7ffeabd143829e$var$goLeft","$dc7ffeabd143829e$export$6b0545b2ed7e7da2","$dc7ffeabd143829e$export$b8278c4ac41154ad","$dc7ffeabd143829e$export$2a17b194dc6daf5e","$37","$8cad8efed8fc4b93$export$a9e3236c55b65445","CatQueue1","$8cad8efed8fc4b93$export$b446f6baa3bb1430","$8cad8efed8fc4b93$export$c40cf5aab899f397","$8cad8efed8fc4b93$export$7b1b591b262c240","$8cad8efed8fc4b93$export$6e22c362a0406a2c","$2f87b4fe4d8f7a0f$export$7475bf8196f095ad","CatNil1","$2f87b4fe4d8f7a0f$export$4cc9fe8c7ead393e","CatCons1","$2f87b4fe4d8f7a0f$var$link","$2f87b4fe4d8f7a0f$var$foldr","q","$copy_xs","$copy_ys","$tco_var_xs","$copy_c","$tco_var_c","$2f87b4fe4d8f7a0f$export$b446f6baa3bb1430","$2f87b4fe4d8f7a0f$export$6e22c362a0406a2c","$2f87b4fe4d8f7a0f$export$10d8903dec122b9d","$2f87b4fe4d8f7a0f$export$da599a1924f5bf13","$2f87b4fe4d8f7a0f$export$c40cf5aab899f397","cat","$d0bd5a116d2d5f24$var$$runtime_lazy","$d0bd5a116d2d5f24$var$Free","Free1","$d0bd5a116d2d5f24$var$Return","Return1","$d0bd5a116d2d5f24$var$Bind","$d0bd5a116d2d5f24$var$toView","concatF","v21","runExpF","$d0bd5a116d2d5f24$var$fromView","$d0bd5a116d2d5f24$export$25ad06f1eebea5a0","$d0bd5a116d2d5f24$export$b9ce46e7f510eb18","$d0bd5a116d2d5f24$export$39486fc5c75854c8","$d0bd5a116d2d5f24$export$245cefec95375d9a","$d0bd5a116d2d5f24$var$$lazy_freeApply","$d0bd5a116d2d5f24$export$8040756fd4c77395","$ea3eb84de0acf574$export$3024f3bfb62054a3","Leaf1","$ea3eb84de0acf574$export$9276dd97bf62cc8d","Two1","$ea3eb84de0acf574$export$eadfa7aed248243e","Three1","value4","value5","value6","$ea3eb84de0acf574$var$TwoLeft","TwoLeft1","$ea3eb84de0acf574$var$TwoRight","TwoRight1","$ea3eb84de0acf574$var$ThreeLeft","ThreeLeft1","$ea3eb84de0acf574$var$ThreeMiddle","ThreeMiddle1","$ea3eb84de0acf574$var$ThreeRight","ThreeRight1","$ea3eb84de0acf574$var$KickUp","KickUp1","$ea3eb84de0acf574$export$dfc7155ac0343b8","comp","$ea3eb84de0acf574$var$fromZipper","$copy_dictOrd","$copy_tree","$tco_var_dictOrd","tree","$ea3eb84de0acf574$export$21a5ca8aa77d35ff","$copy_ctx","$tco_var_ctx","ctx","$copy_v2","up","$ea3eb84de0acf574$export$3e41007ebfff0e64","$copy_ctxs","$tco_var_ctxs","ctxs","removeMaxNode","$copy_m","maxNode","$tco_done2","$tco_done3","leaves","$ea3eb84de0acf574$export$4295a0c2ad7aa544","$ea3eb84de0acf574$export$6e22c362a0406a2c","$ea3eb84de0acf574$export$1822828d790e23ee","$ea3eb84de0acf574$export$22a7378e1d3307a4","$0f3b7f18059106fc$export$91dbfdfb14db6990","$33","$0f3b7f18059106fc$export$6e22c362a0406a2c","$100f96dc727fa3bb$export$183d7a788d583d00","$871d3d7bcf6be72e$export$54d9901699893a6","$8360250a454b77aa$export$f500693cef883ffd","$8360250a454b77aa$export$ec068583843480e7","$8360250a454b77aa$export$5e14cdade93d6f7b","$8360250a454b77aa$export$185802fd694ee1f5","subscribers","emitter","$84222ab19bdc98bd$export$f3ce0030ce21b322","$84222ab19bdc98bd$export$77e8fa738093aa8c","$84222ab19bdc98bd$export$7254cc27399e90bd","State1","$84222ab19bdc98bd$export$b5b6bb8bb5273115","Subscribe1","$84222ab19bdc98bd$export$cf424b9d16eab6b0","Unsubscribe1","$84222ab19bdc98bd$export$5ba9ac88cb4a4c17","$84222ab19bdc98bd$export$c9e0c97aebb96176","ChildQuery1","$84222ab19bdc98bd$export$c97bcbb53b4e15e4","Raise1","$84222ab19bdc98bd$export$6e7e621f508eff66","Par1","$84222ab19bdc98bd$export$8cdfc2927e464854","Fork1","$84222ab19bdc98bd$export$26aa7833c998c5d3","Join1","$84222ab19bdc98bd$export$25e269b2a286b4be","Kill1","$84222ab19bdc98bd$export$c2ea277386f73da0","GetRef1","$84222ab19bdc98bd$export$2a9fc99fce80131a","$84222ab19bdc98bd$export$7e953d51c2b3343e","$84222ab19bdc98bd$export$a558113f6f2e3f2d","$84222ab19bdc98bd$export$87bf621137788b28","$84222ab19bdc98bd$export$aecceb0bc1bf10d9","$84222ab19bdc98bd$export$6f4dec227404555","$152","$84222ab19bdc98bd$export$bf09f5de576f9cf1","$84222ab19bdc98bd$export$172cc2b2b4e6467a","$84222ab19bdc98bd$export$be2318e898dcc68","$b890a9c9ccf92ae9$export$49a1dce2f81a97d6","$b890a9c9ccf92ae9$export$7488c940d035302c","$026fde5446dd624a$var$CoyonedaF","CoyonedaF1","$026fde5446dd624a$export$1088317934ed5679","$026fde5446dd624a$export$cc61df270d10d232","fi","$026fde5446dd624a$export$bd40aba71422b460","$83","$026fde5446dd624a$export$6320c031d6b6270f","$43c0c9babefbb793$export$b03b1c699c90a9b4","$43c0c9babefbb793$export$29defdae7b3f3a01","Finalize1","$43c0c9babefbb793$export$fc713a64b8ca1b7a","Receive1","$43c0c9babefbb793$export$e19cd5f9376f8cee","$43c0c9babefbb793$export$62297b13309008b2","Query1","$ccf49930316caf57$export$b2a016fb14adc1e4","$ccf49930316caf57$export$d7ddd398f22d79ef","elt","focus","$5ae75883a0b7923c$export$83a0de4644f1fbc4","$5ae75883a0b7923c$export$8d51e3db1a844094","$5ae75883a0b7923c$export$c56654a6d0e3bd48","$2925bc950f7308d7$export$bd6cf4e30aa8da47","$9","$0fd1915219b188c2$export$3bebd13a688cb3c7","$0fd1915219b188c2$export$33b39dc27cb73de9","$0fd1915219b188c2$export$fd9f5e287b4883f3","glyphName","$0fd1915219b188c2$export$541e2b986e579b87","$d92fd2ed216a6b0a$export$dbe0fd5d50f3e4cd","compact","$79","separate","ls","rs","$f157a7fafda88939$export$352788f778c11933","partitionMap","partition","filterMap","Compactable0","Functor1","$f157a7fafda88939$export$a04c6c6965dd4709","$1659dc5d0b1f5de8$export$fff1478b1e5c5711","renderWithClass","klass","renderTitleLineElem","renderLine$prime","lineRenderer","renderHeaderLineElem","renderChordLegendElem","createFontSizeCompensation","renderChord","$69","$66","$67","$63","$64","$60","$61","chordMods","$59","$4a4f27a1bc1d1205$export$1741e49665a9c8e8","$62","$65","$68","renderChordLineElem","renderTextLineElem","minTuningSpace","renderTablatureLineElem","spacedNote","$84","$85","$514f398dc6a7828b$export$f9471d229cb6cb3f","$86ce56577656a821$export$df61b30b684217c0","$b654ca6069cd1c17$export$7439e9e337486694","$e524da361046c2d7$export$a01e3d0d02d16b1","scrollBy","behavior","$e524da361046c2d7$export$d9a25443eba9df45","$6a6bd16a1fd934a4$export$19a39865fecdb343","intervalId","$b654ca6069cd1c17$export$b3890eb0ae9dca99","$48","toggleButtonTitle","renderViewMenu","renderTitle","renderTablature","renderSearchResult","searchResult","renderSearchResults","renderSearchBar","renderLoadingIcon","renderFileMenu","renderControls","renderHeader","clickNoMenuEvent","renderBody","es","$b654ca6069cd1c17$export$d0f39fcf72cbdb46","maybeHtmlElement","$b654ca6069cd1c17$export$9778a9b812ca9fd1","$b654ca6069cd1c17$export$7173f78ba928d40e","$b654ca6069cd1c17$export$93bc922cceb15e40","$b654ca6069cd1c17$export$931fdcd22b5abba2","maybeTablatureContainerElem","$2603425f82e959df$export$8291e5b88f90ce4","$99cfc603fe5cc0f7$export$669f6ea7d267feaf","Loading1","$99cfc603fe5cc0f7$export$43d8ad7b9c99dd97","Interactive1","$99cfc603fe5cc0f7$export$37474717eef9e2a4","Complete1","$f6c9290a5db8f197$export$c8b651b897da2de","$f6c9290a5db8f197$export$ce0e204f587740c3","$f6c9290a5db8f197$export$1ae2b664eea77b7e","readyState","$aa35a24624ec08d2$export$5a7bfc01df82fcd1","$6b26c9b0fa2d7b7a$export$55c9526d22b9f8e6","$deee5b6018c98796$export$1b79e4d7fc8e4817","$deee5b6018c98796$export$11dc33decdfc25c9","useCapture","target","$98db70b23aa8a6ea$export$3f65cefe8380dbea","$98db70b23aa8a6ea$export$8ff9f68337b520c0","$deee5b6018c98796$export$f79c83a36c9670be","query","$f1bf345cdb6c789d$export$1a6f8a190b47b840","$f1bf345cdb6c789d$export$d46b23c375182cf8","toVDom","haltThunk","$lazy_patchThunk","t2","patchThunk","$eea39ea934373596$export$bbf8b056cc92e88d","ComponentSlot1","$eea39ea934373596$export$5e46cfa5e835a582","ThunkSlot1","$eea39ea934373596$export$48f0293959eb16ec","$eea39ea934373596$export$802c6b8ce0f42195","$eea39ea934373596$export$3bb93a8213d3ef21","$eea39ea934373596$export$cb95887a94082d64","handleAction","handleQuery","receive","initialize","finalize","$3cc7d978c1d7ea03$export$353ec5b900391c5","suspend","fork","$3cc7d978c1d7ea03$export$7a5058c6b79333e0","$ef932f98609e5673$export$b29cd3b133bc0fa4","$ef932f98609e5673$export$b325883598264040","$ef932f98609e5673$var$mkRenderStateX","$ef932f98609e5673$export$52c65da2de355775","$ef932f98609e5673$export$43ced40f2a8d1657","$6bfb10b11a80fc8b$export$2d912d1764c6009b","au","$6bfb10b11a80fc8b$export$b7a8cef929df0d3c","lchs","initializers","finalizers","$6bfb10b11a80fc8b$export$c4c41c035efd1fb3","$6bfb10b11a80fc8b$var$fresh","fresh","$6bfb10b11a80fc8b$export$f960635a4c7f8a61","render","$6bfb10b11a80fc8b$export$b505393bc8c03d39","initRef","component","refs","childrenIn","childrenOut","selfRef","handlerRef","pendingQueries","pendingOuts","pendingHandlers","rendering","subscriptions","forks","lifecycleHandlers","sid","act","$6bfb10b11a80fc8b$export$6533955444d826a5","subs","cqb","dsx","ds","evalChildQuery","$dc7ffeabd143829e$export$ab82a8987829bde0","doneRef","fin","forkMap","$d0bd5a116d2d5f24$export$eb0e66a9104d4874","$f469b52d7c3c8200$var$newLifecycleHandlers","$f469b52d7c3c8200$var$handlePending","$28","$f469b52d7c3c8200$export$32d31a833a940d1c","renderSpec","runComponent","$32","lchs$prime","$$var","initialState","$ef932f98609e5673$export$2999486de8d3a294","preInits","parentInitializer","handlers","squashChildInitializers","renderChild","childrenInRef","childrenOutRef","slot","pop","$34","$35","output","$36","isDuplicate","$38","shouldProcessHandlers","$40","$43","childHandler","$44","childDS","$ef932f98609e5673$export$dcc8908fea536646","ds$prime","$47","mmore","evalDriver","disposed","dispose","sio","messages","$80d0fbcfdca571e1$var$$runtime_lazy","$80d0fbcfdca571e1$var$removeChild","npn","pn","$80d0fbcfdca571e1$var$renderSpec","container","renderChildRef","getNode","buildThunk","$lazy_patch","$lazy_renderComponentSlot","step$prime","$lazy_render","cs","rsx","$80d0fbcfdca571e1$var$mkSpec","machine","nextSib","machine$prime","newNode","node1","node2","$9c38b931c8b22574$export$86b68c7dbeb53c22","$80d0fbcfdca571e1$var$substInParent","$0c07a74dd7e350c8$export$d70e031dcd22347d","scrollTop1","maybeSearchInputElement","$b654ca6069cd1c17$export$e1f69f3cd9c6349a","$0c07a74dd7e350c8$export$f9025f5a7c0e7c9f","maybeTextArea","textarea","$0c07a74dd7e350c8$export$4cf301e6fadc2c93","$0c07a74dd7e350c8$export$3a360c1cd4f980ec","$0c07a74dd7e350c8$export$7ee41ccc8f2fa181","title1","$0e1ad3264aa8b3c4$export$420a7f2fd9cad6f6","$0c07a74dd7e350c8$export$3d44f1a75e7b389","newScrollTop","$0c07a74dd7e350c8$export$82b07c9aa09229f9","$ea938bda8724ebe6$export$2a47f398eeff8b01","$ea938bda8724ebe6$export$b3aa1ca080a54b66","$ea938bda8724ebe6$export$574e88d14d1e7a2b","$ea938bda8724ebe6$export$fa6af8a184458b91","$ea938bda8724ebe6$export$39ac4584bb2387d0","$ea938bda8724ebe6$export$99f7455ff90c5402","$ea938bda8724ebe6$export$687340b90ecf82fa","currentSpeed","$ea938bda8724ebe6$export$bd39a02c56dc964e","$ea938bda8724ebe6$export$9fc75c6aa5a093f2","$ea938bda8724ebe6$export$be0961932b479b8c","$ea938bda8724ebe6$export$3ecd8d478a262d9","currentMode","$ea938bda8724ebe6$export$2e59f49d97a9dbde","currentAutoscroll","$0c07a74dd7e350c8$export$c9e95fcbe244d371","renderingOptions","$cd7e50199fab2497$export$a7b123cb33fd5e31","$0c07a74dd7e350c8$export$6c6c3f4b7541eaf1","currentState","$e9bda291f4ec10ec$export$193956ba360b7728","newState","$0c07a74dd7e350c8$export$f22da7240b7add18","eval","args","$80d0fbcfdca571e1$export$32d31a833a940d1c"],"version":3,"file":"index.1719e78c.js.map"} \ No newline at end of file diff --git a/docs/index.b43a7e55.css.map b/docs/index.b43a7e55.css.map index e8ece70..6b69e14 100644 --- a/docs/index.b43a7e55.css.map +++ b/docs/index.b43a7e55.css.map @@ -1 +1 @@ -{"mappings":"ACAA,qGAKA,2FAKA,wGAKA,4BAIA,8hBAiCA,mCACE,iSAuBF,8EAKA,wCAIA,wCAIA,4CAIA,oCAIA,yCAIA,8CAIA,0CAIA,+EAKA,4BAKA,0CACE,8BAIA,4BAIA,4KASF,yFAQA,2EAKA,4CAKA,0DAIA,+DAIA,kEAIA,yEAIA,0EAIA,gEAOA,2IAcA,8JAYA,6DAMA,8BAIA,+EAYA,6EAOA,4GAOA,oIASA,sFAQA,iEAIA,4DAIA,mDAIA,0DAKA,uJAQA,kKAWA,qFAMA,qFAOA,iOAWA,uCASA,uGAMA,oHAQA,wIASA,wCAIA,6GAQA,+EAKA,gEAIA,kEAIA,iEAIA,yHASA,2EAMA,uDAMA,mGAMA,wEAMA,qFAKA,kHAIA,qFAKA,kHAIA,wNAeA,+BAIA,aACE,2MAgBA,kBAIA,iCAKF","sources":["index.b43a7e55.css","res/index.css"],"sourcesContent":["@font-face {\n font-family: Cascadia Tablature;\n src: url(\"CascadiaTablature.1b57b5f0.woff2\");\n}\n\n@font-face {\n font-family: Cascadia Mono;\n src: url(\"CascadiaMono.946196d0.woff2\");\n}\n\n@font-face {\n font-family: Cascadia Mono Italic;\n src: url(\"CascadiaMonoItalic.f1f6fb9b.woff2\");\n}\n\nhtml {\n scroll-behavior: smooth;\n}\n\n:root {\n --shadow: #0003;\n --border: #28a0a266;\n --title-width: 260px;\n --controls-max-width: 900px;\n --app-height: 100vh;\n --tablature-font-size: 13px;\n --tablature-sup-font-size: 10px;\n --tablature-sup-top: -.3em;\n --tablature-sub-font-size: 13px;\n --tablature-sub-top: .2em;\n --search-result-padding-vertical: 10px;\n --search-result-padding-horizontal: 30px;\n --tab-bg: #fef8ec;\n --header-bg: #f9f1e1;\n --button-bg: #f5eddd;\n --button-hover-bg: #d1dfd0;\n --button-active-bg: #a9b5a9;\n --fg: #28a0a2;\n --fg-alt: #1c9ff0;\n --fg-alt2: #5ed0fa;\n --fg-disabled: #9ec5c5;\n --accent: #ff6a9e;\n --accent-alt: #f5970a;\n}\n\n@media (prefers-color-scheme: dark) {\n :root {\n --shadow: #00000080;\n --border: #0000004d;\n --tab-bg: #262335;\n --header-bg: #241b2f;\n --button-bg: var(--header-bg);\n --button-hover-bg: #342847;\n --button-active-bg: #4f3d6a;\n --fg: #acb3b3;\n --fg-alt: #ffcb6b;\n --fg-alt2: #91f5f8;\n --fg-disabled: #585858;\n --accent: #f78c6c;\n --accent: #f07178;\n --accent-alt: #f78c6c;\n }\n}\n\n.tablature .tabTitle {\n color: var(--accent-alt);\n font-family: Cascadia Mono Italic;\n}\n\n.tablature .tabTimeline {\n color: var(--fg);\n}\n\n.tablature .tabFret {\n color: var(--accent);\n}\n\n.tablature .tabSpecial {\n color: var(--fg-alt2);\n}\n\n.tablature .tabText {\n color: var(--fg);\n}\n\n.tablature .tabChord {\n color: var(--fg-alt);\n}\n\n.tablature .tabHeader {\n color: var(--accent-alt);\n}\n\n.tablature .tabPrefix {\n color: var(--fg-alt);\n}\n\n.tablature .tabSuffix {\n color: var(--accent-alt);\n font-family: Cascadia Mono Italic;\n}\n\n.smallViewport {\n display: none;\n}\n\n@media only screen and (max-width: 1060px) {\n .smallViewport {\n display: inline;\n }\n\n .largeViewport {\n display: none;\n }\n\n :root {\n --tablature-font-size: 10px;\n --tablature-sup-font-size: 8px;\n --tablature-sub-font-size: 10px;\n --search-result-padding-vertical: 5px;\n --search-result-padding-horizontal: 10px;\n }\n}\n\n* {\n box-sizing: border-box;\n scrollbar-color: var(--button-hover-bg) var(--tab-bg);\n outline: none;\n}\n\n::-webkit-scrollbar {\n background-color: var(--button-hover-bg);\n cursor: pointer;\n}\n\n::-webkit-scrollbar-button {\n height: 0;\n width: 0;\n}\n\n::-webkit-scrollbar-corner {\n background-color: var(--tab-bg);\n}\n\n::-webkit-scrollbar-track-piece {\n background-color: var(--tab-bg);\n}\n\n::-webkit-scrollbar-thumb {\n background-color: var(--button-hover-bg);\n}\n\n::-webkit-scrollbar-thumb:hover {\n background-color: var(--button-active-bg);\n}\n\n::-webkit-scrollbar-thumb:active {\n background-color: var(--button-active-bg);\n}\n\nbody {\n background-color: var(--tab-bg);\n border: 0;\n margin: 0;\n padding: 0;\n}\n\n.app {\n height: 100%;\n width: 100%;\n border: 0;\n grid-template-rows: 40px auto;\n margin: 0;\n padding: 0;\n font-family: Cascadia Mono;\n display: grid;\n position: fixed;\n}\n\n.header {\n z-index: 100;\n box-shadow: 0 0 6px 0 var(--shadow);\n background-color: var(--header-bg);\n border: 0;\n flex-wrap: wrap;\n justify-content: center;\n margin: 0;\n display: flex;\n}\n\n.title {\n width: var(--title-width);\n margin: auto 0;\n padding: 0 10px;\n}\n\n.title a {\n text-decoration: none;\n}\n\n.title h1 {\n color: var(--fg);\n margin: auto;\n font-family: Cascadia Mono;\n font-size: 24px;\n}\n\n.controls {\n max-width: var(--controls-max-width);\n border: 0;\n margin: 0;\n display: flex;\n}\n\n.controls * {\n background-color: var(--button-bg);\n color: var(--fg);\n font-family: Cascadia Tablature;\n font-size: 13px;\n}\n\nbutton.header-button, .header-button button {\n box-shadow: 0 0 3px 0 var(--shadow);\n height: 100%;\n cursor: pointer;\n border: 0;\n padding: 10px 20px;\n}\n\n.controls button:hover, .controls button:focus {\n background-color: var(--button-hover-bg);\n}\n\n.controls button:active {\n background-color: var(--button-active-bg);\n}\n\n.controls .selected {\n background-color: var(--button-hover-bg);\n}\n\n.controls button.disabled {\n color: var(--fg-disabled);\n}\n\n.controls button > * {\n background-color: inherit;\n color: inherit;\n}\n\nbutton.header-button:focus, .header-button button:focus, button.header-button.selected, .header-button button.selected {\n border-top: 1px solid var(--border);\n}\n\nbutton.dropdown-item, .dropdown-item button {\n height: 100%;\n border: 0;\n border-right: 1px solid var(--border);\n cursor: pointer;\n min-width: 50px;\n text-align: center;\n padding: 10px;\n}\n\n.dropdown-item {\n border-bottom: 1px solid var(--border);\n flex-direction: row;\n display: flex;\n}\n\n.dropdown-item > div {\n white-space: nowrap;\n padding: 10px;\n font-style: italic;\n overflow: hidden;\n}\n\n.dropdown-menu {\n box-shadow: 1px 1px 4px 0 var(--shadow);\n border-top: 1px solid var(--border);\n border-left: 1px solid var(--border);\n border-right: 1px solid var(--border);\n z-index: 1;\n flex-direction: column;\n display: flex;\n position: absolute;\n}\n\n.loadingIcon {\n width: 50px;\n padding: 18px 0;\n}\n\n.tablatureSearch * {\n font-family: Cascadia Tablature;\n font-size: var(--tablature-font-size);\n color: var(--fg);\n}\n\n.tablatureSearch {\n background-color: var(--tab-bg);\n flex-direction: column;\n align-items: center;\n display: flex;\n overflow: auto;\n}\n\n.searchBar {\n background-color: var(--button-hover-bg);\n border: 1px solid;\n border-color: var(--shadow);\n width: 300px;\n margin: 5px;\n padding: 10px 30px;\n}\n\n.searchBar:focus {\n border-color: var(--fg);\n}\n\n.searchResults table, .searchResults th, .searchResults tr, .searchResults td {\n border-collapse: collapse;\n border: 0;\n}\n\n.searchResults tr:hover {\n background-color: var(--button-hover-bg);\n cursor: pointer;\n}\n\n.searchResults tr:focus {\n background-color: var(--button-hover-bg);\n}\n\n.searchResults tr:active {\n background-color: var(--button-active-bg);\n}\n\n.searchResults .selected {\n background-color: var(--button-hover-bg);\n}\n\n.searchResults td, .searchResults th {\n padding: var(--search-result-padding-vertical) var(--search-result-padding-horizontal);\n}\n\n.tablatureViewer {\n background-color: var(--tab-bg);\n display: flex;\n overflow: auto;\n}\n\n.tablatureViewer pre {\n border: 0;\n margin: auto;\n padding: 10px;\n}\n\n.tablature pre {\n font-family: Cascadia Tablature;\n font-size: var(--tablature-font-size);\n color: var(--fg);\n}\n\n.tablature sup, .tablature sub {\n vertical-align: baseline;\n position: relative;\n}\n\n.tablature sup {\n font-size: var(--tablature-sup-font-size);\n top: var(--tablature-sup-top);\n}\n\n.tablature sup .fontsize-compensation {\n font-size: calc(var(--tablature-font-size) - var(--tablature-sup-font-size) );\n}\n\n.tablature sub {\n font-size: var(--tablature-sub-font-size);\n top: var(--tablature-sub-top);\n}\n\n.tablature sub .fontsize-compensation {\n font-size: calc(var(--tablature-font-size) - var(--tablature-sub-font-size) );\n}\n\n.tablatureEditor {\n resize: none;\n white-space: pre;\n background-color: var(--tab-bg);\n color: var(--fg);\n font-family: Cascadia Tablature;\n font-size: var(--tablature-font-size);\n border: 0;\n outline: none;\n margin: 0;\n padding: 10px 0 10px 10px;\n}\n\n.tablaturePrinter {\n display: none;\n}\n\n@media print {\n :root {\n --tab-bg: #fff;\n --header-bg: #fff;\n --button-bg: var(--header-bg);\n --button-hover-bg: #ddd;\n --button-active-bg: #eee;\n --fg: #888;\n --fg-alt: #666;\n --fg-alt2: #666;\n --fg-disabled: #aaa;\n --accent: #000;\n --accent-alt: #000;\n }\n\n .app {\n display: none;\n }\n\n .tablaturePrinter {\n display: block;\n }\n}\n\n.hidden {\n display: none;\n}\n\n/*# sourceMappingURL=index.b43a7e55.css.map */\n","@font-face {\n font-family: Cascadia Tablature;\n src: url(\"CascadiaTablature.woff2\");\n}\n\n@font-face {\n font-family: Cascadia Mono;\n src: url(\"CascadiaMono.woff2\");\n}\n\n@font-face {\n font-family: Cascadia Mono Italic;\n src: url(\"CascadiaMonoItalic.woff2\");\n}\n\nhtml {\n scroll-behavior: smooth;\n}\n\n:root {\n --shadow: rgba(0, 0, 0, 0.2);\n /* --border: rgba(0, 0, 0, 0.1); */\n --border: #28a0a266;\n\n --title-width: 260px;\n --controls-max-width: 900px;\n --app-height: 100vh;\n\n --tablature-font-size: 13px;\n --tablature-sup-font-size: 10px;\n --tablature-sup-top: -0.3em;\n --tablature-sub-font-size: 13px;\n --tablature-sub-top: 0.2em;\n\n --search-result-padding-vertical: 10px;\n --search-result-padding-horizontal: 30px;\n\n --tab-bg: #FEF8EC;\n --header-bg: #F9F1E1;\n --button-bg: #f5eddd;\n --button-hover-bg: #D1DFD0;\n --button-active-bg: #A9B5A9;\n\n --fg: #28a0a2;\n --fg-alt: #1c9ff0;\n --fg-alt2: #5ed0fa;\n --fg-disabled: #9ec5c5;\n\n --accent: #ff6a9e;\n --accent-alt: #f5970a;\n}\n\n@media (prefers-color-scheme: dark) {\n :root {\n --shadow: rgba(0, 0, 0, 0.5);\n --border: rgba(0, 0, 0, 0.3);\n --tab-bg: #262335;\n --header-bg: #241B2F;\n --button-bg: var(--header-bg);\n --button-hover-bg: #342847;\n --button-active-bg: #4f3d6a;\n\n --fg: #acb3b3;\n --fg-alt: #ffcb6b;\n --fg-alt2: #91f5f8;\n /* --fg-alt2: #94afeb; */\n --fg-disabled: #585858;\n\n --accent: #f78c6c;\n --accent: #f07178;\n /* --accent-alt: #94afeb; */\n /* --accent-alt: #c792ea; */\n --accent-alt: #f78c6c;\n }\n}\n\n.tablature .tabTitle {\n font-family: Cascadia Mono Italic;\n color: var(--accent-alt);\n}\n\n.tablature .tabTimeline {\n color: var(--fg);\n}\n\n.tablature .tabFret {\n color: var(--accent);\n}\n\n.tablature .tabSpecial {\n color: var(--fg-alt2);\n}\n\n.tablature .tabText {\n color: var(--fg);\n}\n\n.tablature .tabChord {\n color: var(--fg-alt);\n}\n\n.tablature .tabHeader {\n color: var(--accent-alt);\n}\n\n.tablature .tabPrefix {\n color: var(--fg-alt);\n}\n\n.tablature .tabSuffix {\n font-family: Cascadia Mono Italic;\n color: var(--accent-alt);\n}\n\n.smallViewport {\n display: none;\n}\n\n/* max-width must be larger that sum of --title-width and --controls-max-width */\n@media only screen and (max-width: 1060px) {\n .smallViewport {\n display: inline;\n }\n\n .largeViewport {\n display: none;\n }\n\n :root {\n --tablature-font-size: 10px;\n --tablature-sup-font-size: 8px;\n --tablature-sub-font-size: 10px;\n --search-result-padding-vertical: 5px;\n --search-result-padding-horizontal: 10px;\n }\n}\n\n* {\n box-sizing: border-box;\n outline: none;\n\n scrollbar-color: var(--button-hover-bg) var(--tab-bg);\n}\n\n/* Minimalistic Webkit scrollbars for browsers not supporting scollbar-color (Chrome, Safari) */\n::-webkit-scrollbar {\n background-color: var(--button-hover-bg);\n cursor: pointer;\n}\n\n::-webkit-scrollbar-button {\n height: 0;\n width: 0;\n}\n\n::-webkit-scrollbar-corner {\n background-color: var(--tab-bg);\n}\n\n::-webkit-scrollbar-track-piece {\n background-color: var(--tab-bg);\n}\n\n::-webkit-scrollbar-thumb {\n background-color: var(--button-hover-bg);\n}\n\n::-webkit-scrollbar-thumb:hover {\n background-color: var(--button-active-bg);\n}\n\n::-webkit-scrollbar-thumb:active {\n background-color: var(--button-active-bg);\n}\n\nbody {\n border: 0;\n margin: 0;\n padding: 0;\n background-color: var(--tab-bg);\n}\n\n.app {\n display: grid;\n grid-template-rows: 40px auto;\n border: 0;\n margin: 0;\n padding: 0;\n /* height: var(--app-height); */\n position: fixed;\n height: 100%;\n width: 100%;\n\n font-family: Cascadia Mono;\n}\n\n.header {\n display: flex;\n flex-wrap: wrap;\n margin: 0;\n border: 0;\n z-index: 100;\n\n justify-content: center;\n box-shadow: 0 0 6px 0 var(--shadow);\n background-color: var(--header-bg);\n}\n\n.title {\n margin: auto 0;\n padding: 0 10px;\n width: var(--title-width);\n}\n\n.title a {\n text-decoration: none;\n}\n\n.title h1 {\n margin: auto auto;\n\n color: var(--fg);\n font-family: Cascadia Mono;\n font-size: 24px;\n}\n\n/**************/\n/** CONTROLS **/\n/**************/\n\n.controls {\n display: flex;\n margin: 0;\n border: 0;\n max-width: var(--controls-max-width);\n}\n\n.controls * {\n background-color: var(--button-bg);\n font-family: Cascadia Tablature;\n font-size: 13px;\n color: var(--fg);\n}\n\nbutton.header-button,\n.header-button button {\n box-shadow: 0 0 3px 0 var(--shadow);\n height: 100%;\n border: 0;\n cursor: pointer;\n padding: 10px 20px;\n}\n\n.controls button:hover {\n background-color: var(--button-hover-bg);\n}\n\n.controls button:focus {\n background-color: var(--button-hover-bg);\n}\n\n.controls button:active {\n background-color: var(--button-active-bg);\n}\n\n.controls .selected {\n background-color: var(--button-hover-bg);\n}\n\n.controls button.disabled {\n color: var(--fg-disabled);\n}\n\n.controls button>* {\n background-color: inherit;\n color: inherit;\n}\n\nbutton.header-button:focus,\n.header-button button:focus,\nbutton.header-button.selected,\n.header-button button.selected\n{\n border-top: 1px solid var(--border);\n}\n\nbutton.dropdown-item,\n.dropdown-item button {\n height: 100%;\n border: 0;\n border-right: 1px solid var(--border);\n cursor: pointer;\n padding: 10px 10px;\n min-width: 50px;\n text-align: center;\n}\n\n.dropdown-item {\n border-bottom: 1px solid var(--border);\n flex-direction: row;\n display: flex;\n}\n\n.dropdown-item>div {\n padding: 10px 10px;\n font-style: italic;\n overflow: hidden;\n white-space: nowrap;\n}\n\n.dropdown-menu {\n position: absolute;\n box-shadow: 1px 1px 4px 0 var(--shadow);\n border-top: 1px solid var(--border);\n border-left: 1px solid var(--border);\n border-right: 1px solid var(--border);\n z-index: 1;\n flex-direction: column;\n display: flex;\n}\n\n.loadingIcon {\n padding: 18px 0px;\n width: 50px;\n}\n\n/************/\n/** SEARCH **/\n/************/\n\n.tablatureSearch * {\n font-family: Cascadia Tablature;\n font-size: var(--tablature-font-size);\n color: var(--fg);\n}\n\n.tablatureSearch {\n display: flex;\n flex-direction: column;\n align-items: center;\n background-color: var(--tab-bg);\n overflow: auto;\n}\n\n.searchBar {\n margin: 5px;\n padding: 10px 30px;\n background-color: var(--button-hover-bg);\n border: 1px solid;\n border-color: var(--shadow);\n width: 300px;\n}\n\n.searchBar:focus {\n border-color: var(--fg);\n}\n\n.searchResults table,\n.searchResults th,\n.searchResults tr,\n.searchResults td {\n border: 0;\n border-collapse: collapse;\n}\n\n.searchResults tr:hover {\n background-color: var(--button-hover-bg);\n cursor: pointer;\n}\n\n.searchResults tr:focus {\n background-color: var(--button-hover-bg);\n}\n\n.searchResults tr:active {\n background-color: var(--button-active-bg);\n}\n\n.searchResults .selected {\n background-color: var(--button-hover-bg);\n}\n\n.searchResults td,\n.searchResults th {\n padding: var(--search-result-padding-vertical) var(--search-result-padding-horizontal);\n}\n\n/***************/\n/** TABLATURE **/\n/***************/\n\n.tablatureViewer {\n display: flex;\n overflow: auto;\n background-color: var(--tab-bg);\n}\n\n.tablatureViewer pre {\n margin: auto;\n border: 0;\n padding: 10px;\n}\n\n.tablature pre {\n font-family: Cascadia Tablature;\n font-size: var(--tablature-font-size);\n color: var(--fg);\n}\n\n.tablature sup,\n.tablature sub {\n vertical-align: baseline;\n position: relative;\n}\n\n.tablature sup {\n font-size: var(--tablature-sup-font-size);\n top: var(--tablature-sup-top);\n}\n\n.tablature sup .fontsize-compensation {\n font-size: calc(var(--tablature-font-size) - var(--tablature-sup-font-size));\n}\n\n.tablature sub {\n font-size: var(--tablature-sub-font-size);\n top: var(--tablature-sub-top);\n}\n\n.tablature sub .fontsize-compensation {\n font-size: calc(var(--tablature-font-size) - var(--tablature-sub-font-size));\n}\n\n.tablatureEditor {\n margin: 0;\n border: 0;\n padding: 10px 0 10px 10px;\n\n outline: none;\n resize: none;\n white-space: pre;\n\n background-color: var(--tab-bg);\n color: var(--fg);\n font-family: Cascadia Tablature;\n font-size: var(--tablature-font-size);\n}\n\n.tablaturePrinter {\n display: none;\n}\n\n@media print {\n :root {\n --tab-bg: #fff;\n --header-bg: #fff;\n --button-bg: var(--header-bg);\n --button-hover-bg: #ddd;\n --button-active-bg: #eee;\n\n --fg: #888;\n --fg-alt: #666;\n --fg-alt2: #666;\n --fg-disabled: #aaa;\n\n --accent: #000;\n --accent-alt: #000;\n }\n\n .app {\n display: none;\n }\n\n .tablaturePrinter {\n display: block;\n }\n}\n\n.hidden {\n display: none\n}\n"],"names":[],"version":3,"file":"index.b43a7e55.css.map"} \ No newline at end of file +{"mappings":"ACAA,qGAKA,2FAKA,wGAKA,4BAIA,8hBAiCA,mCACE,iSAuBF,8EAKA,wCAIA,wCAIA,4CAIA,oCAIA,yCAIA,8CAIA,0CAIA,+EAKA,4BAKA,0CACE,8BAIA,4BAIA,4KASF,yFAQA,2EAKA,4CAKA,0DAIA,+DAIA,kEAIA,yEAIA,0EAIA,gEAOA,2IAcA,8JAYA,6DAMA,8BAIA,+EAYA,6EAOA,4GAOA,oIASA,sFAQA,iEAIA,4DAIA,mDAIA,0DAKA,uJAQA,kKAWA,qFAMA,qFAOA,iOAWA,uCASA,uGAMA,oHAQA,wIASA,wCAIA,6GAQA,+EAKA,gEAIA,kEAIA,iEAIA,yHASA,2EAMA,uDAMA,mGAMA,wEAMA,qFAKA,kHAIA,qFAKA,kHAIA,wNAeA,+BAIA,aACE,2MAgBA,kBAIA,iCAKF","sources":["index.b43a7e55.css","res/index.css"],"sourcesContent":["@font-face {\n font-family: Cascadia Tablature;\n src: url(\"CascadiaTablature.1b57b5f0.woff2\");\n}\n\n@font-face {\n font-family: Cascadia Mono;\n src: url(\"CascadiaMono.946196d0.woff2\");\n}\n\n@font-face {\n font-family: Cascadia Mono Italic;\n src: url(\"CascadiaMonoItalic.f1f6fb9b.woff2\");\n}\n\nhtml {\n scroll-behavior: smooth;\n}\n\n:root {\n --shadow: #0003;\n --border: #28a0a266;\n --title-width: 260px;\n --controls-max-width: 900px;\n --app-height: 100vh;\n --tablature-font-size: 13px;\n --tablature-sup-font-size: 10px;\n --tablature-sup-top: -.3em;\n --tablature-sub-font-size: 13px;\n --tablature-sub-top: .2em;\n --search-result-padding-vertical: 10px;\n --search-result-padding-horizontal: 30px;\n --tab-bg: #fef8ec;\n --header-bg: #f9f1e1;\n --button-bg: #f5eddd;\n --button-hover-bg: #d1dfd0;\n --button-active-bg: #a9b5a9;\n --fg: #28a0a2;\n --fg-alt: #1c9ff0;\n --fg-alt2: #5ed0fa;\n --fg-disabled: #9ec5c5;\n --accent: #ff6a9e;\n --accent-alt: #f5970a;\n}\n\n@media (prefers-color-scheme: dark) {\n :root {\n --shadow: #00000080;\n --border: #0000004d;\n --tab-bg: #262335;\n --header-bg: #241b2f;\n --button-bg: var(--header-bg);\n --button-hover-bg: #342847;\n --button-active-bg: #4f3d6a;\n --fg: #acb3b3;\n --fg-alt: #ffcb6b;\n --fg-alt2: #91f5f8;\n --fg-disabled: #585858;\n --accent: #f78c6c;\n --accent: #f07178;\n --accent-alt: #f78c6c;\n }\n}\n\n.tablature .tabTitle {\n color: var(--accent-alt);\n font-family: Cascadia Mono Italic;\n}\n\n.tablature .tabTimeline {\n color: var(--fg);\n}\n\n.tablature .tabFret {\n color: var(--accent);\n}\n\n.tablature .tabSpecial {\n color: var(--fg-alt2);\n}\n\n.tablature .tabText {\n color: var(--fg);\n}\n\n.tablature .tabChord {\n color: var(--fg-alt);\n}\n\n.tablature .tabHeader {\n color: var(--accent-alt);\n}\n\n.tablature .tabPrefix {\n color: var(--fg-alt);\n}\n\n.tablature .tabSuffix {\n color: var(--accent-alt);\n font-family: Cascadia Mono Italic;\n}\n\n.smallViewport {\n display: none;\n}\n\n@media only screen and (max-width: 1060px) {\n .smallViewport {\n display: inline;\n }\n\n .largeViewport {\n display: none;\n }\n\n :root {\n --tablature-font-size: 10px;\n --tablature-sup-font-size: 8px;\n --tablature-sub-font-size: 10px;\n --search-result-padding-vertical: 5px;\n --search-result-padding-horizontal: 10px;\n }\n}\n\n* {\n box-sizing: border-box;\n scrollbar-color: var(--button-hover-bg) var(--tab-bg);\n outline: none;\n}\n\n::-webkit-scrollbar {\n background-color: var(--button-hover-bg);\n cursor: pointer;\n}\n\n::-webkit-scrollbar-button {\n height: 0;\n width: 0;\n}\n\n::-webkit-scrollbar-corner {\n background-color: var(--tab-bg);\n}\n\n::-webkit-scrollbar-track-piece {\n background-color: var(--tab-bg);\n}\n\n::-webkit-scrollbar-thumb {\n background-color: var(--button-hover-bg);\n}\n\n::-webkit-scrollbar-thumb:hover {\n background-color: var(--button-active-bg);\n}\n\n::-webkit-scrollbar-thumb:active {\n background-color: var(--button-active-bg);\n}\n\nbody {\n background-color: var(--tab-bg);\n border: 0;\n margin: 0;\n padding: 0;\n}\n\n.app {\n height: 100%;\n width: 100%;\n border: 0;\n grid-template-rows: 40px auto;\n margin: 0;\n padding: 0;\n font-family: Cascadia Mono;\n display: grid;\n position: fixed;\n}\n\n.header {\n z-index: 100;\n box-shadow: 0 0 6px 0 var(--shadow);\n background-color: var(--header-bg);\n border: 0;\n flex-wrap: wrap;\n justify-content: center;\n margin: 0;\n display: flex;\n}\n\n.title {\n width: var(--title-width);\n margin: auto 0;\n padding: 0 10px;\n}\n\n.title a {\n text-decoration: none;\n}\n\n.title h1 {\n color: var(--fg);\n margin: auto;\n font-family: Cascadia Mono;\n font-size: 24px;\n}\n\n.controls {\n max-width: var(--controls-max-width);\n border: 0;\n margin: 0;\n display: flex;\n}\n\n.controls * {\n background-color: var(--button-bg);\n color: var(--fg);\n font-family: Cascadia Tablature;\n font-size: 13px;\n}\n\nbutton.header-button, .header-button button {\n box-shadow: 0 0 3px 0 var(--shadow);\n height: 100%;\n cursor: pointer;\n border: 0;\n padding: 10px 20px;\n}\n\n.controls button:hover, .controls button:focus {\n background-color: var(--button-hover-bg);\n}\n\n.controls button:active {\n background-color: var(--button-active-bg);\n}\n\n.controls .selected {\n background-color: var(--button-hover-bg);\n}\n\n.controls button.disabled {\n color: var(--fg-disabled);\n}\n\n.controls button > * {\n background-color: inherit;\n color: inherit;\n}\n\nbutton.header-button:focus, .header-button button:focus, button.header-button.selected, .header-button button.selected {\n border-top: 1px solid var(--border);\n}\n\nbutton.dropdown-item, .dropdown-item button {\n height: 100%;\n border: 0;\n border-right: 1px solid var(--border);\n cursor: pointer;\n min-width: 50px;\n text-align: center;\n padding: 10px;\n}\n\n.dropdown-item {\n border-bottom: 1px solid var(--border);\n flex-direction: row;\n display: flex;\n}\n\n.dropdown-item > div {\n white-space: nowrap;\n padding: 10px;\n font-style: italic;\n overflow: hidden;\n}\n\n.dropdown-menu {\n box-shadow: 1px 1px 4px 0 var(--shadow);\n border-top: 1px solid var(--border);\n border-left: 1px solid var(--border);\n border-right: 1px solid var(--border);\n z-index: 1;\n flex-direction: column;\n display: flex;\n position: absolute;\n}\n\n.loadingIcon {\n width: 50px;\n padding: 18px 0;\n}\n\n.tablatureSearch * {\n font-family: Cascadia Tablature;\n font-size: var(--tablature-font-size);\n color: var(--fg);\n}\n\n.tablatureSearch {\n background-color: var(--tab-bg);\n flex-direction: column;\n align-items: center;\n display: flex;\n overflow: auto;\n}\n\n.searchBar {\n background-color: var(--button-hover-bg);\n border: 1px solid;\n border-color: var(--shadow);\n width: 300px;\n margin: 5px;\n padding: 10px 30px;\n}\n\n.searchBar:focus {\n border-color: var(--fg);\n}\n\n.searchResults table, .searchResults th, .searchResults tr, .searchResults td {\n border-collapse: collapse;\n border: 0;\n}\n\n.searchResults tr:hover {\n background-color: var(--button-hover-bg);\n cursor: pointer;\n}\n\n.searchResults tr:focus {\n background-color: var(--button-hover-bg);\n}\n\n.searchResults tr:active {\n background-color: var(--button-active-bg);\n}\n\n.searchResults .selected {\n background-color: var(--button-hover-bg);\n}\n\n.searchResults td, .searchResults th {\n padding: var(--search-result-padding-vertical) var(--search-result-padding-horizontal);\n}\n\n.tablatureViewer {\n background-color: var(--tab-bg);\n display: flex;\n overflow: auto;\n}\n\n.tablatureViewer pre {\n border: 0;\n margin: auto;\n padding: 10px;\n}\n\n.tablature pre {\n font-family: Cascadia Tablature;\n font-size: var(--tablature-font-size);\n color: var(--fg);\n}\n\n.tablature sup, .tablature sub {\n vertical-align: baseline;\n position: relative;\n}\n\n.tablature sup {\n font-size: var(--tablature-sup-font-size);\n top: var(--tablature-sup-top);\n}\n\n.tablature sup .fontsize-compensation {\n font-size: calc(var(--tablature-font-size) - var(--tablature-sup-font-size));\n}\n\n.tablature sub {\n font-size: var(--tablature-sub-font-size);\n top: var(--tablature-sub-top);\n}\n\n.tablature sub .fontsize-compensation {\n font-size: calc(var(--tablature-font-size) - var(--tablature-sub-font-size));\n}\n\n.tablatureEditor {\n resize: none;\n white-space: pre;\n background-color: var(--tab-bg);\n color: var(--fg);\n font-family: Cascadia Tablature;\n font-size: var(--tablature-font-size);\n border: 0;\n outline: none;\n margin: 0;\n padding: 10px 0 10px 10px;\n}\n\n.tablaturePrinter {\n display: none;\n}\n\n@media print {\n :root {\n --tab-bg: #fff;\n --header-bg: #fff;\n --button-bg: var(--header-bg);\n --button-hover-bg: #ddd;\n --button-active-bg: #eee;\n --fg: #888;\n --fg-alt: #666;\n --fg-alt2: #666;\n --fg-disabled: #aaa;\n --accent: #000;\n --accent-alt: #000;\n }\n\n .app {\n display: none;\n }\n\n .tablaturePrinter {\n display: block;\n }\n}\n\n.hidden {\n display: none;\n}\n\n/*# sourceMappingURL=index.b43a7e55.css.map */\n","@font-face {\n font-family: Cascadia Tablature;\n src: url(\"CascadiaTablature.woff2\");\n}\n\n@font-face {\n font-family: Cascadia Mono;\n src: url(\"CascadiaMono.woff2\");\n}\n\n@font-face {\n font-family: Cascadia Mono Italic;\n src: url(\"CascadiaMonoItalic.woff2\");\n}\n\nhtml {\n scroll-behavior: smooth;\n}\n\n:root {\n --shadow: rgba(0, 0, 0, 0.2);\n /* --border: rgba(0, 0, 0, 0.1); */\n --border: #28a0a266;\n\n --title-width: 260px;\n --controls-max-width: 900px;\n --app-height: 100vh;\n\n --tablature-font-size: 13px;\n --tablature-sup-font-size: 10px;\n --tablature-sup-top: -0.3em;\n --tablature-sub-font-size: 13px;\n --tablature-sub-top: 0.2em;\n\n --search-result-padding-vertical: 10px;\n --search-result-padding-horizontal: 30px;\n\n --tab-bg: #FEF8EC;\n --header-bg: #F9F1E1;\n --button-bg: #f5eddd;\n --button-hover-bg: #D1DFD0;\n --button-active-bg: #A9B5A9;\n\n --fg: #28a0a2;\n --fg-alt: #1c9ff0;\n --fg-alt2: #5ed0fa;\n --fg-disabled: #9ec5c5;\n\n --accent: #ff6a9e;\n --accent-alt: #f5970a;\n}\n\n@media (prefers-color-scheme: dark) {\n :root {\n --shadow: rgba(0, 0, 0, 0.5);\n --border: rgba(0, 0, 0, 0.3);\n --tab-bg: #262335;\n --header-bg: #241B2F;\n --button-bg: var(--header-bg);\n --button-hover-bg: #342847;\n --button-active-bg: #4f3d6a;\n\n --fg: #acb3b3;\n --fg-alt: #ffcb6b;\n --fg-alt2: #91f5f8;\n /* --fg-alt2: #94afeb; */\n --fg-disabled: #585858;\n\n --accent: #f78c6c;\n --accent: #f07178;\n /* --accent-alt: #94afeb; */\n /* --accent-alt: #c792ea; */\n --accent-alt: #f78c6c;\n }\n}\n\n.tablature .tabTitle {\n font-family: Cascadia Mono Italic;\n color: var(--accent-alt);\n}\n\n.tablature .tabTimeline {\n color: var(--fg);\n}\n\n.tablature .tabFret {\n color: var(--accent);\n}\n\n.tablature .tabSpecial {\n color: var(--fg-alt2);\n}\n\n.tablature .tabText {\n color: var(--fg);\n}\n\n.tablature .tabChord {\n color: var(--fg-alt);\n}\n\n.tablature .tabHeader {\n color: var(--accent-alt);\n}\n\n.tablature .tabPrefix {\n color: var(--fg-alt);\n}\n\n.tablature .tabSuffix {\n font-family: Cascadia Mono Italic;\n color: var(--accent-alt);\n}\n\n.smallViewport {\n display: none;\n}\n\n/* max-width must be larger that sum of --title-width and --controls-max-width */\n@media only screen and (max-width: 1060px) {\n .smallViewport {\n display: inline;\n }\n\n .largeViewport {\n display: none;\n }\n\n :root {\n --tablature-font-size: 10px;\n --tablature-sup-font-size: 8px;\n --tablature-sub-font-size: 10px;\n --search-result-padding-vertical: 5px;\n --search-result-padding-horizontal: 10px;\n }\n}\n\n* {\n box-sizing: border-box;\n outline: none;\n\n scrollbar-color: var(--button-hover-bg) var(--tab-bg);\n}\n\n/* Minimalistic Webkit scrollbars for browsers not supporting scollbar-color (Chrome, Safari) */\n::-webkit-scrollbar {\n background-color: var(--button-hover-bg);\n cursor: pointer;\n}\n\n::-webkit-scrollbar-button {\n height: 0;\n width: 0;\n}\n\n::-webkit-scrollbar-corner {\n background-color: var(--tab-bg);\n}\n\n::-webkit-scrollbar-track-piece {\n background-color: var(--tab-bg);\n}\n\n::-webkit-scrollbar-thumb {\n background-color: var(--button-hover-bg);\n}\n\n::-webkit-scrollbar-thumb:hover {\n background-color: var(--button-active-bg);\n}\n\n::-webkit-scrollbar-thumb:active {\n background-color: var(--button-active-bg);\n}\n\nbody {\n border: 0;\n margin: 0;\n padding: 0;\n background-color: var(--tab-bg);\n}\n\n.app {\n display: grid;\n grid-template-rows: 40px auto;\n border: 0;\n margin: 0;\n padding: 0;\n /* height: var(--app-height); */\n position: fixed;\n height: 100%;\n width: 100%;\n\n font-family: Cascadia Mono;\n}\n\n.header {\n display: flex;\n flex-wrap: wrap;\n margin: 0;\n border: 0;\n z-index: 100;\n\n justify-content: center;\n box-shadow: 0 0 6px 0 var(--shadow);\n background-color: var(--header-bg);\n}\n\n.title {\n margin: auto 0;\n padding: 0 10px;\n width: var(--title-width);\n}\n\n.title a {\n text-decoration: none;\n}\n\n.title h1 {\n margin: auto auto;\n\n color: var(--fg);\n font-family: Cascadia Mono;\n font-size: 24px;\n}\n\n/**************/\n/** CONTROLS **/\n/**************/\n\n.controls {\n display: flex;\n margin: 0;\n border: 0;\n max-width: var(--controls-max-width);\n}\n\n.controls * {\n background-color: var(--button-bg);\n font-family: Cascadia Tablature;\n font-size: 13px;\n color: var(--fg);\n}\n\nbutton.header-button,\n.header-button button {\n box-shadow: 0 0 3px 0 var(--shadow);\n height: 100%;\n border: 0;\n cursor: pointer;\n padding: 10px 20px;\n}\n\n.controls button:hover {\n background-color: var(--button-hover-bg);\n}\n\n.controls button:focus {\n background-color: var(--button-hover-bg);\n}\n\n.controls button:active {\n background-color: var(--button-active-bg);\n}\n\n.controls .selected {\n background-color: var(--button-hover-bg);\n}\n\n.controls button.disabled {\n color: var(--fg-disabled);\n}\n\n.controls button>* {\n background-color: inherit;\n color: inherit;\n}\n\nbutton.header-button:focus,\n.header-button button:focus,\nbutton.header-button.selected,\n.header-button button.selected\n{\n border-top: 1px solid var(--border);\n}\n\nbutton.dropdown-item,\n.dropdown-item button {\n height: 100%;\n border: 0;\n border-right: 1px solid var(--border);\n cursor: pointer;\n padding: 10px 10px;\n min-width: 50px;\n text-align: center;\n}\n\n.dropdown-item {\n border-bottom: 1px solid var(--border);\n flex-direction: row;\n display: flex;\n}\n\n.dropdown-item>div {\n padding: 10px 10px;\n font-style: italic;\n overflow: hidden;\n white-space: nowrap;\n}\n\n.dropdown-menu {\n position: absolute;\n box-shadow: 1px 1px 4px 0 var(--shadow);\n border-top: 1px solid var(--border);\n border-left: 1px solid var(--border);\n border-right: 1px solid var(--border);\n z-index: 1;\n flex-direction: column;\n display: flex;\n}\n\n.loadingIcon {\n padding: 18px 0px;\n width: 50px;\n}\n\n/************/\n/** SEARCH **/\n/************/\n\n.tablatureSearch * {\n font-family: Cascadia Tablature;\n font-size: var(--tablature-font-size);\n color: var(--fg);\n}\n\n.tablatureSearch {\n display: flex;\n flex-direction: column;\n align-items: center;\n background-color: var(--tab-bg);\n overflow: auto;\n}\n\n.searchBar {\n margin: 5px;\n padding: 10px 30px;\n background-color: var(--button-hover-bg);\n border: 1px solid;\n border-color: var(--shadow);\n width: 300px;\n}\n\n.searchBar:focus {\n border-color: var(--fg);\n}\n\n.searchResults table,\n.searchResults th,\n.searchResults tr,\n.searchResults td {\n border: 0;\n border-collapse: collapse;\n}\n\n.searchResults tr:hover {\n background-color: var(--button-hover-bg);\n cursor: pointer;\n}\n\n.searchResults tr:focus {\n background-color: var(--button-hover-bg);\n}\n\n.searchResults tr:active {\n background-color: var(--button-active-bg);\n}\n\n.searchResults .selected {\n background-color: var(--button-hover-bg);\n}\n\n.searchResults td,\n.searchResults th {\n padding: var(--search-result-padding-vertical) var(--search-result-padding-horizontal);\n}\n\n/***************/\n/** TABLATURE **/\n/***************/\n\n.tablatureViewer {\n display: flex;\n overflow: auto;\n background-color: var(--tab-bg);\n}\n\n.tablatureViewer pre {\n margin: auto;\n border: 0;\n padding: 10px;\n}\n\n.tablature pre {\n font-family: Cascadia Tablature;\n font-size: var(--tablature-font-size);\n color: var(--fg);\n}\n\n.tablature sup,\n.tablature sub {\n vertical-align: baseline;\n position: relative;\n}\n\n.tablature sup {\n font-size: var(--tablature-sup-font-size);\n top: var(--tablature-sup-top);\n}\n\n.tablature sup .fontsize-compensation {\n font-size: calc(var(--tablature-font-size) - var(--tablature-sup-font-size));\n}\n\n.tablature sub {\n font-size: var(--tablature-sub-font-size);\n top: var(--tablature-sub-top);\n}\n\n.tablature sub .fontsize-compensation {\n font-size: calc(var(--tablature-font-size) - var(--tablature-sub-font-size));\n}\n\n.tablatureEditor {\n margin: 0;\n border: 0;\n padding: 10px 0 10px 10px;\n\n outline: none;\n resize: none;\n white-space: pre;\n\n background-color: var(--tab-bg);\n color: var(--fg);\n font-family: Cascadia Tablature;\n font-size: var(--tablature-font-size);\n}\n\n.tablaturePrinter {\n display: none;\n}\n\n@media print {\n :root {\n --tab-bg: #fff;\n --header-bg: #fff;\n --button-bg: var(--header-bg);\n --button-hover-bg: #ddd;\n --button-active-bg: #eee;\n\n --fg: #888;\n --fg-alt: #666;\n --fg-alt2: #666;\n --fg-disabled: #aaa;\n\n --accent: #000;\n --accent-alt: #000;\n }\n\n .app {\n display: none;\n }\n\n .tablaturePrinter {\n display: block;\n }\n}\n\n.hidden {\n display: none\n}\n"],"names":[],"version":3,"file":"index.b43a7e55.css.map"} \ No newline at end of file diff --git a/docs/index.cb089467.css b/docs/index.e017fb53.css similarity index 51% rename from docs/index.cb089467.css rename to docs/index.e017fb53.css index e4d75a6..fc18770 100644 --- a/docs/index.cb089467.css +++ b/docs/index.e017fb53.css @@ -1,2 +1,2 @@ -.lds-ellipsis{position:relative}.lds-ellipsis div{width:6px;height:6px;background:var(--fg);border-radius:50%;animation-timing-function:cubic-bezier(0,1,1,0);position:absolute}.lds-ellipsis div:nth-child(1){animation:lds-ellipsis1 .6s infinite;left:10px}.lds-ellipsis div:nth-child(2){animation:lds-ellipsis2 .6s infinite;left:10px}.lds-ellipsis div:nth-child(3){animation:lds-ellipsis2 .6s infinite;left:20px}.lds-ellipsis div:nth-child(4){animation:lds-ellipsis3 .6s infinite;left:30px}@keyframes lds-ellipsis1{0%{transform:scale(0)}to{transform:scale(1)}}@keyframes lds-ellipsis3{0%{transform:scale(1)}to{transform:scale(0)}}@keyframes lds-ellipsis2{0%{transform:translate(0)}to{transform:translate(10px)}} -/*# sourceMappingURL=index.cb089467.css.map */ +.lds-ellipsis{position:relative}.lds-ellipsis div{width:6px;height:6px;background:var(--fg);border-radius:50%;animation-timing-function:cubic-bezier(0,1,1,0);position:absolute}.lds-ellipsis div:nth-child(1){animation:.6s infinite lds-ellipsis1;left:10px}.lds-ellipsis div:nth-child(2){animation:.6s infinite lds-ellipsis2;left:10px}.lds-ellipsis div:nth-child(3){animation:.6s infinite lds-ellipsis2;left:20px}.lds-ellipsis div:nth-child(4){animation:.6s infinite lds-ellipsis3;left:30px}@keyframes lds-ellipsis1{0%{transform:scale(0)}to{transform:scale(1)}}@keyframes lds-ellipsis3{0%{transform:scale(1)}to{transform:scale(0)}}@keyframes lds-ellipsis2{0%{transform:translate(0)}to{transform:translate(10px)}} +/*# sourceMappingURL=index.e017fb53.css.map */ diff --git a/docs/index.cb089467.css.map b/docs/index.e017fb53.css.map similarity index 79% rename from docs/index.cb089467.css.map rename to docs/index.e017fb53.css.map index 6002032..10898dc 100644 --- a/docs/index.cb089467.css.map +++ b/docs/index.e017fb53.css.map @@ -1 +1 @@ -{"mappings":"ACAA,gCAGA,gJAQA,8EAIA,8EAIA,8EAIA,8EAIA,sEAQA,sEAQA","sources":["index.cb089467.css","res/loadingIcon.css"],"sourcesContent":[".lds-ellipsis {\n position: relative;\n}\n\n.lds-ellipsis div {\n width: 6px;\n height: 6px;\n background: var(--fg);\n border-radius: 50%;\n animation-timing-function: cubic-bezier(0, 1, 1, 0);\n position: absolute;\n}\n\n.lds-ellipsis div:nth-child(1) {\n animation: lds-ellipsis1 .6s infinite;\n left: 10px;\n}\n\n.lds-ellipsis div:nth-child(2) {\n animation: lds-ellipsis2 .6s infinite;\n left: 10px;\n}\n\n.lds-ellipsis div:nth-child(3) {\n animation: lds-ellipsis2 .6s infinite;\n left: 20px;\n}\n\n.lds-ellipsis div:nth-child(4) {\n animation: lds-ellipsis3 .6s infinite;\n left: 30px;\n}\n\n@keyframes lds-ellipsis1 {\n 0% {\n transform: scale(0);\n }\n\n 100% {\n transform: scale(1);\n }\n}\n\n@keyframes lds-ellipsis3 {\n 0% {\n transform: scale(1);\n }\n\n 100% {\n transform: scale(0);\n }\n}\n\n@keyframes lds-ellipsis2 {\n 0% {\n transform: translate(0);\n }\n\n 100% {\n transform: translate(10px);\n }\n}\n\n/*# sourceMappingURL=index.cb089467.css.map */\n",".lds-ellipsis {\n position: relative;\n}\n.lds-ellipsis div {\n position: absolute;\n width: 6px;\n height: 6px;\n border-radius: 50%;\n background: var(--fg);\n animation-timing-function: cubic-bezier(0, 1, 1, 0);\n}\n.lds-ellipsis div:nth-child(1) {\n left: 10px;\n animation: lds-ellipsis1 0.6s infinite;\n}\n.lds-ellipsis div:nth-child(2) {\n left: 10px;\n animation: lds-ellipsis2 0.6s infinite;\n}\n.lds-ellipsis div:nth-child(3) {\n left: 20px;\n animation: lds-ellipsis2 0.6s infinite;\n}\n.lds-ellipsis div:nth-child(4) {\n left: 30px;\n animation: lds-ellipsis3 0.6s infinite;\n}\n@keyframes lds-ellipsis1 {\n 0% {\n transform: scale(0);\n }\n 100% {\n transform: scale(1);\n }\n}\n@keyframes lds-ellipsis3 {\n 0% {\n transform: scale(1);\n }\n 100% {\n transform: scale(0);\n }\n}\n@keyframes lds-ellipsis2 {\n 0% {\n transform: translate(0, 0);\n }\n 100% {\n transform: translate(10px, 0);\n }\n}\n"],"names":[],"version":3,"file":"index.cb089467.css.map"} \ No newline at end of file +{"mappings":"ACAA,gCAGA,gJAQA,8EAIA,8EAIA,8EAIA,8EAIA,sEAQA,sEAQA","sources":["index.e017fb53.css","res/loadingIcon.css"],"sourcesContent":[".lds-ellipsis {\n position: relative;\n}\n\n.lds-ellipsis div {\n width: 6px;\n height: 6px;\n background: var(--fg);\n border-radius: 50%;\n animation-timing-function: cubic-bezier(0, 1, 1, 0);\n position: absolute;\n}\n\n.lds-ellipsis div:nth-child(1) {\n animation: .6s infinite lds-ellipsis1;\n left: 10px;\n}\n\n.lds-ellipsis div:nth-child(2) {\n animation: .6s infinite lds-ellipsis2;\n left: 10px;\n}\n\n.lds-ellipsis div:nth-child(3) {\n animation: .6s infinite lds-ellipsis2;\n left: 20px;\n}\n\n.lds-ellipsis div:nth-child(4) {\n animation: .6s infinite lds-ellipsis3;\n left: 30px;\n}\n\n@keyframes lds-ellipsis1 {\n 0% {\n transform: scale(0);\n }\n\n 100% {\n transform: scale(1);\n }\n}\n\n@keyframes lds-ellipsis3 {\n 0% {\n transform: scale(1);\n }\n\n 100% {\n transform: scale(0);\n }\n}\n\n@keyframes lds-ellipsis2 {\n 0% {\n transform: translate(0);\n }\n\n 100% {\n transform: translate(10px);\n }\n}\n\n/*# sourceMappingURL=index.e017fb53.css.map */\n",".lds-ellipsis {\n position: relative;\n}\n.lds-ellipsis div {\n position: absolute;\n width: 6px;\n height: 6px;\n border-radius: 50%;\n background: var(--fg);\n animation-timing-function: cubic-bezier(0, 1, 1, 0);\n}\n.lds-ellipsis div:nth-child(1) {\n left: 10px;\n animation: lds-ellipsis1 0.6s infinite;\n}\n.lds-ellipsis div:nth-child(2) {\n left: 10px;\n animation: lds-ellipsis2 0.6s infinite;\n}\n.lds-ellipsis div:nth-child(3) {\n left: 20px;\n animation: lds-ellipsis2 0.6s infinite;\n}\n.lds-ellipsis div:nth-child(4) {\n left: 30px;\n animation: lds-ellipsis3 0.6s infinite;\n}\n@keyframes lds-ellipsis1 {\n 0% {\n transform: scale(0);\n }\n 100% {\n transform: scale(1);\n }\n}\n@keyframes lds-ellipsis3 {\n 0% {\n transform: scale(1);\n }\n 100% {\n transform: scale(0);\n }\n}\n@keyframes lds-ellipsis2 {\n 0% {\n transform: translate(0, 0);\n }\n 100% {\n transform: translate(10px, 0);\n }\n}\n"],"names":[],"version":3,"file":"index.e017fb53.css.map"} \ No newline at end of file diff --git a/docs/index.html b/docs/index.html index 956f55f..d4d1ce3 100644 --- a/docs/index.html +++ b/docs/index.html @@ -1 +1 @@ -Tab Viewer \ No newline at end of file +Tab Viewer \ No newline at end of file