function t.keys(q)assert(t.callback(q))return function(x)local L,y=t.table(x)if L==false then return false,y or""end for x in x do local L,y=q(x)if L==false then return false,string.format("\098\097\100 \107\101\121 \037\115\058\n\t\037\115",tostring(x),y or"")end end return true end end

function t.keys(check)
	assert(t.callback(check))
	return function(value)
		local tableSuccess, tableErrMsg = t.table(value)
		if tableSuccess == false then
			return false, tableErrMsg or ""
		end

		for key in value do
			local success, errMsg = check(key)
			if success == false then
				return false, string.format("bad key %s:\n\t%s", tostring(key), errMsg or "")
			end
		end

		return true
	end
end
