
What do those folks working on parallel Haskell arrays think about the sequential Haskell array baseline performance?
Try using a fast array library like uvector? (With no serious overhead for tuples too, fwiw)...
I downloaded uvector a while ago, but haven't got round to trying it (yet another array API?). Mostly, I'd like to know a little more than just "fast array lib": - in which ways is it supposed to be faster? why? - for which usage patterns is it optimised? how? - if it is faster in general, why hasn't it replaced the default arrays? In general, I think Haskell has too many array libraries, with too many APIs. And that doesn't even take account the overuse of unsafe APIs, or the non-integrated type-level safety tricks - if array accesses were properly optimized, there should be a lot less need for the extreme all-or-nothing checks or home-grown alternative special-purpose APIs: - type-level code for watermarking indices belonging to certain index sets is one step to eliminate index checks, but hasn't been integrated into any of the standard libs - one could also associate index subsets with operations that do not leave the index superset belonging to an array (eg, if min