anchor.diff:  appropriate."
     (assert (member type '(:struct :union)))
     (with-wrap-attempt ("define foreign ~A ~S" type name) name
  -    (let* ((record (gethash name *foreign-incomplete*))
  -           (incomplete-p record))
  +    (let* ((record (gethash `(,type (,name)) *foreign-types*)))
         (unless record
           (setf record (make-instance 'foreign-record
                                       :name name
  
positive.code:         (setf (foreign-record-bit-size record) bit-size))
        (unless (= 0 bit-alignment)
          (setf (foreign-record-bit-alignment record) bit-alignment))
        (if (car field-list)
            (progn
              (setf (foreign-record-fields record)
                    (parse-record-fields type name field-list))
              (when incomplete-p
                (remhash name *foreign-incomplete*)))
            (setf (gethash name *foreign-incomplete*) record))
        record)))
  
  (defun define-foreign-enum (name id value-list)
  
negative.code: (defvar *foreign-types* (make-hash-table :test 'equal))
  (defvar *foreign-functions* (make-hash-table))
  (defvar *foreign-externs* (make-hash-table))
  
   ;; Temporary record indexing
  