I have a small issue with the Poly/ML pretty-printer. If you run:
datatype FOO = D of (int * int); infix D; 1 D 2;
Poly/ML prints: val it = D (1, 2) : FOO
Poly/ML will parse D(1, 2) but only because of a non-standard extension that lets you omit the keyword "op" that the Standard ML definition requires before infix operator names used with ordinary function application syntax.
Regards,
Rob.