code: public final Stream<List<T>> chunk(final int chunkSize) {
          synchronized (this.state) {
              checkState();
              return new ChunkStream<T>(this, chunkSize);
          }
      }
docs: Intermediate operation returning a Stream of elements chunks of the specified size obtained
  from this Stream (the last chunk may be smaller).
  
  @param chunkSize
  the chunk size, positive
  @return a Stream wrapping this Stream and returning chunks of elements