import PrelPack
import GlaExts
import Addr
-import PrelIOBase ( IO(..), IOResult(..))
-import PrelArr ( StateAndMutableByteArray#(..),
- StateAndByteArray#(..)
- )
+import PrelIOBase ( IO(..) )
\end{code}
allocChars :: Int -> IO (MutableByteArray RealWorld Int)
allocChars (I# size#) = IO $ \ s# ->
case newCharArray# size# s# of
- StateAndMutableByteArray# s2# barr# ->
- IOok s2# (MutableByteArray (I# 1#, I# size#) barr#)
+ (# s2#, barr# #) ->
+ (# s2#, (MutableByteArray (I# 1#, I# size#) barr#) #)
allocWords :: Int -> IO (MutableByteArray RealWorld Int)
allocWords (I# size#) = IO $ \ s# ->
case newIntArray# size# s# of
- StateAndMutableByteArray# s2# barr# ->
- IOok s2# (MutableByteArray (I# 1#, I# size#) barr#)
+ (# s2#, barr# #) ->
+ (# s2#, (MutableByteArray (I# 1#, I# size#) barr#) #)
-- Freeze these index-free mutable arrays
freeze :: MutableByteArray RealWorld Int -> IO (ByteArray Int)
freeze (MutableByteArray ixs arr#) = IO $ \ s# ->
case unsafeFreezeByteArray# arr# s# of
- StateAndByteArray# s2# frozen# ->
- IOok s2# (ByteArray ixs frozen#)
+ (# s2#, frozen# #) ->
+ (# s2#, (ByteArray ixs frozen#) #)
-- Copy a null-terminated string from outside the heap to
-- Haskellized nonsense inside the heap