anchor.diff:         (if *inhibit-string-conversion*
              (values "" ,ptr)
              (values
  +            ;; FOREIGN-STRING-TO-LISP will return NIL for a null pointer
               (cffi:foreign-string-to-lisp ,ptr)
               ,ptr)))))
   
  
positive.code:                                                      :convention :cdecl)))))
  
  (defvar *build-libffi-definition*
    (lambda (fun &rest r)
      (declare (ignore r))
      `(error "Call-by-value not implemented without loading cl-autowrap/libffi
    (trying to call ~S)"
              ',(foreign-type-name fun))))
  
  (defmacro define-cfun (name-or-function &optional (package *package*))
    (when-let ((fun (find-function name-or-function)))
  
negative.code:         (let* ((fun-name (intern (symbol-name name) package))
                 (param-names (mapcar #'foreign-type-name fields))
                 (param-syms (mapcar (lambda (x) (gensym (symbol-name x))) param-names))
                 (make-function-p (not (foreign-function-variadic-p fun)))
                 (maybe-cbv-return
                   (when (cbv-return-p fun)
                     (list 'return-value))))
  