[project @ 2001-03-25 09:57:24 by qrczak]
authorqrczak <unknown>
Sun, 25 Mar 2001 09:57:26 +0000 (09:57 +0000)
committerqrczak <unknown>
Sun, 25 Mar 2001 09:57:26 +0000 (09:57 +0000)
commit9bff24a32365150f01a543a5bb0a95fa0939b065
tree78d4e2ff6107ae38f86b7a64fc9c722d6788b194
parentc9b18c77c9f4f6ad4ebb69b6a693516ae34efdaf
[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!).
ghc/lib/std/PrelArr.lhs
ghc/lib/std/PrelStable.lhs