Next: , Previous: , Up: Top   [Contents][Index]

4 Type descriptors

Type descriptors are run–time objects that “describe” the characteristics of object–types. For example R6RS record–type descriptors, R6RS record–constructor descriptors, Vicare’s struct descriptors are all special cases of type descriptors.

Every expand–time type annotation has a corresponding run–time type descriptor. Usually we do not have to deal with type descriptors; so most of the syntactic bindings are exported by the library (vicare system type-descriptors), while the public API is exported by (vicare).

Whenever we need a type descriptor, we must use the syntax type-descriptor or the function type-descriptor-of; we should never call directly the constructors of the type descriptor types.