Что именно происходит со следующим?
> let test = map show
> :t test
test :: [()] -> [String]
> :t (map show)
(map show) :: Show a => [a] -> [String]
Интересно, как я раньше этого не замечал? На самом деле я столкнулся с проблемой с «map fromIntegral», а не с отображением -, что мой код не компилируется с бесточечной формой, но отлично работает без сокращения eta.
Есть ли простое объяснение того, когда уменьшение эта может изменить смысл кода на Haskell?