[project @ 2001-03-25 09:57:24 by qrczak]
Promote (//) from a function to IArray method with an inefficient
default definition. This completely compatible change allows efficient
implementations of (//) for particular types.
Explicitly define efficient (//) for Array and UArray.
Use unsafeFreeze* instead of freeze* in (//), accum and accumArray
for Array and IArray.
Remove showList in instance Show Array (the default definition does
the job).
Add Eq, Ord and Show instances for UArray. (Would be simpler if types
in instance contexts were not required to be type variables. I didn't
use -fallow-undecidable-instances but defined instances for individual
element types separately.)
Add unsafe{Freeze,Thaw}/{STArray,IOArray,IOUArray} rules.
Fix thaw/IOUArray rule (nobody uses IOUArrays in the ST monad!).