Yield the original sequence unmodified, calling the tapper on every item in the sequence
function tap(tapper) {
    return function* (it) {
        let index = 0;
        for (const value of it) {
            tapper(value, index);
            yield value;
            index = index + 1;
        }
    };
}