Changes
use select rather than {...}
--]]
function p.union(...)
	local vals, ret = {}, {}
	for _i = 1, select('#', ...) do		local t in ipairs= select(tablesi, ...) do
		for k, v in pairs(t) do
			if type(v) == 'number' and tostring(v) == '-nan' then
--]]
function p.intersection(...)
	local vals, ret = {}, {}
	local lim = #tables
	for _i = 1, select('#', ...) do		local t in ipairs= select(tablesi, ...) do
		for k, v in pairs(t) do
			if type(v) == 'number' and tostring(v) == '-nan' then