// 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; }