UArrays should always be initialized with known elements, otherwise we
can lose referential transparency:
Prelude> :m + Data.Array.Unboxed
Prelude Data.Array.Unboxed> let f () = array (1, 5) [] :: UArray Int Int
Prelude Data.Array.Unboxed> f () == f ()
False
Noticed-by: Tomasz Zielonka <t.zielonka@students.mimuw.edu.pl>
MERGE TO STABLE