Highlights:
- Representing data better in code (tuples, object destructuring, pattern matching, record types, array slices)
- Metaprogramming (virtual extension methods, default interface implementations, enhanced generic constraints, mixins/traits, delegation)
- Immutable values (readonly var x ~ val x ~ let x)
- Asynchronous enumeration and streams
- Code contract language integrations
- Structural typing (think implicit interfaces in Go)
- Explicit lambda capture handling (pass by value or reference semantics explicitly)
- Solve null reference problem (Non-nullable references, Option type)