anchor.diff:       (+ m0 (/ a 2))
        (+ m0 (if (eq (label-pane-label-alignment pane) :top) 0 d) (/ a 2))
        ;; position of text
  -     (+ m0 (if (slot-value pane 'contents)
  +     (+ m0 (if (sheet-children pane)
                  (+ a m0 m0 d)
                0))
        (+ m0 a))))
  
positive.code: 		(stream-replay pane (make-bounding-rectangle x1 (+ y2 dy) x2 y2)))
  	       (t
  		(draw-rectangle* (sheet-medium pane) x1 y1 x2 (+ y1 dy) :ink +background-ink+)
  		(stream-replay pane (make-bounding-rectangle x1 y1 x2 (+ y1 dy)))))
  	      )
  	     ((and (zerop dy)
  		   (< (abs dx) (- x2 x1)))
  	      (copy-area pane 0 0 (- x2 x1) (- y2 y1) dx 0)
  
negative.code:                  for x = 0 then (+ x w)
                   for w in cols
                   for j from 0
                   do (layout-child (aref array i j) (pane-align-x pane) (pane-align-y pane)
                                    x y w h))))))
  
  
  (defun table-pane-p (pane)
    (typep pane 'table-pane))
  
  (defmacro tabling ((&rest options &key (grid nil) &allow-other-keys) &body contents)
    (if grid
        `(make-pane 'grid-pane  ,@options :contents (list ,@contents))
        `(make-pane 'table-pane ,@options :contents (list ,@contents))))
  
  
  