local curry do local call,env = function(fn,...)return fn(...)end local fmt,cat,rawset,rawget,floor = string.format,table.concat,rawset,rawget,math.floor local curryHelper = setmetatable({},{ __call = function(me, n, m, ...)return me[n*256+m](...)end, __index = function(me,k) local n,m = floor(k / 256), k % 256 local r,s = {},{} for i=1,m do r[i],s[i]='_'..i,'_'..i end s[1+#s]='...' r,s=cat(r,','),cat(s,',') s = n