docs icon indicating copy to clipboard operation
docs copied to clipboard

Create comprehensive F# 8 What's New documentation from blog post

Open Copilot opened this issue 2 weeks ago • 1 comments

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 - _.Property syntax (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

Copilot avatar Nov 24 '25 11:11 Copilot