What are covariance and contravariance? | Hacker News Reader