anchor.diff:    (declare (type queue queue))
     (eql (car (queue-state queue)) :running))
   
  -(defun enqueue (queue task)
  -  (declare (type queue queue)
  -           (type task  task))
  +(defun enqueue (task &optional (queue *current-queue*))
  +  (declare (type task-designator task)
  +           (type queue queue))
     (with-mutex ((queue-lock queue))
       (assert (alive-p queue))
  -    ;; FIXME
       (sb-queue:enqueue task (queue-queue queue))
       (condition-broadcast (queue-cvar queue)))
     nil)
   
  -(defun enqueue-all (queue tasks)
  +(defun enqueue-all (tasks &optional (queue *current-queue*))
     (declare (type queue queue))
     (with-mutex ((queue-lock queue))
       (assert (alive-p queue))
  -    (let ((queue   (queue-queue queue)))
  +    (let ((queue (queue-queue queue)))
         (map nil (lambda (task)
                    (sb-queue:enqueue task queue))
              tasks))
       (condition-broadcast (queue-cvar queue)))
     nil)
   
  -(defun push-self (queue task)
  +(defun push-self (task &optional (queue *current-queue*))
     (declare (type queue queue)
  -           (type task  task))
  +           (type task-designator task))
     (assert (alive-p queue))
     (let ((id *worker-id*))
       (cond (id
  
positive.code:           (t
             (enqueue queue task)))))
  
  (defun push-self-all (queue tasks)
    (declare (type queue queue))
    (assert (alive-p queue))
    (let ((id *worker-id*))
  
negative.code:           (return-from grab-task task))))))
  
  (defvar *worker-id* nil)
  (defvar *current-queue* nil)
  
  (defun %make-worker (wqueue i)
    (let* ((lock   (queue-lock   wqueue))
  