local M = {} M.fun = function(t) local f = t[1] local args = { unpack(t, 2) } return function() return f(unpack(args)) end end M.fn = function(f, ...) local args = { ... } return function(...) return f(unpack(args), ...) end end return M