Я знаю, что такое ковариация и контравариантность типов. У меня вопрос: почему я до сих пор не сталкивался с обсуждением этих концепций при изучении Haskell (в отличие, скажем, от Scala)?
Кажется, есть фундаментальное различие в том, как Haskell рассматривает типы в отличие от Scala или C #, и я хотел бы сформулировать, в чем разница.
Или, может быть, я ошибаюсь и просто еще недостаточно выучил Haskell: -)