anchor.diff:           (marshal-multiple values types buffer))))
   
   
  +(defparameter *exact-type-value-marshap-opt* t)
  +
   (defun marshal-value (value buffer &optional expected-id)
     (flet ((marshal-value-1 (value buffer)
              (let ((id (object-id value)))
  
positive.code:   :kind :tk_value_box
    :cdr-syntax (complex :tk_string :tk_string :tk_typecode)
    :params (id name content_type)
    :share alias-typecode                 ; ? realy share non abstract class ?
    :shared-params 3)
  
  
  (defclass value-box ()
  
negative.code:         ,@supported_interfaces)
         (,@(loop for (name) in members
                  collect `(,(feature name) :initarg ,(key name)))))
       (defmethod shared-initialize ((value ,symbol) slot-names &key factory
                                     create-for-unmarshal  &allow-other-keys)
         (declare (ignore slot-names create-for-unmarshal))
         (if factory (raise-system-exception 'CORBA:BAD_PARAM))
         (call-next-method))
       (defmethod object-id ((value ,symbol))
  