anchor.diff:  
   (defstruct (queue
                (:constructor %make-queue))
  +  "This struct is a standard queue data structure."
     front
     back
     (lock (make-lock))
     (cv (make-condition-variable)))
   
   (defun make-queue ()
  +  "Create a new queue."
     (%make-queue))
   
   (defun enqueue (item queue)
  -  (with-accessors ((front queue-front) (back queue-back)
  -                   (lock queue-lock) (cv queue-cv)) queue
  +  "Add an item to the given queue."
  +  (with-accessors
  +        ((front queue-front) (back queue-back)
  +         (lock queue-lock) (cv queue-cv))
  +      queue
       (with-lock-held (lock)
         (cond
           ((null front)
  
positive.code:         (values item t)))))
  
  (defun dequeue (queue)
    (nth-value 0 (%dequeue queue)))
  
  (defun dequeue-no-block (queue &optional default)
    (multiple-value-bind (value valid) (%dequeue queue :wait nil)
      (if valid
          value
  
negative.code: 
  (defstruct (semaphore
               (:constructor %make-semaphore))
    "This struct represents the standard semaphore synchronization
  primitive."
    (count 0)
    (lock (make-lock))
    (cv (make-condition-variable)))
  
  (defun make-semaphore ()
    "Create a new semaphore."
    (%make-semaphore))
  
  (defun semaphore-signal (semaphore)
    "Increment the given semaphore and allow a thread blocked in
  `semaphore-wait' to continue."
    (with-accessors ((count semaphore-count)
                     (lock semaphore-lock) (cv semaphore-cv))
        semaphore
  