function t.interface(x)assert(checkInterface(x))return function(U)local E=t.table(U)if E==false then return false end for x,E in pairs(x)do local r=E(U[x])if r==false then return false end end return true end end

	function t.interface(checkTable)
		assert(checkInterface(checkTable))
		return function(value)
			local tableSuccess = t.table(value)
			if tableSuccess == false then
				return false
			end

			for key, check in pairs(checkTable) do
				local success = check(value[key])
				if success == false then
					return false
				end
			end

			return true
		end
	end
