@Nullable
  private Result checkFinal(Result r1, Result r2) {
    if (r1 == top) return r1;
    if (r1 == bottom) return r2;
    return null;
  }
@Nullable
  private Result checkFinal(Result r1, Result r2)