Henning Thielemann schrieb:
Ivan Lazar Miljenovic schrieb:
On 3 September 2010 04:57, Arie Peterson <[email protected]> wrote:
On Thu, 2 Sep 2010 19:30:17 +0200, Daniel Fischer
<[email protected]> wrote:
Why would one consider using Ord for Map an abuse?
A kludge, for performance reasons, but an abuse?
Because it forces one to declare Ord instances for types which have no
natural ordering. It is useful to *not* have such instances, in order to
catch programming errors.
What precisely do you mean by natural ordering?
E.g. I wanted to have a Set of Gaussian (complex) integers, but I did
not want to define an Ord instance for them, because writing
a < (b :: Gaussian)
is a bug with high probability.
I like to answer in advance to the objections that might come. :-)
You might object, that it is seldom, that someone intentionally writes
(a<b) if 'a' and 'b' are complex numbers. However imagine someone
rewrites an algorithm for real numbers to complex numbers and he relies
on the type system to catch all inconsistencies. The field operations
can remain the same, but (<) has to be applied to results of 'abs',
'realPart' or other functions that yield a real.
_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe