<div dir="ltr">Hello,<br><br>I&#39;m happy to announce the first release of the attempt package[1]. It is meant to solve the &quot;how should I represent a failure&quot; issue. It is based on extensible exceptions and provides a monad, a monad transformers and helper functions to replace many standard, unsafe functions like head. This release should be considered unstable as the API is still open to some change, but is quite usable.<br>
<br>I have a blog post [2] which includes an example walk through of how to use this library. It covers most of what is available.<br><br>Comments are most welcome. I would like this to be a suitable replacement for the ubiquitous Maybe, (Either String) and ad-hoc Result data types so often used to report a failure. I&#39;d be very happy to improve the package for the general community.<br>
<br>Michael<br><br>[1] <a href="http://hackage.haskell.org/cgi-bin/hackage-scripts/package/attempt">http://hackage.haskell.org/cgi-bin/hackage-scripts/package/attempt</a><br>[2] <a href="http://blog.snoyman.com/2009/10/25/introduction-to-attempt-error-reporting-library/">http://blog.snoyman.com/2009/10/25/introduction-to-attempt-error-reporting-library/</a><br>
</div>