I am pretty sure that the definition states somewhere that any syntactic phrase may be enclosed in parentheses. It is paradoxical to have the semantics of the language defined so carefully when the syntax definition is not up to the standards of the 1960s. Larry
On 10 May 2008, at 14:04, Rob Arthan wrote:
Poly/ML correctly allows the following binding:
val op :: (h, t) = [1, 2, 3, 4];
However it also allows brackets around the constructor:
val (op ::) (h, t) = [1, 2, 3, 4];
My reading of the syntax in the definition of Standard ML is that the latter form should not be allowed. Am I right?