Różnica między wnioskowaniem typu metody i parametrów typu klasy w dopasowaniu wzorca

Dlaczego dopasowanie wzorca działa inaczej, gdy parametr type pochodzi z otaczającej metody, a nie z otaczającej klasy? Na przykład, trait Base[T] case class Derived(v: Int) extends Base[Int] class Test[A] { def method(arg: Base[A]) = { arg match { case Derived(_) => 42 } } } daje...