local q=script.Parent local O=q.Parent local S=require(O.t)local Y=S.tuple(S.table,S.callback)local function u(q,O)assert(Y(q,O))local S={}for q,Y in pairs(q)do if O(Y,q)then S[q]=Y end end return S end return u
local Dictionary = script.Parent

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

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

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

	local new = {}

	for key, value in pairs(dictionary) do
		if filterer(value, key) then
			new[key] = value
		end
	end
	
	return new
end

return filter