Part II: specifying components in RESOLVE

Abstract
Conceptual modules may export two kinds of things for use in client programs: type families and operation families. We say "families" here because every RESOLVE module is generic, so a client must instantiate a module before using it. Instantiation has two parts: First you bind all of a conceptual module's formal parameters to actuals which match the formals both in structure and in other specified properties; then you select an implementation for the concept and fix the realization's (additional) parameters [Part III]. An instance created this way is called a facility. For a typical conceptual module that defines one type family and associated operation families, every instance defines a particular type and some particular operations whose specifications result, in effect, from replacing the formal parameters of the generic specification with the actuals for that instance.
Keywords