anchor.diff:      (with-temporary-margins (stream :right `(:absolute ,fill-width))
         (letf (((stream-end-of-line-action stream) :wrap*)
                ((line-break-strategy stream) break-characters)
  -             ((after-line-break stream) fresh-line-fn)
  -             ((graphics-state-ink (graphics-state stream)) (medium-ink stream))
  -             ((graphics-state-text-style (graphics-state stream)) (medium-text-style stream)))
  +             ((after-line-break stream) fresh-line-fn))
           (when (stream-start-line-p stream)
             (funcall fresh-line-fn stream nil))
           (funcall continuation stream)))))
  
positive.code:                                   fill-width
                                    break-characters
                                    after-line-break
                                    (after-line-break-initially nil)
                                    (after-line-break-subsequent t))
                            &body body)
    (declare (ignore fill-width break-characters))
    (setq stream (stream-designator-symbol stream '*standard-output*))
    (with-keywords-removed (args (:after-line-break
                                  :after-line-break-initially
                                  :after-line-break-subsequent))
     (with-gensyms (continuation fresh-line-fn)
       (alexandria:once-only (after-line-break
                              after-line-break-initially
                              after-line-break-subsequent)
         `(flet ((,continuation (,stream)
                   ,@body)
                 (,fresh-line-fn (,stream soft-newline-p &aux (gs (graphics-state stream)))
                   (when (or (and ,after-line-break-initially (null soft-newline-p))
                             (and ,after-line-break-subsequent soft-newline-p))
                     (with-end-of-line-action (stream :allow) ; prevent infinite recursion
                       (with-drawing-options (stream :text-style (graphics-state-text-style gs)
                                                     :ink (graphics-state-ink gs))
                         (etypecase ,after-line-break
                           (string   (write-string ,after-line-break ,stream))
                           (function (funcall ,after-line-break ,stream soft-newline-p))
                           (null nil)))))))
            (declare (dynamic-extent #',continuation #',fresh-line-fn))
            (invoke-with-filling-output ,stream #',continuation #',fresh-line-fn ,@args))))))
  
  (defgeneric invoke-with-indenting-output
      (stream continuation &key indent move-cursor)
  
negative.code: 
  ;;; Mixin is used to store text-style and ink when filling-output it is invoked.
  
  (defclass filling-output-mixin (gs-ink-mixin gs-text-style-mixin)
    ((lbs :accessor line-break-strategy :initarg :line-break-strategy
          :documentation "T for a default word wrap or a list of break characters.")
     (alb :accessor after-line-break :initarg :after-line-break
          :documentation "Function accepting stream to call after the line break."))
    (:default-initargs :line-break-strategy t :after-line-break nil))
  
  (defgeneric invoke-with-filling-output (stream continuation fresh-line-fn
                                          &key fill-width break-characters)
  