I'm a huge fan of BlockArguments in limited doses. There are some good idioms with them, e.g.
1. bracket createResource destroyResource \resource -> do
...
2. when cond do
...
3. for elems \elem -> do
...
Adding the `$` to those examples is just syntactic noise. It's quite clear what's going on without it.
I know some people found ways to abuse BlockArguments, e.g. by prefixing each function argument with a `do`, and I'm not a fan of that. But with some sense of taste it's possible to put BlockArguments to good use.
Vlad