何が問題になってるのか、よくわからん。

メモリに全部読みこむのは「ふつうのHaskell」が getContents を
使ってるからで、Haskell 自体の問題ではないよね。

速度の問題なら、後ろからシークしていくのでないかぎり、どうせ全部
読むんだから問題ないはず。これも Haskell とは無関係。