anchor.diff:      (setf (buffer-mark-col buffer) 0)
       (setf (buffer-nlines buffer) 1)
       (setf (buffer-undo-size buffer) 0)
  -    (setf (buffer-undo-stack buffer) (queue:make-queue *undo-limit*))
  +    (setf (buffer-undo-stack buffer) nil)
       (setf (buffer-redo-stack buffer) nil)
       (setf (buffer-undo-node buffer) 0)
       (setf (buffer-saved-node buffer) 0)
  
positive.code:           (funcall elt))))))
  
  (defun buffer-undo (buffer)
    (loop while (eq :separator (queue:queue-last-datum (buffer-undo-stack buffer)))
      do (queue:pop (buffer-undo-stack buffer)))
    (prog1 (do ((res #1=(buffer-undo-1 buffer) #1#)
                (pres nil res))
               ((not res)
  
negative.code:              ((not res)
                (when pres
                  (incf (buffer-undo-node buffer))
                  (push :separator (buffer-undo-stack buffer))
                  (buffer-undo-modified buffer))
                pres))))
  
  