Whenever unambiguous we print to a simpler form, e.g. `switch ((foo, bar))` -> `switch (foo, bar)`. Both accepted at parsing time
Conversation
Oh dear…
Well I guess it remains to be seen whether the folks start hating it after the initial honeymoon period. How easy is it to explain `(f(x) >> f())` to people? (using Elm/F# composition operators /w tupled args here)
1
1
There's some annoyance after "honeymoon" period, but it's mostly about additional parens being hard to track with eyes - no complaints related to semantics.
1
We'll reduce the number of parens we print to mitigate that issue and then reevaluate how many problems the tuples being (like, this) still cause.
1
I do need to keep my pre-existing biases in check here too, and it's good you're having a go at challenging the status quo.
1
How hard would it be to create an alternate, Elm-style syntax for Reason? As somebody who writes a great deal of Rust, I kind of feel type signatures on top make much more sense for a type-driven programming style, as does dropping parens. Makes the code much cleaner and lighter.
3
1
1
Sweet. Would be interesting to see how people react to comparisons if they could easily switch between them!
3
imo, having function application use parens instead of a space introduces a lot of syntactic niceties - Foo(Bar(Baz), Bloop, fip + fop) looks nicer to my eyes than Foo (Bar Baz) Bloop (fip + fop)
Plus, OCaml's oddities around type application and variants being uncurried...
2
3
Another thing to look out for - any time someone uses @@ in OCaml, that's a sign that they really would have preferred the paren style calling concrete syntax. It achieves the same precedence.
2
1
is `@@` like `(<|)` and `($)` in Elm/Haskell respectively?
Pretty convinced that `(<|)`, `(|>)`, `(<<)`, `(>>)` is the way to go for application and composition operators now, thanks to F# and Elm. Makes things a ton clearer for folks than `@@` and `(.)`/`($)`, which provide no directional hint to people.
1
Show replies



