Type substitution for object-oriented programming - Palsberg, Jens; Schwartzbach, Michael I. (DAIMI Report Series, 1990)
Genericity allows the substitution of types in a class. This is usually obtained through parameterized classes, although they are inflexible since any class can be inherited but is not in itself parameterized. We suggest a new genericity mechanism, type substitution, which is a subclassing concept that complements inheritance: any class is generic, can be ’’instantiated’’ gradually without planning, and has all of its generic instances as subclasses.