H98: specialids and specialops
Folks, George Russell and Wolfram Karl have both noticed that 'specialid' and 'specialop' are defined in the H98 syntax, but never used. Having looked at it, I propose to 1. Remove all references to 'specialid' and 'specialop' 2. Instead, add the following paragraph to 5.3 (Import declarations) "Lexically speaking, the terminal symbols ``as'', ``qualified'' and ``hiding'' are each a varid rather than a reservedid. They have special significance only in the context of an import declaration; in other contexts they may be used as variables." 3. Similarly, add the following paragraph to 4.2.1 (Strictness fields) "Lexically, ``!'' is an ordinary varsym not a reservedop; it has special significance only in the context of the argument types of a data declaration." The only other special-op (unary minus) is dealt with at length already. Any objections? I don't think this is controversial. Simon | -----Original Message----- | From: George Russell [mailto:ger@tzi.de] | Sent: 02 October 2001 18:28 | To: Simon Peyton-Jones | Subject: Yet more lexing pedantry | | | Dear Simon Peyton Jones, | | Again not a bug, but specialids appear rather orphaned. That | is, they are defined, but do not appear in any production, so | they cannot be used. One presumes that when "as", | "qualified" and "hiding" appear later they are magically to | be regarded as specialids rather than varids (which they | could also be), but this is nowhere specified and does not | seem particularly necessary. Rather than regarding "as" as a | specialid that happens to be "id", would it not simply be | better to regard it as a varid that happens to be "as"? | | Best wishes, | | George Russell |
On Thu, Oct 04, 2001 at 01:08:03AM -0700, Simon Peyton-Jones wrote:
2. Instead, add the following paragraph to 5.3 (Import declarations)
"Lexically speaking, the terminal symbols ``as'', ``qualified'' and ``hiding'' are each a varid rather than a reservedid. They have special significance only in the context of an import declaration; in other contexts they may be used as variables."
I do hope that I can import variables named "as", "qualified", or "hiding"; your text is slightly ambiguous. What about:
"Lexically speaking, the terminal symbols ``as'', ``qualified'' and ``hiding'' are each a varid rather than a reservedid. They have special significance only in the context of an import declaration; they may also be used as variables.
Best, Dylan Thurston
participants (2)
-
Dylan Thurston -
Simon Peyton-Jones