title: How to default to immutable Seq in scala?
body: <p>I learned today that scala's <code>Seq</code> can mean that both a mutable or immutable Seq can fulfill its type alias. (I stumbled over a <a href="https://orrsella.com/2014/02/27/the-default-scala-seq-is-mutable-wait-what/" rel="nofollow noreferrer">blogpost</a> talking about it.)</p>
  
  <p>In my codebase, I try to follow functional programming best practices and while I did assume <code>Seq</code> to enforce an immutable Sequence, it may not be and hence causing an entry-point for unintended side-effects.</p>
  
  <p>In order to protect against mutable Seq I could type my functions using a Sequence with: </p>
  
  <p><code>scala.collection.immutable.Seq</code> in each of my files in which I am expecting a <code>Seq</code>.</p>
  
  <p>I also do not prefer to read <code>immutable.Seq</code> in my code base.</p>
  
  <p>For me, <code>Seq</code> should behave just like <code>Set</code> alias and be immutable by default.</p>
  
  <p>Is there a way I can make the default <code>Seq</code> alias to point to its immutable counterpart for my project without hindering vendor imports?</p>