native channel TimersUpdated { in timers(curTimers: Map, update(curTimers, nextTimers)) = nextTimers } native channel TimerEvent(tid: Str) { out timers.{tid}.count(count: Long, tick()) = count + 1 } channel StartTimer { out timers(timers: Map, startTimer(tid: Str, interval: Long)) = insert(timers, tid, {"interval": interval, "count": 0}) } channel ClearTimer { out timers(timers: Map, clearTimer(tid: Str)) = delete(timers, tid) }