@@ -573,8 +573,8 @@ isPinned MutArray{..} = Unboxed.isPinned arrContents
573573-- /Pre-release/
574574{-# INLINE emptyWithAligned #-}
575575newArrayWith , emptyWithAligned :: forall m a . (MonadIO m , Unbox a )
576- => (Int -> Int -> m MutByteArray ) -> Int -> Int -> m (MutArray a )
577- emptyWithAligned alloc alignSize count = do
576+ => (Int -> Int -> IO MutByteArray ) -> Int -> Int -> m (MutArray a )
577+ emptyWithAligned alloc alignSize count = liftIO $ do
578578 let size = max (count * SIZE_OF (a)) 0
579579 contents <- alloc size alignSize
580580 return $ MutArray
@@ -2226,6 +2226,7 @@ writeAppend :: forall m a. (MonadIO m, Unbox a) =>
22262226 m (MutArray a ) -> Fold m a (MutArray a )
22272227writeAppend = append
22282228
2229+ -- XXX Use "IO" instead of "m"
22292230-- XXX We can carry bound as well in the state to make sure we do not lose the
22302231-- remaining capacity. Need to check perf impact.
22312232--
@@ -2292,6 +2293,7 @@ pinnedWriteNUnsafe :: forall m a. (MonadIO m, Unbox a)
22922293 => Int -> Fold m a (MutArray a )
22932294pinnedWriteNUnsafe = unsafeCreateOf'
22942295
2296+ -- XXX Use "IO" instead of "m"
22952297-- | @createWithOf alloc n@ folds a maximum of @n@ elements into an array
22962298-- allocated using the @alloc@ function.
22972299--
@@ -3179,14 +3181,14 @@ cast arr =
31793181-- array after pinning.
31803182{-# DEPRECATED unsafePinnedAsPtr "Pin the array and then use unsafeAsPtr." #-}
31813183{-# INLINE unsafePinnedAsPtr #-}
3182- unsafePinnedAsPtr :: MonadIO m => MutArray a -> (Ptr a -> Int -> m b ) -> m b
3184+ unsafePinnedAsPtr :: MonadIO m => MutArray a -> (Ptr a -> Int -> IO b ) -> m b
31833185unsafePinnedAsPtr arr f = do
31843186 arr1 <- liftIO $ pin arr
31853187 unsafeAsPtr arr1 f
31863188
31873189{-# DEPRECATED asPtrUnsafe "Pin the array and then use unsafeAsPtr." #-}
31883190{-# INLINE asPtrUnsafe #-}
3189- asPtrUnsafe :: MonadIO m => MutArray a -> (Ptr a -> m b ) -> m b
3191+ asPtrUnsafe :: MonadIO m => MutArray a -> (Ptr a -> IO b ) -> m b
31903192asPtrUnsafe a f = unsafePinnedAsPtr a (\ p _ -> f p)
31913193
31923194-- | @unsafeAsPtr arr f@, f is a function used as @f ptr len@ where @ptr@ is a
@@ -3200,7 +3202,7 @@ asPtrUnsafe a f = unsafePinnedAsPtr a (\p _ -> f p)
32003202-- /Pre-release/
32013203--
32023204{-# INLINE unsafeAsPtr #-}
3203- unsafeAsPtr :: MonadIO m => MutArray a -> (Ptr a -> Int -> m b ) -> m b
3205+ unsafeAsPtr :: MonadIO m => MutArray a -> (Ptr a -> Int -> IO b ) -> m b
32043206unsafeAsPtr arr f =
32053207 Unboxed. unsafeAsPtr
32063208 (arrContents arr)
@@ -3216,7 +3218,7 @@ unsafeAsPtr arr f =
32163218-- to the total capacity.
32173219{-# INLINE unsafePinnedCreateUsingPtr #-}
32183220unsafePinnedCreateUsingPtr
3219- :: MonadIO m => Int -> (Ptr Word8 -> m Int ) -> m (MutArray Word8 )
3221+ :: MonadIO m => Int -> (Ptr Word8 -> IO Int ) -> m (MutArray Word8 )
32203222unsafePinnedCreateUsingPtr cap pop = do
32213223 (arr :: MutArray Word8 ) <- emptyOf' cap
32223224 len <- Unboxed. unsafeAsPtr (arrContents arr) pop
0 commit comments