code: function advance(iterable, seed) {
    const iterator = iterable[Symbol.iterator]();
    const head = iterator.next();
    if (head.done)
      return seed !== Nill ? exhausted() : [Nill];
    return [head.value, new MangoRange(iterator)];
  }
docs: reduce