title: Collision of implicits in Scala
body: <p>The following Scala code works correctly:</p>
  
  <pre><code>val str1 = "hallo"
  val str2 = "huhu"
  val zipped: IndexedSeq[(Char, Char)] = str1.zip(str2)
  </code></pre>
  
  <p>However if I import the implicit method</p>
  
  <pre><code>implicit def stringToNode(str: String): xml.Node = new xml.Text(str)
  </code></pre>
  
  <p>then the Scala (2.10) compiler shows an error: <code>value zip is not a member of String</code></p>
  
  <p>It seems that the presence of <code>stringToNode</code> somehow blocks the implicit conversion of <code>str1</code> and <code>str2</code> to <code>WrappedString</code>. Why? And is there a way to modify <code>stringToNode</code> such that <code>zip</code> works but <code>stringToNode</code> is still used when I call a function that requires a <code>Node</code> argument with a <code>String</code>?</p>