srecord noeq URecognizerRun(IIIRecognizer recognizer, IIntegralImage img) implements IF0 {
  int maxResults = 10;
  
  new ProbabilisticScheduler ps;
  new L> results;
  bool hasRun;
  
  selfType run() {
    set hasRun;
    psCollect(ps, results, maxResults, out -> recognizer.run(ps, img, out));
    this;
  }
  
  public A get() {
    if (!hasRun) run();
    ret getVar(first(results));
  }
}