anchor.diff:  
   (defmethod add-child ((tree n-ary-tree) child)
     (setf child (typecase child
  -		(n-ary-tree child)
  -		(T (make-instance 'n-ary-tree :key child))))
  +                (n-ary-tree child)
  +                (T (make-instance 'n-ary-tree :key child))))
     (setf (parent child) tree)
     (push child (children tree))
     child)
  
positive.code:   *no significant speed increase was noticed by using differnt tests*
  "
    (flet ((mk-tbl () (make-hash-table :test (or (typecase (first tests)
  						 (symbol (first tests)))
  					       'equal))))
      (iter
        (with root = (mk-tbl))
        (for item in list)
        ;;ensure the leaf node  
        (categorize-item item root :keys keys :tests (rest tests))
        (finally (return root)))))
  
  
negative.code: (defmethod %grouping-items ((ht hash-table))
    "Returns the items in a given group"
    (iter (for (k v) in-hashtable ht)
          (appending (%grouping-items v))))
  
  (defmethod %grouping-items ((n null)) n)
  
  (defmethod %grouping-items ((tn n-ary-tree))
    "Returns the items in a given group"
    (append (data tn)
            (iter (for kid in (children tn))
                  (appending (%grouping-items kid)))))
  
  (defmethod make-child-grouped-list ((gl grouped-list) key-value grouped-list)
    (make-instance
  