export function* flatMap( iterable: Iterable , fn: (element: T, index: number) => Iterable ): IterableIterator { let index = 0 for (const element of iterable) { yield* fn(element, index) index++ } }