On Tue, Jul 14, 2009 at 12:23:51PM +0100, Duncan Coutts wrote: > On Tue, 2009-07-14 at 00:20 +0100, Ian Lynagh wrote: > > On Mon, Jul 13, 2009 at 09:56:50PM +0100, Duncan Coutts wrote: > > > > > > Specifically, I suggest: > > > > > > 4. Ix keep as Data.Ix > > > 5. Array keep as Data.Array > > Though also note that we have not changed any of the existing ones. Is > there a problem with specifying in the libraries section of the report > that the exports are a minimum and not a maximum?
Here's another example I've just been looking at: Prelude> Array.listArray (1,4) [1..4] Array.! 5 *** Exception: Ix{Integer}.index: Index (5) out of range ((1,4)) Prelude> Array.listArray ((0,0), (3,3)) (repeat 0) Array.! (0,5) *** Exception: Error in array index Because the "Ix Integer" instance is for a type that we have a "Show" instance for, it can give a nice out-of-bounds error message. But the "Ix (a, b)" instance doesn't know if "(Show a, Show b)" instances exist, so it has to fall back to an unhelpful error message. So one could certainly argue that we should make Show a superclass of Ix, leaving us with a class that is incompatible with the older class definition. Thanks Ian _______________________________________________ Haskell-prime mailing list Haskell-prime@haskell.org http://www.haskell.org/mailman/listinfo/haskell-prime