This seems like a natural thing to have around, but it's not in GHC 6.6...
newTArrayIO :: (Enum i, Ix i) => (i, i) -> a -> IO (TArray i a)
newTArrayIO (a,b) = liftM (TArray . listArray (a,b)) . sequence . zipWith ignore [a..b] . repeat . newTVarIO
where ignore = flip const
I haven't done any testing with this beyond type checking, but it seems like it could be useful for similar cases to newTVarIO. Has anyone else played with anything similar?
--
Chad Scherrer
"Time flies like an arrow; fruit flies like a banana" -- Groucho Marx