// Generated by LiveScript 1.6.0 var apply, curry, flip, fix, over, memoize, toString$ = {}.toString; apply = curry$(function(f, list){ return f.apply(null, list); }); curry = function(f){ return curry$(f); }; flip = curry$(function(f, x, y){ return f(y, x); }); fix = function(f){ return function(g){ return function(){ return f(g(g)).apply(null, arguments); }; }(function(g){ return function(){ return f(g(g)).apply(null, arguments); }; }); }; over = curry$(function(f, g, x, y){ return f(g(x), g(y)); }); memoize = function(f){ var memo; memo = {}; return function(){ var args, res$, i$, to$, key, arg; res$ = []; for (i$ = 0, to$ = arguments.length; i$ < to$; ++i$) { res$.push(arguments[i$]); } args = res$; key = (function(){ var i$, ref$, len$, results$ = []; for (i$ = 0, len$ = (ref$ = args).length; i$ < len$; ++i$) { arg = ref$[i$]; results$.push(arg + toString$.call(arg).slice(8, -1)); } return results$; }()).join(''); return memo[key] = key in memo ? memo[key] : f.apply(null, args); }; }; module.exports = { curry: curry, flip: flip, fix: fix, apply: apply, over: over, memoize: memoize }; function curry$(f, bound){ var context, _curry = function(args) { return f.length > 1 ? function(){ var params = args ? args.concat() : []; context = bound ? context || this : this; return params.push.apply(params, arguments) < f.length && arguments.length ? _curry.call(context, params) : f.apply(context, params); } : f; }; return _curry(); }