4 Dec 02:34
Re: Proposal: Bounded instance for IntSet (ticket #1953)
Ross Paterson <ross <at> soi.city.ac.uk>
2007-12-04 01:34:15 GMT
2007-12-04 01:34:15 GMT
On Mon, Dec 03, 2007 at 03:32:52PM +0200, Yitzchak Gale wrote: > Henning Thielemann wrote: > > ...it is not sensible to have different instances for the same > > type and class, because they will collide sooner or later. > > True. That is why libraries should not define an instance > at all, unless they are quite certain that it is by far the most > important instance that anyone will ever want to use. I would draw the opposite conclusion from the same data: if a sensible instance can be identified, it should accompany either the class or the type constructor. If people define orphan instances, they will eventually collide, even they are identical. (There are a few orphans in Control.Monad.Instances, but that is required to preserve compatibility with Haskell 98.) But in the case at issue, the proposed Bounded instance is counter-intuitive because the underlying Ord instance is. That Ord instance is an arbitrary choice that is accepted because it allows IntSets to be used as search keys; it makes no sense on its own. A Bounded instance would attach unwarranted significance to this arbitrary ordering. It might be different if there were a use in sight for the Bounded instance.
RSS Feed