*<Null safety>*
Iterable<List<T>> splitBetweenIndexed (bool test(int index, T first, T second))
Iterable<List<T>> splitBetweenIndexed( bool Function(int index, T first, T second) test) sync* { var iterator = this.iterator; if (!iterator.moveNext()) return; var previous = iterator.current; var chunk = <T>[previous]; var index = 1; while (iterator.moveNext()) { var element = iterator.current; if (test(index++, previous, element)) { yield chunk; chunk = []; } chunk.add(element); previous = element; } yield chunk; }