Guile represents all Scheme values with the single C type
For an introduction to this topic, See Dynamic Types.
SCMis the user level abstract C type that is used to represent all of Guile's Scheme objects, no matter what the Scheme object type is. No C operation except assignment is guaranteed to work with variables of type
SCM, so you should only use macros and functions to work with
SCMvalues. Values are converted between C data types and the
SCMtype with utility functions and macros.
scm_t_bitsis an unsigned integral data type that is guaranteed to be large enough to hold all information that is required to represent any Scheme object. While this data type is mostly used to implement Guile's internals, the use of this type is also necessary to write certain kinds of extensions to Guile.
SCMvalue x into its representation as an integral type. Only after applying
SCM_UNPACKit is possible to access the bits and contents of the