= Solution
Each implementation first evaluates `super.meth` and then appends its own name. Consequently the contributions appear in reverse order of the defining traits in the <Scala trait linearization>. The four printed lines are
``
E I L N H Y
E I D L N H Y
E I D L T H S Y O N
E I D L T H S Y O N
``
There is a trailing space before each newline. \b[The third and fourth lines are identical]: the declared type `D` of `o4` permits the call but does not change the actual `A` object's <dynamic dispatch> or its `super` chain. Within `N`, for example, `super.meth` in an `A` follows the next implementation in `A`'s full linearization rather than simply using `L` as its isolated textual parent.
Back to article page