[project @ 2001-08-29 09:34:05 by simonmar]
Changes to the Ix class from the revised Haskell 98 report:
- Ord is no longer a superclass of Ix.
- rangeSize is now a class member, as there are cases when
it is useful to be able to override it. As a result, GHC's
performance-improving "unsafeRangeSize" function also has to be
a class method just in case the programmer has overriden
rangeSize. Of course, unsafeRangeSize isn't visible when just
importing Ix.
- Added unsafeRangeSize bindings to all our standard Ix instances.
- Improved the Ix instances for Int{8,16,32,64} and
Word{8,16,32,64} by defining unsafeIndex instead of index, and
providing a definition of unsafeRangeSize.
I hope I haven't mucked anything up :) The array tests all pass
successfully, except for arr016 which depended on Ord being a
superclass of Ix. I'll commit changes to this test shortly.