Proposal: Make arrays safer

Ian Lynagh igloo at
Fri Aug 10 11:05:51 EDT 2007

Hi all,


This is a proposal to make arrays safer, e.g. see:

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.


More information about the Libraries mailing list