@Override
    Object apply(Object o) {
      JBIterator<?> it = (JBIterator<?>)o;
      advanced = nextOp != null;
      return (advanced ? it.advance() : it.hasNext()) ? it : stop();
    }
@Override
    Object apply(Object o)