struct Foo { int x; alias x this; } Foo f = 12; // error Foo foo; f = 12; // this is OK any reason why the first cant be allowed?