code: public final static <T, C extends PersistentCollection<? super T>> Stream<C> groupedWhile(final Stream<T> stream, final Predicate<? super T> predicate,
                                                                                                           final Supplier<C> factory) {
          return StreamSupport.stream(new GroupedWhileSpliterator<>(stream.spliterator(),factory,Function.identity(),predicate.negate()),stream.isParallel());
  
      }
docs: Group a Stream while the supplied predicate holds
  
  @see ReactiveSeq#groupedWhile(Predicate, Supplier)
  
  @param stream Stream to group
  @param predicate Predicate to determine grouping
  @param factory Supplier to create toX for groupings
  @return Stream grouped into Collections determined by predicate