It would be nice to have a commitment on @property.Currently, () is optional on all functions, and @property means nothing.
I personally think () should not be optional, and @property should require that () is not present (ie, @property has meaning).
This is annoying:
alias F = function();
@property F myProperty() { return f; }
Then we have this confusing situation:
myProperty(); // am I calling the property, or am I calling the function the property returns?
This comes up all the time, and it really grates my nerves.
Suggest; remove @property, or make it do what it's supposed to do.