| Previous | Table of Contents | Next | 
   The InfrastructureLibrary is primarily reused in the Kernel package of Classes in UML 2.0: Superstructure; this is done by
            bringing together the different packages of the Infrastructure using package merge. The Kernel package is at the very heart
            of UML, and the metaclasses of every other package are directly or indirectly dependent on it. The Kernel package is very
            similar to the Constructs package of the InfrastructureLibrary, but adds more capabilities to the modeling constructs that
            were not necessary to include for purposes of reuse or alignment with MOF. 
   Because the Infrastructure has been designed for reuse, there are metaclasses—particularly in Abstractions—that are partially
            defined in several different packages. These different aspects are for the most part brought together into a single metaclass
            already in Constructs, but in some cases this is done only in Kernel. In general, if metaclasses with the same name occur
            in multiple packages, they are meant to represent the same metaclass, and each package where it is defined (specialized) represents
            a specific factorization. This same pattern of partial definitions also occurs in Superstructure, where some aspects of, for
            example, the metaclass Class are factored out into separate packages to form compliance points (see below).