Разница между выводом типа метода и параметрами типа класса при сопоставлении с образцом

Почему сопоставление с образцом работает по-разному, когда параметр типа поступает из включающего метода, а не из включающего класса? Например, trait Base[T] case class Derived(v: Int) extends Base[Int] class Test[A] { def method(arg: Base[A]) = { arg match { case Derived(_) => 42 } } } дает...