anchor.diff:        (fresh-line str)
         (%late-print ! str info))))
   
  -(defun %print-args (x str info)
  -  (? (eq x 'error)
  -     (%print-rest x str info)
  -     (adolist x
  -       (%print-gap str)
  -       (?
  -         (not !.)     (%with-brackets str info
  -                        (%print-args .! str info))
  -         (%body? .!)  (%print-body ..! str info)
  -         (%rest? .!)  (%print-rest ..! str info)
  -         (%key? .!)   (progn
  -                        (%print-symbol (make-keyword !.) str info)
  -                        (princ " " str)
  -                        (%late-print ..! str info))
  -         (with-temporary *print-automatic-newline?* nil
  -           (%late-print .! str info))))))
  -
   (defun %print-call (x argdef str info)
  -  (%print-args (%print-get-args x argdef) str info))
  +  (let expanded (%print-get-args x argdef)
  +    (? (eq expanded 'error)
  +       (%print-rest x str info)
  +       (adolist expanded
  +         (%print-gap str)
  +         (?
  +           (not !.)     (%with-brackets str info
  +                          (%print-args .! str info))
  +           (%body? .!)  (%print-body ..! str info)
  +           (%rest? .!)  (%print-rest ..! str info)
  +           (%key? .!)   (progn
  +                          (%print-symbol (make-keyword !.) str info)
  +                          (princ " " str)
  +                          (%late-print ..! str info))
  +           (with-temporary *print-automatic-newline?* nil
  +             (%late-print .! str info)))))))
   
   (defun %print-call? (x info)
     (& (print-info-pretty-print? info)
        (symbol? x.)
  -     (alet (symbol-function x.)
  -       (?
  -         (builtin? x.)   nil
  -         (function? !)  (function-arguments x.)))))
  +     (| (get-printer-argument-definition x)
  +        (alet (symbol-function x.)
  +          (?
  +            (builtin? x.)   nil
  +            (function? !)  (function-arguments x.))))))
   
   (defun %print-list (x str info)
     (%with-brackets str info
  
positive.code: 
  (defvar *print-automatic-newline?* t)
  (defvar *always-print-package-names?* nil)
  
  (defstruct print-info
    (pretty-print?  t)
  
negative.code:      (adotimes ((print-info-indentation info))
         (princ " " str))))
  
  (defmacro %with-indentation (str info &body body)
    `(progn
       (%print-indentation ,str ,info)
       ,@body))
  
  (defmacro %with-brackets (str info &body body)
    `(%with-indentation ,str, info
       (princ "(" ,str)
       ,@body
       (princ ")" ,str)))
  