anchor.diff:    (do-port-force-output queue)
     ;; Slurp as many elements as available.
     (loop until (null (process-next-event (event-queue-port queue) :timeout 0)))
  -  ;; Check-schedule may prepend scheduled event in a queue.
  +  ;; Check-schedule may append scheduled event in a queue.
     (check-schedule queue)
     (find-if predicate (event-queue-head queue)))
   
  
positive.code: ;; See if it's time to inject a scheduled event into the queue.
  (defun check-schedule (event-queue)
    (check-type event-queue schedule-mixin)
    (with-slots (schedule-time schedule) event-queue
      (when (and schedule-time (> (now) schedule-time))
        (let* ((event (pop schedule))
               (sheet (pop schedule)))
          (declare (ignore sheet))
          (setf schedule-time (pop schedule))
          (event-queue-prepend event-queue event)))))
  
  ;;; ugh. FIXME when I work - build a priority queue or something
  (defun schedule-event-queue (event-queue sheet event delay)
    (check-type event-queue schedule-mixin)
    (with-slots (schedule-time schedule) event-queue
      (let ((alarm (+ (now) delay)))
        (cond
          ((null schedule)
           (setf schedule-time alarm)
           (push sheet schedule)
           (push event schedule))
          ((< alarm schedule-time)
           (push schedule-time schedule)
           (push sheet schedule)
           (push event schedule)
           (setf schedule-time alarm))
          (t
           (do* ((prev  (cdr schedule)  (cdddr prev))
                 (point (cddr schedule) (cdddr point))
                 (time  (car point)))
                ((or (null point)
                     (< alarm time))
                 (setf (cdr prev)
                       (cons alarm (cons event (cons sheet (cdr prev))))))))))))
  
  ;;; EVENT-QUEUE protocol (not exported)
  
  
negative.code:                             ((null timeout) (- schedule-time (now)))
                              (T (min timeout (- schedule-time (now))))))
               (port (event-queue-port queue)))
          (when timeout (maxf timeout 0))
          (process-next-event port :timeout timeout)
          (check-schedule queue)
          (not (null (event-queue-head queue))))))
  