anchor.diff:  	     ;; Remove old children
   	     (when valid
   	       (loop while (tree-store-remove store child-iter))))
  -	   (let ((gobject (tree-model-value store iter 'object)))
  -	     (insert-parts (object-data gobject 'object) store iter))
  +	   (let ((container (tree-model-value store iter 'object)))
  +	     (insert-parts (slot-value container 'object) store iter))
   	   (tree-view-expand-row view path nil))))
   
       (make-instance 'dialog
  
positive.code:   "<unbound>")
  
  (defmethod insert-object ((object t) store parent &optional (name ""))
    (let ((gobject (make-instance 'gobject)) ; to "hang" the lisp object on
  	(has-parts (object-has-parts-p object)))
      (setf (object-data gobject 'object) object)
      (let ((iter (tree-store-append store parent 
  		 (vector name (object-to-string object) 
  			 gobject (not has-parts)))))
        (when has-parts
  	;; Insert dummy child
  	(tree-store-append store iter (vector "" "" gobject t))))))
  
  (defmethod insert-parts :around ((object t) store parent)
    (when (object-has-parts-p object)
  
negative.code: (defgeneric insert-parts (object store parent))
  (defgeneric object-has-parts-p (object))
  (defgeneric decompose-describe-object (object))
  
  
  ;; A container to hold lisp objects "inside" the tree store
  (defclass object-container (gobject)
    ((object :initarg :object))
    (:metaclass gobject-class))
  
  
  (defun ginspect (object)
  