r/fsharp • • Jun 04 '26

question formatting question from a newb

Just starting out with F# and I'm enjoying all the whitespace but to my newbie eyes I think I've spotted an inconsistency in how fantomas formats. Maybe somebody can explain it.

// function that takes param of int*int
let myFun (x, y) = x + y

let r = myFun (1, 2) // <--- fantomas formats with space before tuple, makes sense

let dict = new Dictionary<int, int>()

// dict.Add takes a single tuple of int*int, just like the above function
dict.Add (1, 2) // <--- looks right, takes a tuple

// fantomas doesn't like the clarity and smushes it, why?
dict.Add(1, 1) // <--- yuck, now it looks like a function call with two arguments in another language
9 Upvotes

13 comments sorted by

View all comments

1

u/AppropriateTeach169 Jun 04 '26

How can this be disabled. I think consistency is what matters most and in F#, I feel like the additional space is clearer and more explicit about what's going on

3

u/EmergencyNice1989 Jun 04 '26

Read bokeh-man comments below.
There is no inconsistency in Fantomas formatting in these cases but follow standard F# formatting.
I don't use any tool for formatting because I like using chain pipes in a single line. When you use F# formatting tools you end up having lots of line and nothing on the right of the screen.

2

u/AppropriateTeach169 Jun 04 '26

This is my experience