As I struggled with the C# type system, I looked to Scala for answers.<p>When I actually tried using Scala, I discovered that type erasure in the JVM broke many of the generics patterns that I was using every day in C#. Also, I discovered that Scala's approach to the static scope doesn't tackle the tough problems addressed by PHP 5.3.<p>Then Microsoft added covariant and contravariant polymorphism in C# 4.0, which are the two features that I wanted the most from Scala.