I really don't see the problem with the current notation. I find that is very simple and intuitive: function calls bind tightly, use a space to change that.

f_i(x) vs f_i (x)

1/x(a+b) vs 1/x (a+b)

ab vs a b

So simple. Being too "smart" invariably leads to more headaches and confusion than just having a simple, consistent rule.

From quickly messing around in the playground, it seems (in math mode) Typst treats multiple spaces identical to single spaces. A simple, consistent, flexible, and probably-not-majorly-breaking-old-documents rule would be “anything with no spaces has higher precedence / tighter binding than anything with one space, anything with one space has higher precedence / tighter binding than anything with two spaces”, etc, and then - only within each spaces category - you apply one of the precedence rulesets described in the article. Any confusion or surprise can be solved intuitively and without thought by mashing spacebar.

I agree with you conceptually, and am also laughing a bit thinking about how many people get angry about significant whitespace in Python and how much deeper down that rabbit hole "operator precedence changes based on whitespace" this proposal is :D

[deleted]

Exactly this!

It is just plain simpler than the original TeX/LaTeX notation.