Announcing F# 8
# F# language changes
- _.Property shorthand for (fun x -> x.Property)
- Nested record field copy and update
- while!
- Extended string interpolation syntax
- Use and compose string literals for printf and related functions
- Arithmetic operators in literals
- Type constraint intersection syntax
- Extended fixed bindings
- Easier [<Extension>] method definition
# Making F# more uniform
- Static members in interfaces
- Static let in discriminated unions, records, structs, and types without primary constructors
- try-with within seq{},[] and [||] collection expressions
# New diagnostics
- TailCall attribute
- Diagnostics on static classes
- Diagnostics on [<Obsolete>] usage
- Optional warning when obj is inferred
- Optional warning when copy and update changes all fields
# Quality of life improvements
# Compiler performance
# Enhancements to the FSharp.Core standard library Inlining