docs: public Iterator<List<T>> iterator()
      {
          return new Iterator<List<T>>()
          {
              public boolean hasNext()
              {
                  return hasMore();
              }
  
  
              public List<T> next()
              {
                  return nextCombinationAsList();
              }
  
  
              public void remove()
              {
                  throw new UnsupportedOperationException("Iterator does not support removal.");
              }
          };
      }