Haskellの文字列に関する無理難題

2ch Haskellスレで「Haskell処理系が日本語文字列をまともに処理してくれねぇ!」という(よくある)不満から,CharとかString (= [Char]) みたいな組み込みの(いわゆる "primitive" )データ型をユーザ定義もしくはライブラリの提供するものでどうやったら置き換えられるかという興味深い問題が派生している.現状は「パタンマッチ辺りのせいでどうにもならんよな」みたいな論調,でいいのかな.(運悪くちょうど新スレ移行してしまった)
ちょうど「Scalaではパタンマッチもユーザ定義できる」みたいなレスが付いたのを読んだ.似た話ではRubyrequire "mathn" とすると(演算子の定義が更新されて)以降の数値演算がみんな有理数を吐くんだよな(笑).考えてみればあれはすごい.