anchor.diff:           (overlay
             (make-instance 'overlay
                            :start (copy-point start :right-inserting)
  -                         :end (copy-point end :right-inserting)
  +                         :end (copy-point end :temporary)
  +                         :length (count-characters start end)
                            :attribute attribute
                            :buffer buffer)))
       (push overlay (buffer-value buffer 'overlays))
  
positive.code:   (when (and (overlay-p overlay)
               (overlay-alive-p overlay))
      (delete-point (overlay-start overlay))
      (delete-point (overlay-end overlay))
      (let ((buffer (overlay-buffer overlay)))
        (setf (buffer-value buffer 'overlays)
              (delete overlay (buffer-value buffer 'overlays))))
      (setf (overlay-alive-p overlay) nil)))
  
  (defun overlay-put (overlay key value)
    (setf (getf (overlay-plist overlay) key) value))
  
negative.code:     :type point)
     (end
      :initarg :end
      :reader %overlay-end
      :type point)
     (length
      :initarg :length
      :reader overlay-length
      :type fixnum)
     (attribute
      :initarg :attribute
      :reader overlay-attribute
  