Generic Packages with Expandable Classes is a statically type safe programming mechanism which combines type parameterisation on the package level with class expansion. The former makes the mechanism useful for solving common generic problems. The latter offers a kind of "static inheritance" and can be used to write "unfinished" groups of classes. Such classes can be finally specified when the packages containing them are imported.
This thesis provides an evaluation of the usefulness of Generic Packages with Expandable Classes. In particular, it looks at how the mechanism can be used as an alternative to multiple inheritance and covariance. Being able to solve such problems is the main advantage of GePEC compared to most other type-parameterized module mechanisms.
As part of the evaluation, it is discussed how Generic Packages with Expandable Classes might be best utilized in practice. Several problems arise when we attempt to use the mechanism with typical Object Oriented techniques. These problems and their reasons are pointed out during the description and discussion of the mechanism. Based on these observations, an approach to programming is suggested which avoids problems but still allows us to take advantage of the mechanisms involved. This strategy, called package hierarchy programming, also seems promising as a way to make programs more flexible for code reuse, although it sacrifices readability.