pub trait VecIterator: Iterator {
// Required methods
fn set_position_(&mut self, i: usize);
fn set_end_(&mut self, i: usize);
// Provided methods
fn get_(&mut self, i: usize) -> Option<Self::Item> { ... }
fn unsafe_get_(&mut self, i: usize) -> Self::Item { ... }
}