@Override
      public Iterator<T> iterator() {
        return new FlatteningIterator<>(values.iterator()) {
          @Override
          protected Iterator<T> createValueIterator(List<T> group) {
            return myNext.classify(group, context).iterator();
          }
        };
      }
@Override
      public Iterator<T> iterator()