anchor.diff:    :defaults ())
   
   (defmethod addto ((c container) (object contained))
  -  ;;(pushnew value (contents c))
  -  (setf (contents c)
  -    (cons object
  -          (delete-if (lambda (old)
  -                       (or (equalp (op:name old) (op:name object))
  -                           (equal (op:id old) (op:id object))))
  -                     (contents c))))
  -  (setf (slot-value object 'defined_in) c)
  +  (setf (slot-value object 'containing_repository)
  +        (op:containing_repository c))
  +  (let ((id (op:id object))
  +        (name (op:name object)))
  +    (setf (contents c)
  +          (cons object
  +                (delete-if (lambda (old)
  +                             (or (equalp (op:name old) name)
  +                                 (equal (op:id old) id)))
  +                           (contents c))))
  +    (unregister-irobj c id)
  +    (setf (slot-value object 'defined_in) c)
  +    (register-irobj c id object))
     object)
   
   (define-method contents ((obj container) limit-type exclude-inherit)
  
positive.code: 
  ;;;  Contained lookup_id (in RepositoryId search_id);
  
  (define-method lookup_id ((container Repository) search-id)
    (block lookup
      (let ((content-stack
             (list (contents container))))
        (loop while content-stack
            do (map nil (lambda (obj)
                          (if (equal (op:id obj) search-id)
                              (return-from lookup obj)
                            (if (typep obj 'container)
                                (push (contents obj) content-stack))))
                    (pop content-stack)))
        nil)))
  
  
  ;;;  PrimitiveDef get_primitive (in PrimitiveKind kind);
  
negative.code: 
  (defgeneric addto (container contained)
    (:documentation "Add a contained to a container")
  )
  
  
  