static LL mapLike streaksAndNonStreaks(O pred, L l) { new LL out; int start = 0; Bool last = null; for i over l: { Bool result = (Bool) callF(pred, l.get(i)); if (last != null && result != null && neq(result, last)) { out.add(subList(l, start, i)); start = i; } if (result != null) last = result; } if (start < l(l)) out.add(subList(l, start)); ret out; }