F# in .NET 11 Preview 3 - Release Notes

April 14, 2026 · View on GitHub

Here's a summary of what's new in F# in this Preview 3 release:

Warning FS3884: function values in interpolated strings

A new warning catches a common mistake where a function value is passed to an interpolated string hole — formatting via ToString() instead of being applied:

let myFunc (x: int) = string x
let bad  = $"result: {myFunc}"    // ⚠ FS3884
let good = $"result: {myFunc 42}" // OK

Requires LangVersion=11.0 or higher. (PR #19289)

Bug fixes and other improvements

This release is heavy on codegen correctness. .NET's ILVerify tool checks that compiled IL conforms to the ECMA-335 spec — violations can cause unexpected runtime behavior or JIT failures on some platforms. F# compiler's ILVerify error count dropped from 551 to 56 (zero for FSharp.Core) through fixes to array instructions, value type dispatch, interface join points, exception handlers, and state machine struct layout (PR #19372). Four long-standing debugger issues were fixed — phantom sequence points at end of match, incorrect ranges for CE return/yield, backwards stepping with use in task, and breakpoints in list comprehension bodies (PR #19278).

Community contributions:

F# updates: