static LPair bitSetStreaksAndNonStreaks(BitSet bs, int n) { int start = 0; Bool last = null; new LPair out; for i to n: { Bool result = bs.get(i); if (last != null && neq(result, last)) { out.add(pair(intRange(start, i), last)); start = i; } last = result; } if (start < n) out.add(pair(intRange(start, n), last)); ret out; }