Guile classifies Scheme objects into two kinds: those that fit entirely
SCM, and those that require heap storage.
The former class are called immediates. The class of immediates includes small integers, characters, boolean values, the empty list, the mysterious end-of-file object, and some others.
The remaining types are called, not surprisingly, non-immediates. They include pairs, procedures, strings, vectors, and all other data types in Guile.
Return non-zero iff x is a non-immediate object. This is the exact complement of
Note that for versions of Guile prior to 1.4 it was necessary to use the
SCM_NIMP macro before calling a finer-grained predicate to
determine x's type, such as
SCM_VECTORP. This is no longer required: the definitions of all
Guile type predicates now include a call to