anchor.diff:     row-record))
   
   (defmacro formatting-row ((&optional (stream t)
  -                           &key (record-type 'standard-row-output-record))
  +                           &key (record-type ''standard-row-output-record))
                              &body body)
     (declare (type symbol stream))
     (when (eq stream 't)
  
positive.code:    (multiple-columns-x-spacing :initarg :multiple-columns-x-spacing)
     (equalize-column-widths :initarg :equalize-column-widths)))
  
  (defmacro formatting-table
      ((&optional (stream t)
        &key x-spacing y-spacing
        multiple-columns
        (multiple-columns-x-spacing nil multiple-columns-x-spacing-supplied-p)
        equalize-column-widths (move-cursor t)
        (record-type 'empty-standard-table-output-record)
        &allow-other-keys)
       &body body)
    ;; FIXME!!! Possible recomputation
    (when (eq stream t)
      (setq stream '*standard-output*))
    (with-gensyms (table cursor-old-x cursor-old-y)
      `(with-new-output-record
           (,stream ,record-type ,table
                    :x-spacing (parse-space ,stream ,(or x-spacing #\Space)
                                            :horizontal)
                    :y-spacing (parse-space ,stream
                                            ,(or y-spacing
                                                 `(stream-vertical-spacing ,stream))
                                            :vertical)
                    :multiple-columns ,multiple-columns
                    :multiple-columns-x-spacing ,multiple-columns-x-spacing
                    :equalize-column-widths ,equalize-column-widths)
         (multiple-value-bind (,cursor-old-x ,cursor-old-y)
             (stream-cursor-position ,stream)
           (with-output-recording-options (,stream :record t :draw nil)
             ,@body
             (finish-output ,stream))
           (adjust-table-cells ,table ,stream)
           (setf (output-record-position ,table)
                 (values ,cursor-old-x ,cursor-old-y))
           (if ,move-cursor
               ;; FIXME!!!
               #+ignore
               (setf (stream-cursor-position ,stream)
                     (values cursor-new-x cursor-new-y))
               #-ignore
               nil
               (setf (stream-cursor-position ,stream)
                     (values ,cursor-old-x ,cursor-old-y)))
           (replay ,table ,stream)))))
  
  ;;; Internal
  (defgeneric table-cell-spacing (table)
  
negative.code: (defmacro formatting-cell ((&optional (stream t)
                              &key (align-x :left) (align-y :center) ; FIXME!!! It must be :baseline, but it is not yet implemented
                                   min-width min-height
                                   (record-type ''standard-cell-output-record))
                             &body body)
    (check-type stream symbol)
    (when (eq stream 't)
  