anchor.diff:                 (setf (timer-last-time timer)
                        (get-internal-real-time)))
                 (t
  -               (setf (timer-alive-p timer) nil)
  +               (unless (timer-idle-p timer)
  +                 (setf (timer-alive-p timer) nil))
                  (push timer promised-timers)))))
       (setq *timer-list* (set-difference *timer-list* promised-timers))
       (dolist (timer update-timers)
  
positive.code:     :accessor timer-idle-p
      :type boolean)))
  
  (defun timer-p (x)
    (typep x 'timer))
  
  
negative.code: (defun exist-running-timer-p ()
    (not (null *timer-list*)))
  
  (defun start-idle-timer (name ms repeat-p function &optional args handle-function)
    (let ((timer (make-instance 'timer
                                :name name
                                :ms ms
                                :repeat-p repeat-p
                                :function function
                                :args args
                                :handle-function handle-function
                                :alive-p t
                                :idle-p t)))
      (push timer *idle-timer-list*)
      timer))
  
  (defun start-idle-timers ()
    (dolist (timer *idle-timer-list*)
  