anchor.diff:       `(fli:define-foreign-function (,ff-name ,name :source)
             ,(mapcar (lambda (ty) (list (gensym) (convert-foreign-type ty)))
                      types)
  -        :result-type ,rettype
  +        :result-type ,(convert-foreign-type rettype)
           :language :ansi-c
  -        :calling-convention :cdecl)
  +        ;; avoid warning about cdecl not being supported on mac platforms
  +        #-mac ,@'(:calling-convention :cdecl))
        `(,ff-name ,@args))))
   
   ;;;# Callbacks
  
positive.code: 
  (defmacro foreign-var-ptr (name)
    "Return a pointer pointing to the foreign variable NAME."
    (let ((fv-name (intern name '#:cffi-sys-fv)))
      `(progn
         (fli:define-foreign-variable (,fv-name ,name)
             :accessor :address-of)
         (,fv-name))))
negative.code: be stack allocated if supported by the implementation."
    (unless size-var
      (setf size-var (gensym "SIZE")))
    `(let* ((,size-var ,size)
            (,var (foreign-alloc ,size-var)))
       (unwind-protect
            (progn ,@body)
         (foreign-free ,var))))
  
  ;  `(fli:with-dynamic-foreign-objects ()
  ;     (let* ((,size-var ,size)
  ;            (,var (fli:alloca :pointer-type :pointer :nelems ,size-var)))
  ;       ,@body)))
  
  ;;;# Shareable Vectors
  
  