local v=script.Parent local E=v.Parent local L=require(E.t)local C=L.tuple(L.table,L.callback)local function p(v,E)assert(C(v,E))local L={}for v,C in pairs(v)do if E(v)then L[v]=true end end return L end return p
local Set = script.Parent

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

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

local function filter(set, filterer)
	assert(validate(set, filterer))

	local new = {}

	for key, _ in pairs(set) do
		if filterer(key) then
			new[key] = true
		end
	end
	
	return new
end

return filter