Proposal: Bounded instance for IntSet (ticket #1953)

kahl at kahl at
Mon Dec 3 00:10:12 EST 2007

On Sun, 2 Dec 2007, at 23:53:36 +0000, Ross Paterson wrote:
 > On Sun, Dec 02, 2007 at 03:45:40PM -0800, David Benbennick wrote:
 > > I propose to add a Bounded instance to IntSet.hs.
 > > 
 > > IntSet is in Ord, and there are only finitely many instances of
 > > IntSet. Therefore there is a min IntSet and a max IntSet. It turns out
 > > these bounds are very simple:
 > > 
 > > instance Bounded IntSet where
 > >     minBound = empty
 > >     maxBound = singleton maxBound
 > These are the minimum and maximum under the Ord instance (also for Set),
 > but what is the intuition behind that ordering?

In my opinion, the class ``Ord'' is not particularly heavy on intuition;
it just provides an interface to ``the standard linear ordering''
for each of its types,
so that these types can be used for keys in Data.Map's, etc.

Not many types are naturally understood as linearly ordered,
but most of those types should still be usable for keys in maps.

Bounded happens to be defined over Ord, so such instances make sense
for whatever uses people want to put Bounded to.


More information about the Libraries mailing list