Added covariance and contravariance features.