anchor.diff:  
   (defclass standard-page-layout ()
     ((%page-region :reader stream-page-region :writer (setf %page-region))
  -   (margins :initform '(:left   (:absolute 0)
  -                        :top    (:absolute 0)
  +   (margins :initform '(:left   (:relative 0)
  +                        :top    (:relative 0)
                           :right  (:relative 0)
                           :bottom (:relative 0))
               :accessor stream-text-margins :type margin-spec)))
  
positive.code: (defmethod initialize-instance :after ((instance standard-page-layout)
                                         &key text-margins text-margin)
    (macrolet ((thunk (edge default)
                 `(unless (getf text-margins ,edge)
                    (setf (getf text-margins ,edge) ,default))))
      (thunk :left   '(:absolute 0))
      (thunk :top    '(:absolute 0))
      (thunk :right  (if text-margin
                         `(:absolute ,text-margin)
                         `(:relative 0)))
      (thunk :bottom '(:relative 0))
      (setf (stream-text-margins instance) text-margins)))
  
  (defgeneric stream-cursor-initial-position (stream)
  
negative.code:   (ignore-errors ; destructuring-bind may error; that yields invalid spec
      (destructuring-bind (&key left top right bottom) margins
        (flet ((margin-spec-p (m)
                 (and (member (first m) '(:relative :absolute))
                      (not (null (second m))))))
          (every #'margin-spec-p (list left top right bottom))))))
  
  