title: Scala implicit not found "not enough arguments"
body: <p>In this simple code i have a method <code>buildResponse</code> which takes a type parameter T which must be a subtype of <code>Response</code>. </p>
  
  <p>Now the compiler tells me it does not find an implicit value when i call <code>new ResponseBuilder().build\[T]()</code> inside alltough i have defined an implicit for class Response in the Builder companion object.</p>
  
  <p>I thought due T must be a subtype of <code>Response</code> it will take the implicit value for <code>Builder[Response]</code>. If T would be something else then <code>Response</code> i would have excpected this error.</p>
  
  <p>So whats the right way to get this done ?</p>
  
  <pre><code>import scala.util.Try;
  
  object Main extends App {
  
  
  
    case class Response(val v:String){
  
    }
  
    sealed trait Builder[T] {
      def build(): Try[T]
    }
  
    object Builder {
      implicit val BuilderResponse = new Builder[Response] {
        def build(): Try[Response] = {
          Try {
            Response("Hello")
          }
        }
      }
  
      implicit val BuilderInt = new Builder[Int] {
        def build(): Try[Int] = {
          Try {
            1
          }
        }
      }
    }
  
    class ResponseBuilder
    {
      def build[T:Builder]() : Try[T] = {
         implicitly [Builder[T]].build()
      }
    }
  
    // works fine
    //new ResponseBuilder().build[Response]();
  
  
    //not enough arguments for method build: (implicit evidence$1: Main.Builder[T])scala.util.Try[T]. Unspecified value parameter evidence$1.
    def buildResponse[T &lt;: Response ]() : Try[T] = {
      new ResponseBuilder().build[T]();
    }
  
  
  }
  </code></pre>