// returns empty first and empty last static LL splitAtListElement_multi(L l, A splitter) { l = unnull(l); new LL parts; int i = 0; while true { int j = indexOf(l, splitter, i); if (j < 0) { parts.add(subList(l, i)); break; } parts.add(subList(l, i, j)); i = j+1; while (i < l(l) && eq(l.get(i), splitter)) ++i; } ret parts; }