What is the difference between self-types and trait subclasses?
A self-type for a trait A: trait B trait A { this: B => } says that “A cannot be mixed into a concrete class that does not also extend B“. On the other hand, the following: trait B trait A extends B says that “any (concrete or abstract) class mixing in A will also … Read more