anchor.diff:  
   (defgeneric beginning-of-buffer (mark)
     (:documentation "Move the mark to the beginning of the buffer.
  -  This is equivalent to (setf (offset mark) 0), but returns
  -  mark."))
  +This is equivalent to `(setf (offset mark) 0)', but returns
  +mark."))
   
   ;; Easy way to make sure mark is always returned.
   (defmethod beginning-of-buffer :around (mark)
  
positive.code:   (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."))
  
  (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."))
  
  (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."))
  
  (defmethod region-to-sequence ((mark1 mark-mixin) (mark2 mark-mixin))
    (assert (eq (buffer mark1) (buffer mark2)))
  
negative.code:   (setf (element* (slot-value buffer 'contents) offset) object))
  
  (defgeneric buffer-sequence (buffer offset1 offset2)
    (:documentation "Return the contents of the buffer starting at
  `offset1' and ending at `offset2-1' as a sequence.  If either of
  the offsets is less than zero or greater than or equal to the
  size of the buffer, a `no-such-offset' condition is signaled.  If
  `offset2' is smaller than or equal to `offset1', an empty
  sequence will be returned."))
  
  (defmethod buffer-sequence ((buffer standard-buffer) offset1 offset2)
    (assert (<= 0 offset1) ()
  