How can covariance in pragmatical class methods be made statically type-safe? - Axel Schmolitzky and Mark Evered and J. L. Keedy and Gisela Menger (IEEE Computer Society, 1999)