I honestly really do get that that's the end goal. And I'm all for it.
But right now
- ~Copyable was introduced into the language as a usable thing before Copyable will have been
- It appeared to introduce new behaviors
- Copyable will be largely invisible to the average user so talking about its absence while insisting no one will have to notice it's existence feels less than illuminating.
- it goes in the same place as a protocol
- There will (at least temporarily currently) be no such thing as a concrete type that will be allowed to be declared as neither :Copyable or :~Copyable, (see the changes to any) although much of that will again be invisible. Which if ~Copyable was genuinely the absence of Copyable that wouldn't be needed for concrete types (protocols and generics, yes, but not concrete), Copyable could just be left off. But you can't just do nothing because something needs to block the Compiler from making the super secret Copyable conformance. Which I understand the reason for, but for the folks who were told "don't worry your pretty little head about what's behind the curtain it doesn't need to bother you" it's another "Wait, what?"
I honestly don't think just repeatedly insisting that something that looks like that duck, walks like that duck and quacks like that duck isn't that duck gets people where they need to be.
But I will with all deference stop using the phrase "conform to ~Copyable."
I hope this proposal or something near to it passes because I think the direction is exciting.
I also think its going to take more than one chicken-island-pineapple WWDC video for people to sort it out.