code: public final static <T> Tuple2<Stream<T>, Stream<T>> splitBy(final Stream<T> stream, final Predicate<T> splitter) {
          final Tuple2<Stream<T>, Stream<T>> Tuple2 = duplicate(stream);
          return Tuple.tuple(
                            takeWhile(Tuple2._1(), splitter), dropWhile(Tuple2._2(), splitter));
      }
docs: Split stream at point where predicate no longer holds
  <pre>
  {@code
  ReactiveSeq.of(1, 2, 3, 4, 5, 6).splitBy(i->i<4)
  
  //Stream[1,2,3] Stream[4,5,6]
  }
  </pre>