Pitch: Protocols with private fields

What about that sentence made you worry? We were not wedded to that particular semantics, but it seemed logical enough to us.

The post ends with a handful of other difficult questions.

Well, I still disagree with that assertion; as the proposal says:

Generally, it seems like dealing with multiple conformance and conformance inheritance will compel us to come up with new rules.

I don't think it increases our obligation to come up with rules, because as noted in that thread we have all the same issues today in a slightly different form.

Although I don't claim such mechanisms cannot be designed or understood, having formalized and partially reimplemented Swift's current method resolution I'd argue that it's definitely not "simple".

Ah well, I never said requirement resolution was simple.

My pitch does not challenge that assertion. A protocol would describe a single, well-understood API with the addition be that access levels would be part of that API.

This depends on your point of view I guess. The way I see it, each access level exposes a different API.

That's an interesting question. Would these lower bounds solve Doug's problem or address the metadata and witness table bloat issues for which scoped conformances were originally designed? Another use case: two different modules want a conformance of public type Int to public protocol C.Monoid, but one module wants to use the (+, 0) monoid and the other wants to use the (*, 1) monoid.