FWIW, I'm not keen on this approach: it means that you are doing very similar manual iteration in (at least) two places: `Drop` and here, and so it would be safer and more DRY to standardise on one.

(This applies to the other iterators too: why not use the vector iterators which already exist, rather than manual indexing in each one?)