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