interface TimerNotify
  Notifications for timer.
  fun ref apply(timer: Timer, count: U64): Bool =>
    Called with the the number of times the timer has fired since this was last
    called. Usually, the value of `count` will be 1. If it is not 1, it means
    that the timer isn't firing on schedule.

    For example, if your timer is set to fire every 10 milliseconds, and
    `count` is 2, that means it has been between 20-29 milliseconds since the
    last time your timer fired. Non 1 values for a timer are rare and indicate
    a system under heavy load.

    Return true to reschedule the timer (if it has an interval), or
    false to cancel the timer (even if it has an interval).

  fun ref cancel(timer: Timer) =>
    Called if the timer is cancelled. This is also called if the notifier
    returns false from its `apply` method.