Using cake and stackable traits patterns together

Yet another difference is that with a self type, the SomeClass bound is only visible within the body of SomeTrait2, but not from the outside:

scala> implicitly[SomeTrait <:< SomeClass]
res0: <:<[SomeTrait,SomeClass] = <function1>

scala> implicitly[SomeTrait2 <:< SomeClass]
<console>:14: error: Cannot prove that SomeTrait2 <:< SomeClass.
       implicitly[SomeTrait2 <:< SomeClass]
                 ^