RFCs and docs related to the F# langauge design process. The Process:
-
Use F# Language User Voice to submit ideas, vote on them and discuss them.
-
Ideas which get "approved in principle" get an RFC entry based on the template, and a corresponding RFC discussion thread
There is currently a backlog of approved ideas. If an idea has been approved and you'd like to accelerate the creation of an RFC, send a PR creating the RFC document for any approved-in-principle issue. First in first served. To "grab the token" send a PR doing nothing but creating or naming the RFC file, and then fill in the further details with additional commits to the PR.
-
Implementations and testing are usually submitted to the visualfsharp repository and then integrated to fsharp and FSharp.Compiler.Service
Completed RFCs
- F# RFC FS-1005 - Underscore Literals
- F# RFC FS-1008 - Struct Records
- F# RFC FS-1002 Cartesian product function for collections
- F# RFC FS-1009 - Allow mutually referential types and modules over larger scopes
- F# RFC FS-1010 - Add Map.count
- F# RFC FS-1013 - Enable FSharp.Reflection functionality in PCLS
- F# RFC FS-1016 - Revise reserved keyword list
- F# RFC FS-1012 - Support for caller info argument attributes (CallerLineNumber, CallerFileName, CallerMemberName)
- F# RFC FS-1014 - Single case struct unions
- F# RFC FS-1015 - Support for "fixed"
Nearing-Completion RFCs
- F# RFC FS-1006 - Struct Tuples and Interop with C# 7.0 Tuples
- F# RFC FS-1017 - Allow all inferrable SRTP constraints to be written
- F# RFC FS-1004 - Result type
Open RFCs