Yeah, you can also write the delimiters explicitly in Haskell as well. Not sure what auto formatters do with them though.
Conversation
Perhaps if you were rigorous about making a fully-supported delimiter mode you could flip into when you wanted to do a bunch of whitespace-disruptive editing / moving stuff around, and then auto-reformat and flip back out of at the end of the moves, it .. might be ok?
1
1
I mean even if you fix the editing problem (eg. "adopt sexps") expression languages still have a legibility problem ("what existing expr just closed" / "what does the next arg attach to") that I think it's hard to fix overall. I'm no fan of names, but sometimes they're best.
2
I wonder if anyone ever did a relatively semantically high-level one with the same sort of "you have to name every temporary, no expr nesting" rigidity of an asm. I would not be surprised if that turns out ok-ish.
1
1
Souns a bit like A-Normal Form? Could be wrong though!
1
1
Close, though I was thinking a little crankier even than that (eg. no lets within a let's expr). But you know I hate lambdas too so probably this is a very personal and inadvisable hair shirt.
1
I was toying at some point with the idea of not even functions having return values, only "&out parameters"
1
Mercury has this, actually. It's pretty cool because you can generate different implementations based on if your parameters are inputs or outputs, all based on the same implementation.
1
1
Oh. A logic programming thing. That sounds cool.
My version was only intended to capture the downsides :p
1
Haa. Yeah the Mercury mode checker is a crazy complicated thing fwiw. My colleague has an idea for a simpler version though and has a prototype implementation. Also has had experience with it. I just watch curiously from the sidelines.
2
2
I do think it would be cool if modes were more ‘first class’. I think one limitation is that you can’t be polymorphic with them, or have dependent modes. Does cut down on the `_mut`, `_ref` stuff in Rust though.


