I'm puzzled by a detail in the Report, which seems to contradict itself.
On page 13 it says:
The special form -e denotes prefix negation, [...] and is simply
syntax for negate (e), where negate is as defined in the standard
prelude.
The standard prelude defines negate as a function, which by default has
precedence 10. But the context free syntax on page 134 says:
<lexp6> ::= - <exp7>
which gives prefix - precedence 6.
So, how do we parse
- a * b -- where * has precedence 7
If we use the context free syntax, we get
-(a * b)
but if we remove the syntactic sugar first we get
(negate a) * b
Perhaps the point could be resolved by clarifying how the sugar is to be
removed.
-Norman
-------
Messing about with signature files fills a much-needed gap in the working
day.