Earlier quoted context omitted.
Negative literals/negation/subtraction sharing "-" leads to odd corner cases in the grammars of quite a few languages. I'm rather fond of the J approach: -1 is the application of the negation operator to the literal one. _1 is the literal negative one. This is a very important distinction in J since you can have whitespace-delimited lists of numbers. "-1 2 3" is equivalent to "_1 _2 _3".
This is also true of Standard ML, where unary minus is ~, and APL, where unary minus is ¯
If X is 1, "-X" computes "¯1", and "¯X" is ill-formed.