// returns last value static A printPolledValueUntilPredicateOrTimeout( IF0 makeValue, IPred pred, double timeout, int interval default 100) { Timeout timeOut = new(timeout); A a = null; while (!timeOut!) { a = makeValue!; if (pred != null && pred.get(a)) break; else sleep(interval); } ret a; }