For example, if we have this enum:
And then we initialize an optional variable like this:
We should get an ambiguity warning as it is not clear if we are talking about
Currently the only way to tell them apart is because of the syntax coloring, and at this moment the compiler is choosing Optional<T>.none over Foo.none, but I'm unable to tell at this time if this is defined behavior or not. If it is not defined behavior it might change in the future and break source compatibility.