Arrays with unboxed elements. Instances of IArray are provided
for UArray with certain element types (Int, Float, Char,
etc.; see the UArray class for a full list).
A UArray will generally be more efficient (in terms of both time
and space) than the equivalent Array with the same
element type. However, UArray is strict in its elements - so
don't use UArray if you require the non-strictness that
Because the IArray interface provides operations overloaded on
the type of the array, it should be possible to just change the
array type being used by a program from say Array to UArray to
get the benefits of unboxed arrays (don't forget to import
Data.Array.Unboxed instead of Data.Array).