static java.util.Timer onValueChange(int interval, final F0 f, fO onChange) { ret doEvery(interval, new Runnable { O lastValue = pcallF(f); public void run { O value = pcallF(f); if (neq(value, lastValue)) { lastValue = value; callF(onChange, value); } } }); }