type bounds and covariance