Create comprehensive F# 8 What's New documentation from blog post
Summary
Replaces the stub fsharp-8.md (which only linked to the blog post) with comprehensive documentation covering all F# 8 features. Content adapted from the official F# 8 announcement.
Code examples use file includes (::: code syntax) to reference verified snippet files, following documentation best practices and avoiding code duplication.
Fixes #45635
Documentation Coverage
- Language changes: Property shorthand (
_.Property), nested record updates,while!, extended string interpolation, arithmetic in literals, type constraint intersection, extended fixed bindings - Uniformity improvements: Static members in interfaces, static let in more types, try-with in collections
- Diagnostics: TailCall attribute, static class warnings, obsolete detection
- Quality of life: Trimmability, parser recovery, strict indentation, autocomplete
- Performance: Reference assemblies, compiler parallelization switches
- FSharp.Core: Inlining optimizations, Array.Parallel APIs, async improvements
Code Examples
Created 8 verified F# script examples in snippets/fsharp-8/ with region markers for targeted includes:
- PropertyShorthand.fsx -
_.Propertysyntax (regions: Types, Before, After, Standalone) - NestedRecordUpdate.fsx - Nested record field updates (regions: Types, Before, After, Anonymous)
- StringInterpolation.fsx - Multiple
$for interpolation levels (regions: Before, After, Template) - LiteralArithmetic.fsx - Operators in literal expressions (regions: Literals, Enums)
- StaticInInterfaces.fsx - Concrete static members in interfaces (region: Interface)
- StaticLetInDU.fsx - Static bindings in discriminated unions (region: StaticLet)
- TryWithInCollections.fsx - Exception handling in collection builders (region: TryWith)
- TailCallAttribute.fsx - Tail recursion verification (regions: Classic, Accumulator)
All examples tested with dotnet fsi --langversion:8.0. The markdown file uses :::code language="fsharp" source="..." id="..."::: syntax to include code from these files, ensuring maintainability and single source of truth.
Original prompt
This section details on the original issue you should resolve
<issue_title>[New article]: Create dedicated Whats new F# 8 page - follow content from linked blog post</issue_title> <issue_description>### Proposed topic or title
Whats new F# 8
Location in table of contents.
No response
Reason for the article
Its missing
Article abstract
Follow the blog post
Relevant searches
No response</issue_description>
<agent_instructions>Find docs pages for WhatsNew F# (fsharp folder). There is an attached link to a blog post. Read it and follow your instructions for properly copying content with code samples from blogs to docs.</agent_instructions>
Comments on the Issue (you are @copilot in this section)
- Fixes dotnet/docs#50099
✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.
Internal previews
| 📄 File | 🔗 Preview link |
|---|---|
| docs/fsharp/whats-new/fsharp-8.md | What's new in F# 8 |