anchor.diff:    ((variadic-p :initarg :variadic-p
                  :initform nil :accessor foreign-function-variadic-p)))
   
  +(defun find-type (typespec)
  +  (if (keywordp typespec)
  +      typespec
  +      (gethash typespec *foreign-types*)))
  +
   (defun undefined-enum-value (value)
     (autowrap-continuable-error "Undefined enum value: ~S" value))
   
  
positive.code: name for the type will be `(:struct NAME)` or `(:union NAME)`, as
  appropriate."
    (assert (member type '(:struct :union)))
    (let ((record (make-instance 'foreign-record
                                 :name name
                                 :type type
                                 :bit-size bit-size
                                 :bit-alignment bit-alignment)))
      (define-foreign-type `(,type (,name)) record)
      (setf (foreign-record-fields record)
            (parse-record-fields field-list))
      record))
  
  (defun define-foreign-enum (name id value-list)
    "Define a foreign enum given `NAME`, a symbol, and a list of
  
negative.code: 
  (defun make-field-deref (field ref)
    (let* ((type (or (basic-foreign-type (foreign-type field))
                     (undefined-type-error (foreign-type field) "dereference field ~S" field))))
      `(cffi-sys:%mem-ref ,ref ,type)))
  
  (defun make-field-setter (field ref value)
  