@@ -158,12 +158,12 @@ spliceArraysLenUnsafe :: (MonadIO m, Storable a)
158 => Int -> SerialT m (Array a) -> m (Array a)
158 => Int -> SerialT m (Array a) -> m (Array a)
159spliceArraysLenUnsafe len buffered = do
159spliceArraysLenUnsafe len buffered = do
160 arr <- liftIO $ A.newArray len
160 arr <- liftIO $ A.newArray len
161− end <- S.foldlM' writeArr (aEnd arr) buffered
161+ end <- S.foldlM' writeArr (return $ aEnd arr) buffered
162 return $ arr {aEnd = end}
162 return $ arr {aEnd = end}
166− writeArr dst Array{..} =
166+ writeArr dst Array{..} = do
167 liftIO $ withForeignPtr aStart $ \src -> do
167 liftIO $ withForeignPtr aStart $ \src -> do
168 let count = aEnd `minusPtr` src
168 let count = aEnd `minusPtr` src
169 A.memcpy (castPtr dst) (castPtr src) count
169 A.memcpy (castPtr dst) (castPtr src) count
@@ -181,7 +181,7 @@ _spliceArraysBuffered s = do
181spliceArraysRealloced :: forall m a. (MonadIO m, Storable a)
181spliceArraysRealloced :: forall m a. (MonadIO m, Storable a)
182 => SerialT m (Array a) -> m (Array a)
182 => SerialT m (Array a) -> m (Array a)
183spliceArraysRealloced s = do
183spliceArraysRealloced s = do
184− idst <- liftIO $ A.newArray (A.bytesToElemCount (undefined :: a)
184+ let idst = liftIO $ A.newArray (A.bytesToElemCount (undefined :: a)
185 (A.mkChunkSizeKB 4))
185 (A.mkChunkSizeKB 4))
187 arr <- S.foldlM' A.spliceWithDoubling idst s
187 arr <- S.foldlM' A.spliceWithDoubling idst s