On 22/04/13 4:29 PM, Andreas Rossberg wrote:
On Apr 22, 2013, at 03:31 , Michael Norrish Michael.Norrish@nicta.com.au wrote:
Is the following really supposed to be acceptable? Both Poly/ML and mlton accept it without complaining:
datatype '+ = C | D;
(Moscow ML rejects it. mlton and Poly/ML treat it as the declaration of a unary type operator called +.)
and what about
datatype '' foo = C | D;
MLton and Poly/ML are correct. A type variable can be named plain ' or '', and symbolic identifiers (except *) are allowed as type names.
Wow; you learn something new everyday.
Thanks for the quick feedback.
Incidentally, I think that makes your grammar at http://www.mpi-sws.org/~rossberg/sml.html incorrect: the grammar there wants an <id> to follow the apostrophe for <var>, and <id>s have at least one character in them.
Best, Michael