The theory behind covariance and contravariance in C# 4 (2012) | Hacker News Reader