↑up
lines.hs の出力が期待と異なる。String に対する show で、'\n' がエスケープされていないことが原因。
see also: Real World Haskell: Appendix B. Characters, strings, and escaping rules
まずは、show (出力側)のエスケープに対応してみようかと思う。 こちらでも empty escape は出現する。
Prelude> "\x82\&11" "\130\&11"
それ以外は、比較的単純ではないか。
⇒ done.