From List[+T] I understand a list of dogs is also a list of animals which aligns perfectly with the intuition. From def :: [B >: A](elem: B): List[B]
List[+T]
def :: [B >: A](elem: B): List[B]