Unfortunately, since people are dumb[1], we&#x27;re stuck with C#. So they might as well improve it as much as possible. This feature could be layered on top of the BCL as extra metadata. Sorta like TypeScript allows you to add type annotations to third-party libraries, C# could take that approach with null. (Yes, this is sorta ugly.)<p>With tuples, C# can take F#&#x27;s approach and special-case common patterns (like TryParse that use out parameters). There&#x27;s probably only a few patterns where this matters and you&#x27;d get most of the benefit. (And I suppose you could always provide annotations to note how to match certain non-tuple-returning functions.)<p>1: There&#x27;s really no reason to use C# when we have F#, unless the app is some crap LOB app where programming style&#x2F;syntax would be the highest barrier to entry. Even then I am suspicious. Anyways there&#x27;s a lot of untalented developers that apparently cannot cope with FP, or much of anything really, and managers that are scared of different languages.