How can covariance in pragmatical class methods be made statically type-safe? | IEEE Conference Publication | IEEE Xplore