title: Scala double definition (2 methods have the same type erasure)
body: <p>I wrote this in scala and it won't compile:</p>
  
  <pre><code>class TestDoubleDef{
    def foo(p:List[String]) = {}
    def foo(p:List[Int]) = {}
  }
  </code></pre>
  
  <p>the compiler notify:</p>
  
  <pre><code>[error] double definition:
  [error] method foo:(List[String])Unit and
  [error] method foo:(List[Int])Unit at line 120
  [error] have same type after erasure: (List)Unit
  </code></pre>
  
  <p>I know JVM has no native support for generics so I understand this error.</p>
  
  <p>I could write wrappers for <code>List[String]</code> and <code>List[Int]</code> but I'm lazy :)</p>
  
  <p>I'm doubtful but, is there another way expressing <code>List[String]</code> is not the same type than <code>List[Int]</code>?</p>
  
  <p>Thanks.</p>