The F # parser treats named arguments as expressions for checking equality; a later stage of the compiler decodes them into named arguments. So this is the priority issue described by @desco.
Note that if you have a logical named parameter, you can do this, for example.
F(a = true) // named param F((a = true)) // compare local name 'a', then pass boolean as first arg
as a way to eliminate ambiguity in the rare case, it is necessary.
Brian source share