pub type MapFn<I: Iterator, U> = Map<I, fn(I::Item) -> U>;
pub struct MapFn<I: Iterator, U> { /* private fields */ }