While I think these C#7 proposals are all cool features (Non-null, tuples, pattern matching), it feels almost like it&#x27;s too late to make improvements of this kind to C#. We have had F# for a very long time, do we really need non-null and pattern matching and so on in C#? The features sure make sense for C#, but do they make sense <i>now</i>?<p>As more and more features come into C#, all of the BCL would have to be updated to use them if they are to deliver their full value. When generics entered in .NET 2.0, the generic and non-generic collections API were both included in the BCL, and they still are. I can&#x27;t see how it would be as easy to make the BCL take full advantage of proper tuples, non-nullables etc., in a way that doesn&#x27;t feel like a complete afterthought.<p>I&#x27;m all for adding features, and I&#x27;d be happy to get <i>breaking</i> changes and update thousands of lines of code to get them. But I fear that isn&#x27;t going to happen, instead things will come in as optional features, the BCL won&#x27;t be updated to return tuples where it should (I.e. whereever it <i>would</i> have if the feature had been around forever), and so on.