Por que scala não unifica esse tipo lambda com o tipo subjacente?
trait A {
type T
def test(t: T): Unit
}
case class B[S <: A](a: S, t : S#T) {
def test() = a.test(t) // Error: type mismatch;
// found : B.this.t.type (with underlying type S#T)
// required: B.this.a.T
}
Estou errado ao esperar que o acima seja compilado? Meu código pode ser corrigido?