title: Pure swift set with protocol objects
body: <p>Is there a way to make the following actually work?</p>
  <h3>V1 - &quot;test protocol does not conform to Hashable&quot;</h3>
  <pre><code>protocol testProtocol  {
      //
  }
  
  class test {
      var s : Set&lt;testProtocol&gt;?
      init(){
      }
  }
  </code></pre>
  <h3>V2 - &quot;Protocol 'testProtocol' can only be used as a generic constraint because it has Self or associated type requirements</h3>
  <pre><code>protocol testProtocol : Hashable {
      //
  }
  
  class test {
      var s : Set&lt;testProtocol&gt;?
      init(){
      }
  }
  </code></pre>
  <p>I'm assuming that the answer is no - because protocols (even with the @objc tag) do not have enough information??  but maybe there is some sort of line or thing i'm missing here.</p>