anchor.diff:         (setf list (delete old list)))
        (setf (,context-accessor self) (cons service_context list))))
   
  -(define-method "ADD_REQUEST_SERVICE_CONTEXT" ((self client-request)
  +(define-method "ADD_REQUEST_SERVICE_CONTEXT" ((self client-request-info)
                                                       service_context replace)
  -  (%add-service-context self service-context-list 
  +  (%add-service-context (the-request self) service-context-list 
                           service_context replace))
   
  -(define-method "REQUEST_ID" ((self client-request))
  -  (request-id self))
  -
  -(define-method "OPERATION" ((self client-request))
  -  (request-operation self))
  -
  -(define-method "ARGUMENTS" ((self client-request))
  +(define-method "REQUEST_ID" ((self client-request-info))
  +  (request-id (the-request self)))
  +
  +(define-method "OPERATION" ((self client-request-info))
  +  (request-operation (the-request self)))
  +
  +(define-method "ARGUMENTS" ((self client-request-info))
     (map 'list
          (lambda (param)
            (Dynamic:Parameter :argument (op:argument param)
                               :mode (op:arg_modes param)))
  -       (cdr (request-paramlist self))))
  -
  -(define-method "EXCEPTIONS" ((self client-request))
  -   (request-exceptions self))
  -
  -(define-method "CONTEXTS" ((self client-request))
  +       (cdr (request-paramlist (the-request self)))))
  +
  +(define-method "EXCEPTIONS" ((self client-request-info))
  +   (request-exceptions (the-request self)))
  +
  +(define-method "CONTEXTS" ((self client-request-info))
     nil)
   
  -(define-method "OPERATION_CONTEXT" ((self client-request))
  +(define-method "OPERATION_CONTEXT" ((self client-request-info))
     nil)
   
  -(define-method "RESULT" ((self client-request))
  -  (op:return_value self))
  -
  -(define-method "RESPONSE_EXPECTED" ((self client-request))
  -  (response-expected self))
  -
  -(define-method "REPLY_STATUS" ((self client-request))
  +(define-method "RESULT" ((self client-request-info))
  +  (op:return_value (the-request self)))
  +
  +(define-method "RESPONSE_EXPECTED" ((self client-request-info))
  +  (response-expected (the-request self)))
  +
  +(define-method "REPLY_STATUS" ((self client-request-info))
   #| FIXME:
   This attribute describes the state of the result of the operation invocation. 
   Its value can be one of the following:
  
positive.code:   (or (find id service-context-list :key #'op:context_id)
        (raise-system-exception 'CORBA:bad_param 23)))
  
  (define-method "GET_REQUEST_SERVICE_CONTEXT" ((self client-request) id)
    (get-service-context id (service-context-list self)))
  
  (define-method "GET_REPLY_SERVICE_CONTEXT" ((self client-request) id)
    (get-service-context id (reply-service-context self)))
  
  
  
  ;;;; ServerRequestInfo aspect
  
  
  (define-method "REQUEST_ID" ((self server-request))
    (request-id self))
  
  (define-method "OPERATION" ((self server-request))
    (request-operation self))
  
  (define-method "ARGUMENTS" ((self server-request))
    (cond ((arguments-set-p self)
           (map 'list (lambda (nv)
                        (Dynamic:Parameter :argument (op:argument nv)
                                           :mode (op:mode nv)))
                (request-arguments self)))
          ((slot-boundp self 'meta-args)
           (loop with args = (request-args self)
                 for (nil mode tc) in (meta-args self)
                 collect (Dynamic:Parameter :argument (CORBA:Any :any-value
                                                                 (if (not (eql mode :param_out))
                                                                   (pop args))
                                                                 :any-typecode tc)
                                            :mode mode)))
          (t (raise-system-exception 'CORBA:no_resources))))
  
  (define-method "EXCEPTIONS" ((self server-request))
    (cond ((slot-boundp self 'exceptions)
           (request-exceptions self))
          (t
           (raise-system-exception 'CORBA:no_resources))))
  
  (define-method "CONTEXTS" ((self server-request))
    (raise-system-exception 'CORBA:no_resources))
  
  (define-method "OPERATION_CONTEXT" ((self server-request))
    (raise-system-exception 'CORBA:no_resources))
  
  (define-method "RESULT" ((self server-request))
    (cond ((not (slot-boundp self 'result))
           (raise-system-exception 'corba:no_resources))
          ((dsi-request-p self)
           (request-result self))
          (t 
           (let ((type (request-result-type self)))
             (CORBA:Any :any-typecode type
                        :any-value (unless (typep type 'void-typecode)
                                     (first (request-result self))))))))
  
  
  (define-method "RESPONSE_EXPECTED" ((self server-request))
    (response-expected self))
  
  (define-method "REPLY_STATUS" ((self server-request))
    (raise-system-exception 'CORBA:NO_IMPLEMENT))
  
  (define-method "FORWARD_REFERENCE" ((self server-request))
    (raise-system-exception 'CORBA:NO_IMPLEMENT))
  
  (define-method "GET_SLOT" ((self server-request) ID)
    (DECLARE (IGNORE ID))
    (raise-system-exception 'CORBA:NO_IMPLEMENT))
  
  (define-method "GET_REQUEST_SERVICE_CONTEXT" ((self server-request) id)
    (get-service-context id (service-context-list self)))
  
  (define-method "GET_REPLY_SERVICE_CONTEXT" ((self server-request) id)
    (get-service-context id (reply-service-context self)))
  
  (define-method "SENDING_EXCEPTION" ((self server-request))
    (request-exception self))
  
  (define-method "OBJECT_ID" ((self server-request))
    (raise-system-exception 'CORBA:NO_IMPLEMENT))
  
  (define-method "ADAPTER_ID" ((self server-request))
    (raise-system-exception 'CORBA:NO_IMPLEMENT))
  
  (define-method "TARGET_MOST_DERIVED_INTERFACE" ((self server-request))
    (raise-system-exception 'CORBA:NO_IMPLEMENT))
  
  (define-method "GET_SERVER_POLICY" ((self server-request) _TYPE)
    (DECLARE (IGNORE _TYPE))
    (raise-system-exception 'CORBA:NO_IMPLEMENT))
  
  (define-method "SET_SLOT" ((self server-request) _ID _DATA)
    (DECLARE (IGNORE _ID _DATA))
    (raise-system-exception 'CORBA:NO_IMPLEMENT))
  
  (define-method "TARGET_IS_A" ((self server-request) _ID)
    (DECLARE (IGNORE _ID))
    (raise-system-exception 'CORBA:NO_IMPLEMENT))
  
  (define-method "ADD_REPLY_SERVICE_CONTEXT" ((self server-request)
                                              service_context replace)
    (%add-service-context self reply-service-context
                          service_context replace))
  
  
  
negative.code:   (declare (ignore operation)))
  
  
  ;;;; ClientRequestInfo methods
  
  
  (define-method "TARGET" ((self client-request-info))
     (request-target (the-request self)))
  
  (define-method "EFFECTIVE_TARGET" ((self client-request-info))
    (let ((target (request-target (the-request self))))
      (or (object-forward target) target)))
  
  (define-method "EFFECTIVE_PROFILE" ((self client-request-info))
   (request-effective-profile (the-request self)))
  
  
  ;;; readonly attribute any received_exception;
  