benefits of using self type annotations over inheritance

This is true, but I think people will get confused if we don't give an example of what really we mean.
Would you mind drafting an example here? Something among the lines of (but let's use nice words instead of A, B, C) (maybe fruit and their traits?):

```scala
scala> trait C {
     | def c = "c"
     | }
defined trait C

scala> trait B { this: C => def b = "b" }
defined trait B

scala> trait A { this: B => def a = "a" }
defined trait A

scala> new A with B
<console>:11: error: illegal inheritance;
 self-type A with B does not conform to B's selftype B with C
              new A with B
                         ^

scala> new A with B with C
res1: A with B with C = $anon$1@532760d8

scala> new A with B
<console>:11: error: illegal inheritance;
 self-type A with B does not conform to B's selftype B with C
              new A with B
                         ^

scala> trait A { this: B => def a = "a"; def bb = b }
defined trait A

scala> trait A { this: B => def a = "a"; def bb = b; def cc = c }
<console>:9: error: not found: value c
       trait A { this: B => def a = "a"; def bb = b; def cc = c }

```