It's the Self
type of the protocol, which will end up pointing at whatever the type is---be it Int
or String
or whatever---that conforms to the Costume
protocol. Swift doesn't use instantiation as the language model; there's one implementation of hasBells()
that dynamically gets provided with type information. That type will always refer to a concrete type that conforms to Costume
.
(FYI, the review of this proposal just kicked off, so I'll answer questions over there as well)
Doug