Cake pattern with overriding abstract type don’t work with Upper Type Bounds

It’s a shortcoming of Scala’s type system. When determining the members in a mixin, Scala uses two rules: First, concrete always overrides abstract. Second, If two members are both concrete, or both abstract, then the one that comes later in linearization order wins. Furthermore, the self type of a trait trait S { this: C … Read more