Is this problem with intermediate Sequence protocols only intermittent?

So to do a Collections-version-3 (I think the now-frozen one is v2, right?), we need:

  1. An @objectName(identifier) attribute that is like the current objc but can be used for non-Objective-C items in Swift.

  2. Use the above attribute to externally rename the old protocols while not breaking the ABI and letting the new code reuse the old names.

     @objectName(Sequence)
     public protocol OldAndBusted {
         // What the current Sequence has here
     }
    
     @objectName(TheNewHotness)
     public protocol Sequence: IterableSet {
         // Put @CTMacUser's reinterpretation of Sequence here 
     }
    

    where IterableSet is like current-Sequence without the linearity semantics (and the methods that assume linearity, like prefix). I once wondered how to make the renditions to for-in loops recognize two different hierarchies, IterableSet and Sequence. Then I realized that doing that isn't necessary if you make Sequence refine IterableSet. But now you're telling me that, due to the ABI freeze, we will need to do that after all?!

I've read various people here mentioned resilient (protocols(?) and) types. If type-resilience is added, then a Collections-version-3 hierarchy is added, would the resilience let us make edits to Cv3 hierarchy safely? Or would we still have to make an incompatible Collections-version-4 hierarchy if we discovered that we messed up yet again?

Hmm, for something more useful to Swift, I ought to make a separate thread on @objectName.