local I=script.Parent local t=I.Parent local c=require(t.t)local Z=c.tuple(c.table,c.callback)local function s(I,t)assert(Z(I,t))local c={}local s=1 for I,Z in ipairs(I)do if t(Z,I)then c[s]=Z s+=1 end end return c end return s
local List = script.Parent

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

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

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

	local new = {}
	local index = 1

	for i, v in ipairs(list) do
		if filterer(v, i) then
			new[index] = v
			index += 1
		end
	end

	return new
end

return filter