Если да, то является ли это частью стандарта или оптимизацией для конкретного ghc, от которой мы можем зависеть? Или просто оптимизация, от которой мы не обязательно можем зависеть.
P.S.: Когда я попробовал тестовый образец, он, похоже, показал, что это имеет место/
Prelude> let isOdd x = x `mod` 2 == 1
Prelude> let isEven x = x `mod` 2 == 0
Prelude> ((filter isOdd).(filter isEven)) [1..]
Жрет процессор, но не потребляет много памяти.