removed nasty bug:

trait A { type X }
trait B extends A { class X extends super.X }
trait C extends B { class X extends super.X }  //unsound

Actually, C cannot easily extend B unless X doesn't change (even simple
derivation is unsound.)