function t.literal(...)local c=select("\035",...)if c==1 then local c=...return function(g)if g~=c then return false end return true end else local g={}for c=1,c,1 do local Z=select(c,...)g[c]=t.literal(Z)end return t.union(table.unpack(g,1,c))end end

function t.literal(...)
	local size = select("#", ...)
	if size == 1 then
		local literal = ...
		return function(value)
			if value ~= literal then
				return false
			end

			return true
		end
	else
		local literals = {}
		for i = 1, size do
			local value = select(i, ...)
			literals[i] = t.literal(value)
		end

		return t.union(table.unpack(literals, 1, size))
	end
end
