Если тип ($)
— (a -> b) -> a -> b
, то почему вам разрешено каррировать его как ($2)
? 2 не относится к типу (a -> b)
. См. пример ниже.
map ($2)[(+1),(+2)]
Это законно, круто и интуитивно понятно. Скажите, пожалуйста, как это согласуется с правилами системы типов?
Ваше здоровье