title: Ambiguous use of 'filter' when converting project to Swift 4
body: <p>I tried converting my project to Swift 4 this day.
  I'm having an error on this line:</p>
  <pre><code>return Forum.threads?.filter({ //... })
  </code></pre>
  <p>The error says:</p>
  <blockquote>
  <p>Ambiguous use of 'filter'</p>
  <p>Found this candidate (Swift.Set)</p>
  <p>Found this candidate (Swift.Sequence)</p>
  </blockquote>
  <p><code>threads</code> object is implemented like this in <code>Forum</code>:</p>
  <pre><code>var threads: Set&lt;Thread&gt;?
  </code></pre>
  <p>So how to solve this..? Thanks for your help</p>
  <p>EDIT : when revealing the error in log, here are the candidates:</p>
  <pre><code>Swift.Set:369:17: note: found this candidate
      public func filter(_ isIncluded: (Set.Element) throws -&gt; Bool) rethrows -&gt; Set&lt;Element&gt;
                  ^
  Swift.Sequence:35:17: note: found this candidate
      public func filter(_ isIncluded: (Self.Element) throws -&gt; Bool) rethrows -&gt; [Self.Element]
  </code></pre>