static LPair assignEachPointToClosestNeighbor(Cl l1, Cl l2) { new LPair pairs; for (Pt a : l1) { Pt b = lowestAccordingTo(l2, x -> ptDistanceSquared(a, x)); if (b != null) l2.remove(b); pairs.add(pair(a, b)); } ret pairs; }