id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc	os	architecture	failure	difficulty	testcase	blockedby	blocking	related
1610	Make arrays safer	igloo	igloo	"This is a proposal to make arrays safer (e.g. see #1046).

This is a divergence from Haskell 98.

The patches:

 * Add (numElements :: Ix i => a i e -> Int) to IArray class
 * Array types get an extra field for numElements, e.g.
   {{{
   -data UArray i e = UArray !i !i ByteArray#
   +data UArray i e = UArray !i !i !Int ByteArray#
   }}}
   This is a cache of rangeSize(l,u)
 * Add safeRangeSize (always returns >= 0)
 * Add safeIndex (use unsafeIndex (no Ix inRange check), but check index < numElements)
 * unsafeForeignPtrToStorableArray gained an (Ix i) context
 * Use the new functions in various places

Suggested deadline: 24 Aug 2007."	proposal	closed	high	6.8.1	libraries (other)	6.6.1	fixed			Unknown/Multiple	Unknown/Multiple		Unknown				
