anchor.diff:                       (subseq (line-str line) 0 start)
                        (subseq (line-str line) end))))
   
  -(defun %delete-line-eol/point (marker start)
  +(defun %delete-line-eol/point (point start)
     (declare (special killring-stream line))
  -  (shift-sticky-objects-subtract-line marker nil)
  +  (shift-sticky-objects-subtract-line point nil)
     (write-string (line-str line) killring-stream :start start)
     (setf (line-str line)
           (subseq (line-str line) 0 start)))
   
  -(defun %delete-line/point (marker start)
  +(defun %delete-line/point (point start)
     (declare (special killring-stream line buffer n))
  -  (shift-sticky-objects-subtract-line marker t)
  +  (shift-sticky-objects-subtract-line point t)
     (write-string (line-str line) killring-stream :start start)
     (write-char #\newline killring-stream)
     (unless (eq n 'T)
  
positive.code:                              (when new-elements
                                 (list key new-elements)))))))))
  
  (defun %insert-newline/point (marker linum charpos)
    (let* ((buffer (point-buffer marker))
           (line (buffer-get-line buffer linum)))
      (let ((newline (make-line line
                                (line-next line)
                                (subseq (line-str line) charpos))))
        (shift-sticky-objects-newline marker)
        (incf (buffer-nlines buffer))
        (when (eq line (buffer-tail-line buffer))
          (setf (buffer-tail-line buffer) newline))
        (setf (line-str line)
              (subseq (line-str line) 0 charpos)))))
  
  (defgeneric insert-char/point (marker char)
    (:method (marker char)
      (with-modify-buffer (point-buffer marker)
        (check-read-only-at-point marker 0)
        (cond
          ((char= char #\newline)
           (%insert-newline/point marker
                                   (point-linum marker)
                                   (point-charpos marker)))
          (t
           (let ((line (get-line/point marker))
                 (charpos (point-charpos marker)))
             (shift-sticky-objects marker 1)
             (setf (line-str line)
                   (concatenate 'string
                                (subseq (line-str line) 0 charpos)
  
negative.code:                     nil)))
          (incf (point-charpos m) n)))))
  
  (defun shift-sticky-objects-newline (point)
    (let ((linum (point-linum point))
          (charpos (point-charpos point))
          (buffer (point-buffer point))
          (line (get-line/point point)))
      (line-property-insert-newline line (line-next line) charpos)
      (dolist (m (buffer-points buffer))
        (cond ((and (= (point-linum m) linum)
  