[Haskell] Question for the haskell implementors: Arrays, unsafePerformIO, runST