anchor.diff:    (assert (eq (buffer mark1) (buffer mark2)))
     (let ((offset1 (offset mark1))
   	(offset2 (offset mark2)))
  -    (when (> offset1 offset2)
  -      (rotatef offset1 offset2))
  -    (downcase-buffer-region (buffer mark1) offset1 offset2)))
  +    (as-region (offset1 offset2)
  +      (downcase-buffer-region (buffer mark1) offset1 offset2))))
   
   (defmethod downcase-region ((offset1 integer) (mark2 mark))
     (let ((offset2 (offset mark2)))
  -    (when (> offset1 offset2)
  -      (rotatef offset1 offset2))
  -    (downcase-buffer-region (buffer mark2) offset1 offset2)))
  +    (as-region (offset1 offset2)
  +      (downcase-buffer-region (buffer mark2) offset1 offset2))))
   
   (defmethod downcase-region ((mark1 mark) (offset2 integer))
     (let ((offset1 (offset mark1)))
  -    (when (> offset1 offset2)
  -      (rotatef offset1 offset2))
  -    (downcase-buffer-region (buffer mark1) offset1 offset2)))
  +    (as-region (offset1 offset2)
  +      (downcase-buffer-region (buffer mark1) offset1 offset2))))
   
   (defun upcase-buffer-region (buffer offset1 offset2)
     (do-buffer-region (object offset buffer offset1 offset2)
  
positive.code:   (assert (eq (buffer mark1) (buffer mark2)))
    (let ((offset1 (offset mark1))
  	(offset2 (offset mark2)))
      (when (> offset1 offset2)
        (rotatef offset1 offset2))
      (capitalize-buffer-region (buffer mark1) offset1 offset2)))
  
  (defmethod capitalize-region ((offset1 integer) (mark2 mark))
    (let ((offset2 (offset mark2)))
      (when (> offset1 offset2)
        (rotatef offset1 offset2))
      (capitalize-buffer-region (buffer mark2) offset1 offset2)))
  
  (defmethod capitalize-region ((mark1 mark) (offset2 integer))
    (let ((offset1 (offset mark1)))
      (when (> offset1 offset2)
        (rotatef offset1 offset2))
      (capitalize-buffer-region (buffer mark1) offset1 offset2)))
  
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  ;;; 
  
negative.code:   (assert (eq (buffer mark1) (buffer mark2)))
    (let ((offset1 (offset mark1))
  	(offset2 (offset mark2)))
      (as-region (offset1 offset2)
        (buffer-number-of-lines-in-region (buffer mark1) offset1 offset2))))
  
  (defmethod number-of-lines-in-region ((offset1 integer) (mark2 mark))
    (let ((offset2 (offset mark2)))
      (as-region (offset1 offset2)
        (buffer-number-of-lines-in-region (buffer mark2) offset1 offset2))))
  
  (defmethod number-of-lines-in-region ((mark1 mark) (offset2 integer))
    (let ((offset1 (offset mark1)))
      (as-region (offset1 offset2)
        (buffer-number-of-lines-in-region (buffer mark1) offset1 offset2))))
  
  (defun constituentp (obj)
    "A predicate to ensure that an object is a constituent character."
  