protected final void publishChangeAt( Object o, long timeMillis, UnaryPredicate pred) { publishChangeAfter(o, (timeMillis - currentTimeMillis()), pred);
protected final void publishChangeAt(Object o, long timeMillis) { publishChangeAt(o, timeMillis, null);
  protected final void publishChangeAt(      Object o,       long timeMillis,       UnaryPredicate pred) {    publishChangeAfter(o, (timeMillis - currentTimeMillis()), pred);  }