title: Marking methods as final in protocol extensions
body: <p>What are the implications of doing the following:</p>
  
  <pre><code>protocol A {
      func f()
  }
  
  extension A {
      final f() {}
  }
  </code></pre>
  
  <p>I'm looking to understand what putting <code>final</code> in the extension over here does when compared to not putting it. I know what <code>final</code> does, I'm looking to understand overriding behaviour for classes implementing/not implementing <code>f</code> and their subclasses.</p>