anchor.diff:                        (incf total-total (profile-entry-total-count s))
                         (incf total-direct (profile-entry-direct-count s)))
                    ;; Print.
  -                 (format t "~S:~%" thread)
  +                 (format stream "~S:~%" thread)
                    (loop
                       for s across samples
  -                    do (format t "  ~D ~D%~15T~D ~D%~30T~S~%"
  +                    do (format stream "  ~D ~D%~15T~D ~D%~30T~S~%"
                                  (profile-entry-direct-count s) (* (/ (profile-entry-direct-count s) total-direct) 100.0)
                                  (profile-entry-total-count s) (* (/ (profile-entry-total-count s) total-total) 100.0)
                                  (profile-entry-function s)))
  
positive.code:       (return-from save-profile))
      (format s "Version ~A~%" (lisp-implementation-version))
      (when (member verbosity '(:report :full))
        (let ((*standard-output* s))
          (generate-report profile order-by))
      (when (eql verbosity :full)
        (loop
           for sample across (profile-data profile) do
  
negative.code:                 (format s " Call-stack:~%")
                  (loop
                     for (fn . offset) across (thread-sample-call-stack thread) do
                       (format s "  ~S + ~D~%" fn offset))))))
    profile)
  
  (defstruct tree-branch
    value
  