よくわからん。
もしhGetContentsが遅延評価でなく先行評価だったとしたら、
その「ストリームの逆順流出」プログラムはどう変わるんだ?
どっちにしてもプログラムはhead n $ reverse $ ...
なんじゃないのか。