C# 9 Deep Dive: Target Typing and Covariant Returns