anchor.diff:       (setf circle-check? 'not-first-p))
     `(let ((*current-level* (1+ *current-level*))
            (*current-length* -1)
  -         (*parents* *parents*)
            ,@(if (and circle-check? atsign?) `((not-first-p (plusp *current-length*)))))
        (unless (check-block-abbreviation ,var ,args ,circle-check?)
          (block logical-block
  
positive.code:       (setf *abbreviation-happened* '*print-lines*)
        (throw 'line-limit-abbreviation-exit T))
      (incf (line-no xp))
      (unless *locating-circularities*
        (write-line
            (buffer xp) (base-stream xp) :end end))))
  
  
negative.code:   (if (xp-structure-p stream)
        (apply fn stream args)
        (let ((*abbreviation-happened* nil)
              (*circularity-hash-table*
                (if *print-circle* (get-circularity-hash-table) nil))
              (*result* nil))
          (xp-print fn (decode-stream-arg stream) args)
          (when *abbreviation-happened*
            (setf *last-abbreviated-printing*
                  (let ((current-package *package*)
  