It looks like Array and IArray have missed some important BBP bits. In particular, we have great ways to build arrays out of lists, but not out of other Foldables. I think we can fix IArray by adding new methods. I think we can fix up Array by adding some functions to Data.Array or by sticking Data.Foldable underneath GHC.Arr and sticking them in there (the low-level fiddling involved would be a better match for GHC.Arr).