Returns a new iterable set that does not have the element at index
function removeAt(index) {
    return function (source) {
        return __asyncGenerator(this, arguments, function* () {
            var e_32, _a;
            let i = 0;
            try {
                for (var source_3 = __asyncValues(source), source_3_1; source_3_1 = yield __await(source_3.next()), !source_3_1.done;) {
                    const item = source_3_1.value;
                    if (i !== index) {
                        yield yield __await(item);
                    }
                    i = i + 1;
                }
            }
            catch (e_32_1) { e_32 = { error: e_32_1 }; }
            finally {
                try {
                    if (source_3_1 && !source_3_1.done && (_a = source_3.return)) yield __await(_a.call(source_3));
                }
                finally { if (e_32) throw e_32.error; }
            }
        });
    };
}