// discriminator: func(A) -> bool static > Scorer scoreDiscriminator(O discriminator, Pair p) { new Scorer scorer; for (A a : unnull(p.a)) scorer.add(a, isTrue_callF(discriminator(a))); for (A a : unnull(p.b)) scorer.add(a, !isTrue_callF(discriminator(a))); ret scorer; }