docs: function series(iterables) {
      if (iterables.length === 0) {
          return createIterator();
      }
  
      let iter = createIterator(iterables.shift(), { strict: false });
  
      return {
          [Symbol.iterator]() { return this; },
          next() {
              let next = iter.next();
  
              // If iterator is ended go to the next.
              // If next iterator is empty (is ended) go to the next,
              // until you get not empty iterator, or all iterators are ended.
              while (next.done) {
                  // If iterators are ended, then exit.
                  if (iterables.length === 0) {
                      return done;
                  }
  
                  iter = createIterator(iterables.shift(), { strict: false });
  
                  next = iter.next();
              }
  
              return next;
          }
      };
  }