anchor.diff:    (:method (point string)
       (let ((buffer (point-buffer point)))
         (with-modify-buffer buffer
  +        (check-read-only-at-point point 0)
           (loop :with start := 0
                 :for pos := (position #\newline string :start start)
                 :for line := (point-line point) :then (line-next line)
  
positive.code:       char)))
  
  (defun %insert-line-string/point (line charpos string)
    (check-read-only-at-point line charpos 0)
    (shift-sticky-objects line charpos (length string))
    (setf (line-str line)
          (concatenate 'string
  
negative.code: (define-editor-variable before-change-functions '())
  (define-editor-variable after-change-functions '())
  
  (defun check-read-only-at-point (point offset)
    (unless *inhibit-read-only*
      (let ((line (point-line point))
            (charpos (point-charpos point)))
        (when (if (eql offset 0)
                  (line-search-property line :read-only charpos)
                  (line-search-property-range line
                                              :read-only
                                              charpos
                                              (if (null offset)
                                                  nil
                                                  (+ charpos offset))))
          (error 'read-only-error)))))
  
  (defmacro with-modify-buffer (buffer &body body)
    (alexandria:once-only (buffer)
  