[haskell]iniファイルとexception

ini形式のデータをパースして値を取得できるようにします。また、ファイルが無いときの例外キャッチをできるようにします。

lookupValueやparseIniは例外送出せず、値が見つからなき時はLeft Stringになります。

catchはMonadCatchの型クラスを扱うためIOから抜けだせません。そのようなものなのでしょうか。理解できていません。

iniファイルのフォーマットに沿ってないファイル、単にセクションが見つからないだけです。パースはできています。

ちなみに実行ファイルサイズは4598736バイトでした。