title: Recursive implicit parameter
body: <p>Imagine the following code:</p>
  
  <pre><code>trait Converter[T] {
    def convert(value: String): T
  }
  
  object Converter {
    implicit val intConverter: Converter[Int] = value =&gt; value.toInt
    implicit def optionConverter[T]: Converter[Option[T]] = new OptionConverter[T]
  }
  
  class OptionConverter[T](implicit val ev: Converter[T]) extends Converter[Option[T]] {
    ...
  }
  </code></pre>
  
  <p>As you can see the <code>OptionConverter</code> takes in a <code>Converter[T]</code> for the type its containing but the compiler complains because when it tries to compile <code>OptionConverter</code> it doesn't know the type.</p>
  
  <p>I imagine this probably has already been solved...but I can't figure a solution.</p>
  
  <p>Any ideas?</p>