do内のletがパターンマッチに失敗した例外をキャッチする方法?
こんなコードではまってた。
import Control.Exception main = try doIO >>= print doIO = do [x] <- return $ [1, 2] return x -- Left user error (Pattern match failure in do expression at c:/home/tmp/hoge.hs:3:10-12)
import Control.Exception main = try doIO >>= print doIO = do let [x] = [1, 2] return x -- Right *** Exception: c:/home/tmp/hoge.hs:3:14-25: Irrefutable pattern failed for pattern [x]
後者の例外をキャッチするのはどうすればいいんだろう... ええっと、doの中のletってどんなsyntax sugarだっけ?