Kiedy redukcja eta może zmienić typ funkcji?
Co dokładnie dzieje się z następującymi?
<code>> let test = map show > :t test test :: [()] -> [String] > :t (map show) (map show) :: Show a => [a] -> [String] </code>
Zastanawiam się, jak nie zauważyłem tego wcześniej? W rzeczywistości napotkałam problem z „map fromIntegral” zamiast pokazywać - mój kod nie kompiluje się z formularzem bez znaku, ale działa bez redukcji eta.
Czy istnieje proste wyjaśnienie, kiedy redukcja eta może zmienić znaczenie kodu Haskella?