on master help sign in
Create Prelude module which exports a bunch of List functions. Add `take` and `drop` to Data.List. Ensure that prelude is automatically imported, even if it is not listed.
248946fevancz
core-js/Data.js+12−3
@@ -28,14 +28,23 @@ var Maybe = function() {
28 return xs;
28 return xs;
29 };
29 };
30 };
30 };
31− };
31+ }
32+ function maybe(b) { return function(f) { return function(m) {
33+ if (m[0] === "Just") return f(m[1]);
34+ return b;
35+ };
36+ };
37+ }
32
38
39+ return {Just : function(x) { return ["Just",x]; },
40+ Nothing : ["Nothing"],
33− return {catMaybes : List.foldr(consMaybe)(["Nil"]),
41+ catMaybes : List.foldr(consMaybe)(["Nil"]),
34 isJust : function(m) { return m[0] === "Just"; },
42 isJust : function(m) { return m[0] === "Just"; },
35 isNothing : function(m) { return m[0] === "Nothing"; },
43 isNothing : function(m) { return m[0] === "Nothing"; },
36 fromMaybe : fromMaybe,
44 fromMaybe : fromMaybe,
37 consMaybe : consMaybe,
45 consMaybe : consMaybe,
38− mapMaybe : function(f) { return List.foldr(mapCons(f))(["Nil"]); }
46+ mapMaybe : function(f) { return List.foldr(mapCons(f))(["Nil"]); },
47+ maybe : maybe
39 };
48 };
40}();
49}();
41
50
core-js/Everything.js+6−46
@@ -1,32 +1,4 @@
1
1
2−var id = function(x) { return x; };
3−var not = function(exp) { return !exp; };
4−
5−var sqrt = function(x) { return Math.sqrt(x); };
6−var rem = function(x) { return function(y) { return x % y; }; };
7−var mod = function(x) { return function(y) {
8− var r = x % y;
9− var m = x==0 ? 0 : (y>0 ? (x>=0 ? r : r+y) : -mod(-x)(-y));
10− return m == y ? 0 : m;
11−}; };
12−var abs = function(x) { return Math.abs(x); };
13−var logBase = function(base) { return function(x) { return Math.log(x) / Math.log(base); }; };
14−
15−var min = function(x) { return function(y) { return Math.min(x,y); }; };
16−var max = function(x) { return function(y) { return Math.max(x,y); }; };
17−var clamp = function(lo) { return function(hi) {
18− return function(x) { return Math.min(hi, Math.max(lo, x)); };
19− };
20−};
21−
22−var sin = Math.sin, cos = Math.cos, tan = Math.tan;
23−var asin = Math.asin, acos = Math.acos, atan = Math.atan;
24−
25−var flip = function(f){return function(x){return function(y){return f(y)(x);};};};
26−
27−var Just = function(x) { return ["Just",x]; };
28−var Nothing = ["Nothing"];
29−
30var eq = function(x,y) {
2var eq = function(x,y) {
31 if (typeof x === "object") {
3 if (typeof x === "object") {
32 if (x === y) return true;
4 if (x === y) return true;
@@ -39,19 +11,6 @@ var eq = function(x,y) {
39 return x === y;
11 return x === y;
40};
12};
41
13
42−function constant(v) { return Elm.Input(v); }
43−function lift(f) { return function(e) { return Elm.Lift(f, [e]); }; }
44−function lift2(f) { return function(e1) { return function(e2) {
45− return Elm.Lift(f, [e1,e2]); }; }; }
46−function lift3(f) { return function(e1) { return function(e2) {
47− return function(e3) { return Elm.Lift(f, [e1,e2,e3]); }; }; }; }
48−function lift4(f) { return function(e1) { return function(e2) {
49− return function(e3) { return function(e4) {
50− return Elm.Lift(f, [e1,e2,e3,e4]); }; }; }; }; }
51−function foldp(f) { return function(b) { return function(e) {
52− return Elm.Fold(f,b,e); }; }; }
53−
54−
55var includeGlobal = this;
14var includeGlobal = this;
56(function() {
15(function() {
57 var include = function(library) {
16 var include = function(library) {
@@ -82,6 +41,10 @@ var includeGlobal = this;
82 color = Element.color;
41 color = Element.color;
83 height = Element.height;
42 height = Element.height;
84 show = Value.show;
43 show = Value.show;
44+
45+ include (Color);
46+ include (Shape);
47+ include (Line);
85
48
86 includeAs ('Time') (Signal.Time);
49 includeAs ('Time') (Signal.Time);
87 includeAs ('Mouse') (Signal.Mouse);
50 includeAs ('Mouse') (Signal.Mouse);
@@ -90,14 +53,11 @@ var includeGlobal = this;
90 includeAs ('HTTP') (Signal.HTTP);
53 includeAs ('HTTP') (Signal.HTTP);
91 includeAs ('Input') (Signal.Input);
54 includeAs ('Input') (Signal.Input);
92 includeAs ('Random') (Signal.Random);
55 includeAs ('Random') (Signal.Random);
93−
94− include (Color);
95− include (Shape);
96− include (Line);
97
56
98}());
57}());
99
58
100var ElmCode = {};
59var ElmCode = {};
101ElmCode.Data = Data;
60ElmCode.Data = Data;
102ElmCode.Signal = Signal;
61ElmCode.Signal = Signal;
103−ElmCode.Data.List = List;
62+ElmCode.Data.List = List;
63+ElmCode.Prelude = Prelude;
core-js/List.js+43−12
@@ -1,6 +1,8 @@
1var List = function() {
1var List = function() {
2
2
3+ var throwError = function(f) {
3− var throwError = function() { throw "Function expecting a list!"; }
4+ throw "Function '" + f + "' expecting a list!";
5+ }
4
6
5 function length(xs) {
7 function length(xs) {
6 var out = 0;
8 var out = 0;
@@ -57,7 +59,7 @@ var List = function() {
57 function map(f) {
59 function map(f) {
58 return function(xs) {
60 return function(xs) {
59 if (xs[0] === "Nil") { return xs; }
61 if (xs[0] === "Nil") { return xs; }
60− if (xs[0] !== "Cons") { throwError(); }
62+ if (xs[0] !== "Cons") { throwError('map'); }
61 var root = ["Cons", f(xs[1]), ["Nil"]];
63 var root = ["Cons", f(xs[1]), ["Nil"]];
62 var curr = root;
64 var curr = root;
63 xs = xs[2];
65 xs = xs[2];
@@ -74,7 +76,7 @@ var List = function() {
74 return function(xs) {
76 return function(xs) {
75 var acc = b;
77 var acc = b;
76 if (xs[0] === "Nil") { return acc; }
78 if (xs[0] === "Nil") { return acc; }
77− if (xs[0] !== "Cons") { throwError(); }
79+ if (xs[0] !== "Cons") { throwError('foldl'); }
78 while (xs[0] === "Cons") {
80 while (xs[0] === "Cons") {
79 acc = f(xs[1])(acc);
81 acc = f(xs[1])(acc);
80 xs = xs[2];
82 xs = xs[2];
@@ -88,7 +90,7 @@ var List = function() {
88 return function(xs) {
90 return function(xs) {
89 var acc = b;
91 var acc = b;
90 if (xs[0] === "Nil") { return acc; }
92 if (xs[0] === "Nil") { return acc; }
91− if (xs[0] !== "Cons") { throwError(); }
93+ if (xs[0] !== "Cons") { throwError('foldr'); }
92 var arr = [];
94 var arr = [];
93 while (xs[0] === "Cons") {
95 while (xs[0] === "Cons") {
94 arr.push(xs[1]);
96 arr.push(xs[1]);
@@ -131,7 +133,7 @@ var List = function() {
131 return function(b) {
133 return function(b) {
132 return function(xs) {
134 return function(xs) {
133 if (xs[0] === "Nil") { return ["Cons",b,["Nil"]]; }
135 if (xs[0] === "Nil") { return ["Cons",b,["Nil"]]; }
134− if (xs[0] !== "Cons") { throwError(); }
136+ if (xs[0] !== "Cons") { throwError('scanl'); }
135 var arr = [b];
137 var arr = [b];
136 while (xs[0] === "Cons") {
138 while (xs[0] === "Cons") {
137 b = f(xs[1])(b);
139 b = f(xs[1])(b);
@@ -157,7 +159,7 @@ var List = function() {
157 function filter(pred) {
159 function filter(pred) {
158 return function(xs) {
160 return function(xs) {
159 if (xs[0] === "Nil") { return xs; }
161 if (xs[0] === "Nil") { return xs; }
160− if (xs[0] !== "Cons") { throwError(); }
162+ if (xs[0] !== "Cons") { throwError('filter'); }
161 var arr = [];
163 var arr = [];
162 while (xs[0] === "Cons") {
164 while (xs[0] === "Cons") {
163 if (pred(xs[1])) { arr.push(xs[1]); }
165 if (pred(xs[1])) { arr.push(xs[1]); }
@@ -224,8 +226,8 @@ var List = function() {
224 function zipWith(f) {
226 function zipWith(f) {
225 return function(listA) {
227 return function(listA) {
226 return function(listB) {
228 return function(listB) {
227− if (listA[0] === "Nil" || listB[0] === "Nil") { return listA; }
229+ if (listA[0] === "Nil" || listB[0] === "Nil") { return ["Nil"]; }
228− if (listA[0] !== "Cons" || listB[0] !== "Cons") { throwError(); }
230+ if (listA[0] !== "Cons" || listB[0] !== "Cons") { throwError('zipWith'); }
229 var arr = [];
231 var arr = [];
230 while (listA[0] === "Cons" && listB[0] === "Cons") {
232 while (listA[0] === "Cons" && listB[0] === "Cons") {
231 arr.push(f(listA[1])(listB[1]));
233 arr.push(f(listA[1])(listB[1]));
@@ -242,8 +244,8 @@ var List = function() {
242 }
244 }
243 function zip(listA) {
245 function zip(listA) {
244 return function(listB) {
246 return function(listB) {
245− if (listA[0] === "Nil" || listB[0] === "Nil") { return listA; }
247+ if (listA[0] === "Nil" || listB[0] === "Nil") { return ["Nil"]; }
246− if (listA[0] !== "Cons" || listB[0] !== "Cons") { throwError(); }
248+ if (listA[0] !== "Cons" || listB[0] !== "Cons") { throwError('zip'); }
247 var arr = [];
249 var arr = [];
248 while (listA[0] === "Cons" && listB[0] === "Cons") {
250 while (listA[0] === "Cons" && listB[0] === "Cons") {
249 arr.push(["Tuple2", listA[1], listB[1]]);
251 arr.push(["Tuple2", listA[1], listB[1]]);
@@ -391,7 +393,7 @@ var List = function() {
391 }
393 }
392 function sort(xs) {
394 function sort(xs) {
393 if (xs[0] === "Nil") { return xs; }
395 if (xs[0] === "Nil") { return xs; }
394− if (xs[0] !== "Cons") { throwError(); }
396+ if (xs[0] !== "Cons") { throwError('sort'); }
395 var arr = [];
397 var arr = [];
396 while (xs[0] === "Cons") {
398 while (xs[0] === "Cons") {
397 arr.push(xs[1]);
399 arr.push(xs[1]);
@@ -404,6 +406,33 @@ var List = function() {
404 }
406 }
405 return out;
407 return out;
406 }
408 }
409+ function take(n) { return function(xs) {
410+ if (n <= 0) { return ["Nil"]; }
411+ if (xs[0] === "Nil") { return xs; }
412+ if (xs[0] !== "Cons") { throwError('take'); }
413+ var out = [ "Cons", xs[1], ["Nil"] ];
414+ var temp = out;
415+ xs = xs[2];
416+ --n;
417+ while (xs[0] === "Cons" && n > 0) {
418+ temp[2] = [ "Cons", xs[1], ["Nil"] ];
419+ temp = temp[2];
420+ xs = xs[2];
421+ --n;
422+ }
423+ return out;
424+ };
425+ }
426+ function drop(n) { return function(xs) {
427+ if (xs[0] === "Nil") { return xs; }
428+ if (xs[0] !== "Cons") { throwError('drop'); }
429+ while (xs[0] === "Cons" && n > 0) {
430+ xs = xs[2];
431+ --n;
432+ }
433+ return xs;
434+ };
435+ }
407 return {head:head,
436 return {head:head,
408 tail:tail,
437 tail:tail,
409 map:map,
438 map:map,
@@ -432,5 +461,7 @@ var List = function() {
432 unzip:unzip,
461 unzip:unzip,
433 intersperse:intersperse,
462 intersperse:intersperse,
434 intercalate:intercalate,
463 intercalate:intercalate,
435− sort:sort};
464+ sort:sort,
465+ take:take,
466+ drop:drop};
436}();
467}();
core-js/Prelude.jsnew file+85
@@ -0,0 +1,85 @@
1+
2+var Prelude = function() {
3+ var mod = function(x) { return function(y) {
4+ var r = x % y;
5+ var m = x==0 ? 0 : (y>0 ? (x>=0 ? r : r+y) : -mod(-x)(-y));
6+ return m == y ? 0 : m;
7+ }; };
8+
9+ var min = function(x) { return function(y) { return Math.min(x,y); }; };
10+ var max = function(x) { return function(y) { return Math.max(x,y); }; };
11+
12+ var flip=function(f){return function(x){return function(y){return f(y)(x);};};};
13+ var clamp = function(lo) { return function(hi) {
14+ return function(x) { return Math.min(hi, Math.max(lo, x)); };
15+ };
16+ };
17+ var curry = function(f) { return function(x) { return function(y) {
18+ return f(["Tuple2",x,y]); }; };
19+ };
20+ var uncurry = function(f) { return function(p) {
21+ if (p[0] !== "Tuple2") {
22+ throw "Function was uncurry'd but was not given a pair.";
23+ }
24+ return f(p[1])(p[2]); };
25+ };
26+
27+ var logBase=function(b){return function(x){return Math.log(x)/Math.log(b);};};
28+
29+ return {id : function(x) { return x; },
30+ not : function(b) { return !b; },
31+ fst : function(p) { return p[1]; },
32+ snd : function(p) { return p[2]; },
33+ rem : function(x) { return function(y) { return x % y; }; },
34+ sqrt : Math.sqrt,
35+ abs : Math.abs,
36+ pi : Math.PI,
37+ sin : Math.sin,
38+ cos : Math.cos,
39+ tan : Math.tan,
40+ asin : Math.asin,
41+ acos : Math.acos,
42+ atan : Math.atan,
43+ mod : mod,
44+ min : min,
45+ max : max,
46+ flip : flip,
47+ clamp : clamp,
48+ curry : curry,
49+ uncurry : uncurry,
50+ logBase : logBase,
51+ Just : Data.Maybe.Just,
52+ Nothing : Data.Maybe.Nothing,
53+ maybe : Data.Maybe.maybe,
54+ map : Data.List.map,
55+ filter : Data.List.filter,
56+ head : Data.List.head,
57+ tail : Data.List.tail,
58+ length : Data.List.length,
59+ reverse : Data.List.reverse,
60+ foldr : Data.List.foldr,
61+ foldr1 : Data.List.foldr1,
62+ foldl : Data.List.foldl,
63+ foldl1 : Data.List.foldl1,
64+ and : Data.List.and,
65+ or : Data.List.or,
66+ forall : Data.List.forall,
67+ exists : Data.List.exists,
68+ sum : Data.List.sum,
69+ product : Data.List.product,
70+ concat : Data.List.concat,
71+ concatMap : Data.List.concatMap,
72+ maximum : Data.List.maximum,
73+ minimum : Data.List.minimum,
74+ scanl : Data.List.scanl,
75+ scanl1 : Data.List.scanl1,
76+ take : Data.List.take,
77+ drop : Data.List.drop,
78+ lift : Signal.lift,
79+ lift2 : Signal.lift2,
80+ lift3 : Signal.lift3,
81+ lift4 : Signal.lift4,
82+ foldp : Signal.foldp,
83+ constant : Signal.constant
84+ };
85+}();
core-js/cat-js.sh+1−1
@@ -1 +1 @@
1−cat Guid.js Value.js List.js Data.js collage/Color.js Element.js Text.js collage/Shape.js collage/Line.js runtime/Dispatcher.js runtime/Signal.js Everything.js > ../elm-mini.js ; ls
1+cat Guid.js Value.js List.js Data.js collage/Color.js Element.js Text.js collage/Shape.js collage/Line.js runtime/Dispatcher.js runtime/Signal.js Prelude.js Everything.js > ../elm-mini.js ; ls
core-js/runtime/Signal.js+13−1
@@ -290,5 +290,17 @@ var Signal = function() {
290 Window:Window,
290 Window:Window,
291 HTTP:HTTP,
291 HTTP:HTTP,
292 Random:Random,
292 Random:Random,
293− Input:Input };
293+ Input:Input,
294+ constant : function(v) { return Elm.Input(v); },
295+ lift : function(f){return function(e){return Elm.Lift(f,[e]);};},
296+ lift2 : function(f) { return function(e1) { return function(e2) {
297+ return Elm.Lift(f, [e1,e2]); }; }; },
298+ lift3 : function(f) { return function(e1) { return function(e2) {
299+ return function(e3){return Elm.Lift(f,[e1,e2,e3]);};};};},
300+ lift4 : function(f) { return function(e1) { return function(e2) {
301+ return function(e3) { return function(e4) {
302+ return Elm.Lift(f, [e1,e2,e3,e4]); }; }; }; }; },
303+ foldp : function(f) { return function(b) { return function(e) {
304+ return Elm.Fold(f,b,e); }; }; }
305+ };
294}();
306}();
elm/elm-runtime-0.3.0.js+53−50
@@ -1,50 +1,53 @@
1−var Guid=function(){var b=0;return{guid:function(){return b+=1}}}(),Value=function(){var b=function(a){a.replace('"',"&#34;");a.replace("&","&#38;");a.replace("'","&#39;");a.replace("<","&#60;");a.replace(">","&#62;");return a},c=function(a){if("boolean"===typeof a)return a?"True":"False";if("number"!==typeof a&&a[0]){if("Tuple"===a[0].substring(0,5)){for(var b="",g=a.length;--g;)b=","+c(a[g])+b;","===b[0]&&(b=b.substring(1));return"("+b+")"}if("Cons"===a[0])for(var g="string"===typeof a[1]?'"':"]",
1+var Guid=function(){var f=0;return{guid:function(){return f+=1}}}(),Value=function(){var f=function(a){a.replace('"',"&#34;");a.replace("&","&#38;");a.replace("'","&#39;");a.replace("<","&#60;");a.replace(">","&#62;");return a},b=function(a){if("boolean"===typeof a)return a?"True":"False";if("number"!==typeof a&&a[0]){if("Tuple"===a[0].substring(0,5)){for(var c="",g=a.length;--g;)c=","+b(a[g])+c;","===c[0]&&(c=c.substring(1));return"("+c+")"}if("Cons"===a[0])for(var g="string"===typeof a[1]?'"':"]",
2−f="string"===typeof a[1]?"":",",b=("string"===typeof a[1]?'"':"[")+c(a[1]),a=a[2];;)if("Cons"===a[0])b+=f+c(a[1]),a=a[2];else return b+g;else{if("Nil"===a[0])return"[]";b="";for(g=a.length;--g;)b=" "+c(a[g])+b;b=a[0]+b;return 1<a.length?"("+b+")":b}}return a+""};return{show:function(a){return Text.monospace(b(c(a)))},Tuple:function(){var a=arguments.length,b=Array(a+1);for(b[0]="Tuple"+arguments.length;a--;)b[a+1]=arguments[a];return b},append:function(a,b){if("string"===typeof a&&"string"===typeof b)return a.concat(b);
2+h="string"===typeof a[1]?"":",",c=("string"===typeof a[1]?'"':"[")+b(a[1]),a=a[2];;)if("Cons"===a[0])c+=h+b(a[1]),a=a[2];else return c+g;else{if("Nil"===a[0])return"[]";c="";for(g=a.length;--g;)c=" "+b(a[g])+c;c=a[0]+c;return 1<a.length?"("+c+")":c}}return a+""};return{show:function(a){return Text.monospace(f(b(a)))},Tuple:function(){var a=arguments.length,c=Array(a+1);for(c[0]="Tuple"+arguments.length;a--;)c[a+1]=arguments[a];return c},append:function(a,c){if("string"===typeof a&&"string"===typeof c)return a.concat(c);
3−if("Nil"===a[0])return b;for(var c=["Cons",a[1],["Nil"]],f=c,a=a[2];"Cons"===a[0];)f[2]=["Cons",a[1],["Nil"]],a=a[2],f=f[2];f[2]=b;return c},toText:function(a){if("string"===typeof a)return a;for(var c=[];"Cons"===a[0];)c.push(a[1]),a=a[2];return b(c.join(""))},properEscape:b}}(),List=function(){function b(a){return function(e){if("Nil"===e[0])return e;"Cons"!==e[0]&&i();for(var b=["Cons",a(e[1]),["Nil"]],d=b,e=e[2];"Cons"===e[0];)d[2]=["Cons",a(e[1]),["Nil"]],e=e[2],d=d[2];return b}}function c(e){return function(a){return function(b){var d=
3+if("Nil"===a[0])return c;for(var b=["Cons",a[1],["Nil"]],h=b,a=a[2];"Cons"===a[0];)h[2]=["Cons",a[1],["Nil"]],a=a[2],h=h[2];h[2]=c;return b},toText:function(a){if("string"===typeof a)return a;for(var b=[];"Cons"===a[0];)b.push(a[1]),a=a[2];return f(b.join(""))},properEscape:f}}(),List=function(){function f(a){return function(e){if("Nil"===e[0])return e;"Cons"!==e[0]&&i("map");for(var d=["Cons",a(e[1]),["Nil"]],b=d,e=e[2];"Cons"===e[0];)b[2]=["Cons",a(e[1]),["Nil"]],e=e[2],b=b[2];return d}}function b(e){return function(a){return function(d){var b=
4−a;if("Nil"===b[0])return d;for("Cons"!==b[0]&&i();"Cons"===b[0];)d=e(b[1])(d),b=b[2];return d}}}function a(e){return function(a){return function(b){var d=a;if("Nil"===b[0])return d;"Cons"!==b[0]&&i();for(var c=[];"Cons"===b[0];)c.push(b[1]),b=b[2];for(b=c.length;b--;)d=e(c[b])(d);return d}}}function h(e){return function(a){var b;"Cons"!==a[0]?b=void 0:(b=a[1],a=a[2],b=c(e)(b)(a));return b}}function g(e){return function(a){return function(b){if("Nil"===b[0])return["Cons",a,["Nil"]];"Cons"!==b[0]&&
4+a;if("Nil"===d[0])return b;for("Cons"!==d[0]&&i("foldl");"Cons"===d[0];)b=e(d[1])(b),d=d[2];return b}}}function a(e){return function(a){return function(d){var b=a;if("Nil"===d[0])return b;"Cons"!==d[0]&&i("foldr");for(var c=[];"Cons"===d[0];)c.push(d[1]),d=d[2];for(d=c.length;d--;)b=e(c[d])(b);return b}}}function c(e){return function(a){var d;"Cons"!==a[0]?d=void 0:(d=a[1],a=a[2],d=b(e)(d)(a));return d}}function g(a){return function(e){return function(d){if("Nil"===d[0])return["Cons",e,["Nil"]];"Cons"!==
5−i();for(var d=[a];"Cons"===b[0];)a=e(b[1])(a),d.push(a),b=b[2];for(var b=["Nil"],c=d.length;c--;)b=["Cons",d[c],b];return b}}}function f(a){return function(e){return function(){for(var b=[function(a){return"Nil"!==a[0]?void 0:["Tuple2",["Nil"],["Nil"]]},function(e){if("Cons"===e[0]){var b=e[1],e=e[2];var d=f(a)(e);"Tuple2"!==d[0]?b=void 0:(e=d[1],d=d[2],b=a(b)?["Tuple2",["Cons",b,e],d]:["Tuple2",e,["Cons",b,d]]);return b}}],d=b.length;d--;){var c=b[d](e);if(void 0!==c)return c}}()}}function j(e){return function(){for(var a=
5+d[0]&&i("scanl");for(var b=[e];"Cons"===d[0];)e=a(d[1])(e),b.push(e),d=d[2];for(var d=["Nil"],c=b.length;c--;)d=["Cons",b[c],d];return d}}}function h(e){return function(a){return function(){for(var d=[function(e){return"Nil"!==e[0]?void 0:["Tuple2",["Nil"],["Nil"]]},function(a){if("Cons"===a[0]){var d=a[1],a=a[2];var b=h(e)(a);"Tuple2"!==b[0]?d=void 0:(a=b[1],b=b[2],d=e(d)?["Tuple2",["Cons",d,a],b]:["Tuple2",a,["Cons",d,b]]);return d}}],b=d.length;b--;){var c=d[b](a);if(void 0!==c)return c}}()}}function k(a){return function(){for(var e=
6−[function(e){return"Nil"!==e[0]?void 0:["Tuple2",["Nil"],["Nil"]]},function(e){if("Cons"!==e[0])e=void 0;else if(e=["Tuple2",e[1],j(e[2])],"Tuple2"!==e[0]||"Tuple2"!==e[1][0])e=void 0;else var a=e[1][1],b=e[1][2],e="Tuple2"!==e[2][0]?void 0:["Tuple2",["Cons",a,e[2][1]],["Cons",b,e[2][2]]];return e}],b=a.length;b--;){var d=a[b](e);if(void 0!==d)return d}}()}function l(e){return function(a){return function(){for(var b=[function(e){return"Nil"!==e[0]?void 0:["Nil"]},function(e){if("Cons"===e[0]){var a=
6+[function(a){return"Nil"!==a[0]?void 0:["Tuple2",["Nil"],["Nil"]]},function(a){if("Cons"!==a[0])a=void 0;else if(a=["Tuple2",a[1],k(a[2])],"Tuple2"!==a[0]||"Tuple2"!==a[1][0])a=void 0;else var e=a[1][1],d=a[1][2],a="Tuple2"!==a[2][0]?void 0:["Tuple2",["Cons",e,a[2][1]],["Cons",d,a[2][2]]];return a}],d=e.length;d--;){var b=e[d](a);if(void 0!==b)return b}}()}function n(a){return function(e){return function(){for(var d=[function(a){return"Nil"!==a[0]?void 0:["Nil"]},function(a){if("Cons"===a[0]){var e=
7−e[1];return"Nil"!==e[2][0]?void 0:["Cons",a,["Nil"]]}},function(a){if("Cons"===a[0]){var b=a[1];if("Cons"===a[2][0]){var d=a[2][1],a=a[2][2];return["Cons",b,["Cons",e,l(e)(["Cons",d,a])]]}}}],d=b.length;d--;){var c=b[d](a);if(void 0!==c)return c}}()}}function o(e){return function(a){return function(){for(var b=[function(e){return"Nil"!==e[0]?void 0:["Nil"]},function(e){if("Cons"===e[0]){var a=e[1];return"Nil"!==e[2][0]?void 0:a}},function(a){if("Cons"===a[0]){var b=a[1];if("Cons"===a[2][0]){var d=
7+a[1];return"Nil"!==a[2][0]?void 0:["Cons",e,["Nil"]]}},function(e){if("Cons"===e[0]){var d=e[1];if("Cons"===e[2][0]){var b=e[2][1],e=e[2][2];return["Cons",d,["Cons",a,n(a)(["Cons",b,e])]]}}}],b=d.length;b--;){var c=d[b](e);if(void 0!==c)return c}}()}}function o(a){return function(e){return function(){for(var d=[function(a){return"Nil"!==a[0]?void 0:["Nil"]},function(a){if("Cons"===a[0]){var e=a[1];return"Nil"!==a[2][0]?void 0:e}},function(e){if("Cons"===e[0]){var d=e[1];if("Cons"===e[2][0]){var b=
8−a[2][1],a=a[2][2];return Value.append(b,Value.append(e,o(e)(["Cons",d,a])))}}}],d=b.length;d--;){var c=b[d](a);if(void 0!==c)return c}}()}}var i=function(){throw"Function expecting a list!";},k=c(function(e){return function(a){return["Cons",e,a]}})(["Nil"]),m=a(function(e){return function(a){return Value.append(e,a)}})(["Nil"]),n=c(function(e){return function(a){return e&&a}})(!0),e=c(function(e){return function(a){return e||a}})(!1),d=c(function(e){return function(a){return e+a}})(0),p=c(function(e){return function(a){return e*
8+e[2][1],e=e[2][2];return Value.append(d,Value.append(a,o(a)(["Cons",b,e])))}}}],b=d.length;b--;){var c=d[b](e);if(void 0!==c)return c}}()}}var i=function(a){throw"Function '"+a+"' expecting a list!";},j=b(function(a){return function(e){return["Cons",a,e]}})(["Nil"]),l=a(function(a){return function(e){return Value.append(a,e)}})(["Nil"]),m=b(function(a){return function(e){return a&&e}})(!0),e=b(function(a){return function(e){return a||e}})(!1),d=b(function(a){return function(e){return a+e}})(0),p=
9−a}})(1),r=h(function(e){return function(a){return Math.max(e,a)}}),t=h(function(e){return function(a){return Math.min(e,a)}});return{head:function(e){if("Cons"!==e[0])throw"Error: 'head' only accepts lists of length greater than one.";return e[1]},tail:function(e){if("Cons"!==e[0])throw"Error: 'tail' only accepts lists of length greater than one.";return e[2]},map:b,foldl:c,foldr:a,foldl1:h,foldr1:function(e){return function(b){var d;"Cons"!==b[0]?d=void 0:(d=b[1],b=b[2],d=a(e)(d)(b));return d}},
9+b(function(a){return function(e){return a*e}})(1),r=c(function(a){return function(e){return Math.max(a,e)}}),t=c(function(a){return function(e){return Math.min(a,e)}});return{head:function(a){if("Cons"!==a[0])throw"Error: 'head' only accepts lists of length greater than one.";return a[1]},tail:function(a){if("Cons"!==a[0])throw"Error: 'tail' only accepts lists of length greater than one.";return a[2]},map:f,foldl:b,foldr:a,foldl1:c,foldr1:function(e){return function(d){var b;"Cons"!==d[0]?b=void 0:
10−scanl:g,scanl1:function(e){return function(a){if("Cons"!==a[0])throw"Error: 'scanl1' requires a list of at least length 1.";return g(e)(a[1])(a[2])}},filter:function(e){return function(a){if("Nil"===a[0])return a;"Cons"!==a[0]&&i();for(var b=[];"Cons"===a[0];)e(a[1])&&b.push(a[1]),a=a[2];for(var a=["Nil"],d=b.length;d--;)a=["Cons",b[d],a];return a}},length:function(e){for(var a=0;"Cons"===e[0];)a+=1,e=e[2];return a},reverse:k,concat:m,concatMap:function(e){return function(a){return m(b(e)(a))}},and:n,
10+(b=d[1],d=d[2],b=a(e)(b)(d));return b}},scanl:g,scanl1:function(a){return function(e){if("Cons"!==e[0])throw"Error: 'scanl1' requires a list of at least length 1.";return g(a)(e[1])(e[2])}},filter:function(a){return function(e){if("Nil"===e[0])return e;"Cons"!==e[0]&&i("filter");for(var d=[];"Cons"===e[0];)a(e[1])&&d.push(e[1]),e=e[2];for(var e=["Nil"],b=d.length;b--;)e=["Cons",d[b],e];return e}},length:function(a){for(var e=0;"Cons"===a[0];)e+=1,a=a[2];return e},reverse:j,concat:l,concatMap:function(a){return function(e){return l(f(a)(e))}},
11−or:e,forall:function(e){return c(function(a){return function(b){return b&&e(a)}})(!0)},exists:function(e){return c(function(a){return function(b){return b||e(a)}})(!1)},sum:d,product:p,maximum:r,minimum:t,partition:f,zipWith:function(e){return function(a){return function(b){if("Nil"===a[0]||"Nil"===b[0])return a;("Cons"!==a[0]||"Cons"!==b[0])&&i();for(var d=[];"Cons"===a[0]&&"Cons"===b[0];)d.push(e(a[1])(b[1])),a=a[2],b=b[2];for(var b=["Nil"],c=d.length;c--;)b=["Cons",d[c],b];return b}}},zip:function(e){return function(a){if("Nil"===
11+and:m,or:e,forall:function(a){return b(function(e){return function(d){return d&&a(e)}})(!0)},exists:function(a){return b(function(e){return function(d){return d||a(e)}})(!1)},sum:d,product:p,maximum:r,minimum:t,partition:h,zipWith:function(a){return function(e){return function(d){if("Nil"===e[0]||"Nil"===d[0])return["Nil"];("Cons"!==e[0]||"Cons"!==d[0])&&i("zipWith");for(var b=[];"Cons"===e[0]&&"Cons"===d[0];)b.push(a(e[1])(d[1])),e=e[2],d=d[2];for(var d=["Nil"],c=b.length;c--;)d=["Cons",b[c],d];
12−e[0]||"Nil"===a[0])return e;("Cons"!==e[0]||"Cons"!==a[0])&&i();for(var b=[];"Cons"===e[0]&&"Cons"===a[0];)b.push(["Tuple2",e[1],a[1]]),e=e[2],a=a[2];for(var a=["Nil"],d=b.length;d--;)a=["Cons",b[d],a];return a}},unzip:j,intersperse:l,intercalate:o,sort:function(a){if("Nil"===a[0])return a;"Cons"!==a[0]&&i();for(var e=[];"Cons"===a[0];)e.push(a[1]),a=a[2];e.sort(function(a,e){return a-e});for(var a=["Nil"],b=e.length;b--;)a=["Cons",e[b],a];return a}}}(),Data=function(){var b=function(){return{fromCode:function(a){return String.fromCharCode(a)},
12+return d}}},zip:function(a){return function(e){if("Nil"===a[0]||"Nil"===e[0])return["Nil"];("Cons"!==a[0]||"Cons"!==e[0])&&i("zip");for(var d=[];"Cons"===a[0]&&"Cons"===e[0];)d.push(["Tuple2",a[1],e[1]]),a=a[2],e=e[2];for(var e=["Nil"],b=d.length;b--;)e=["Cons",d[b],e];return e}},unzip:k,intersperse:n,intercalate:o,sort:function(e){if("Nil"===e[0])return e;"Cons"!==e[0]&&i("sort");for(var a=[];"Cons"===e[0];)a.push(e[1]),e=e[2];a.sort(function(e,a){return e-a});for(var e=["Nil"],d=a.length;d--;)e=
13−toCode:function(a){return a.charCodeAt(0)},toUpper:function(a){return a.toUpperCase()},toLower:function(a){return a.toLowerCase()},toLocaleUpper:function(a){return a.toLocaleUpperCase()},toLocaleLower:function(a){return a.toLocaleLowerCase()}}}(),c=function(){function a(a){return function(b){return"Just"===a[0]?["Cons",a[1],b]:b}}function b(a){return function(){return function(b){var c=a(c);return"Just"===c[0]?["Cons",c[1],b]:b}}}return{catMaybes:List.foldr(a)(["Nil"]),isJust:function(a){return"Just"===
13+["Cons",a[d],e];return e},take:function(e){return function(a){if(0>=e)return["Nil"];if("Nil"===a[0])return a;"Cons"!==a[0]&&i("take");var d=["Cons",a[1],["Nil"]],b=d,a=a[2];for(--e;"Cons"===a[0]&&0<e;)b[2]=["Cons",a[1],["Nil"]],b=b[2],a=a[2],--e;return d}},drop:function(e){return function(a){if("Nil"===a[0])return a;for("Cons"!==a[0]&&i("drop");"Cons"===a[0]&&0<e;)a=a[2],--e;return a}}}}(),Data=function(){var f=function(){return{fromCode:function(a){return String.fromCharCode(a)},toCode:function(a){return a.charCodeAt(0)},
14−a[0]},isNothing:function(a){return"Nothing"===a[0]},fromMaybe:function(a){return function(b){return"Just"===b[0]?b[1]:a}},consMaybe:a,mapMaybe:function(a){return List.foldr(b(a))(["Nil"])}}}();return{String:{toText:Value.toText,properEscape:Value.properEscape},Char:b,Maybe:c,List:List}}(),Color=function(){var b=function(b,a,h,g){return{r:Math.round(255*b),g:Math.round(255*a),b:Math.round(255*h),a:g}};return{black:b(0,0,0,1),white:b(1,1,1,1),red:b(1,0,0,1),green:b(0,1,0,1),blue:b(0,0,1,1),rgba:function(c){return function(a){return function(h){return function(g){return b(c,
14+toUpper:function(a){return a.toUpperCase()},toLower:function(a){return a.toLowerCase()},toLocaleUpper:function(a){return a.toLocaleUpperCase()},toLocaleLower:function(a){return a.toLocaleLowerCase()}}}(),b=function(){function a(a){return function(b){return"Just"===a[0]?["Cons",a[1],b]:b}}function b(a){return function(){return function(b){var c=a(c);return"Just"===c[0]?["Cons",c[1],b]:b}}}return{Just:function(a){return["Just",a]},Nothing:["Nothing"],catMaybes:List.foldr(a)(["Nil"]),isJust:function(a){return"Just"===
15−a,h,g)}}}},rgb:function(c){return function(a){return function(h){return b(c,a,h,1)}}},Internal:{extract:function(b){return 1===b.a?"rgb("+b.r+","+b.g+","+b.b+")":"rgba("+b.r+","+b.g+","+b.b+","+b.a+")"}}}}(),Element=function(){var b=function(a){a=document.createElement(a);a.id=Guid.guid();return a},c=function(a){var d=b("div");d.appendChild(a);return d},a=function(a){return function(d){return function(c){var f=b("div");f.isElmLeaf=!0;f.isElmText=!0;f.innerHTML=c;f.style.textAlign=d;0<a&&(f.style.width=
15+a[0]},isNothing:function(a){return"Nothing"===a[0]},fromMaybe:function(a){return function(b){return"Just"===b[0]?b[1]:a}},consMaybe:a,mapMaybe:function(a){return List.foldr(b(a))(["Nil"])},maybe:function(a){return function(b){return function(c){return"Just"===c[0]?b(c[1]):a}}}}}();return{String:{toText:Value.toText,properEscape:Value.properEscape},Char:f,Maybe:b,List:List}}(),Color=function(){var f=function(b,a,c,g){return{r:Math.round(255*b),g:Math.round(255*a),b:Math.round(255*c),a:g}};return{black:f(0,
16−a+"px");return f}}},h=a(0)("left"),g=a(0)("justify"),f=a(0)("center"),j=a(0)("right"),l=function(a){return"DIV"===a.tagName?a:c(a)},o=function(a){a.style.styleFloat="left";a.style.cssFloat="left";return a},i=function(a){a.style.position="absolute";return a},k=function(a,d,c){for(var f=b("div"),i=c.length;i--;){var g=d(c[i]);f.appendChild(g)}f.elmFlowDirection=a;return f},m=function(a){return function(b){for(var c=[];"Cons"===b[0];)c.push(b[1]),b=b[2];3<=a&&c.reverse();b=a%3;if(0==b)return k("Y",l,
16+0,0,1),white:f(1,1,1,1),red:f(1,0,0,1),green:f(0,1,0,1),blue:f(0,0,1,1),rgba:function(b){return function(a){return function(c){return function(g){return f(b,a,c,g)}}}},rgb:function(b){return function(a){return function(c){return f(b,a,c,1)}}},Internal:{extract:function(b){return 1===b.a?"rgb("+b.r+","+b.g+","+b.b+")":"rgba("+b.r+","+b.g+","+b.b+","+b.a+")"}}}}(),Element=function(){var f=function(a){a=document.createElement(a);a.id=Guid.guid();return a},b=function(a){var d=f("div");d.appendChild(a);
17−c);if(1==b)return k("X",o,c);if(2==b)return k("Z",i,c)}},n=function(b){return function(d){if("A"===d.tagName)return n(b)(d.firstChild),d;if(d.hasOwnProperty("isElmText")){var c=a(b)(d.style.textAlign)(d.innerHTML);d.style.height=c.style.height}d.style.width=b+"px";return d}};return{text:h,image:function(a){var d=b("img");d.isElmLeaf=!0;d.onload=function(){""===d.style.width&&0<this.width&&(d.style.width=d.width=this.width+"px");""===d.style.height&&0<this.height&&(d.style.height=d.height=this.height+
17+return d},a=function(a){return function(d){return function(b){var c=f("div");c.isElmLeaf=!0;c.isElmText=!0;c.innerHTML=b;c.style.textAlign=d;0<a&&(c.style.width=a+"px");return c}}},c=a(0)("left"),g=a(0)("justify"),h=a(0)("center"),k=a(0)("right"),n=function(a){return"DIV"===a.tagName?a:b(a)},o=function(a){a.style.styleFloat="left";a.style.cssFloat="left";return a},i=function(a){a.style.position="absolute";return a},j=function(a,d,b){for(var c=f("div"),i=b.length;i--;){var h=d(b[i]);c.appendChild(h)}c.elmFlowDirection=
18−"px");Dispatcher.adjust()};d.src=Data.String.toText(a);d.name=d.src;return d},fittedImage:function(a){return function(d){return function(c){var f=b("canvas");f.style.width=a+"px";f.style.height=d+"px";f.width=a;f.height=d;f.innerHTML="Your browser does not support the canvas element.";f.isElmLeaf=!0;var i=b("img");i.onload=function(){if(f.getContext){var b=f.getContext("2d"),c=0,g=0,h=this.width,k=this.height;a/d>this.width/this.height?(k=this.width*d/a,g=(this.height-k)/2):(h=this.height*a/d,c=(this.width-
18+a;return c},l=function(a){return function(d){for(var b=[];"Cons"===d[0];)b.push(d[1]),d=d[2];3<=a&&b.reverse();d=a%3;if(0==d)return j("Y",n,b);if(1==d)return j("X",o,b);if(2==d)return j("Z",i,b)}},m=function(e){return function(d){if("A"===d.tagName)return m(e)(d.firstChild),d;if(d.hasOwnProperty("isElmText")){var b=a(e)(d.style.textAlign)(d.innerHTML);d.style.height=b.style.height}d.style.width=e+"px";return d}};return{text:c,image:function(a){var d=f("img");d.isElmLeaf=!0;d.onload=function(){""===
19−h)/2);b.drawImage(i,c,g,h,k,0,0,f.width,f.height)}};i.src=Data.String.toText(c);return f}}},video:function(a){var a=Data.String.toText(a),d=b("video");d.controls="controls";var c=b("source");c.src=a;c.type="video/"+a.substring(a.length-3,a.length);d.appendChild(c);d.isElmLeaf=!0;return d},audio:function(a){var a=Data.String.toString(a),d=b("video");d.controls="controls";var c=b("source");c.src=a;c.type="audio/"+a.substring(a.length-3,a.length);d.appendChild(c);d.isElmLeaf=!0;return d},collage:function(a){return function(d){return function(c){var f=
19+d.style.width&&0<this.width&&(d.style.width=d.width=this.width+"px");""===d.style.height&&0<this.height&&(d.style.height=d.height=this.height+"px");Dispatcher.adjust()};d.src=Data.String.toText(a);d.name=d.src;return d},fittedImage:function(a){return function(d){return function(b){var c=f("canvas");c.style.width=a+"px";c.style.height=d+"px";c.width=a;c.height=d;c.innerHTML="Your browser does not support the canvas element.";c.isElmLeaf=!0;var i=f("img");i.onload=function(){if(c.getContext){var b=
20−b("canvas");f.style.width=a+"px";f.style.height=d+"px";f.width=a;f.height=d;if(f.getContext){var i=f.getContext("2d");for(i.clearRect(0,0,f.width,f.height);"Cons"===c[0];)i=c[1](i),c=c[2];return f}f.innerHTML="Your browser does not support the canvas element.";f.isElmLeaf=!0;return f}}},flow:m,layers:m(2),rectangle:function(a){return function(d){var c=b("div");c.isElmLeaf=!0;c.style.width=a+"px";c.style.height=d+"px";return c}},beside:function(a){return function(b){return m(4)(["Cons",a,["Cons",b,
20+c.getContext("2d"),h=0,g=0,f=this.width,j=this.height;a/d>this.width/this.height?(j=this.width*d/a,g=(this.height-j)/2):(f=this.height*a/d,h=(this.width-f)/2);b.drawImage(i,h,g,f,j,0,0,c.width,c.height)}};i.src=Data.String.toText(b);return c}}},video:function(a){var a=Data.String.toText(a),d=f("video");d.controls="controls";var b=f("source");b.src=a;b.type="video/"+a.substring(a.length-3,a.length);d.appendChild(b);d.isElmLeaf=!0;return d},audio:function(a){var a=Data.String.toString(a),d=f("video");
21−["Nil"]]])}},above:function(a){return function(b){return m(3)(["Cons",a,["Cons",b,["Nil"]]])}},below:function(a){return function(b){return m(0)(["Cons",a,["Cons",b,["Nil"]]])}},box:function(a){return function(d){d.style.position="absolute";d.style.margin="auto";var c=(a-1)%3,f=(a-1)/3;2>c&&(d.style.left=0);0<c&&(d.style.right=0);2>f&&(d.style.top=0);0<f&&(d.style.bottom=0);c=b("div");c.style.position="relative";c.appendChild(d);return c}},width:n,height:function(a){return function(b){("A"===b.tagName?
21+d.controls="controls";var b=f("source");b.src=a;b.type="audio/"+a.substring(a.length-3,a.length);d.appendChild(b);d.isElmLeaf=!0;return d},collage:function(a){return function(d){return function(b){var c=f("canvas");c.style.width=a+"px";c.style.height=d+"px";c.width=a;c.height=d;if(c.getContext){var i=c.getContext("2d");for(i.clearRect(0,0,c.width,c.height);"Cons"===b[0];)i=b[1](i),b=b[2];return c}c.innerHTML="Your browser does not support the canvas element.";c.isElmLeaf=!0;return c}}},flow:l,layers:l(2),
22−b.firstChild:b).style.height=a+"px";return b}},size:function(a){return function(b){return function(c){var f="A"===c.tagName?c.firstChild:c;f.style.width=a+"px";f.style.height=b+"px";return c}}},color:function(a){return function(b){b.style.backgroundColor=Color.Internal.extract(a);return b}},opacity:function(a){return function(b){b.style.opacity=a;return b}},link:function(a){return function(d){var f=b("a");f.href=Text.fromString(a);f.appendChild(d);return c(f)}},asText:function(b){return a(0)("left")(Value.show(b))},
22+rectangle:function(a){return function(d){var b=f("div");b.isElmLeaf=!0;b.style.width=a+"px";b.style.height=d+"px";return b}},beside:function(a){return function(d){return l(4)(["Cons",a,["Cons",d,["Nil"]]])}},above:function(a){return function(d){return l(3)(["Cons",a,["Cons",d,["Nil"]]])}},below:function(a){return function(d){return l(0)(["Cons",a,["Cons",d,["Nil"]]])}},box:function(a){return function(d){d.style.position="absolute";d.style.margin="auto";var b=(a-1)%3,c=(a-1)/3;2>b&&(d.style.left=0);
23−plainText:function(b){return a(0)("left")(Data.String.toText(b))},justifiedText:g,centeredText:f,rightedText:j,up:0,left:1,inward:2,down:3,right:4,outward:5,correctTextSize:function(a){var c=a.style.width?a.style.width.slice(0,-2):0,f=b("div");f.innerHTML=a.innerHTML;f.style.textAlign=a.style.textAlign;0<c&&(f.style.width=c+"px");f.style.visibility="hidden";f.style.styleFloat="left";f.style.cssFloat="left";document.body.appendChild(f);var i=window.getComputedStyle(f);0>=c&&(a.style.width=i.getPropertyValue("width"));
23+0<b&&(d.style.right=0);2>c&&(d.style.top=0);0<c&&(d.style.bottom=0);b=f("div");b.style.position="relative";b.appendChild(d);return b}},width:m,height:function(a){return function(b){("A"===b.tagName?b.firstChild:b).style.height=a+"px";return b}},size:function(a){return function(b){return function(c){var i="A"===c.tagName?c.firstChild:c;i.style.width=a+"px";i.style.height=b+"px";return c}}},color:function(a){return function(b){b.style.backgroundColor=Color.Internal.extract(a);return b}},opacity:function(a){return function(b){b.style.opacity=
24−a.style.height=i.getPropertyValue("height");document.body.removeChild(f)}}}(),Text=function(){var b=function(a){if("string"===typeof a)return a;for(var b=[];"Cons"===a[0];)b.push(a[1]),a=a[2];return Data.String.properEscape(b.join(""))},c=function(a){return function(b){return"<"+a+">"+b+"</"+a+">"}},a=function(a,b){return function(c){return"<span style='"+a+":"+b+"'>"+c+"</span>"}},h=c("h1"),g=a("font-style","italic"),c=c("b"),f=a("text-decoration","underline"),j=a("text-decoration","overline"),l=
24+a;return b}},link:function(a){return function(d){var c=f("a");c.href=Text.fromString(a);c.appendChild(d);return b(c)}},asText:function(b){return a(0)("left")(Value.show(b))},plainText:function(b){return a(0)("left")(Data.String.toText(b))},justifiedText:g,centeredText:h,rightedText:k,up:0,left:1,inward:2,down:3,right:4,outward:5,correctTextSize:function(a){var b=a.style.width?a.style.width.slice(0,-2):0,c=f("div");c.innerHTML=a.innerHTML;c.style.textAlign=a.style.textAlign;0<b&&(c.style.width=b+"px");
25−a("text-decoration","line-through");return{fromString:b,toText:b,header:h,height:function(b){return a("font-size",b+"em")},italic:g,bold:c,underline:f,overline:j,strikeThrough:l,monospace:a("font-family","monospace"),color:function(b){return a("color",Color.Internal.extract(b))},link:function(a){return function(c){return"<a href='"+b(a)+"'>"+c+"</a>"}}}}(),Shape=function(){var b=function(a,b,c,f){return{center:a,points:b,theta:c,scale:f}},c=function(a){return function(b){return function(c){return function(f){f.save();
25+c.style.visibility="hidden";c.style.styleFloat="left";c.style.cssFloat="left";document.body.appendChild(c);var i=window.getComputedStyle(c);0>=b&&(a.style.width=i.getPropertyValue("width"));a.style.height=i.getPropertyValue("height");document.body.removeChild(c)}}}(),Text=function(){var f=function(a){if("string"===typeof a)return a;for(var b=[];"Cons"===a[0];)b.push(a[1]),a=a[2];return Data.String.properEscape(b.join(""))},b=function(a){return function(b){return"<"+a+">"+b+"</"+a+">"}},a=function(a,
26−f.translate(c.center[0],c.center[1]);f.rotate(c.theta);f.scale(c.scale,c.scale);f.beginPath();var j=c.points;f.moveTo(j[0][0],j[0][1]);for(var l=j.length;l--;)f.lineTo(j[l][0],j[l][1]);f.closePath();a?(f.fillStyle=Color.Internal.extract(b),f.fill()):(f.strokeStyle=Color.Internal.extract(b),f.stroke());f.restore();return f}}}};return{polygon:function(a){return function(c){for(var g=[];"Cons"===a[0];)g.push([a[1][1],a[1][2]]),a=a[2];c=[c[1],c[2]];return b(c,g,0,1)}},ngon:function(a){return function(c){return function(g){for(var f=
26+b){return function(c){return"<span style='"+a+":"+b+"'>"+c+"</span>"}},c=b("h1"),g=a("font-style","italic"),b=b("b"),h=a("text-decoration","underline"),k=a("text-decoration","overline"),n=a("text-decoration","line-through");return{fromString:f,toText:f,header:c,height:function(b){return a("font-size",b+"em")},italic:g,bold:b,underline:h,overline:k,strikeThrough:n,monospace:a("font-family","monospace"),color:function(b){return a("color",Color.Internal.extract(b))},link:function(a){return function(b){return"<a href='"+
27−[],j=a;j--;)f.push([c*Math.cos(2*Math.PI*j/a),c*Math.sin(2*Math.PI*j/a)]);g=[g[1],g[2]];return b(g,f,0,1)}}},rect:function(a){return function(c){return function(g){var f=[[-a/2,-c/2],[a/2,-c/2],[a/2,c/2],[-a/2,c/2]],g=[g[1],g[2]];return b(g,f,0,1)}}},oval:function(a){return function(c){return function(g){for(var f=[],j=2*Math.PI;0<j;j-=Math.PI/50)f.push([a/2*Math.cos(j),c/2*Math.sin(j)]);g=[g[1],g[2]];return b(g,f,0,1)}}},move:function(a){return function(c){return function(g){return b([a+g.center[0],
27+f(a)+"'>"+b+"</a>"}}}}(),Shape=function(){var f=function(a,b,g,h){return{center:a,points:b,theta:g,scale:h}},b=function(a){return function(b){return function(g){return function(h){h.save();h.translate(g.center[0],g.center[1]);h.rotate(g.theta);h.scale(g.scale,g.scale);h.beginPath();var f=g.points;h.moveTo(f[0][0],f[0][1]);for(var n=f.length;n--;)h.lineTo(f[n][0],f[n][1]);h.closePath();a?(h.fillStyle=Color.Internal.extract(b),h.fill()):(h.strokeStyle=Color.Internal.extract(b),h.stroke());h.restore();
28−c+g.center[1]],g.points,g.theta,g.scale)}}},rotate:function(a){return function(c){return b(c.center,c.points,c.theta+2*Math.PI*a,c.scale)}},scale:function(a){return function(c){return b(c.center,c.points,c.theta,c.scale*a)}},filled:c(!0),outlined:c(!1),customOutline:function(a){return function(b){return function(c){c.points.push(c.points[0]);return Line.customLine(a)(b)(c)}}}}}(),Line=function(){var b=function(b){return function(a){return function(h){if("string"===typeof b[0]){for(var g=[];"Cons"===
28+return h}}}};return{polygon:function(a){return function(b){for(var g=[];"Cons"===a[0];)g.push([a[1][1],a[1][2]]),a=a[2];b=[b[1],b[2]];return f(b,g,0,1)}},ngon:function(a){return function(b){return function(g){for(var h=[],k=a;k--;)h.push([b*Math.cos(2*Math.PI*k/a),b*Math.sin(2*Math.PI*k/a)]);g=[g[1],g[2]];return f(g,h,0,1)}}},rect:function(a){return function(b){return function(g){var h=[[-a/2,-b/2],[a/2,-b/2],[a/2,b/2],[-a/2,b/2]],g=[g[1],g[2]];return f(g,h,0,1)}}},oval:function(a){return function(b){return function(g){for(var h=
29−b[0];)g.push(b[1]),b=b[2];b=g}0===b.length&&(b=[8,4]);return function(f){f.save();f.beginPath();f.translate(h.center[0],h.center[1]);f.rotate(h.theta);f.scale(h.scale,h.scale);var g=b,l=h.points,o=l.length-1,i=l[o][0],k=l[o][1],m=0,n=0,e=0,d=0,p=0,r=0,t=g.length,s=!0,q=g[0];for(f.moveTo(i,k);o--;){m=l[o][0];n=l[o][1];e=m-i;d=n-k;for(p=Math.sqrt(e*e+d*d);q<=p;)i+=e*q/p,k+=d*q/p,f[s?"lineTo":"moveTo"](i,k),e=m-i,d=n-k,p=Math.sqrt(e*e+d*d),s=!s,r=(r+1)%t,q=g[r];0<p&&(f[s?"lineTo":"moveTo"](m,n),q-=p);
29+[],k=2*Math.PI;0<k;k-=Math.PI/50)h.push([a/2*Math.cos(k),b/2*Math.sin(k)]);g=[g[1],g[2]];return f(g,h,0,1)}}},move:function(a){return function(b){return function(g){return f([a+g.center[0],b+g.center[1]],g.points,g.theta,g.scale)}}},rotate:function(a){return function(b){return f(b.center,b.points,b.theta+2*Math.PI*a,b.scale)}},scale:function(a){return function(b){return f(b.center,b.points,b.theta,b.scale*a)}},filled:b(!0),outlined:b(!1),customOutline:function(a){return function(b){return function(f){f.points.push(f.points[0]);
30−i=m;k=n}f.strokeStyle=Color.Internal.extract(a);f.stroke();f.restore();return f}}}};return{line:function(b){for(var a=[];"Cons"===b[0];)a.push([b[1][1],b[1][2]]),b=b[2];return{center:[0,0],points:a,theta:0,scale:1}},customLine:b,solid:function(b){return function(a){return function(h){h.save();h.beginPath();h.translate(a.center[0],a.center[1]);h.rotate(a.theta);h.scale(a.scale,a.scale);var g=a.points,f=g.length;for(h.moveTo(g[f-1][0],g[f-1][1]);f--;)h.lineTo(g[f][0],g[f][1]);h.strokeStyle=Color.Internal.extract(b);
30+return Line.customLine(a)(b)(f)}}}}}(),Line=function(){var f=function(b){return function(a){return function(c){if("string"===typeof b[0]){for(var f=[];"Cons"===b[0];)f.push(b[1]),b=b[2];b=f}0===b.length&&(b=[8,4]);return function(h){h.save();h.beginPath();h.translate(c.center[0],c.center[1]);h.rotate(c.theta);h.scale(c.scale,c.scale);var f=b,g=c.points,o=g.length-1,i=g[o][0],j=g[o][1],l=0,m=0,e=0,d=0,p=0,r=0,t=f.length,s=!0,q=f[0];for(h.moveTo(i,j);o--;){l=g[o][0];m=g[o][1];e=l-i;d=m-j;for(p=Math.sqrt(e*
31−h.stroke();h.restore();return h}}},dashed:b([8,4]),dotted:b([3,3])}}(),Elm=function(){var b=function(a,b,c){for(var h=a.length;h--;)a[h].recv(b,c)},c=function(a){this.id=Guid.guid();this.value=a;this.kids=[];this.recv=function(a,c,g){if(c=c===this.id)this.value=g;b(this.kids,a,c)};Dispatcher.inputs.push(this)},a=function(a,c){this.id=Guid.guid();this.value=null;this.kids=[];this.inbox={};c.reverse();this.recalc=function(){for(var b=a,h=c.length;h--;)b=b(c[h].value);this.value=b};this.recalc();this.recv=
31+e+d*d);q<=p;)i+=e*q/p,j+=d*q/p,h[s?"lineTo":"moveTo"](i,j),e=l-i,d=m-j,p=Math.sqrt(e*e+d*d),s=!s,r=(r+1)%t,q=f[r];0<p&&(h[s?"lineTo":"moveTo"](l,m),q-=p);i=l;j=m}h.strokeStyle=Color.Internal.extract(a);h.stroke();h.restore();return h}}}};return{line:function(b){for(var a=[];"Cons"===b[0];)a.push([b[1][1],b[1][2]]),b=b[2];return{center:[0,0],points:a,theta:0,scale:1}},customLine:f,solid:function(b){return function(a){return function(c){c.save();c.beginPath();c.translate(a.center[0],a.center[1]);c.rotate(a.theta);
32−function(a,g){this.inbox.hasOwnProperty(a)||(this.inbox[a]={changed:!1,count:0});var i=this.inbox[a];i.count+=1;g&&(i.changed=!0);i.count==c.length&&(i.changed&&this.recalc(),b(this.kids,a,i.changed),delete this.inbox[a])};for(var h=c.length;h--;)c[h].kids.push(this)},h=function(a,c,h){this.id=Guid.guid();this.value=c;this.kids=[];this.recv=function(c,f){f&&(this.value=a(h.value)(this.value));b(this.kids,c,f)};h.kids.push(this)};return{Input:function(a){return new c(a)},Lift:function(b,c){return new a(b,
32+c.scale(a.scale,a.scale);var f=a.points,h=f.length;for(c.moveTo(f[h-1][0],f[h-1][1]);h--;)c.lineTo(f[h][0],f[h][1]);c.strokeStyle=Color.Internal.extract(b);c.stroke();c.restore();return c}}},dashed:f([8,4]),dotted:f([3,3])}}(),Elm=function(){var f=function(a,b,c){for(var f=a.length;f--;)a[f].recv(b,c)},b=function(a){this.id=Guid.guid();this.value=a;this.kids=[];this.recv=function(a,b,c){if(b=b===this.id)this.value=c;f(this.kids,a,b)};Dispatcher.inputs.push(this)},a=function(a,b){this.id=Guid.guid();
33−c)},Fold:function(a,b,c){return new h(a,b,c)}}}(),Dispatcher=function(){var b=null,c=0,a=[],h=function(a){var b=a.childNodes,c=b.length;if(a.hasOwnProperty("isElmLeaf")){a.hasOwnProperty("isElmText")&&Element.correctTextSize(a);var b=""===a.style.width?0:a.style.width.slice(0,-2)-0,g=""===a.style.height?0:a.style.height.slice(0,-2)-0;return[b,g]}if(1===c){var i=h(b[0]);""!==a.style.width&&(i[0]=a.style.width.slice(0,-2)-0);""!==a.style.height&&(i[1]=a.style.height.slice(0,-2)-0);0!==i[0]&&(a.style.width=
33+this.value=null;this.kids=[];this.inbox={};b.reverse();this.recalc=function(){for(var c=a,f=b.length;f--;)c=c(b[f].value);this.value=c};this.recalc();this.recv=function(a,c){this.inbox.hasOwnProperty(a)||(this.inbox[a]={changed:!1,count:0});var i=this.inbox[a];i.count+=1;c&&(i.changed=!0);i.count==b.length&&(i.changed&&this.recalc(),f(this.kids,a,i.changed),delete this.inbox[a])};for(var c=b.length;c--;)b[c].kids.push(this)},c=function(a,b,c){this.id=Guid.guid();this.value=b;this.kids=[];this.recv=
34−i[0]+"px");0!==i[1]&&(a.style.height=i[1]+"px");return i}for(var k=0,m=g=0,n=0,e=!0,d=!0;c--;)i=h(b[c]),k=Math.max(k,i[0]),g=Math.max(g,i[1]),m+=i[0],n+=i[1],e=e&&0<i[0],d=d&&0<i[1];b=k;c=a.elmFlowDirection;"X"===c&&(b=e?m:0);"Y"===c&&(g=d?n:0);0<b&&(a.style.width=b+"px");0<g&&(a.style.height=g+"px");return[b,g]},g=function(){var a=document.getElementById("content");h(a.children[0])};return{initialize:function(){var a=ElmCode.hasOwnProperty("main")?ElmCode.main:main;try{b=a()}catch(c){throw c;}b.hasOwnProperty("recv")||
34+function(b,h){h&&(this.value=a(c.value)(this.value));f(this.kids,b,h)};c.kids.push(this)};return{Input:function(a){return new b(a)},Lift:function(b,c){return new a(b,c)},Fold:function(a,b,f){return new c(a,b,f)}}}(),Dispatcher=function(){var f=null,b=0,a=[],c=function(a){var b=a.childNodes,f=b.length;if(a.hasOwnProperty("isElmLeaf")){a.hasOwnProperty("isElmText")&&Element.correctTextSize(a);var b=""===a.style.width?0:a.style.width.slice(0,-2)-0,g=""===a.style.height?0:a.style.height.slice(0,-2)-0;
35−(b=Elm.Input(b));document.getElementById("content").appendChild(b.value);g();a=document.getElementById("widthChecker").offsetWidth;a!==window.innerWidth&&Dispatcher.notify(Window.dimensions.id,Value.Tuple(a,window.innerHeight));b=Elm.Lift(function(a){var b=document.getElementById("content"),c=b.children[0];b.replaceChild(a,c);delete c;g();return a},[b])},notify:function(b,g){c+=1;for(var h=a.length;h--;)a[h].recv(c,b,g)},adjust:g,inputs:a}}(),Signal=function(){function b(a){for(var b=["Nil"],c=a.length;c--;)b=
35+return[b,g]}if(1===f){var i=c(b[0]);""!==a.style.width&&(i[0]=a.style.width.slice(0,-2)-0);""!==a.style.height&&(i[1]=a.style.height.slice(0,-2)-0);0!==i[0]&&(a.style.width=i[0]+"px");0!==i[1]&&(a.style.height=i[1]+"px");return i}for(var j=0,l=g=0,m=0,e=!0,d=!0;f--;)i=c(b[f]),j=Math.max(j,i[0]),g=Math.max(g,i[1]),l+=i[0],m+=i[1],e=e&&0<i[0],d=d&&0<i[1];b=j;f=a.elmFlowDirection;"X"===f&&(b=e?l:0);"Y"===f&&(g=d?m:0);0<b&&(a.style.width=b+"px");0<g&&(a.style.height=g+"px");return[b,g]},g=function(){var a=
36−["Cons",a[c],b];return b}var c=function(){return document.addEventListener?function(a,b,c){a.addEventListener(b,c,!1)}:function(a,b,c){a.attachEvent("on"+b,c)}}(),a=function(){function a(b){var c=0,f=0;b||(b=window.event);if(b.pageX||b.pageY)c=b.pageX,f=b.pageY;else if(b.clientX||b.clientY)c=b.clientX+document.body.scrollLeft+document.documentElement.scrollLeft,f=b.clientY+document.body.scrollTop+document.documentElement.scrollTop;return Value.Tuple(c,f)}var b=Elm.Input(Value.Tuple(0,0)),f=Elm.Input(!1),
36+document.getElementById("content");c(a.children[0])};return{initialize:function(){var a=ElmCode.hasOwnProperty("main")?ElmCode.main:main;try{f=a()}catch(b){throw b;}f.hasOwnProperty("recv")||(f=Elm.Input(f));document.getElementById("content").appendChild(f.value);g();a=document.getElementById("widthChecker").offsetWidth;a!==window.innerWidth&&Dispatcher.notify(Window.dimensions.id,Value.Tuple(a,window.innerHeight));f=Elm.Lift(function(a){var b=document.getElementById("content"),c=b.children[0];b.replaceChild(a,
37−g=Elm.Input(!1);c(document,"click",function(){Dispatcher.notify(g.id,!0);Dispatcher.notify(g.id,!1)});c(document,"mousedown",function(){Dispatcher.notify(f.id,!0)});c(document,"mouseup",function(){Dispatcher.notify(f.id,!1)});c(document,"mousemove",function(c){Dispatcher.notify(b.id,a(c))});return{position:b,x:Elm.Lift(function(a){return a[1]},[b]),y:Elm.Lift(function(a){return a[2]},[b]),isClicked:g,isDown:f,clickedOn:function(a){var b=Elm.Input(!1);c(a,"click",function(){Dispatcher.notify(b.id,
37+c);delete c;g();return a},[f])},notify:function(c,f){b+=1;for(var g=a.length;g--;)a[g].recv(b,c,f)},adjust:g,inputs:a}}(),Signal=function(){function f(a){for(var b=["Nil"],c=a.length;c--;)b=["Cons",a[c],b];return b}var b=function(){return document.addEventListener?function(a,b,c){a.addEventListener(b,c,!1)}:function(a,b,c){a.attachEvent("on"+b,c)}}(),a=function(){function a(b){var d=0,c=0;b||(b=window.event);if(b.pageX||b.pageY)d=b.pageX,c=b.pageY;else if(b.clientX||b.clientY)d=b.clientX+document.body.scrollLeft+
38−!0);Dispatcher.notify(b.id,!1)});return Value.Tuple(a,b)}}}(),h=function(){return{every:function(a){var a=1E3*a,b=Elm.Input(0),c=0;setInterval(function(){c+=a;Dispatcher.notify(b.id,c/1E3)},a);return b},after:function(a){var a=1E3*a,b=Elm.Input(!1);setTimeout(function(){Dispatcher.notify(b.id,!0)},a);return b},before:function(a){var a=1E3*a,b=Elm.Input(!0);setTimeout(function(){Dispatcher.notify(b.id,!1)},a);return b}}}(),g=function(){var a=Elm.Input(Value.Tuple(window.innerWidth,window.innerHeight));
38+document.documentElement.scrollLeft,c=b.clientY+document.body.scrollTop+document.documentElement.scrollTop;return Value.Tuple(d,c)}var c=Elm.Input(Value.Tuple(0,0)),f=Elm.Input(!1),g=Elm.Input(!1);b(document,"click",function(){Dispatcher.notify(g.id,!0);Dispatcher.notify(g.id,!1)});b(document,"mousedown",function(){Dispatcher.notify(f.id,!0)});b(document,"mouseup",function(){Dispatcher.notify(f.id,!1)});b(document,"mousemove",function(b){Dispatcher.notify(c.id,a(b))});return{position:c,x:Elm.Lift(function(a){return a[1]},
39−c(window,"resize",function(){var b=document.getElementById("widthChecker").offsetWidth;Dispatcher.notify(a.id,Value.Tuple(b,window.innerHeight))});return{dimensions:a,width:Elm.Lift(function(a){return a[1]},[a]),height:Elm.Lift(function(a){return a[2]},[a])}}(),f={Raw:function(){function a(b,c){return"Nil"===c[0]?c:c[1]===b?c[2]:["Cons",c[1],a(b,c[2])]}var b=Elm.Input(["Nil"]),f=Elm.Input(["Nothing"]);c(document,"keydown",function(a){var c;a:{for(c=b.value;"Nil"!==c[0];){if(c[1]===a.keyCode){c=!0;
39+[c]),y:Elm.Lift(function(a){return a[2]},[c]),isClicked:g,isDown:f,clickedOn:function(a){var d=Elm.Input(!1);b(a,"click",function(){Dispatcher.notify(d.id,!0);Dispatcher.notify(d.id,!1)});return Value.Tuple(a,d)}}}(),c=function(){return{every:function(a){var a=1E3*a,b=Elm.Input(0),c=0;setInterval(function(){c+=a;Dispatcher.notify(b.id,c/1E3)},a);return b},after:function(a){var a=1E3*a,b=Elm.Input(!1);setTimeout(function(){Dispatcher.notify(b.id,!0)},a);return b},before:function(a){var a=1E3*a,b=Elm.Input(!0);
40−break a}c=c[2]}c=!1}c||Dispatcher.notify(b.id,["Cons",a.keyCode,b.value])});c(document,"keyup",function(c){c=a(c.keyCode,b.value);Dispatcher.notify(b.id,c)});c(window,"blur",function(){Dispatcher.notify(b.id,["Nil"])});c(document,"keypress",function(a){Dispatcher.notify(f.id,["Just",a.charCode||a.keyCode]);Dispatcher.notify(f.id,["Nothing"])});return{keysDown:b,charPressed:f}}()},j=function(){var a=function(a){return function(c){var e=Elm.Input(["Waiting"]),d={};window.XMLHttpRequest?d=new XMLHttpRequest:
40+setTimeout(function(){Dispatcher.notify(b.id,!1)},a);return b}}}(),g=function(){var a=Elm.Input(Value.Tuple(window.innerWidth,window.innerHeight));b(window,"resize",function(){var b=document.getElementById("widthChecker").offsetWidth;Dispatcher.notify(a.id,Value.Tuple(b,window.innerHeight))});return{dimensions:a,width:Elm.Lift(function(a){return a[1]},[a]),height:Elm.Lift(function(a){return a[2]},[a])}}(),h={Raw:function(){function a(b,c){return"Nil"===c[0]?c:c[1]===b?c[2]:["Cons",c[1],a(b,c[2])]}
41−window.ActiveXObject&&(d=new ActiveXObject("Microsoft.XMLHTTP"));d.onreadystatechange=function(){4===d.readyState&&Dispatcher.notify(e.id,200===d.status?["Success",b(d.responseText)]:["Failure",d.status,b(d.statusText)])};d.open(a,Data.String.toText(c),!0);d.send(null);return e}},c=function(a){return function(c){var e=Elm.Input(["Nothing"]),c=Elm.Lift(function(c){if("Just"!==c[0]){try{Dispatcher.notify(e.id,["Nothing"])}catch(f){}return[]}try{Dispatcher.notify(e.id,["Just",["Waiting"]])}catch(g){e.value=
41+var c=Elm.Input(["Nil"]),f=Elm.Input(["Nothing"]);b(document,"keydown",function(a){var b;a:{for(b=c.value;"Nil"!==b[0];){if(b[1]===a.keyCode){b=!0;break a}b=b[2]}b=!1}b||Dispatcher.notify(c.id,["Cons",a.keyCode,c.value])});b(document,"keyup",function(b){b=a(b.keyCode,c.value);Dispatcher.notify(c.id,b)});b(window,"blur",function(){Dispatcher.notify(c.id,["Nil"])});b(document,"keypress",function(a){Dispatcher.notify(f.id,["Just",a.charCode||a.keyCode]);Dispatcher.notify(f.id,["Nothing"])});return{keysDown:c,
42−["Just",["Waiting"]]}var h={};window.XMLHttpRequest?h=new XMLHttpRequest:window.ActiveXObject&&(h=new ActiveXObject("Microsoft.XMLHTTP"));h.onreadystatechange=function(){4===h.readyState&&Dispatcher.notify(e.id,["Just",200===h.status?["Success",b(h.responseText)]:["Failure",h.status,b(h.statusText)]])};h.open(a,Data.String.toText(c[1]),!0);h.send(null);return[]},[c]);return Elm.Lift(function(a){return function(){return a}},[e,c])}};return{get:a("GET"),post:a("POST"),gets:c("GET"),posts:c("POST")}}(),
42+charPressed:f}}()},k=function(){var a=function(a){return function(b){var c=Elm.Input(["Waiting"]),d={};window.XMLHttpRequest?d=new XMLHttpRequest:window.ActiveXObject&&(d=new ActiveXObject("Microsoft.XMLHTTP"));d.onreadystatechange=function(){4===d.readyState&&Dispatcher.notify(c.id,200===d.status?["Success",f(d.responseText)]:["Failure",d.status,f(d.statusText)])};d.open(a,Data.String.toText(b),!0);d.send(null);return c}},b=function(a){return function(b){var c=Elm.Input(["Nothing"]),b=Elm.Lift(function(b){if("Just"!==
43−l=function(){return{inRange:function(a){return function(b){return Elm.Input(Math.floor(Math.random()*(b-a+1))+a)}},randomize:function(a){return function(b){return function(c){return Elm.Lift(function(){return Math.floor(Math.random()*(b-a+1))+a},[c])}}}}}(),o=function(){var a=function(a){a.isElmLeaf=!0;var e=Elm.Input(["Nil"]);c(a,"keyup",function(){Dispatcher.notify(e.id,b(a.value));a.focus()});return Value.Tuple(a,e)},f=function(a){a=document.createElement(a);a.id=Guid.guid();return a},g=function(a){for(var b=
43+b[0]){try{Dispatcher.notify(c.id,["Nothing"])}catch(g){}return[]}try{Dispatcher.notify(c.id,["Just",["Waiting"]])}catch(i){c.value=["Just",["Waiting"]]}var h={};window.XMLHttpRequest?h=new XMLHttpRequest:window.ActiveXObject&&(h=new ActiveXObject("Microsoft.XMLHTTP"));h.onreadystatechange=function(){4===h.readyState&&Dispatcher.notify(c.id,["Just",200===h.status?["Success",f(h.responseText)]:["Failure",h.status,f(h.statusText)]])};h.open(a,Data.String.toText(b[1]),!0);h.send(null);return[]},[b]);
44−f("select"),d=[];"Cons"===a[0];){var g=f("option"),h=Text.toText(a[1][1]);g.value=h;g.innerHTML=h;b.appendChild(g);d.push(a[1][2]);a=a[2]}var i=Elm.Input(d[0]);c(b,"change",function(){Dispatcher.notify(i.id,d[b.selectedIndex])});return Value.Tuple(b,i)};return{textArea:function(b){return function(c){var d=f("textarea");d.rows=c;d.cols=b;return a(d,"")}},textField:function(b){var c=f("input");c.type="text";return a(c,b)},password:function(b){var c=f("input");c.type="password";return a(c,b)},checkbox:function(a){var b=
44+return Elm.Lift(function(a){return function(){return a}},[c,b])}};return{get:a("GET"),post:a("POST"),gets:b("GET"),posts:b("POST")}}(),n=function(){return{inRange:function(a){return function(b){return Elm.Input(Math.floor(Math.random()*(b-a+1))+a)}},randomize:function(a){return function(b){return function(c){return Elm.Lift(function(){return Math.floor(Math.random()*(b-a+1))+a},[c])}}}}}(),o=function(){var a=function(a){a.isElmLeaf=!0;var c=Elm.Input(["Nil"]);b(a,"keyup",function(){Dispatcher.notify(c.id,
45−f("input");b.type="checkbox";b.checked=a;var d=Elm.Input(a);c(b,"change",function(){Dispatcher.notify(d.id,b.checked)});return Value.Tuple(b,d)},dropDown:g,stringDropDown:function(a){return g(List.map(function(a){return Value.Tuple(a,a)})(a))},button:function(a){var b=f("input");b.type="button";b.value=Text.toText(a);var d=Elm.Input(!1);c(b,"click",function(){Dispatcher.notify(d.id,!0);Dispatcher.notify(d.id,!1)});return Value.Tuple(b,d)}}}();return{Mouse:a,Keyboard:f,Time:h,Window:g,HTTP:j,Random:l,
45+f(a.value));a.focus()});return Value.Tuple(a,c)},c=function(a){a=document.createElement(a);a.id=Guid.guid();return a},g=function(a){for(var e=c("select"),d=[];"Cons"===a[0];){var f=c("option"),g=Text.toText(a[1][1]);f.value=g;f.innerHTML=g;e.appendChild(f);d.push(a[1][2]);a=a[2]}var h=Elm.Input(d[0]);b(e,"change",function(){Dispatcher.notify(h.id,d[e.selectedIndex])});return Value.Tuple(e,h)};return{textArea:function(b){return function(e){var d=c("textarea");d.rows=e;d.cols=b;return a(d,"")}},textField:function(b){var e=
46−Input:o}}(),id=function(b){return b},not=function(b){return!b},sqrt=function(b){return Math.sqrt(b)},rem=function(b){return function(c){return b%c}},mod=function(b){return function(c){var a=b%c,a=0==b?0:0<c?0<=b?a:a+c:-mod(-b)(-c);return a==c?0:a}},abs=function(b){return Math.abs(b)},logBase=function(b){return function(c){return Math.log(c)/Math.log(b)}},min=function(b){return function(c){return Math.min(b,c)}},max=function(b){return function(c){return Math.max(b,c)}},clamp=function(b){return function(c){return function(a){return Math.min(c,
46+c("input");e.type="text";return a(e,b)},password:function(b){var e=c("input");e.type="password";return a(e,b)},checkbox:function(a){var e=c("input");e.type="checkbox";e.checked=a;var d=Elm.Input(a);b(e,"change",function(){Dispatcher.notify(d.id,e.checked)});return Value.Tuple(e,d)},dropDown:g,stringDropDown:function(a){return g(List.map(function(a){return Value.Tuple(a,a)})(a))},button:function(a){var e=c("input");e.type="button";e.value=Text.toText(a);var d=Elm.Input(!1);b(e,"click",function(){Dispatcher.notify(d.id,
47−Math.max(b,a))}}},sin=Math.sin,cos=Math.cos,tan=Math.tan,asin=Math.asin,acos=Math.acos,atan=Math.atan,flip=function(b){return function(c){return function(a){return b(a)(c)}}},Just=function(b){return["Just",b]},Nothing=["Nothing"],eq=function(b,c){if("object"===typeof b){if(b===c)return!0;if(b.length!==c.length)return!1;for(var a=b.length;a--;)if(!eq(b[a],c[a]))return!1;return!0}return b===c};function constant(b){return Elm.Input(b)}function lift(b){return function(c){return Elm.Lift(b,[c])}}
47+!0);Dispatcher.notify(d.id,!1)});return Value.Tuple(e,d)}}}();return{Mouse:a,Keyboard:h,Time:c,Window:g,HTTP:k,Random:n,Input:o,constant:function(a){return Elm.Input(a)},lift:function(a){return function(b){return Elm.Lift(a,[b])}},lift2:function(a){return function(b){return function(c){return Elm.Lift(a,[b,c])}}},lift3:function(a){return function(b){return function(c){return function(f){return Elm.Lift(a,[b,c,f])}}}},lift4:function(a){return function(b){return function(c){return function(f){return function(e){return Elm.Lift(a,
48−function lift2(b){return function(c){return function(a){return Elm.Lift(b,[c,a])}}}function lift3(b){return function(c){return function(a){return function(h){return Elm.Lift(b,[c,a,h])}}}}function lift4(b){return function(c){return function(a){return function(h){return function(g){return Elm.Lift(b,[c,a,h,g])}}}}}function foldp(b){return function(c){return function(a){return Elm.Fold(b,c,a)}}}var includeGlobal=this;
48+[b,c,f,e])}}}}},foldp:function(a){return function(b){return function(c){return Elm.Fold(a,b,c)}}}}}(),Prelude=function(){var f=function(b){return function(a){var c=b%a,c=0==b?0:0<a?0<=b?c:c+a:-f(-b)(-a);return c==a?0:c}};return{id:function(b){return b},not:function(b){return!b},fst:function(b){return b[1]},snd:function(b){return b[2]},rem:function(b){return function(a){return b%a}},sqrt:Math.sqrt,abs:Math.abs,pi:Math.PI,sin:Math.sin,cos:Math.cos,tan:Math.tan,asin:Math.asin,acos:Math.acos,atan:Math.atan,
49−(function(){var b=function(a){for(var b in a)if("Internal"!==b)try{includeGlobal[b]=a[b]}catch(c){"length"===b&&(includeGlobal.execScript("var length;"),length=a[b])}},c=function(a){return function(b){includeGlobal[a]=includeGlobal[a]||{};for(var c in b)"Internal"!==c&&(includeGlobal[a][c]=b[c])}};b(Element);b(Text);color=Element.color;height=Element.height;show=Value.show;c("Time")(Signal.Time);c("Mouse")(Signal.Mouse);c("Keyboard")(Signal.Keyboard);c("Window")(Signal.Window);c("HTTP")(Signal.HTTP);
49+mod:f,min:function(b){return function(a){return Math.min(b,a)}},max:function(b){return function(a){return Math.max(b,a)}},flip:function(b){return function(a){return function(c){return b(c)(a)}}},clamp:function(b){return function(a){return function(c){return Math.min(a,Math.max(b,c))}}},curry:function(b){return function(a){return function(c){return b(["Tuple2",a,c])}}},uncurry:function(b){return function(a){if("Tuple2"!==a[0])throw"Function was uncurry'd but was not given a pair.";return b(a[1])(a[2])}},
50−c("Input")(Signal.Input);c("Random")(Signal.Random);b(Color);b(Shape);b(Line)})();var ElmCode={};ElmCode.Data=Data;ElmCode.Signal=Signal;ElmCode.Data.List=List;
50+logBase:function(b){return function(a){return Math.log(a)/Math.log(b)}},Just:Data.Maybe.Just,Nothing:Data.Maybe.Nothing,maybe:Data.Maybe.maybe,map:Data.List.map,filter:Data.List.filter,head:Data.List.head,tail:Data.List.tail,length:Data.List.length,reverse:Data.List.reverse,foldr:Data.List.foldr,foldr1:Data.List.foldr1,foldl:Data.List.foldl,foldl1:Data.List.foldl1,and:Data.List.and,or:Data.List.or,forall:Data.List.forall,exists:Data.List.exists,sum:Data.List.sum,product:Data.List.product,concat:Data.List.concat,
51+concatMap:Data.List.concatMap,maximum:Data.List.maximum,minimum:Data.List.minimum,scanl:Data.List.scanl,scanl1:Data.List.scanl1,take:Data.List.take,drop:Data.List.drop,lift:Signal.lift,lift2:Signal.lift2,lift3:Signal.lift3,lift4:Signal.lift4,foldp:Signal.foldp,constant:Signal.constant}}(),eq=function(f,b){if("object"===typeof f){if(f===b)return!0;if(f.length!==b.length)return!1;for(var a=f.length;a--;)if(!eq(f[a],b[a]))return!1;return!0}return f===b},includeGlobal=this;
52+(function(){var f=function(a){for(var b in a)if("Internal"!==b)try{includeGlobal[b]=a[b]}catch(f){"length"===b&&(includeGlobal.execScript("var length;"),length=a[b])}},b=function(a){return function(b){includeGlobal[a]=includeGlobal[a]||{};for(var f in b)"Internal"!==f&&(includeGlobal[a][f]=b[f])}};f(Element);f(Text);color=Element.color;height=Element.height;show=Value.show;f(Color);f(Shape);f(Line);b("Time")(Signal.Time);b("Mouse")(Signal.Mouse);b("Keyboard")(Signal.Keyboard);b("Window")(Signal.Window);
53+b("HTTP")(Signal.HTTP);b("Input")(Signal.Input);b("Random")(Signal.Random)})();var ElmCode={};ElmCode.Data=Data;ElmCode.Signal=Signal;ElmCode.Data.List=List;ElmCode.Prelude=Prelude;
elm/src/Initialize.hs+2−1
@@ -14,4 +14,5 @@ initialize str = do
14 let expr = rename . Let defs $ Var "_"
14 let expr = rename . Let defs $ Var "_"
15 subs <- unify (liftM2 (++) hints tipes) expr
15 subs <- unify (liftM2 (++) hints tipes) expr
16 let Let defs' _ = optimize expr
16 let Let defs' _ = optimize expr
17+ let im' = if any ((=="Prelude") . fst) im then im else ("Prelude", Importing []):im
17− return (subs `seq` Module name ex im defs')
18+ return (subs `seq` Module name ex im' defs')