// returns optimized specimen, score
static  Pair racerOptimize(RandomAndVary r, F1 scorer, O... _) {
  new AIStrategy_Racer_RandomWithVary strategy;
  strategy.submit = scorer;
  strategy.random = func -> A { r.randomInstance() };
  strategy.vary = func(A a) -> A { r.varyInstance(a) };
  ret bestAsPair(runStrategyWhileImprovement(strategy, _));
}