SE-0503: Suppressed Default Conformances on Associated Types With Defaults

I find the "default constraint sets" alternative particularly compelling because of future evolution. It would mean there wouldn't have to be an entirely new Collection hierarchy for noncopyable types. It would also mean that, after a new Collection hierarchy is introduced, adding a new suppressible protocol like ~Runcible wouldn't necessitate a third Collection hierarchy.

The proposal states about the "protocol-defined default requirements" alternative:

This might also serve as a way for a protocol to opt generic parameters out of defaulting to Copyable and/or Escapable when the protocol is used as a constraint, which may be desirable for protocols that are only used with noncopyable or nonescapable conformers in practice.

Even if "protocol-defined default requirements" are not adopted, I think that specific functionality would be especially helpful if an ExclusiveCopyable protocol that sits between Copyable and ~Copyable is ever introduced. Then it would be possible to make T: ExclusiveCopyable sufficient instead of making people write T: ExclusiveCopyable & ~Copyable & ~Escapable.