anchor.diff:    (canonicalize (parse-type type)))
   
   ;;; Translate VALUE to a foreign object of the type represented by
  -;;; TYPE, which will be a subclass of ENHANCED-FOREIGN-TYPE.  Returns
  -;;; the foreign value and an optional second value which will be
  -;;; passed to FREE-TRANSLATED-OBJECT as the PARAM argument.
  +;;; TYPE, which will be a subclass of TRANSLATABLE-FOREIGN-TYPE.
  +;;; Returns the foreign value and an optional second value which will
  +;;; be passed to FREE-TRANSLATED-OBJECT as the PARAM argument.
   (defgeneric translate-to-foreign (value type)
     (:method (value type)
       (declare (ignore type))
  
positive.code: ;;; above *RUNTIME-TRANSLATOR-FORM* which includes a call to
  ;;; FREE-TRANSLATED-OBJECT.  (Or else there would occur no translation
  ;;; at all.)
  (defmethod expand-to-foreign-dyn (value var body (type enhanced-foreign-type))
    (multiple-value-bind (expansion default-etp-p)
        (expand-to-foreign value type)
      (if default-etp-p
  
negative.code:     `(let ((,var ,value)) ,@body)))
  
  (defmethod expand-to-foreign-dyn :around
      (value var body (type translatable-foreign-type))
    (let ((*runtime-translator-form*
           (with-unique-names (param)
             `(multiple-value-bind (,var ,param)
  