fslang-suggestions icon indicating copy to clipboard operation
fslang-suggestions copied to clipboard

The place to make suggestions, discuss and vote on F# language and core library features

Results 303 fslang-suggestions issues
Sort by recently updated
recently updated
newest added

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#...

approved-in-principle
area: library

# 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...

approved-in-principle
area: library

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...

area: computation-expressions

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...

approved-in-principle
area: interop

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...

approved-in-principle
area: interop
area: object-programming

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...

area: async-and-tasks

# 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...

approved-in-principle
old votes:200+
area: core-functional

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[])...

area: structs-byrefs-and-span

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...

approved-in-principle
old votes:200+
area: syntax
proposed-priority

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...

area: structs-byrefs-and-span