Когда это может изменить тип функции?

Что именно происходит со следующим?

<code>> let test = map show

> :t test
test :: [()] -> [String]

> :t (map show)
(map show) :: Show a => [a] -> [String]
</code>

Мне интересно, как я не заметил этого раньше? Я действительно столкнулся с проблемой с & quot; map fromIntegral & quot; вместо того, чтобы показывать - мой код не компилируется с формой pointfree, но работает нормально без сокращения eta.

Есть ли простое объяснение того, когда сокращение eta может изменить смысл кода на Haskell?

Ответы на вопрос(1)

Ваш ответ на вопрос