anchor.diff:    (coerce (buffer-sequence buffer start end) 'string))
   
   (defgeneric object-before (mark)
  -  (:documentation "Return the object that is immediately before the mark.  If mark is at
  -the beginning of the buffer, a no-such-offset condition is signaled.
  -If the mark is at the beginning of a line, but not at the beginning
  -of the buffer, a newline character is returned."))
  +  (:documentation "Return the object that is immediately before
  +the mark.  If mark is at the beginning of the buffer, a
  +`no-such-offset' condition is signaled.  If the mark is at the
  +beginning of a line, but not at the beginning of the buffer, a
  +newline character is returned."))
   
   (defmethod object-before ((mark mark-mixin))
     (buffer-object (buffer mark) (1- (offset mark))))
   
   (defgeneric object-after (mark)
  -  (:documentation "Return the object that is immediately after the mark.  If mark is at
  -the end of the buffer, a no-such-offset condition is signaled.  If
  -the mark is at the end of a line, but not at the end of the buffer, a
  -newline character is returned."))
  +  (:documentation "Return the object that is immediately after
  +the mark.  If mark is at the end of the buffer, a
  +`no-such-offset' condition is signaled.  If the mark is at the
  +end of a line, but not at the end of the buffer, a newline
  +character is returned."))
   
   (defmethod object-after ((mark mark-mixin))
     (buffer-object (buffer mark) (offset mark)))
   
   (defgeneric region-to-sequence (mark1 mark2)
  -  (:documentation "Return a freshly allocated sequence of the objects after mark1 and
  -before mark2.  An error is signaled if the two marks are positioned
  -in different buffers.  If mark1 is positioned at an offset equal to
  -or greater than that of mark2, an empty sequence is returned.  It is
  -acceptable to pass an offset in place of one of the marks."))
  +  (:documentation "Return a freshly allocated sequence of the
  +objects after `mark1' and before `mark2'.  An error is signaled
  +if the two marks are positioned in different buffers.  If mark1
  +is positioned at an offset equal to or greater than that of
  +`mark2', an empty sequence is returned.  It is acceptable to pass
  +an offset in place of one of the marks. This function calls
  +`buffer-sequence' with the appropriate arguments."))
   
   (defmethod region-to-sequence ((mark1 mark-mixin) (mark2 mark-mixin))
     (assert (eq (buffer mark1) (buffer mark2)))
  
positive.code:   (element* (slot-value buffer 'contents) offset))
  
  (defgeneric (setf buffer-object) (object buffer offset)
    (:documentation "Set the object at the offset in the buffer. The first object
  has offset 0. If offset is less than zero or greater than or equal to
  the size of the buffer, a no-such-offset condition is signaled."))
  
  (defmethod (setf buffer-object) (object (buffer standard-buffer) offset)
    (assert (<= 0 offset) ()
  
negative.code: 
  (defgeneric (setf offset) (new-offset mark)
    (:documentation "Set the offset of the mark into the buffer.  A
  motion-before-beginning condition is signaled if the offset is
  less than zero. A motion-after-end condition is signaled if the
  offset is greater than the size of the buffer."))
  
  (defclass mark-mixin ()
    ((buffer :initarg :buffer
             :reader buffer
             :documentation "The buffer that the mark is in.")
     (cursor :reader cursor))
    (:documentation "A mixin class used in the initialization of a mark."))
  
  