Type safe linkage is ensured by establishing a constraint if a class
references an attribute that is contained in another class. This
constraint acts as a "promise" to later ensure type safe linkage. At some
point later--such as at the earliest time that the type is loaded by both
loaders--the constraint is verified. This may be accomplished by
verifying that the type for the attribute is the same regardless of
whether it is loaded by a loader that defines the referencing class or a
loader that defines the referred class. If the constraint is not met, an
error message is provided.