HexGrid PerformanceElm.Performance = Elm.Performance || {}; Elm.Performance.make = function (_elm) { _elm.Performance = _elm.Performance || {}; if (_elm.Performance.values) return _elm.Performance.values; var _N = Elm.Native, _U = _N.Utils.make(_elm), _L = _N.List.make(_elm), _E = _N.Error.make(_elm), _J = _N.JavaScript.make(_elm), $moduleName = "Performance"; var Basics = Elm.Basics.make(_elm); var Color = Elm.Color.make(_elm); var Dict = Elm.Dict.make(_elm); var Graphics = Graphics || {}; Graphics.Collage = Elm.Graphics.Collage.make(_elm); var Graphics = Graphics || {}; Graphics.Element = Elm.Graphics.Element.make(_elm); var HexGrid = Elm.HexGrid.make(_elm); var List = Elm.List.make(_elm); var Maybe = Elm.Maybe.make(_elm); var Native = Native || {}; Native.Ports = Elm.Native.Ports.make(_elm); var Prelude = Elm.Prelude.make(_elm); var Signal = Elm.Signal.make(_elm); var String = Elm.String.make(_elm); var Text = Elm.Text.make(_elm); var Time = Elm.Time.make(_elm); var _op = {}; var discard = function (_v0) { return function () { return 0; }(); }; var rectangularHexGrid = Native.Ports.portOut("rectangularHexGrid", function (v) { return function (_0) { var _r = v(typeof _0 === "number" ? _J.toInt(_0) : _E.raise("invalid input, expecting JSNumber but got " + _0)); return _J.fromInt(_r); }; }, function (n) { return discard({ctor: "_Tuple2" ,_0: A2(HexGrid.rectangularHexGrid, 44, 0) ,_1: n}); }); var hexagonalHexGrid = Native.Ports.portOut("hexagonalHexGrid", function (v) { return function (_0) { var _r = v(typeof _0 === "number" ? _J.toInt(_0) : _E.raise("invalid input, expecting JSNumber but got " + _0)); return _J.fromInt(_r); }; }, function (n) { return discard({ctor: "_Tuple2" ,_0: A2(HexGrid.hexagonalHexGrid, 25, 0) ,_1: n}); }); var pixelToHexCoord = Native.Ports.portOut("pixelToHexCoord", function (v) { return function (_0) { var _r = v(typeof _0 === "number" ? _J.toInt(_0) : _E.raise("invalid input, expecting JSNumber but got " + _0)); return _J.fromInt(_r); }; }, function (n) { return discard({ctor: "_Tuple2" ,_0: A2(HexGrid.pixelToHexCoord, 25, {ctor: "_Tuple2",_0: 50,_1: 50}) ,_1: n}); }); var neighbors = Native.Ports.portOut("neighbors", function (v) { return function (_0) { var _r = v(typeof _0 === "number" ? _J.toInt(_0) : _E.raise("invalid input, expecting JSNumber but got " + _0)); return _J.fromInt(_r); }; }, function (n) { return discard({ctor: "_Tuple2" ,_0: HexGrid.neighbors(A2(HexGrid.hexCoord, 0, 0)) ,_1: n}); }); var diagonals = Native.Ports.portOut("diagonals", function (v) { return function (_0) { var _r = v(typeof _0 === "number" ? _J.toInt(_0) : _E.raise("invalid input, expecting JSNumber but got " + _0)); return _J.fromInt(_r); }; }, function (n) { return discard({ctor: "_Tuple2" ,_0: HexGrid.diagonals(A2(HexGrid.hexCoord, 0, 0)) ,_1: n}); }); var distance = Native.Ports.portOut("distance", function (v) { return function (_0) { var _r = v(typeof _0 === "number" ? _J.toInt(_0) : _E.raise("invalid input, expecting JSNumber but got " + _0)); return _J.fromInt(_r); }; }, function (n) { return discard({ctor: "_Tuple2" ,_0: A2(HexGrid.distance, A2(HexGrid.hexCoord,10,19), A2(HexGrid.hexCoord,0,0)) ,_1: n}); }); var range1 = Native.Ports.portOut("range1", function (v) { return function (_0) { var _r = v(typeof _0 === "number" ? _J.toInt(_0) : _E.raise("invalid input, expecting JSNumber but got " + _0)); return _J.fromInt(_r); }; }, function (n) { return discard({ctor: "_Tuple2" ,_0: A2(HexGrid.range, A2(HexGrid.hexCoord,0,0), 1) ,_1: n}); }); var range10 = Native.Ports.portOut("range10", function (v) { return function (_0) { var _r = v(typeof _0 === "number" ? _J.toInt(_0) : _E.raise("invalid input, expecting JSNumber but got " + _0)); return _J.fromInt(_r); }; }, function (n) { return discard({ctor: "_Tuple2" ,_0: A2(HexGrid.range, A2(HexGrid.hexCoord,0,0), 10) ,_1: n}); }); var ring1 = Native.Ports.portOut("ring1", function (v) { return function (_0) { var _r = v(typeof _0 === "number" ? _J.toInt(_0) : _E.raise("invalid input, expecting JSNumber but got " + _0)); return _J.fromInt(_r); }; }, function (n) { return discard({ctor: "_Tuple2" ,_0: A2(HexGrid.ring, A2(HexGrid.hexCoord,0,0), 1) ,_1: n}); }); var ring10 = Native.Ports.portOut("ring10", function (v) { return function (_0) { var _r = v(typeof _0 === "number" ? _J.toInt(_0) : _E.raise("invalid input, expecting JSNumber but got " + _0)); return _J.fromInt(_r); }; }, function (n) { return discard({ctor: "_Tuple2" ,_0: A2(HexGrid.ring, A2(HexGrid.hexCoord,0,0), 10) ,_1: n}); }); var styleGuide = F4(function (rotation, sides, col, n) { return function () { var colorize = function () { switch (n) {case 1: return Graphics.Collage.filled(col); case 2: return Graphics.Collage.filled(col);} return Graphics.Collage.filled(col); }(); var shape = function () { switch (n) {case 1: return function ($) { return Graphics.Collage.scale(0.8)(Graphics.Collage.rotate(Basics.degrees(rotation + 30))(colorize(Graphics.Collage.ngon(sides)($)))); }; case 2: return function ($) { return Graphics.Collage.scale(0.8)(Graphics.Collage.rotate(Basics.degrees(rotation + 35))(colorize(Graphics.Collage.ngon(sides)($)))); };} return function ($) { return Graphics.Collage.scale(0.9)(Graphics.Collage.rotate(Basics.degrees(rotation + 30))(colorize(Graphics.Collage.ngon(sides)($)))); }; }(); return shape; }(); }); var styler = A3(styleGuide, 25, 6, Color.red); var toList = function (grid) { return function () { switch (grid.ctor) {case "Hexagonal": return Dict.toList(grid._1); case "Rectangular": return Dict.toList(grid._1);} _E.Case($moduleName, "between lines 10 and 12"); }(); }; var grid2 = A2(HexGrid.hexagonalHexGrid, 25, 0); var inGridHex = Native.Ports.portOut("inGridHex", function (v) { return function (_0) { var _r = v(typeof _0 === "number" ? _J.toInt(_0) : _E.raise("invalid input, expecting JSNumber but got " + _0)); return _J.fromInt(_r); }; }, function (n) { return discard({ctor: "_Tuple2" ,_0: A2(HexGrid.inGrid, A2(HexGrid.hexCoord,10,10), grid2) ,_1: n}); }); var showHexGridHex = Native.Ports.portOut("showHexGridHex", function (v) { return function (_0) { var _r = v(typeof _0 === "number" ? _J.toInt(_0) : _E.raise("invalid input, expecting JSNumber but got " + _0)); return _J.fromInt(_r); }; }, function (n) { return discard({ctor: "_Tuple2" ,_0: A3(HexGrid.showHexGrid, 25, styler, grid2) ,_1: n}); }); var grid1 = A2(HexGrid.rectangularHexGrid, 44, 0); var inGridRect = Native.Ports.portOut("inGridRect", function (v) { return function (_0) { var _r = v(typeof _0 === "number" ? _J.toInt(_0) : _E.raise("invalid input, expecting JSNumber but got " + _0)); return _J.fromInt(_r); }; }, function (n) { return discard({ctor: "_Tuple2" ,_0: A2(HexGrid.inGrid, A2(HexGrid.hexCoord,10,10), grid1) ,_1: n}); }); var showHexGridRect = Native.Ports.portOut("showHexGridRect", function (v) { return function (_0) { var _r = v(typeof _0 === "number" ? _J.toInt(_0) : _E.raise("invalid input, expecting JSNumber but got " + _0)); return _J.fromInt(_r); }; }, function (n) { return discard({ctor: "_Tuple2" ,_0: A3(HexGrid.showHexGrid, 25, styler, grid1) ,_1: n}); }); var insert = Native.Ports.portOut("insert", function (v) { return function (_0) { var _r = v(typeof _0 === "number" ? _J.toInt(_0) : _E.raise("invalid input, expecting JSNumber but got " + _0)); return _J.fromInt(_r); }; }, function (n) { return discard({ctor: "_Tuple2" ,_0: A3(HexGrid.insert, A2(HexGrid.hexCoord,0,0), 1, grid1) ,_1: n}); }); var insertIfPossible = Native.Ports.portOut("insertIfPossible", function (v) { return function (_0) { var _r = v(typeof _0 === "number" ? _J.toInt(_0) : _E.raise("invalid input, expecting JSNumber but got " + _0)); return _J.fromInt(_r); }; }, function (n) { return discard({ctor: "_Tuple2" ,_0: A3(HexGrid.insertIfPossible, A2(HexGrid.hexCoord,0,0), 1, grid1) ,_1: n}); }); _elm.Performance.values = {_op: _op ,grid1: grid1 ,grid2: grid2 ,toList: toList ,styleGuide: styleGuide ,styler: styler ,discard: discard}; return _elm.Performance.values; };Elm.HexGrid = Elm.HexGrid || {}; Elm.HexGrid.make = function (_elm) { _elm.HexGrid = _elm.HexGrid || {}; if (_elm.HexGrid.values) return _elm.HexGrid.values; var _N = Elm.Native, _U = _N.Utils.make(_elm), _L = _N.List.make(_elm), _E = _N.Error.make(_elm), _J = _N.JavaScript.make(_elm), $moduleName = "HexGrid"; var Basics = Elm.Basics.make(_elm); var Color = Elm.Color.make(_elm); var Dict = Elm.Dict.make(_elm); var Graphics = Graphics || {}; Graphics.Collage = Elm.Graphics.Collage.make(_elm); var Graphics = Graphics || {}; Graphics.Element = Elm.Graphics.Element.make(_elm); var Helpers = Elm.Helpers.make(_elm); var List = Elm.List.make(_elm); var Maybe = Elm.Maybe.make(_elm); var Native = Native || {}; Native.Ports = Elm.Native.Ports.make(_elm); var Prelude = Elm.Prelude.make(_elm); var Signal = Elm.Signal.make(_elm); var String = Elm.String.make(_elm); var Text = Elm.Text.make(_elm); var Time = Elm.Time.make(_elm); var _op = {}; var hexRound = function (_v0) { return function () { switch (_v0.ctor) {case "_Tuple2": return function () { var z = 0 - (_v0._0 - _v0._1); var $ = {ctor: "_Tuple3" ,_0: Basics.round(_v0._0) ,_1: Basics.round(_v0._1) ,_2: Basics.round(z)}, rx = $._0, ry = $._1, rz = $._2; var errX = Basics.abs(rx - _v0._0); var errY = Basics.abs(ry - _v0._1); var errZ = Basics.abs(rz - z); return _U.cmp(errX, errY) > 0 && _U.cmp(errX, errZ) > 0 ? {ctor: "_Tuple2" ,_0: 0 - ry - rz ,_1: ry} : _U.cmp(errY, errZ) > 0 ? {ctor: "_Tuple2" ,_0: rx ,_1: 0 - rx - rz} : {ctor: "_Tuple2" ,_0: rx ,_1: ry}; }();} _E.Case($moduleName, "between lines 156 and 163"); }(); }; var distance = F2(function (coord1, coord2) { return function () { var $ = {ctor: "_Tuple2" ,_0: Basics.fst(coord2) ,_1: Basics.snd(coord2)}, x2 = $._0, y2 = $._1; var $ = {ctor: "_Tuple2" ,_0: Basics.fst(coord1) ,_1: Basics.snd(coord1)}, x1 = $._0, y1 = $._1; var $ = {ctor: "_Tuple2" ,_0: 0 - (x1 - y1) ,_1: 0 - (x2 - y2)}, z1 = $._0, z2 = $._1; return List.maximum(_J.toList([Basics.abs(x1 - x2) ,Basics.abs(y1 - y2) ,Basics.abs(z1 - z2)])); }(); }); var SOutlined = function (a) { return {ctor: "SOutlined" ,_0: a}; }; var SGradient = function (a) { return {ctor: "SGradient" ,_0: a}; }; var STextured = function (a) { return {ctor: "STextured" ,_0: a}; }; var SColor = function (a) { return {ctor: "SColor" ,_0: a}; }; var hexCoord = F2(function (x, y) { return {ctor: "_Tuple2" ,_0: x ,_1: y}; }); var pixelToHexCoord = F2(function (s, _v4) { return function () { switch (_v4.ctor) {case "_Tuple2": return function () { var y$ = Basics.toFloat(_v4._1) / s; var x$ = Basics.toFloat(_v4._0) / (Basics.sqrt(3) * s); var r = Basics.floor(Basics.toFloat(Basics.floor(y$ - x$ + 1) + Basics.floor(y$ + x$ + 1)) / 3); var q = Basics.floor(Basics.toFloat(Basics.floor(2 * x$ + 1) - r) / 2); return A2(hexCoord,q,r); }();} _E.Case($moduleName, "between lines 77 and 81"); }(); }); var neighbors = function (_v8) { return function () { switch (_v8.ctor) {case "_Tuple2": return _J.toList([A2(hexCoord, _v8._0 + 1, _v8._1) ,A2(hexCoord, _v8._0 + 1, _v8._1 - 1) ,A2(hexCoord,_v8._0,_v8._1 - 1) ,A2(hexCoord,_v8._0 - 1,_v8._1) ,A2(hexCoord, _v8._0 - 1, _v8._1 + 1) ,A2(hexCoord, _v8._0, _v8._1 + 1)]);} _E.Case($moduleName, "between lines 97 and 98"); }(); }; var diagonals = function (_v12) { return function () { switch (_v12.ctor) {case "_Tuple2": return _J.toList([A2(hexCoord, _v12._0 + 2, _v12._1 - 1) ,A2(hexCoord, _v12._0 + 1, _v12._1 - 2) ,A2(hexCoord, _v12._0 - 1, _v12._1 - 1) ,A2(hexCoord, _v12._0 - 2, _v12._1 + 1) ,A2(hexCoord, _v12._0 - 1, _v12._1 + 2) ,A2(hexCoord, _v12._0 + 1, _v12._1 + 1)]);} _E.Case($moduleName, "between lines 102 and 103"); }(); }; var range = F2(function (_v16, n) { return function () { switch (_v16.ctor) {case "_Tuple2": return A2(List.concatMap, function (dx) { return A2(List.map, function (dy) { return A2(hexCoord, _v16._0 + dx, _v16._1 + dy); }, _L.range(A2(Basics.max, 0 - n, 0 - dx - n), A2(Basics.min,n,0 - dx + n))); }, _L.range(0 - n,n));} _E.Case($moduleName, "between lines 129 and 133"); }(); }); var neighbor = F2(function (_v20, direction) { return function () { switch (_v20.ctor) {case "_Tuple2": return function () { var $ = A2(Maybe.maybe, {ctor: "_Tuple2",_0: 0,_1: 0}, Basics.id)(A2(Helpers._op["#"], _J.toList([{ctor: "_Tuple2" ,_0: 1 ,_1: 0} ,{ctor: "_Tuple2",_0: 1,_1: -1} ,{ctor: "_Tuple2",_0: 0,_1: -1} ,{ctor: "_Tuple2",_0: -1,_1: 0} ,{ctor: "_Tuple2",_0: -1,_1: 1} ,{ctor: "_Tuple2" ,_0: 0 ,_1: 1}]), direction)), dx = $._0, dy = $._1; return A2(hexCoord, _v20._0 + dx, _v20._1 + dy); }();} _E.Case($moduleName, "between lines 150 and 152"); }(); }); var ring = F2(function (_v24, r) { return function () { switch (_v24.ctor) {case "_Tuple2": return function () { var h = A2(hexCoord, _v24._0 - r, _v24._1 + r); return _U.cmp(r, 0) < 0 ? _J.toList([]) : A3(List.scanl, F2(function (i,h$) { return A2(neighbor,h$,i); }), h, A2(List.concatMap, function (j) { return A2(List.repeat,r,j); }, _L.range(0,5))); }();} _E.Case($moduleName, "between lines 138 and 144"); }(); }); var Hexagonal = F2(function (a, b) { return {ctor: "Hexagonal" ,_0: a ,_1: b}; }); var hexagonalHexGrid = F2(function (r, a) { return function () { var row = function (y) { return A2(List.map, function (n) { return {ctor: "_Tuple2" ,_0: {ctor: "_Tuple2" ,_0: n - A2(Basics.min,y,r) ,_1: y - r} ,_1: a}; }, _L.range(0, r * 2 - Basics.abs(r - y))); }; return Hexagonal(r)(Dict.fromList(A2(List.concatMap, function (n) { return row(n); }, _L.range(0,2 * r)))); }(); }); var Rectangular = F2(function (a, b) { return {ctor: "Rectangular" ,_0: a ,_1: b}; }); var rectangularHexGrid = F2(function (r, a) { return function () { var h = r; var off = Basics.ceiling(Basics.toFloat(h / 2 | 0) / 2); var w = r; var row = F2(function (x,y) { return A2(List.map, function (n) { return {ctor: "_Tuple2" ,_0: A2(hexCoord,n,y) ,_1: a}; }, _L.range(0 - x,w - 1 - x)); }); var rowPair = function (offset) { return _L.append(A2(row, offset, offset * 2), A2(row,offset,offset * 2 + 1)); }; var hexes = A2(List.concatMap, function (n) { return rowPair(n); }, _L.range(0, Basics.ceiling(Basics.toFloat(h) / 2) - 1)); var hexes$ = A2(List.filter, function (_v28) { return function () { switch (_v28.ctor) {case "_Tuple2": switch (_v28._0.ctor) {case "_Tuple2": return _U.cmp(_v28._0._1, h) < 0;} break;} _E.Case($moduleName, "on line 42, column 42 to 47"); }(); }, hexes); return Rectangular({ctor: "_Tuple2" ,_0: w ,_1: h})(Dict.fromList(A2(List.map, function (_v34) { return function () { switch (_v34.ctor) {case "_Tuple2": switch (_v34._0.ctor) {case "_Tuple2": return {ctor: "_Tuple2" ,_0: {ctor: "_Tuple2" ,_0: _v34._0._0 - off ,_1: _v34._0._1 - (h / 2 | 0)} ,_1: _v34._1};} break;} _E.Case($moduleName, "on line 44, column 69 to 98"); }(); }, hexes$))); }(); }); var showHexGrid = F3(function (r, former, grid) { return function () { switch (grid.ctor) {case "Hexagonal": return function () { var h = Basics.round(r * Basics.toFloat(grid._0 * 2 + 1) * 2.5 + r); var w = function () { var w$ = Basics.round(Basics.sqrt(3) / 2 * r); return 2 * (w$ + (grid._0 * 2 + 1) * w$); }(); var position = F2(function (_v47, r) { return function () { switch (_v47.ctor) {case "_Tuple2": return Graphics.Collage.move({ctor: "_Tuple2" ,_0: Basics.sqrt(3) * r * Basics.toFloat(_v47._0) + Basics.sqrt(3) / 2 * r * Basics.toFloat(_v47._1) ,_1: -1.5 * r * Basics.toFloat(_v47._1)});} _E.Case($moduleName, "on line 65, column 58 to 151"); }(); }); var drawHex = F2(function (_v51, r) { return function () { switch (_v51.ctor) {case "_Tuple2": return A2(position, _v51._0, r)(former(_v51._1)(r));} _E.Case($moduleName, "on line 66, column 61 to 93"); }(); }); var hexes = Graphics.Collage.group(A2(List.map, function (hex) { return A2(drawHex,hex,r); }, Dict.toList(grid._1))); return A3(Graphics.Collage.collage, w, h, _J.toList([hexes])); }(); case "Rectangular": switch (grid._0.ctor) {case "_Tuple2": return function () { var h$ = Basics.round(r * Basics.toFloat(grid._0._1 * 2 + 1) * 2.5 + r); var w$ = function () { var w$$ = Basics.round(Basics.sqrt(3) / 2 * r); return 2 * (w$$ + (grid._0._0 * 2 + 1) * w$$); }(); var position = F2(function (_v55, r) { return function () { switch (_v55.ctor) {case "_Tuple2": return Graphics.Collage.move({ctor: "_Tuple2" ,_0: Basics.sqrt(3) * r * Basics.toFloat(_v55._0) + Basics.sqrt(3) / 2 * r * Basics.toFloat(_v55._1) ,_1: -1.5 * r * Basics.toFloat(_v55._1)});} _E.Case($moduleName, "on line 58, column 58 to 151"); }(); }); var drawHex = F2(function (_v59, r) { return function () { switch (_v59.ctor) {case "_Tuple2": return A2(position, _v59._0, r)(former(_v59._1)(r));} _E.Case($moduleName, "on line 59, column 61 to 93"); }(); }); var hexes = Graphics.Collage.group(A2(List.map, function (hex) { return A2(drawHex,hex,r); }, Dict.toList(grid._1))); return A3(Graphics.Collage.collage, w$, h$, _J.toList([hexes])); }();} break;} _E.Case($moduleName, "between lines 56 and 74"); }(); }); var inGrid = F2(function (_v63, grid) { return function () { switch (_v63.ctor) {case "_Tuple2": return function () { switch (grid.ctor) {case "Hexagonal": return function () { var offset = grid._0 * 2 - Basics.abs(_v63._1); return _U.cmp(_v63._1, 0 - grid._0) < 0 ? false : _U.cmp(_v63._1, grid._0) > 0 ? false : _U.cmp(_v63._0 + grid._0 + A2(Basics.min, 0, _v63._1), 0) < 0 ? false : _U.cmp(_v63._0, offset - grid._0 - A2(Basics.min, 0, _v63._1)) > 0 ? false : true; }(); case "Rectangular": return A2(Dict.member, _v63, grid._1);} _E.Case($moduleName, "between lines 86 and 95"); }();} _E.Case($moduleName, "between lines 86 and 95"); }(); }); var insert = F3(function (coord, v, grid) { return Basics.not(A2(inGrid, coord, grid)) ? Maybe.Nothing : function () { switch (grid.ctor) {case "Hexagonal": return Maybe.Just(Hexagonal(grid._0)(A3(Dict.insert, coord, v, grid._1))); case "Rectangular": return Maybe.Just(Rectangular(grid._0)(A3(Dict.insert, coord, v, grid._1)));} _E.Case($moduleName, "between lines 168 and 173"); }(); }); var insertIfPossible = F3(function (coord, v, grid) { return Basics.not(A2(inGrid, coord, grid)) ? grid : A2(Maybe.maybe, grid, Basics.id)(A3(insert, coord, v, grid)); }); _elm.HexGrid.values = {_op: _op ,hexCoord: hexCoord ,rectangularHexGrid: rectangularHexGrid ,hexagonalHexGrid: hexagonalHexGrid ,showHexGrid: showHexGrid ,pixelToHexCoord: pixelToHexCoord ,inGrid: inGrid ,neighbors: neighbors ,diagonals: diagonals ,distance: distance ,range: range ,ring: ring ,neighbor: neighbor ,hexRound: hexRound ,insert: insert ,insertIfPossible: insertIfPossible ,Rectangular: Rectangular ,Hexagonal: Hexagonal ,SColor: SColor ,STextured: STextured ,SGradient: SGradient ,SOutlined: SOutlined}; return _elm.HexGrid.values; };Elm.Helpers = Elm.Helpers || {}; Elm.Helpers.make = function (_elm) { _elm.Helpers = _elm.Helpers || {}; if (_elm.Helpers.values) return _elm.Helpers.values; var _N = Elm.Native, _U = _N.Utils.make(_elm), _L = _N.List.make(_elm), _E = _N.Error.make(_elm), _J = _N.JavaScript.make(_elm), $moduleName = "Helpers"; var Basics = Elm.Basics.make(_elm); var Color = Elm.Color.make(_elm); var Graphics = Graphics || {}; Graphics.Collage = Elm.Graphics.Collage.make(_elm); var Graphics = Graphics || {}; Graphics.Element = Elm.Graphics.Element.make(_elm); var List = Elm.List.make(_elm); var Maybe = Elm.Maybe.make(_elm); var Native = Native || {}; Native.Ports = Elm.Native.Ports.make(_elm); var Prelude = Elm.Prelude.make(_elm); var Signal = Elm.Signal.make(_elm); var String = Elm.String.make(_elm); var Text = Elm.Text.make(_elm); var Time = Elm.Time.make(_elm); var _op = {}; _op["#"] = F2(function (xs,n) { return function () { switch (xs.ctor) {case "::": return _U.cmp(n, 0) < 0 ? Maybe.Nothing : _U.eq(n, 0) ? Maybe.Just(xs._0) : A2(_op["#"], xs._1, n - 1); case "[]": return Maybe.Nothing;} _E.Case($moduleName, "between lines 4 and 8"); }(); }); _elm.Helpers.values = {_op: _op}; return _elm.Helpers.values; };