I also think it would be great if generics would improve further, see e.g. this other topic about for-loop vs. forEach with protocols.
Just a few things I would consider:
- You mentioned many different details. I would guess this is too large for one proposal. Maybe the community should first think where things could or should lead to, and then see which steps could lead to it.
- I think it is very hard to make a concept from “theoretical” considerations only. What I mean is that with Swift you do not only want a very “convenient” language, but also one where you do not have to treat in much efficiency for this convenience, and also very important, performance should be predictable without surprises. I think bringing those things together is very hard.
- Deprecating things is a difficult topic and I think not “necessary” in many cases.
- I think purely syntactical changes would have to have a very high advantage to even be considered.
So yes, I think it would be great to have some general discussion or also some explanations from the compiler people about where the future for the type system and generics could be. (Maybe there already are some good links to share?)