anchor.diff:  //[1,2,3],[4,5,6]
   ----
   ====
  -* Batch / Window until a predicate holds
  +
  +==== Batch / Window until a predicate holds
  +
   Batching or Windowing while allows users to keep the window / batch open until the predicate holds true.
   .Batch until example
   ====
  
positive.code: 
  video::OH89bHb5yzo[youtube]
  ====
  * Batch / Window by time
  
  Batch / Window by time group elements into either a List (Batch) or Streamable (Window) based on the time bucket they pass through the Stream.
  
  
negative.code: java.util.stream.Stream<T>, org.jooq.lambda.Seq<T>, java.lang.Iterable<T>, org.reactivestreams.Publisher<T> and adds additional operators.
  
  StreamUtils, Streamable and SequenceM share many operators, in general though SequenceM has the larest range of operators.
  
  [IMPORTANT]
  ====
  Some knowledge of the Java 8 Streams API is assumed here. SequenceM provides all of the Stream operations (by inheriting from Stream) and a lot more. The Oracle tutorial for Streams is a good place to start if you are brand new to this concept.
  ====
  
  
  === Introduction to StreamUtils
  
  