title: how to extend Stream by implementing tailDefined
body: <p>I'd like to extend <code>scala.Stream</code>.  When I try, it tells me I can't, because I don't have the required method <code>tailDefined</code>.</p>
  
  <pre><code>class S[T](s:Stream[T]) extends Stream[T] {
  
  }
  </code></pre>
  
  <p>When I try this, it tells me <code>tailDefined</code> is protected:</p>
  
  <pre><code>class S[T](s:Stream[T]) extends Stream[T] {
    def tailDefined = s.tailDefined
  }
  </code></pre>
  
  <p>How do I get around this limitation and implement an extension of <code>Stream</code>?</p>