title: scala function with two implicits string parameters
body: <p>I'd like a function to have two implicit parameters, both being strings, such as:</p>
  
  <pre><code>def fn(p1: String)(implicit p2: String, p3: String);
  </code></pre>
  
  <p>but this does not work, because it is ambiguous for the compiler.
  I tried with traits, but it is not possible for a trait to extend a string, such as:</p>
  
  <pre><code>trait P2 extends String
  trait P3 extends String
  def fn(p1: String)(implicit p2: P2, p3: P3);
  </code></pre>
  
  <p>another solution would be a case class, but then I need to call p2.value, which I don't like</p>
  
  <pre><code>case class P2(value: String)
  case class P3(value: String)
  def fn(p1: String)(implicit p2: P2, p3: P3) { p2.value... }
  </code></pre>
  
  <p>any other solution?</p>