Covariance and Contravariance in Scala – TechLoft