I "loved" this comment when I saw it originally, but now I'm having second thoughts, because an idea I buried in an aside earlier is growing on me. Suppose:
- Self-conforming-protocol existentials can be spelled with just the protocol name
- Other existentials always need a
where
clause, which may be “empty:”Collection where _
.
I think that might be enough to solve my problem with implicitly-unavailable APIs, and it wouldn't punish many uses of generalized existentials, which will have a where
clause anyway. Finally, if we decide this was all a mistake, we can always lift restriction #2.
I realize this doesn't give us an immediate way to fix the technical problems @Joe_Groff is trying to address with this pitch, but it is an eventual future I think I could support. If we can agree that it's a good idea, maybe we can find a reasonable evolution path to get there that includes an immediate fix for the technical problems.
Thoughts?