anchor.diff:  (defstruct (dtree (:constructor %make-dtree)
                     (:print-object %print-dtree))
     n-class class-count-array datum-dim datamatrix target
  -  root max-depth min-region-samples n-trial gain-test
  +  root max-depth min-region-samples n-trial gain-test remove-sample-indices?
     tmp-arr1 tmp-index1 tmp-arr2 tmp-index2
     best-arr1 best-index1 best-arr2 best-index2
     max-leaf-index id)
  
positive.code: 
  (defun make-forest (n-class datum-dim datamatrix target
                      &key (n-tree 100) (bagging-ratio 0.1) (max-depth 5) (min-region-samples 1)
                        (n-trial 10) (gain-test #'entropy))
    (let ((forest (%make-forest
                   :n-tree n-tree
                   :bagging-ratio bagging-ratio
  
negative.code:           (make-partial-arr (dtree-best-arr1 dtree) (dtree-best-index1 dtree))
            (node-sample-indices right-node)
            (make-partial-arr (dtree-best-arr2 dtree) (dtree-best-index2 dtree)))
      (when (dtree-remove-sample-indices? dtree)
        (setf (node-sample-indices node) nil))
      node))
  
  (defun stop-split? (node)
  