anchor.diff:  	(when (not (typep bp-start 'fixed-buffer-pointer))
   	  (setf bp-start (change-class bp-start 'fixed-buffer-pointer))))))
   
  +(defgeneric end-state (extent))
  +
   (defmethod end-state ((extent extent))
     (if (typep (bp-end extent) 'fixed-buffer-pointer)
         :open
         :closed))
  +
  +(defgeneric (setf end-state) (new-val extent))
   
   (defmethod (setf end-state) (new-val (extent extent))
     (with-slots (bp-end)
  
positive.code:    (bp-end :reader bp-end))
    (:documentation "A delimited region in a buffer.  The concept follows extents
    in XEmacs, though the interface is more in line with Common Lisp."))
  
  (defmethod initialize-instance :after ((obj extent) 
  				       &key start-line 
  
negative.code:   (setf (line (bp-start extent)) nil)
    (setf (line (bp-end extent)) nil))
  
  (defgeneric start-state (extent))
  
  (defmethod start-state ((extent extent))
    (if (typep (bp-start extent) 'fixed-buffer-pointer)
        :closed
        :open))
  
  (defgeneric (setf start-state) (new-val extent))
  
  (defmethod (setf start-state) (new-val (extent extent))
    (with-slots (bp-start)
  