title: extending scala collections for a specific member type
body: <p>I want to do something like</p>
  
  <pre><code>class Pack extends collection.immutable.List[Dog]{
    def pullSled() = //...
  }
  </code></pre>
  
  <p>But the Scala compiler tells me</p>
  
  <pre><code>illegal inheritance from sealed class List
  </code></pre>
  
  <p>This would be trivial to do in Java, but I think there is something key I am missing.</p>
  
  <p><strong>Motivations:</strong></p>
  
  <p>I want to be able to use all the base class methods</p>
  
  <pre><code>(new Pack()).contains(snoopy)
  </code></pre>
  
  <p>I want to be able to extend it, either directly or with mixins</p>
  
  <pre><code>new Pack() with Driver
  </code></pre>
  
  <p>I would like to be able to change the underlying collection type simply (to switch to a Set for instance)</p>
  
  <p>Thanks!</p>