4.2.1 Use of Reference Arguments

LISP and C cannot in general share memory so the FLI needs to make a temporary foreign object from the Lisp String, pass that to C, and then convert the data in that foreign object back to a Lisp object when C returns.