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;
}
}