anchor.diff:                      (if make-function-p
                           `(defun ,fun-name (,@maybe-cbv-return
                                              ,@param-names ,@(when (foreign-function-variadic-p fun) `(&rest ,rest)))
  +                           ,@(when maybe-cbv-return `((declare (ignorable ,@maybe-cbv-return))))
                              ,(let ((!fun (find-function name-or-function)))
                                 (with-slots ((!fields fields)) !fun
                                   (foreign-to-ffi
  
positive.code:                                                        param-syms (when (foreign-function-variadic-p fun) rest))))))
                          `(defmacro ,fun-name (,@maybe-cbv-return
                                                ,@param-names ,@(when (foreign-function-variadic-p fun) `(&rest ,rest)))
                             (let ((,!fun (find-function ',name-or-function)))
                               (with-slots ((,!fields fields)) ,!fun
                                 (foreign-to-ffi
  
negative.code: 
  (defmethod foreign-to-ffi (type names params fields body)
    `(let ((,(car names) ,(car params)))
       (declare (ignorable ,(car names)))
       ,(next-ffi)))
  
  ;;; Record by value.. just pass through the pointer
  (defmethod foreign-to-ffi ((type foreign-record) names params fields body)
    `(let ((,(car names) ,(car params)))
       (declare (ignorable ,(car names)))
       ,(next-ffi)))
  
  (defmethod foreign-to-ffi ((type foreign-enum) names params fields body)
  