anchor.diff:    int get hashCode => sequence.hashCode ^ started.hashCode;
   
     _ScheduledTimer next() {
  -    return _ScheduledTimer(sequence, duration, started + duration, callback,
  -        isPeriodic, _createTimer, _createPeriodicTimer, _zone);
  -  }
  -}
  -
  -class _SimpleCallbackTimer implements Timer {
  +    return _ScheduledTimer.next(sequence, duration, started + duration,
  +        callback, isPeriodic, _zone, _timer);
  +  }
  +
  +  @override
  +  String toString() {
  +    return '_ScheduledTimer{sequence: $sequence, duration: $duration, '
  +        'started: $started, callback: $callback, isPeriodic: $isPeriodic}';
  +  }
  +}
  +
  +class _CallbackTimer implements Timer {
     final int _id;
     final _CallbackQueueZone _zone;
   
  -  _SimpleCallbackTimer(this._id, this._zone);
  +  _CallbackTimer(this._id, this._zone);
   
     @override
     void cancel() {
  
positive.code: 
    void _cancel(int id) {
      // TODO: sorted map by sequence
      var cb = _callbacks.firstWhere((t) => t.sequence == id);
      cb._timer.cancel();
      _callbacks.remove(cb);
      // TODO: also remove timer associated with id
    }
  
    bool _isActive(int id) => _callbacks.any((t) => t.sequence == id);
  
    int _ticks(int id) {
      throw UnimplementedError();
  
negative.code: 
  class _CallbackQueueZone implements PausableZone {
    final _callbacks = SplayTreeSet<_ScheduledTimer>();
  
    /// The offset of the parent zone, which progresses independently of pauses.
    ///
  