Iterable<R> mapIndexed<R, T>(Iterable<T> input, R mapper(T item, int index)) { int i = 0; return input.map((item) => mapper(item, i++)); }