After I solidified my understanding of why a parameter in a method is a contravariant position with SO post scala contravariant position on method
I am looking at List[+A] in scala and I see this method which is fine since the parameter position is contravariant
def contains[A1 >: A](elem: A1)
What I don't get is the :: method definition which seems like that would not compile
def ::(x: A): List[A]
What is going on with this method? oh, they hide the real signature?
def ::[B >: A](x: B): List[B]
ok, then why do they hide the real signature?