title: Why Dart does not allow mixin inheritance?
body: <p>Dart does not support true mixin composition like Scala does.</p>
  
  <pre class="lang-dart prettyprint-override"><code>library some_lib;
  
  // mixin A
  abstract class A {
    String get a =&gt; 'A';
  }
  
  // mixin B
  abstract class B extends Object with A {
    String get b =&gt; a + 'B';
  }
  </code></pre>
  
  <p><br>
  Client usage</p>
  
  <pre class="lang-dart prettyprint-override"><code>import 'some_lib.dart';
  
  // client usage
  class Client extends Object with B {      
    String get c =&gt; b + 'C';
  }
  
  void main(){
    print(new Client().c); // should print ABC
  }
  </code></pre>
  
  <p>Dart analyzer complains saying <strong>"The class 'B' cannot be used as a mixin because it extends a class other than Object"</strong></p>
  
  <p>I know you would reply that the following works fine:</p>
  
  <pre class="lang-dart prettyprint-override"><code>class C extends Object with A, B {
    String get c =&gt; a + b;
  }
  </code></pre>
  
  <p>But I'm designing a library that will export some mixins that share some common functionality (provided by a base mixin), witch is relevant to their behavior, but irrelevant to my library clients.</p>
  
  <p>I would even want to make this base mixin private if possible.</p>
  
  <p>Any thoughts on that?</p>