static S web_candidateWithMostConfirms(L<Lisp> facts, S pivot, L<S> candidates) {
  new Best<S> best;
  for i over candidates: {
    S candidate = candidates.get(i);
    new Web web;
    web.newNode(pivot, candidate);
    for (Lisp fact : facts)
      web.relation(fact);
    int score = web_countConfirms(web, facts);
    if (score > 0)
      best.put(candidate, score);
  }
  ret best.get();
}