Type analysis is a complex process, involving several different kinds of entity. Each kind of entity has properties, which are stored in the definition table under the entity's key. Those properties are set and used in a variety of contexts. The result is a collection of implicit dependence relations among the type analysis computations, and these relations depend on the language being analyzed.
The modules described in this document make the implicit relations explicit, using dependent expressions in LIDO (see Dependent Expressions). Although the explicit dependences work for a wide range of typical programming languages, one or more of them must sometimes be overridden because of the rules of a particular language. This chapter explains the implicit dependences that must be made explicit, how the various modules make them explicit, and some typical circumstances in which the default treatment fails.