anchor.diff:  of FUNC into a single list."
     (loop
        for (args rest-lists) = (unzip-lists lists) then (unzip-lists rest-lists)
  -     with newlist-head and newlist-tail
        while args
  -     for newitem = (multiple-value-list (apply func args))
  -     when newitem
  -     do
  -       (if newlist-tail
  -           (setf (cdr newlist-tail) newitem)
  -           (setf newlist-head newitem))
  -       (setf newlist-tail (last newitem))
  -     finally (return newlist-head)))
  +     nconcing (multiple-value-list (apply func args))))
   
    
  
positive.code: ;;;
  ;;; The number of multiple values to return is specified to simplify
  ;;; implementation and potentially avoid a lot of consing.
  (defun multiple-value-mapcar (n func &rest lists)
    "Map FUNC across LISTS, accumulating the first N values returned by each
  invocation of FUNC into N lists based on position."
  
negative.code:      do (loop
             for acc-cell on accumulator
             for res-cell = results then (cdr res-cell) ;; Don't stop looping at
                                                        ;; the end of results
             do (push (car res-cell) (car acc-cell)))
       finally (return (apply #'values (mapcar #'nreverse accumulator)))))
  
  