local copymember = { ['function'] = function(val, memo) local copy; local err = pcall(function() --handling the error is faster than getting debug info copy = loadstring(string.dump(val)) end) if (not copy) then memo[val] = val return val end local info = debug.getinfo(val,'u'); if info and info.ups and info.ups>0 then for i=1,i