anchor.diff:    (assert (eq (buffer mark1) (buffer mark2)))
     (let ((offset1 (offset mark1))
   	(offset2 (offset mark2)))
  -    (when (> offset1 offset2)
  -      (rotatef offset1 offset2))
  -    (buffer-number-of-lines-in-region (buffer mark1) offset1 offset2)))
  +    (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)))
  -    (when (> offset1 offset2)
  -      (rotatef offset1 offset2))
  -    (buffer-number-of-lines-in-region (buffer mark2) offset1 offset2)))
  +    (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)))
  -    (when (> offset1 offset2)
  -      (rotatef offset1 offset2))
  -    (buffer-number-of-lines-in-region (buffer mark1) offset1 offset2)))
  +    (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."
  
positive.code: ;;; not, strictly speaking, part of that protocol.
  
  (in-package :drei-base)
  
  (defmacro as-offsets ((&rest marks)
                        &body body)
  
negative.code:   (assert (eq (buffer mark1) (buffer mark2)))
    (let ((offset1 (offset mark1))
  	(offset2 (offset mark2)))
      (as-region (offset1 offset2)
       (tabify-buffer-region (buffer mark1) offset1 offset2 tab-width))))
  
  (defmethod tabify-region ((offset1 integer) (mark2 mark) tab-width)
    (let ((offset2 (offset mark2)))
      (as-region (offset1 offset2)
        (tabify-buffer-region (buffer mark2) offset1 offset2 tab-width))))
  
  (defmethod tabify-region ((mark1 mark) (offset2 integer) tab-width)
    (let ((offset1 (offset mark1)))
      (as-region (offset1 offset2)
        (tabify-buffer-region (buffer mark1) offset1 offset2 tab-width))))
  
  (defun untabify-buffer-region (buffer offset1 offset2 tab-width)
    (loop for offset = offset1 then (1+ offset)
  