Less ambiguity with the struct literal syntax
I think in the type vs struct literal collision, struct is at fault. Everywhere else in the language it’s binding: type, but in struct literals it’s binding: value.
So if any such huge late change is going to be made, I suggest fixing struct literal syntax instead. It could be same as C:
StructName {
.field_name = value,
.other_field = value,
}
This will remove the problematic type/value confusion from the syntax. It also makes it more greppable for .field_name = value which finds both obj.field_name = value.