Statement of the question
Consider a type T that contains an abstract type member A:
T
A
trait T { type A }
I can't see how that could possibly work. Specialization is done when compiling the class, and, at that time, A isn't known.