[Haskell-cafe] Tricky exception handling