I very much despise (though maybe that word’s a bit too harsh) the do “as a comma”.
To me (even with syntax highlighting) it just feels like another argument in the list:
myFunc a b =
doSomething otherVal a do theRest with b
andThen some indentedSection
This is just a string of text, compare:
myFunc a b =
doSomething otherVal a $ do theRest with b
andThen some indentedSection
Now I know it’s often done with a dangling do
, but it still just feels like an argument to the preceding function, instead of a clear (non-text) separation of “text sections” (which are functions and their arguments)
At least, this is my reason to not like BlockArguments
. That and I remember seeing/reading something about weird indenting interactions that make me not want to use it. (in some edge cases, I believe)