The Lisp object to be translated to a foreign object.
A CFFI type specifier.
The primitive C value, ready to be passed to a primitive foreign function.
Something of a translation state; you must pass it to
free-converted-object along with the foreign value for that to
This is an external interface to the type translation facility. In the implementation, all foreign functions are ultimately defined as type translation wrappers around primitive foreign function invocations.
This function is available mostly for inspection of the type translation process, and possibly optimization of special cases of your foreign function calls.
Its behavior is better described under
CFFI-USER> (convert-to-foreign t :boolean) ⇒ 1 ⇒ NIL CFFI-USER> (convert-to-foreign "hello, world" :string) ⇒ #<FOREIGN-ADDRESS #x097C5F80> ⇒ T CFFI-USER> (code-char (mem-aref * :char 5)) ⇒ #\,