Out of curiosity, what's difficult about that mutable array implementation?
I'm a relative Haskell novice, but was able to write some mutable array code with only a cursory read through the documentation.
Granted it's extremely verbose compared to most imperative languages.