anchor.diff:  (defvar *foreign-extern-list* nil)
   (defvar *foreign-constant-list* nil)
   (defvar *foreign-raw-constant-list* nil)
  +(defvar *foreign-constant-excludes* nil)
   (defvar *foreign-other-exports-list* nil)
   (defvar *foreign-symbol-exceptions* nil)
   (defvar *foreign-symbol-regex* nil)
  
positive.code: (defun parse-enum-to-const (fields)
    (loop for field in fields
          as name = (aval :name field)
          as sym = (foreign-type-symbol name :cconst *package*)
          collect `(defconstant ,sym ,(aval :value field))
          do (pushnew sym *foreign-constant-list*)))
  
  (defmethod parse-form (form (tag (eql 'struct)) &key &allow-other-keys)
    (alist-bind (name fields) form
  
negative.code:              (eval-when (:compile-toplevel :load-toplevel :execute)
                 (setf *failed-wraps* nil)
                 ,@(when constant-accessor
                     (make-constant-accessor constant-accessor constant-name-value-map))
                 ;; Read and parse the JSON
                 ;;
                 ;; Note that SBCL seems to have issues with this not
                 ;; being a toplevel form as of 1.1.9 and will crash.
                 #-sbcl
                 (with-anonymous-indexing
                   ,@(read-parse-forms in-spec exclude-definitions exclude-sources include-sources))
                 #+sbcl
                 (progn
                   (setf *foreign-record-index* (make-hash-table))
                   ,@(read-parse-forms in-spec exclude-definitions exclude-sources include-sources)
                   (setf *foreign-record-index* nil))
                 ;; Map constants
                 ,@(when constant-accessor
                     `((setf ,constant-name-value-map
                             (make-hash-table :test 'equal :size ,(length *foreign-constant-list*)))
                       (loop for (name . value) in ',*foreign-raw-constant-list*
                             do (setf (gethash name ,constant-name-value-map) value))))
                 ;; Definitions
                 ,@(make-define-list 'define-wrapper *foreign-record-list* wrapper-package)
                 ,@(make-define-list 'define-wrapper *foreign-alias-list* wrapper-package)
                 ,@(unless no-accessors
                     (make-define-list 'define-accessors *foreign-record-list* accessor-package))
                 ,@(unless no-functions
                     (make-define-list 'define-cfun *foreign-function-list* function-package))
                 ,@(make-define-list 'define-cextern *foreign-extern-list* extern-package)
                 ;; Report on anything missing
                 (compile-time-report-wrap-failures)
                 ;; Exports
                 ,(when *foreign-record-list*
                    (make-export-list *foreign-record-list* *package*))
                 ,(when *foreign-function-list*
                    (make-export-list *foreign-function-list* function-package))
                 ,(when *foreign-extern-list*
                    (make-export-list *foreign-extern-list* extern-package))
                 ,(when *foreign-constant-list*
                    (make-export-list *foreign-constant-list* constant-package))
                 ,(when *foreign-other-exports-list*
                    `(export ',*foreign-other-exports-list* ,definition-package)))
               (eval-when (:load-toplevel :execute)
  