Scala: понимание параметрического полиморфизма
В чем разница между
def drop1[A](l: List[A]) = l.tail
а также
def drop1(l: List[Int]) = l.tail
при условии, что использование выглядит примерно так?
drop1(List(1,2,3))
Когда один или другой должен использоваться и почему? В то время как я могу понять второй пример, я неЯ действительно не понимаю цели первого.