anchor.diff:         (null (dtree-n-class dtree))))
   
   (defun %print-dtree (obj stream)
  -  (if (not (rtree? obj))
  -      (format stream "#S(DTREE :N-CLASS ~A :DATUM-DIM ~A :ROOT ~A)"
  -              (dtree-n-class obj)
  -              (dtree-datum-dim obj)
  -              (dtree-root obj))
  -      (format stream "#S(RTREE :DATUM-DIM ~A :ROOT ~A)"
  -              (dtree-datum-dim obj)
  -              (dtree-root obj))))
  +  (print-unreadable-object (obj stream :type t :identity t)
  +    (format stream ":N-CLASS ~A :DATUM-DIM ~A :ROOT ~A"
  +            (dtree-n-class obj)
  +            (dtree-datum-dim obj)
  +            (dtree-root obj))))
   
   (defun make-dtree (n-class datamatrix target
                      &key (max-depth 5) (min-region-samples 1) (n-trial 10)
  -                     (gain-test #'entropy)
  -                     (remove-sample-indices? t)
  -                     (save-parent-node? nil)
  -                     sample-indices)
  +                        (gain-test #'entropy)
  +                        (remove-sample-indices? t)
  +                        (save-parent-node? nil)
  +                        sample-indices)
     (let* ((len (if sample-indices
                     (length sample-indices)
                     (array-dimension datamatrix 0)))
            (dtree (%make-dtree
                    :n-class n-class
  -                 :class-count-array (make-array n-class :element-type 'double-float)
  +                 :class-count-array (and n-class (make-array n-class :element-type 'double-float))
                    :datum-dim (array-dimension datamatrix 1)
                    :datamatrix datamatrix
                    :target target
  
positive.code:   parent-node left-node right-node dtree leaf-index)
  
  (defun %print-node (obj stream)
    (format stream "#S(NODE :TEST ~A :GAIN ~A)"
            (list (node-test-attribute obj) (node-test-threshold obj))
            (node-information-gain obj)))
  
  (defun make-root-node (dtree &key sample-indices)
    (let* ((len (array-dimension (dtree-datamatrix dtree) 0))
  
negative.code:          (right-node (make-node nil node)))
      (setf (node-left-node node) left-node
            (node-right-node node) right-node)
      (dotimes (_ n-trial)
        (multiple-value-bind (attribute threshold)
            (make-random-test node)
          (multiple-value-bind (left-len right-len)
  