anchor.diff:               (let* ((leaf (find-leaf (dtree-root dtree) datamatrix i))
                       (leaf-index (node-leaf-index leaf))
                       (leaf-mean (node-regression-mean leaf))
  -                    (destination-index (car (svref refine-dataset i)))
  -                    (destination-value (cdr (svref refine-dataset i))))
  +                    (refine-datum-index (car (svref refine-dataset i)))
  +                    (refine-datum-value (cdr (svref refine-dataset i))))
                  ;; (declare (type fixnum leaf-index)
  -               ;;          (type (simple-array fixnum) destination))
  -               (setf (aref destination-index tree-id) (+ leaf-index offset))
  -               (setf (aref destination-value tree-id) leaf-mean)))))
  +               ;;          (type (simple-array fixnum) refine-datum))
  +               (setf (aref refine-datum-index tree-id) (+ leaf-index offset))
  +               (setf (aref refine-datum-value tree-id) leaf-mean)))))
          (forest-dtree-list forest))
         refine-dataset)))
   
  
positive.code:            (declare (type fixnum tree-id offset))
             (loop for i fixnum from 0 below len do
               (let ((leaf-index (node-leaf-index (find-leaf (dtree-root dtree) datamatrix i)))
                     (destination (svref refine-dataset i)))
                 (declare (type fixnum leaf-index)
                          (type (simple-array fixnum) destination))
                 (setf (aref destination tree-id) (+ leaf-index offset))))))
         (forest-dtree-list forest))
        refine-dataset)))
  
  
negative.code: (defstruct (forest (:constructor %make-forest)
                     (:print-object %print-forest))
    n-tree bagging-ratio datamatrix target dtree-list
    ;; for classification
    n-class class-count-array
    datum-dim max-depth min-region-samples n-trial gain-test
    ;; for global refinement
    n-leaf index-offset)
  
  (defun %print-forest (obj stream)
    (if (forest-n-class obj)
  