It may be nice to combine allocation and initialization syntaxes, so that "declare p : ^Point = new Point(1,2)" is an equivalent of "declare p : ^Point = new Point; p^ = Point(1, 2);"
If in "declare p : ^Point = new Point(1,2)" the "declare p : ^Point = new Point;" part returns "null", the "p^ = Point(1, 2);" part must not be executed,
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
If in "declare p : ^Point = new Point(1,2)" the "declare p : ^Point = new Point;" part returns "null", the "p^ = Point(1, 2);" part must not be executed,