object Test {
  class A
  class B
  class C
  class F[X]

  def f(implicit aa: F[A]) = println(aa)

  // implicit def a : F[A] = new F[A]()
  implicit def b[X <: B] = new F[X]()

  f
}

/* bug: 
error: type arguments [Test2.A] do not conform to method b's type parameter bounds [X <: Test2.B]
*/