title: Referencing instance method 'stringify()' on 'Collection' requires the types 'Int' and 'Stringify' be equivalent
body: <p>I made an protocol Stringify to convert Types that implement the protocol to a String.</p>
  
  <pre><code>protocol Stringify {
      func stringify() -&gt; String
  }
  
  extension Collection where Iterator.Element == Stringify {
      /// changes all the elements in the collection to a String
      func stringify() -&gt; [String] {
          var strings = [String]()
          if let elements = self as? [Stringify] {
              for element in elements {
                  strings.append(element.stringify())
              }
          }
          return strings
      }
  }
  
  extension Int: Stringify {
      func stringify() -&gt; String {
          return String(self)
      }
  }
  
  extension Double: Stringify {
      func stringify() -&gt; String {
          return String(self)
      }
  }
  
  
  let test = [5,6,7]
  
  /// does work
  [6,5,34].stringify()
  
  
  /// does not work -&gt; Error alert
  test.stringify()
  </code></pre>
  
  <p>But when I set a collection of Ints to a property and using then stringify() on it, it does not work.</p>
  
  <p>Error:</p>
  
  <blockquote>
    <p>Referencing instance method 'stringify()' on 'Collection' requires the
    types 'Int' and 'Stringify' be equivalent</p>
  </blockquote>
  
  <p>If I use it directly everything is going fine.</p>
  
  <p>What is the problem here?</p>