anchor.diff:  (defvar *timer-list* nil)
   
   (defstruct (timer (:constructor %make-timer))
  -  ms
  +  _ms
     repeat-p
     last-time
     function
  
positive.code: (export '(timer
            timer-p
            timer-ms
            timer-repeat-p
            timer-last-time
            timer-function
            start-timer
            stop-timer
            alive-timer-p))
  
negative.code: (defun stop-timer (timer)
    (setq *timer-list* (delete timer *timer-list*)))
  
  (defun timer-ms (timer)
    (timer-_ms timer))
  
  (defun (setf timer-ms) (new-ms timer)
    (check-type new-ms (integer 1 #.most-positive-fixnum))
    (setf (timer-_ms timer) new-ms))
  
  (defun update-timer ()
    (let ((promised-timers)
          (update-p))
      (dolist (timer *timer-list*)
        (when (< (timer-_ms timer)
                 (- (get-internal-real-time)
                    (timer-last-time timer)))
          (handler-case
  