local A=script.Parent local Z=A.Parent local T=require(Z.t)local j=T.tuple(T.table,T.callback)local function o(A,Z)assert(j(A,Z))local T={}for A,j in pairs(A)do local o=Z(A)if o~=nil then T[o]=true end end return T end return o
local Set = script.Parent

local Llama = Set.Parent
local t = require(Llama.t)

local validate = t.tuple(t.table, t.callback)

local function map(set, mapper)
	assert(validate(set, mapper))

	local new = {}

	for key, _ in pairs(set) do
		local newKey = mapper(key)

		if newKey ~= nil then
			new[newKey] = true
		end
	end

	return new
end

return map