anchor.diff:      (thunk :left   '(:absolute 0))
       (thunk :top    '(:absolute 0))
       (thunk :right  (or text-margin '(:relative 0)))
  -    (thunk :bottom '(:relative 0))))
  +    (thunk :bottom '(:relative 0))
  +    (setf (stream-text-margins instance) text-margins)))
   
   (defgeneric page-cursor-initial-position (stream)
     (:documentation "Returns two values: x and y initial position for a cursor on page.")
  
positive.code:     (thunk :bottom))
    (check-type new-margins margin-spec)
    (unless (equal new-margins old-margins)
      (slot-makunbound stream '%page-region)))
  
  (defgeneric invoke-with-temporary-page (stream continuation &key margins move-cursor)
    (:method ((stream standard-page-layout) continuation &key margins (move-cursor t))
  
negative.code:   (unless (region-equal sheet-region (sheet-region stream))
      (slot-makunbound stream '%page-region)))
  
  (defmethod (setf stream-text-margins) :around
      (new-margins (stream standard-page-layout)
       &aux (old-margins (stream-text-margins stream)))
    (macrolet ((thunk (edge)
  