Yields the passed iterables at the end of the current iterable
function concat(...iterables) {
    return function (it) {
        return __asyncGenerator(this, arguments, function* () {
            var e_20, _a;
            yield __await(yield* __asyncDelegator(__asyncValues(it)));
            try {
                for (var iterables_1 = __asyncValues(iterables), iterables_1_1; iterables_1_1 = yield __await(iterables_1.next()), !iterables_1_1.done;) {
                    const iterable = iterables_1_1.value;
                    yield __await(yield* __asyncDelegator(__asyncValues(iterable)));
                }
            }
            catch (e_20_1) { e_20 = { error: e_20_1 }; }
            finally {
                try {
                    if (iterables_1_1 && !iterables_1_1.done && (_a = iterables_1.return)) yield __await(_a.call(iterables_1));
                }
                finally { if (e_20) throw e_20.error; }
            }
        });
    };
}