anchor.diff:                             :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.
  -                                     ))))))
  +                           :warstats (gethash (car node) warstats)))))))
                      (when (cdr tree)
                        (proc (cdr tree) (cons (car tree) location)))))
           (proc tree nil)))))
  
positive.code:   (member (grab-one (liql opinid 'opinion 'opinion.flag))
            '("Negative RaiseQuestion" "Negative NeedsReference")))
  
  (defun question-list-for-rooturl (rooturl)
    (collecting
      (let ((tree (opinion-tree-for-rooturl rooturl)))
        (labels ((proc (tree location)
  
negative.code:     (with-open-file (fh (make-warstats-path rootid :warstats)
                          :direction :output :if-exists :overwrite
                          :if-does-not-exist :create)
        (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 warstats) fh))
      (with-open-file (fh (make-warstats-path rootid :text)
                          :direction :output :if-exists :overwrite
                          :if-does-not-exist :create)
  