Neil Mitchell wrote:
Hi

Thanks for the tips, Isaac.  I fixed my Ord decl.  Too bad about the
run-time time & space overhead.  I guess that's not fixable.  Perhaps Simon
will decide to follow Pepe's suggestion of liberal deriving when
UndecidableInstances enabled.

If you implement compare, isn't everything else simply a small
constant over compare? And thats only if the optimiser doesn't pick up
that constant and throw it away.

In general, I think if you implement compare in Ord, you are likely to
end up with best (or very near best) performance.

It'll probably only be a significant difference if (f a) or (g a) has an unusual Ord instance that has rather different implementations of the different members (<), (compare) etc. Which probably never actually happens.

Implementing compare likely needs to make one more comparison somewhere, versus (<) etc. (unless the optimizer is really good). Usually compare is the nicest anyway.

Isaac


_______________________________________________
Cvs-ghc mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/cvs-ghc

Reply via email to