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