trait A { type T[_] type S = (T with T)[A] }