Conversation

Yup. It’s still rooted in LC just like OCaml is. It’s just that the syntax makes LC more familiar. The semantics have not changed in the slightest. The AST hasn’t even changed - only the concrete syntax has.
1
1
It's just very weird and confusing that the concrete syntax has changed in a way that makes it harder to grok the actual semantics of what is going on. I get there are problems with currying, but this is just going to confuse the situation even more. 😫
1
2
Have you thought about having a transitional Reason syntax for beginners, then encourage people to move to the more transparently curried version as they get a handle on things?
1
1
Extra parens. No ideal for some but again to be clear: there's no syntax ambiguity in the new version
1
1
Whenever unambiguous we print to a simpler form, e.g. `switch ((foo, bar))` -> `switch (foo, bar)`. Both accepted at parsing time
1
1
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
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