export default function ( a: Iterable, b: Iterable ): Generator<[A, B]>; export default function ( a: Iterable, b: Iterable, c: Iterable ): Generator<[A, B, C]>; export default function ( a: Iterable, b: Iterable, c: Iterable, d: Iterable ): Generator<[A, B, C, D]>; export default function ( a: Iterable, b: Iterable, c: Iterable, d: Iterable, e: Iterable ): Generator<[A, B, C, D, E]>; export default function ( a: Iterable, b: Iterable, c: Iterable, d: Iterable, e: Iterable, f: Iterable ): Generator<[A, B, C, D, E, F]>; export default function ( a: Iterable, b: Iterable, c: Iterable, d: Iterable, e: Iterable, f: Iterable, g: Iterable ): Generator<[A, B, C, D, E, F, G]>; export default function ( a: Iterable, b: Iterable, c: Iterable, d: Iterable, e: Iterable, f: Iterable, g: Iterable, h: Iterable ): Generator<[A, B, C, D, E, F, G, H]>; export default function ( a: Iterable, b: Iterable, c: Iterable, d: Iterable, e: Iterable, f: Iterable, g: Iterable, h: Iterable, i: Iterable ): Generator<[A, B, C, D, E, F, G, H, I]>; export default function ( a: Iterable, b: Iterable, c: Iterable, d: Iterable, e: Iterable, f: Iterable, g: Iterable, h: Iterable, i: Iterable, j: Iterable ): Generator<[A, B, C, D, E, F, G, H, I, J]>; export default function ( a: Iterable, b: Iterable, c: Iterable, d: Iterable, e: Iterable, f: Iterable, g: Iterable, h: Iterable, i: Iterable, j: Iterable, k: Iterable ): Generator<[A, B, C, D, E, F, G, H, I, J, K]>; export default function* (...its: Iterable[]): Generator { const iterators = its.map((it) => it[Symbol.iterator]()); while (true) { const gen = []; for (const it of iterators) { const elem = it.next(); if (elem.done) { return; } gen.push(elem.value); } yield gen; } }