fslang-suggestions
fslang-suggestions copied to clipboard
The place to make suggestions, discuss and vote on F# language and core library features
I'd like to start a thread documenting possible improvements to plain-text formatting in F#. This is driven partly my [doing a deep look at getting quality plaintext printing for F#...
# print and printn alongside printf and printfn Currently, F#'s "Hello World" looks like this: `printf "Hello World"` We currently couple formatting with printing to the console, as introduction. Problems...
I propose we remove the need to wrap a Computation Expression and its body in parenthesis in order to access the type built by it. Instead we should be able...
I propose we allow an attribute `CLIPublic` to change .NET codegen to emit .NET accessibility `public` on a member at the point of implementation even if the member is part...
I propose we simplify setting optional arguments for optional method parameters by allowing them to be set when the parameter is defined (like [C# Optional Arguments](https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/classes-and-structs/named-and-optional-arguments#optional-arguments)). Existing approaches: ## Existing...
I propose we allow `let!`/`do!`/`match!`/`return!` in async CEs with `Task` values. Additionally, if possible (if there are no hidden gotchas and it's easy to implement), we could consider doing the...
# Enforce tail-recursion with attribute I propose we add a new attribute `[]`, applicable to functions that: 1. Makes the compiler enforce tail-recursion, or rewrite-to-loop behaviour, or else trampoline behaviour...
Local function that don't capture and are only invoked should allow the use of byref-like types such as Span. It would enable code like this: ```fsharp let f (arr: byte[])...
This is a feature that I would love to steal from Elm :) In Elm, if I define a record as such ```fsharp type Foo = { Bar : int...
I propose to lift byref generics restrictions for inline functions. Since all the new byref things have landed in 4.5 I've been playing quite a bit with Span. It's awesome...