anchor.diff:  	(format stream "at 0x~X" (sap-int (foreign-location instance)))
         (write-string "at \"unbound\"" stream))))
   
  -(defmethod initialize-instance :around ((instance proxy) &rest initargs)
  -  (declare (ignore initargs))
  +(defmethod initialize-instance :around ((instance proxy) &rest initargs &key &allow-other-keys) 
  +  (setf  
  +   (foreign-location instance)
  +   (apply #'allocate-foreign instance initargs))
     (prog1
         (call-next-method)
       (cache-instance instance)
  
positive.code: (defgeneric reference-foreign (class location))
  (defgeneric unreference-foreign (class location))
  (defgeneric invalidate-instance (object))
  
  (defun foreign-location (instance)
    (slot-value instance 'location))
  
negative.code:   (setf 
     (slot-value slotd 'writer-function)
     (if (not (slot-boundp slotd 'setter))
         #'(lambda (value object)
  	   (declare (ignore value object))
  	   (error "Slot is not writable: ~A" (slot-definition-name slotd)))
       (with-slots (setter) slotd
         (etypecase setter
  	 (function setter)
  