Welcome to the Swift Evolution community! It's always wonderful to see people who are eager to help contribute to the process of improving the language.
I think the tenor of the feedback that's been given already goes to a basic point: Many of us have, I'm sure, thoughts about what existing features of Swift they would have designed differently if they were in Chris Lattner or the core team's shoes. But this isn't really the raison d'etre of Swift Evolution. Our aim here, if I may be so bold to speak in the plural, is to make changes (principally additive) to give Swift more capabilities: i.e., to enable the language to be used in ways that it cannot easily be used before. This is why @allevato writes:
It has been said that Swift is an "opinionated" language; one of the consequences of that is that any particular user may not share the same opinion as that presented by the designers of any language feature in question.
One of the features of Swift which really makes it possible for the language itself to be opinionated without hindering its users from being differently opinionated is the possibility of adding your own extensions--even to core types such as Optional, Int, and String. People have added custom operators, convenience properties, even retroactive conformances to protocols.
What this also allows us to do is to have a high bar for addition to the standard library. Essentially, the question you must answer is: what is it about your proposed change is valuable enough to justify not just your usage (which is already possible via extensions), but for everyone to need to learn it? (And make no mistake: even if people don't intend to use it, any addition to the standard library will need to be widely known because code is more often read than written.)
Some time ago, Ben Cohen wrote up a set of questions to break down this high bar into discrete questions to be answered when it comes to new API additions to the standard library, particularly when the implementation is a composition of existing features. I repost them here for convenience:
Now, as to the specific idea that you have proposed: you are correct that it has already been discussed in some form. (You can use the search function on this forum to see all the incarnations of it.)
But what's more, the same idea (including how it could enable certain usages not easily expressed otherwise, as suggested by some others here) was brought up in the context of the Result type (SE-0235). And not only was it pitched and proposed (with the names isSuccess and isFailure--but the specific names are rather unimportant here), it was reviewed by the community, eventually withdrawn from the final version of the proposal, and still nonetheless commented on by the core team in their final evaluation. So in fact your idea has actually gone through all the stages of Swift Evolution!
What the core team had to say was as follows (emphasis mine):
Case accessors are a more complex question. The current proposal doesn't include case accessors, but the original proposal did, and we're anticipating a future proposal that will add automatic synthesis for case accessors. That synthesis will undoubtedly use names based on the actual case names, so at a first glance, it seems imprudent to use case names that we're not sure we'd want for the accessors. However, feedback on this review has led the Core Team to more seriously consider this issue, and it now seems quite complicated. A name that's a good name for a particular state of an enum (like failure ) might not be a good name for a value carried in that case (like error ). It may be true that case accessor names will always end up feeling a little contrived, and so it's just better to use the actual case names because they're easy to interpret. More importantly, we don't want to burden this proposal because we haven't resolved those questions yet to our satisfaction.
In other words, the plan going forward which the core team is anticipating is that we will have a more general solution that applies to all enums, where if there is a case such as Optional.some, we will have some sort of accessor synthesized doing exactly what you pitch here, with a naming scheme to be decided.