anchor.diff:      (list (append (process-opinion opinion) hashcode dircode children))))
   
   ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  +;; Objective bundle
  +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  +
  +(defun objective-data (opfilelist)
  +  (let* ((opinion-store (extend-opinions (load-opinion-files opfilelist)))
  +         (optree (opinion-tree-from-opinions (alexandria:hash-table-values opinion-store)))
  +         (scsc (make-score-script optree opinion-store))
  +         (rooturl (assoc-cdr :rooturl (car (alexandria:hash-table-values opinion-store)))))
  +    (list :opinion-store opinion-store :opinion-tree optree :score-script scsc :rooturl rooturl)))
  +
  +(defun objective-data-for-dir (dirpath)
  +  (objective-data (uiop:directory-files dirpath)))
  +
  +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
   ;; Score script interpreter
   ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
   
  
positive.code: (defvar *direction*)
  (defvar *target-author* nil)
  
  
  (defun stick-other-flag-on-target (flag ballot-box warstat)
    (multiple-value-bind (right up wrong down) (warflagger:ballot-box-totals ballot-box)
  
negative.code:          (if (member sym *safe-symbols* :test #'string-equal)
               (symbolize sym :package package)
               (error "Unknown symbol in score script"))))))
  
  ;;FIXME: add a score-script type and some type checking. Important for safety.
  
  