\chapter{The Type System}



\chapter{The Info Database}

The info database provides a functional interface to global
information about named things in \cmucl{}. Information is considered to
be global if it must persist between invocations of the compiler. The
use of a functional interface eliminates the need for the compiler to
worry about the details of the representation. The info database also
handles the need to multiple ``global'' environments, which makes it
possible to change something in the compiler without trashing the
running Lisp environment.

The info database contains arbitrary lisp values, addressed by a
combination of name, class and type. The Name is an EQUAL-thing which
is the name of the thing that we are recording information about.
Class is the kind of object involved: typical classes are Function,
Variable, Type. A type names a particular piece of information within
a given class. Class and Type are symbols, but are compared with
STRING=.

