static LPair concatenateAdjacentRanges(LPair l) { new LPair out; fOr (p : l) if (concatenatableIntRanges(pairA(last(out)), p.a) && eq(pairB(last(out)), p.b)) replaceLast(out, pair(joinIntRanges(pairA(last(out)), p.a), p.b); else out.add(p); ret out; }