anchor.diff:  (in-package :lem)
   
  -(defclass fake-cursor (point) ())
  +(defclass fake-cursor (point)
  +  ((killring :initarg :killring
  +             :reader fake-cursor-killring)))
   
   (defun buffer-fake-cursors (buffer)
     (buffer-value buffer 'fake-cursors))
  
positive.code: (defun (setf buffer-fake-cursors) (value buffer)
    (setf (buffer-value buffer 'fake-cursors) value))
  
  (defun add-fake-cursor (point)
    (push (copy-point-using-class (make-instance 'fake-cursor)
                                  point
                                  :left-inserting)
          (buffer-fake-cursors (point-buffer point))))
  
  (defun delete-fake-cursor (point)
    (let ((buffer (point-buffer point)))
  
negative.code:                 (when (and (line-offset p 1)
                             (or (null next-cursor)
                                 (not (same-line-p p next-cursor))))
                    (make-fake-cursor p))))))
  
  (define-condition garbage-collection-cursors (after-executing-command) ())
  (defmethod handle-signal ((condition garbage-collection-cursors))
  