The F# 3.0 Language Specification
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 language elements.