types which are contravariance in argument types and covariance in return types. // rdar://8979379. llvm-svn: 125445