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 = doubleBoolSwitch( contains(set1, s), a, contains(set2, s), b, undecided); pot.add(s); } ret triple(undecided, a, b); }