update iterator types and fn pointers to Rust master

Why is this necessary?