title: Restrictions in trait mixing
body: <p>I want to have classes that can mix only specified traits:</p>
  
  <pre><code>class Peter extends Human with Lawful with Evil
  class Mag extends Elf with Chaotic with Neutral
  </code></pre>
  
  <p>Is in Scala a way to do this?</p>
  
  <p>UPD:</p>
  
  <pre><code>trait Law
  trait Lawful extends Law
  trait LNeutral extends Law
  trait Chaotic extends Law
  
  trait Moral
  trait Good extends Moral
  trait Neutral extends Moral
  trait Evil extends Moral
  
  class Hero .........
  class Homer extends Hero with Chaotic with Good
  </code></pre>
  
  <p>I want to define a <code>Hero</code> class in a way that constrains the client programmer to mix specific traits (<code>Lawful</code>/<code>LNeutral</code>/<code>Chaotic</code> and <code>Good</code>/<code>Neutral</code>/<code>Evil</code>) if he extends the <code>Hero</code> class. And I want to find some other possibilities to restrict/constrain client code like this.</p>