The F# Language Specification gives an in-depth technical explanation of the F# language constructs and required compiler behavior. It discusses topics such as lexical analysis, grammar, types including type inference algorithm, expressions, patterns and other.

F# 2.0

F# 3.0

F# 3.1

F# 4.0

F# 4.1

F# 4.1-9.0

Since F# 4.1 new features have been documented through RFCs and additions to the F# Language Guide.

Note: We changed the versioning scheme after F# 5.0, and F# 6.0 became F# 6.

Note: We’re currently working on an improved version of the F# language specification here. Contributions welcome!