[swift-evolution] Proposal: Sealed protocols

Douglas Gregor dgregor at apple.com
Thu Dec 3 17:09:56 CST 2015


> On Dec 3, 2015, at 2:59 PM, Felix Gabel <felix.gabel at me.com> wrote:
> 
> Hey everyone,
> 
> I hereby propose adding a ’sealed’ modifier for protocols to enable library developers to declare protocols that can be only conformed to in the scope of the library itself. This is similar to a ’sealed trait’ in Scala with the difference that it does not limit the protocol to be only applicable in the file it is declared in.
> 
> Example:
> 
> public sealed protocol FooType {
>    // this protocol can be conformed to only in scope of the library itself
>    // it can NOT be conformed to by any object declared outside the library
> }
> 
> What do you think?


Can you elaborate on why a Swift developer would want to distinguish between “public sealed” and “internal”?

	- Doug



More information about the swift-evolution mailing list