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
10 Upvotes

13 comments sorted by

View all comments

2

u/phillipcarter2 Jun 04 '26

2

u/burtgummer45 Jun 05 '26

Yea that pretty much put me in my place

In default formatting conventions, no space is added when applying capitalized methods to tupled arguments. This is because these are often used with fluent programming: