Component software means reuse and separate marketing of pre-manufactured binary components.
This requires components from different vendors to be composed very late, possibly by end users at run time as in compound-document frameworks. With generic wrappers, objects can be aggregated at run time. The aggregate belongs to a subtype of the actual type of the wrapped object. A lower bound for the type of the wrapped object is fixed at compile time. Generic wrappers are type safe and support modular reasoning.