Here, following is explained
///////////////////////////////////////////////////////////////////////////
trait A { def common = “A” }
trait B extends A { override def common = “B” }
trait C extends A { override def common = “C” }
class D1 extends B with C
class D2 extends C with B
In case of (D1), the superclass of C is B.
///////////////////////////////////////////////////////////////////////////
Following same reasoning, in case of (D2), the superclass of B is C.
So is it possible to vary hierarchy relationships dynamically by varying traits linearly?
Asked here too: