Haskell で SJIS 文字列

HaskellソースコードにUTF8以外の日本語を記入するとコンパイル時にエラーになります。(コメントはOK)
UTF8の日本語を出力するときも、そのままでは出力できず、 utf8-string パッケージをインストールして System.IO.UTF8のputStrLnなどを使用しなければなりません。

-- UTF8のファイル
import System.IO.UTF8

main = System.IO.UTF8.putStrLn "こんにちはハスケル!"

SJIS のファイルを読み込んで表示する分にはそのままでOKです。

PS D:\haskell\json> cat sjis.txt
Windows では SQL server、MS-Access など SJIS でないとやりにくい。
こんにちはハスケル!
SELECT * FROM table WHERE name='鳩山'

こんな SJIS のテキストファイルを readFile で読み込み表示します。

PS D:\haskell\json> ghci
Prelude> nihonngo <- readFile "./sjis.txt"

Prelude> putStrLn ((lines nihonngo)!!0)
Windows では SQL server、MS-Access など SJIS でないとやりにくい。

Prelude> putStrLn ((lines nihonngo)!!2)
SELECT * FROM table WHERE name='鳩山'

SJIS日本語を含んだ SQL文が必要なときなど、以下の文字化けした SQL文ならソースに貼り付けても OK です。

Prelude> ((lines nihonngo)!!2)
"SELECT * FROM table WHERE name='\148\181\142R'"

青木さんの『ふつうのHaskellプログラミング』のサンプル Wiki「LazyLines」は EUCを使って変換せずに表示しています。
UTF8からSJISに変換してもOK、たぶん。
'\148\181\142R' は何という表記方法かな・・・。