code: @Override
      public List<T> subList(int arg0, int arg1) {
          while ( allResults.size() < arg1 && nextResultsAvailable() ) {
              moveNextResults();
          }
          
          return Collections.unmodifiableList(allResults.subList(arg0, arg1));
      }
docs: Returns a sub-list in the range specified, loading more results as
  necessary.