[Haskell-cafe] converting IOException to Either in ErrorT
brian at lorf.org
brian at lorf.org
Sun May 3 18:36:07 EDT 2009
I wrote this to make it a little nicer to catch IO exceptions and
convert them to ErrorT failure:
onExceptionThrowError
:: (Error ce) =>
IO a
-> (String -> ce)
-> ErrorT ce IO a
onExceptionThrowError a ce =
liftIO (try a) >>=
either
(\(e :: IOException) -> throwError (ce (show e)))
return
So now I can do, e.g.,
writeFile fp s `onExceptionThrowError` SpecificErrorConstructor ...
It works, but seems bad. Please let me know if you see ways to improve
it. Thanks.
More information about the Haskell-Cafe
mailing list