I continue to find #Swift’s namespacing rules funny. Like declaring
class Foo { enum E { ... } }
is fine, but
class Foo { protocol Delegate { ... } }
is not.
But you could declare a FooDelegate, and declare a typealias Delegate = FooDelegate inside Foo…
It’s just kinda odd. I wish namespacing were more uniform.