<div dir="ltr"><div class="gmail_extra">I agree there is a problem here, and the mental model I want is for the language to act “as if” the default implementation of the protocol requirement “had actually been” implemented by each type which uses it.</div><div class="gmail_extra"><br></div><div class="gmail_extra">In particular, if a class uses a default implementation for one of its protocol requirements, I want its subclasses to use the “override” keyword when implementing that method. After all the parent class *does* have a version of that method which can be called, it just happens to have received that version by default.</div><div class="gmail_extra"><br></div><div class="gmail_extra">So, for the example in your proposal, I would prefer that the subclass write “override func doTheSecondThing()”.</div><div class="gmail_extra"><br></div><div class="gmail_extra">Nevin</div></div>