Consider the code below:
trait A { def work = { \"x\" } } trait B { def work = { 1 } } class C extends A with B { override def work = super[A].work }
Scala simply prevents you from mixing A and B together if they declare a method with the same name and incompatible signature.
A
B