anchor.diff:  
   
   (defun dll (&rest list)
  -  (let ((dlist (make-dll))
  -        (current nil))
  -    (map nil (lambda (item) (setf current (dll-append dlist current item))) list)
  -    dlist))
  +  (loop
  +     :with dlist = (make-dll)
  +     :for element :in list
  +     :for last-node = (dll-insert dlist nil element)
  +     :then (dll-insert dlist last-node element)
  +     :finally (return dlist)))
   
   (defun dll-first-node (dlist) (%dll-first dlist))
   (defun dll-last-node  (dlist) (%dll-last dlist))
  
positive.code: 
  
  (defun dll-append (&rest dlls)
    (apply (function dll-nconc) (mapcar (function dll-copy) dlls)))
  
  
  (defun dll-nconc (&rest dlls)
    "
  PRE:   No dll appears twice in dlls.
  DO:    Extract the nodes from all but the first dll,
         and append them to that first dll.
  "
    (if (null dlls)
        (make-dll)
        (do ((result  (do ((dll (pop dlls) (pop dlls)))
                          ((%dll-first dll) dll)))
             (dlls dlls (cdr dlls))
             (dll))
            ((null dlls) result)
          (setf dll (car dlls))
          (let ((first (%dll-first dll)))
            (unless (null first)
              (setf (dll-node-previous first) (%dll-last result)
                    (dll-node-next (%dll-last result)) first
                    (%dll-last result) (%dll-last dll)
                    (%dll-first dll) nil
                    (%dll-last dll) nil))))))
  
  
negative.code: 
  (defun dll-insert (dlist node item)
    "
  DO:     Insert a new node after NODE, or before first position when (NULL NODE).
  RETURN: The new node.
  "
    (let ((new-node nil))
  