function t.tuple(...)local Y={...}return function(...)local w={...}for Y,s in ipairs(Y)do local M,x=s(w[Y])if M==false then return false,string.format("\066\097\100 \116\117\112\108\101 \105\110\100\101\120 \035\037\115\058\n\t\037\115",Y,x or"")end end return true end end
--[[**
	matches given tuple against tuple type definition

	@param ... The type definition for the tuples

	@returns A function that will return true iff the condition is passed
**--]]
function t.tuple(...)
	local checks = { ... }
	return function(...)
		local args = { ... }
		for i, check in ipairs(checks) do
			local success, errMsg = check(args[i])
			if success == false then
				return false, string.format("Bad tuple index #%s:\n\t%s", i, errMsg or "")
			end
		end

		return true
	end
end
