Type checking, separate compilation and reusability
Abstract
A strategy for performing type checking on programs built out of separately compiled parts is presented. This strategy is used in a programming environment that allows small components of a software system to be reconfigured in different ways. The strategy works by inferring type schemas for all of the undeclared functions used by a component and then unifying each schema with a program library when a configuration is built.