It's always interesting to see what the others do https://devblogs.microsoft.com/dotnet/welcome-to-c-9-0/
For records, it's quite nice, you have a new literal syntax for creating a record which we know is very effective thanks to Kotlin and a with expression syntax to derive a record instance from an existing one by changing the values of some record components (init properties in C#). And for pattern matching: https://docs.microsoft.com/en-us/dotnet/csharp/tutorials/pattern-matching Also i quite don't understand why they don't do target typing on the parenthesis expression (tuple) instead of new Point p = (1, 2); instead of Point p = new (1, 2); regards, RĂ©mi