Covariance and contravariance: a fresh look at an old issue (a primer in advance [pdf] | Hacker News Reader