
Hi all, Proposal: http://hackage.haskell.org/trac/ghc/ticket/1610 This is a proposal to make arrays safer, e.g. see: http://hackage.haskell.org/trac/ghc/ticket/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. Thanks Ian