Currently, it's allowed to declare
var `self`: T
Aside from the question wether that is a good idea or not, I'd prefer a solution that simply can't interfere with real properties.
Forbidding "self" as a member name would be one way around that issue, the other would be a string that can never be the name of a property.
\.
is probably the most obvious one (and if Swift would use slashes instead of points for path separation, Unix guys would feel home right away ;-)