anchor.diff:  ;;;| boolean is_a (in string logical_type_id);
   ;;; _is_a in lisp mapping (in clorb-request)
   
  -(define-method _is_a ((obj object) interface-id)
  -  (cond
  -   ((equal interface-id (object-id obj)) t)
  -   (t   
  -    (multiple-value-bind (result req)
  -      (op:_create_request
  -       obj nil "_is_a"  
  -       (list
  -        (CORBA:NamedValue
  -         :argument interface-id
  -         :arg_modes ARG_IN))
  -       (CORBA:NamedValue
  -        :argument (CORBA:Any :any-typecode CORBA:tc_boolean)
  -        :arg_modes ARG_OUT)
  -       0)
  -      (declare (ignore result))
  -      (request-funcall req)))))
  +(define-method _is_a ((obj CORBA:Object) interface-id)
  +  (object-is-a obj interface-id))
  +
  +(define-method _is_a ((obj CORBA:Proxy) interface-id)
  +  (or (object-is-a obj interface-id)
  +      (static-call ("_is_a" obj)
  +                   :output ((buffer) (marshal-string interface-id buffer))
  +                   :input ((buffer) (unmarshal-bool buffer)))))
   
   
   ;;;| boolean	non_existent();
  
positive.code: 
  (define-method _non_existent ((obj CORBA:Proxy))
    ;;FIXME: Should perhaps send a "_non_existent" message to object ?
    (= (locate obj) 0))
  
  
  ;;; Deferred from Any
  
negative.code: 
  ;;;; CORBA:Object / CORBA:Proxy
  
  (defgeneric object-is-a (object id)
    (:method-combination or))
  
  (defgeneric object-id (object))
  
  (define-interface CORBA:Object ()
    :id "IDL:omg.org/CORBA/Object:1.0"
    :name "Object")
  
  (defmethod object-id ((obj CORBA:Object))
    (or (some #'(lambda (x)
  