Filter=iter(s:intset,els:itertype (intset) yields (int), pred:proctype (int) returns (bool)) yields (int) for e:int in els(s) do if pred(e) then yield(e) end end end Filter