let filter p ({ ar = ar } as ra) = let res = sempty ra.strategy in for i = 0 to ra.vlix do let el = unsafe_get_ar ar i in if p el then add_one res el done; res