foo (a b) ==> (foo (a b))
foo $ a b ==> (foo (a b))
(a b) ==> (a b)
$ a b ==> ((a b)) ; huh?!
foo a ==> (foo a)
foo $ a ==> (foo a)
a ==> a
$ a ==> (a) ; huh?!
In other words, I feel that since "$ ..." always produces one object (whether atom or list), it should be exempt from wrapping in a list if "$ ..." is the first thing on a line.
This implies that "$ $ $ a" ==> a. I'm not sure I love that, but that's how "\\ \\ \\ a" works now.
[*] I've ignored the do-nothing leading \\ usage for stylisitically indenting some things, e.g. Arc's flat if and keyword args:
if
! cond1
! \\ then1 ...
func
! kw:
! \\ arg ...
IIRC this is currently ascribed to GROUP's disappearing act, but the same effect with \\ could also be explained as a SPLIT with nothing on one side.
Alternatively, you can drop the behavior from \\ and use $ instead:
if
! cond1
! $ then1 ...
func
! kw:
! $ arg ...
but that'd miss the symmetry that now exists with one-liner form:
if
! cond1 \\ then1 ...
func
! kw: \\ arg ...
P.S. Cosmetic points:
- We'd lose the diagonal look of \\ which felt appropriate for GROUP.
+ The remaining sense of \\ will be familiar to TeX users ;-|
Curiously, the blank-line semantics (comment = not blank) also match.