static Triple> attractToTwoLists1(L things, L l1, L l2) { Set set1 = asCISet(l1), set2 = asCISet(l2); new L a; new L b; new L undecided; for (S s : unnull(things)) { L pot = undecided; if (contains(set1, s)) pot = a; else if (contains(set2, s)) pot = b; pot.add(s); } ret triple(undecided, a, b); }