Fawzi Mohamed wrote:
If one could declare return or out types as unique (note that unique is
*not* part of the type, it is like the storage attributes), these
methods could be implicitly castable to const or immutable, allowing
nicer code.
Constructors *might* return unique objects (an object is unique only if
all its references are to unique or immutable objects).
In several cases uniqueness could be checked by the compiler. I think
that such a change would improve part of my code, removing the need for
several spurious casts, while at the same time making the code safer.
Any mutable object returned from a strongly pure function, is guaranteed
to be unique.