When you want to embed the Guile Scheme interpreter into your
program or library, you need to link it against the libguile
library (see Linking Programs With Guile). Once you have done
this, your C code has access to a number of data types and
functions that can be used to invoke the interpreter, or make
new functions that you have written in C available to be called
from Scheme code, among other things. Scheme is different from C
in a number of significant ways, and Guile tries to make the
advantages of Scheme available to C as well. Thus, in addition
to a Scheme interpreter, libguile also offers dynamic types,
garbage collection, continuations, arithmetic on arbitrary sized
numbers, and other things. The two fundamental concepts are
dynamic types and garbage collection. You need to understand how
libguile offers them to C programs in order to use the rest of
libguile. Also, the more general control flow of Scheme caused
by continuations needs to be dealt with. Running asynchronous
signal handlers and multi-