自分で再帰書いたら中間リストのないコードになるのでは。

まあ融合変換は現実的には自分の手でやるもんじゃないよね。

ところで>>959の差ってどこで生まれてるんだろ?
zip して filter は素のリストだと融合変換してくれないの?
unlines のところの中間リストの違い?
http://hackage.haskell.org/package/stream-fusion-0.1.1/docs/Data-List-Stream.html
とかを使うと変わるかな?