Yields count numbers from start onwards
e.g range(10, 3) will yield [10, 11, 12]
function range(start, count, inc = 1) {
    return defer(function* () {
        for (let i = 0; i < count; ++i) {
            yield start + (i * inc);
        }
    });
}