-newSTArray ixs init = strictToLazyST (newArray ixs init)
-readSTArray arr ix = strictToLazyST (readArray arr ix)
-writeSTArray arr ix v = strictToLazyST (writeArray arr ix v)
-boundsSTArray = boundsOfArray
-thawSTArray = strictToLazyST . thawArray
-freezeSTArray = strictToLazyST . freezeArray
-unsafeFreezeSTArray = strictToLazyST . unsafeFreezeArray
+newSTArray ixs init =
+ strictToLazyST (newArray ixs init) >>= \arr ->
+ return (STArray arr)
+
+readSTArray (STArray arr) ix = strictToLazyST (readArray arr ix)
+writeSTArray (STArray arr) ix v = strictToLazyST (writeArray arr ix v)
+boundsSTArray (STArray arr) = boundsOfArray arr
+thawSTArray arr =
+ strictToLazyST (thawArray arr) >>= \arr ->
+ return (STArray arr)
+freezeSTArray (STArray arr) = strictToLazyST (freezeArray arr)
+unsafeFreezeSTArray (STArray arr) = strictToLazyST (unsafeFreezeArray arr)