title: What does "Protocol ... can only be used as a generic constraint because it has Self or associated type requirements" mean?
body: <p>I am trying to create a Dictionary (actually a <a href="https://gist.github.com/devios1/d8914833912c1aae15e2" rel="noreferrer">HashSet</a>) keyed on a custom protocol in Swift, but it is giving me the error in the title:</p>
  
  <blockquote>
    <p>Protocol 'myProtocol' can only be used as a generic constraint because it has Self or associated type requirements</p>
  </blockquote>
  
  <p>and I can't make heads nor tails of it.</p>
  
  <pre><code>protocol Observing: Hashable { }
  
  var observers = HashSet&lt;Observing&gt;()
  </code></pre>