Add support for iterators

Unboxed closures should allow eliding the intermediate Vecs