function t.union(...)local n={...}assert(callbackArray(n))return function(I)for n,X in ipairs(n)do if X(I)then return true end end return false,"\098\097\100 \116\121\112\101 \102\111\114 \117\110\105\111\110"end end
--[[**
		creates a union type

		@param ... The checks to union

		@returns A function that will return true iff the condition is passed
	**--]]
function t.union(...)
	local checks = { ... }
	assert(callbackArray(checks))

	return function(value)
		for _, check in ipairs(checks) do
			if check(value) then
				return true
			end
		end

		return false, "bad type for union"
	end
end
