static O applyUntilSameOrNull(O f, O o) { while (o != null) { O o2 = callF(f, o); if (o == o2) break; } ret o; }