What are covariance and contravariance in C#? | Hacker News Reader