anchor.diff:      (values (or fn #'non-pretty-print) (not (null fn)))))
   
   (defun get-printer (object table)
  +  (when (not (typep table 'pprint-dispatch))
  +    (return-from get-printer nil))
     (let* ((entry (if (consp object)
                       (gethash (car object) (conses-with-cars table))
                       (gethash (type-of object) (structures table)))))
  
positive.code:    ;;NON-BLANK-PREFIX-PTR current length of non-blank prefix.
     ;;INITIAL-PREFIX-PTR prefix-ptr at the start of this block.
     ;;SECTION-START-LINE line-no value at last non-literal break at this level.
     (suffix :initarg :suffix :initform (make-array +buffer-min-size+ :element-type 'character) :accessor suffix)))
     ;;this stores the suffixes that have to be printed to close of the current
     ;;open blocks.  For convenient in popping, the whole suffix
     ;;is stored in reverse order.
  
  (defmethod print-object ((object xp-structure) stream)
    (describe-xp object stream 0))
  
  (defun make-xp-structure (&rest args)
    (apply #'make-instance 'xp-structure args))
  
negative.code:         (T stream)))
  
  (defun do-xp-printing (fn stream args)
    (let ((xp (make-instance 'xp-structure :base-stream stream))
          (*current-level* 0)
          (result nil))
      (catch 'line-limit-abbreviation-exit
  