pub fn try_map<T, U, E, F, I>(i: I, f: F) -> Result<Vec<U>, E> where F: Fn(T) -> Result<U, E>, I: Iterator<Item = T>,