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