anchor.diff:      (with-open-file (fh (make-warstats-path rootid :warstats)
                           :direction :output :if-exists :overwrite
                           :if-does-not-exist :create)
  -      (json:encode-json (generate-rooturl-warstats url :reference-cache references) fh))
  +      (json:encode-json warstats fh))
       (with-open-file (fh (make-warstats-path rootid :questions)
                           :direction :output :if-exists :overwrite
                           :if-does-not-exist :create)
  -      (json:encode-json (question-list-for-rooturl url) fh))
  +      (json:encode-json (question-list-for-rooturl url warstats) fh))
       (with-open-file (fh (make-warstats-path rootid :text)
                           :direction :output :if-exists :overwrite
                           :if-does-not-exist :create)
  
positive.code:                            :tree-address (nreverse (cons (car node) location))
                             :questopinid (assoc-cdr :id opin)
                             :questopinurl (assoc-cdr :url opin)
                             ;;FIXME: Should have warstats summary? Would be nice.
                                       ))))))
                     (when (cdr tree)
                       (proc (cdr tree) (cons (car tree) location)))))
          (proc tree nil)))))
  
negative.code:                  ;;FIXME: Suboptimal place, but somebody has to do it...
                   (make-rooturl-real rootid)
                   (grab-text url)))
           (references (reference-list-for-rooturl url))
           (warstats (generate-rooturl-warstats url :reference-cache references)))
      (uiop/common-lisp:ensure-directories-exist (make-warstat-path rootid :opinions))
      (with-open-file (fh (make-warstats-path rootid :opinions)
                          :direction :output :if-exists :overwrite
  