
There are a number of other data types in that module that have a similar
construction IIRC, such as AssertionFailed, NoMethodError,
PatternMatchFail, RecConError, RelSelError, etc. which should probably pick
up Eq, Ord for consistency (and become newtypes).
and a few others that can have the obvious trivial, empty Eq, Ord like
NonTermination, NestedAtomically, BlockedIndefinitelyOnMVar.
The module is currently a bit ad hoc about which types support Eq and Ord.
For instance, ArrayException already supported this kind of Eq/Ord, and all
the multiple constructor versions did, but none of the single-constructor
trivial versions and only some of the reasonable-to-newtype ones.
-Edward
On Tue, Nov 27, 2012 at 8:57 AM, Simon Marlow
On 27/11/12 10:59, Simon Hengel wrote:
Hi, I propose to add an Eq instance for ErrorCall. The main motivation is to make it more convenient to construct predicates that select specific exceptions.
My current use case is testing for expected exceptions. In Hspec[1] we use predicates for that, e.g.:
evaluate (head []) `shouldThrow` (== ErrorCall "Prelude.head: empty list")
But I think it can be useful in other situations and it is consistent with the fact that other common exception types have an Eq instance (e.g. ArithException, IOException, ExitCode).
Discussion period: 3 Weeks
Already did it, a few weeks ago:
http://www.haskell.org/**pipermail/cvs-libraries/2012-** October/016043.htmlhttp://www.haskell.org/pipermail/cvs-libraries/2012-October/016043.html
Cheers, Simon
______________________________**_________________ Libraries mailing list Libraries@haskell.org http://www.haskell.org/**mailman/listinfo/librarieshttp://www.haskell.org/mailman/listinfo/libraries