@@ -500,7 +500,7 @@ putIndexUnsafe :: forall m a. (MonadIO m, Unbox a)
500putIndexUnsafe i MutArray{..} x = do
500putIndexUnsafe i MutArray{..} x = do
501 let index = INDEX_OF(arrStart, i, a)
501 let index = INDEX_OF(arrStart, i, a)
502 assert (i >= 0 && INDEX_VALID(index, arrEnd, a)) (return ())
502 assert (i >= 0 && INDEX_VALID(index, arrEnd, a)) (return ())
503− liftIO $ pokeByteIndex index arrContents x
503+ liftIO $ pokeAt index arrContents x
505invalidIndex :: String -> Int -> a
505invalidIndex :: String -> Int -> a
506invalidIndex label i =
506invalidIndex label i =
@@ -518,7 +518,7 @@ putIndex :: forall m a. (MonadIO m, Unbox a) => Int -> MutArray a -> a -> m ()
518putIndex i MutArray{..} x = do
518putIndex i MutArray{..} x = do
519 let index = INDEX_OF(arrStart,i,a)
519 let index = INDEX_OF(arrStart,i,a)
520 if i >= 0 && INDEX_VALID(index,arrEnd,a)
520 if i >= 0 && INDEX_VALID(index,arrEnd,a)
521− then liftIO $ pokeByteIndex index arrContents x
521+ then liftIO $ pokeAt index arrContents x
522 else invalidIndex "putIndex" i
522 else invalidIndex "putIndex" i
524-- | Write an input stream of (index, value) pairs to an array. Throws an
524-- | Write an input stream of (index, value) pairs to an array. Throws an
@@ -544,9 +544,9 @@ modifyIndexUnsafe :: forall m a b. (MonadIO m, Unbox a) =>
544modifyIndexUnsafe i MutArray{..} f = liftIO $ do
544modifyIndexUnsafe i MutArray{..} f = liftIO $ do
545 let index = INDEX_OF(arrStart,i,a)
545 let index = INDEX_OF(arrStart,i,a)
546 assert (i >= 0 && INDEX_NEXT(index,a) <= arrEnd) (return ())
546 assert (i >= 0 && INDEX_NEXT(index,a) <= arrEnd) (return ())
547− r <- peekByteIndex index arrContents
547+ r <- peekAt index arrContents
548 let (x, res) = f r
548 let (x, res) = f r
549− pokeByteIndex index arrContents x
549+ pokeAt index arrContents x
550 return res
550 return res
552-- | Modify a given index of an array using a modifier function.
552-- | Modify a given index of an array using a modifier function.
@@ -558,9 +558,9 @@ modifyIndex i MutArray{..} f = do
558 let index = INDEX_OF(arrStart,i,a)
558 let index = INDEX_OF(arrStart,i,a)
559 if i >= 0 && INDEX_VALID(index,arrEnd,a)
559 if i >= 0 && INDEX_VALID(index,arrEnd,a)
560 then liftIO $ do
560 then liftIO $ do
561− r <- peekByteIndex index arrContents
561+ r <- peekAt index arrContents
562 let (x, res) = f r
562 let (x, res) = f r
563− pokeByteIndex index arrContents x
563+ pokeAt index arrContents x
564 return res
564 return res
565 else invalidIndex "modifyIndex" i
565 else invalidIndex "modifyIndex" i
@@ -594,8 +594,8 @@ modify MutArray{..} f = liftIO $
596 when (INDEX_VALID(i,arrEnd,a)) $ do
596 when (INDEX_VALID(i,arrEnd,a)) $ do
597− r <- peekByteIndex i arrContents
597+ r <- peekAt i arrContents
598− pokeByteIndex i arrContents (f r)
598+ pokeAt i arrContents (f r)
599 go (INDEX_NEXT(i,a))
599 go (INDEX_NEXT(i,a))
601-- XXX We could specify the number of bytes to swap instead of Proxy. Need
601-- XXX We could specify the number of bytes to swap instead of Proxy. Need
@@ -609,10 +609,10 @@ swapArrayByteIndices ::
611swapArrayByteIndices _ arrContents i1 i2 = do
611swapArrayByteIndices _ arrContents i1 i2 = do
612− r1 <- peekByteIndex i1 arrContents
612+ r1 <- peekAt i1 arrContents
613− r2 <- peekByteIndex i2 arrContents
613+ r2 <- peekAt i2 arrContents
614− pokeByteIndex i1 arrContents (r2 :: a)
614+ pokeAt i1 arrContents (r2 :: a)
615− pokeByteIndex i2 arrContents (r1 :: a)
615+ pokeAt i2 arrContents (r1 :: a)
617-- | Swap the elements at two indices without validating the indices.
617-- | Swap the elements at two indices without validating the indices.
@@ -889,7 +889,7 @@ rightSize arr@MutArray{..} = do
889snocNewEnd :: (MonadIO m, Unbox a) => Int -> MutArray a -> a -> m (MutArray a)
889snocNewEnd :: (MonadIO m, Unbox a) => Int -> MutArray a -> a -> m (MutArray a)
890snocNewEnd newEnd arr@MutArray{..} x = liftIO $ do
890snocNewEnd newEnd arr@MutArray{..} x = liftIO $ do
891 assert (newEnd <= arrBound) (return ())
891 assert (newEnd <= arrBound) (return ())
892− pokeByteIndex arrEnd arrContents x
892+ pokeAt arrEnd arrContents x
893 return $ arr {arrEnd = newEnd}
893 return $ arr {arrEnd = newEnd}
895-- | Really really unsafe, appends the element into the first array, may
895-- | Really really unsafe, appends the element into the first array, may
@@ -1003,7 +1003,7 @@ getIndexUnsafe :: forall m a. (MonadIO m, Unbox a) => Int -> MutArray a -> m a
1003getIndexUnsafe i MutArray{..} = do
1003getIndexUnsafe i MutArray{..} = do
1004 let index = INDEX_OF(arrStart,i,a)
1004 let index = INDEX_OF(arrStart,i,a)
1005 assert (i >= 0 && INDEX_VALID(index,arrEnd,a)) (return ())
1005 assert (i >= 0 && INDEX_VALID(index,arrEnd,a)) (return ())
1006− liftIO $ peekByteIndex index arrContents
1006+ liftIO $ peekAt index arrContents
1008-- | /O(1)/ Lookup the element at the given index. Index starts from 0.
1008-- | /O(1)/ Lookup the element at the given index. Index starts from 0.
@@ -1012,7 +1012,7 @@ getIndex :: forall m a. (MonadIO m, Unbox a) => Int -> MutArray a -> m (Maybe a)
1012getIndex i MutArray{..} = do
1012getIndex i MutArray{..} = do
1013 let index = INDEX_OF(arrStart,i,a)
1013 let index = INDEX_OF(arrStart,i,a)
1014 if i >= 0 && INDEX_VALID(index,arrEnd,a)
1014 if i >= 0 && INDEX_VALID(index,arrEnd,a)
1015− then liftIO $ Just <$> peekByteIndex index arrContents
1015+ then liftIO $ Just <$> peekAt index arrContents
1016 else return Nothing
1016 else return Nothing
1018-- | /O(1)/ Lookup the element at the given index from the end of the array.
1018-- | /O(1)/ Lookup the element at the given index from the end of the array.
@@ -1025,7 +1025,7 @@ getIndexRev :: forall m a. (MonadIO m, Unbox a) => Int -> MutArray a -> m a
1025getIndexRev i MutArray{..} = do
1025getIndexRev i MutArray{..} = do
1026 let index = RINDEX_OF(arrEnd,i,a)
1026 let index = RINDEX_OF(arrEnd,i,a)
1027 if i >= 0 && index >= arrStart
1027 if i >= 0 && index >= arrStart
1028− then liftIO $ peekByteIndex index arrContents
1028+ then liftIO $ peekAt index arrContents
1029 else invalidIndex "getIndexRev" i
1029 else invalidIndex "getIndexRev" i
1031data GetIndicesState contents start end st =
1031data GetIndicesState contents start end st =
@@ -1165,7 +1165,7 @@ partitionBy f arr@MutArray{..} = liftIO $ do
1166 -- Invariant low < high on entry, and on return as well
1166 -- Invariant low < high on entry, and on return as well
1167 moveHigh low high = do
1167 moveHigh low high = do
1168− h <- peekByteIndex high arrContents
1168+ h <- peekAt high arrContents
1171 -- Correctly classified, continue the loop
1171 -- Correctly classified, continue the loop
@@ -1185,7 +1185,7 @@ partitionBy f arr@MutArray{..} = liftIO $ do
1185 -- low <= high
1185 -- low <= high
1186 -- Both low and high are valid locations within the array
1186 -- Both low and high are valid locations within the array
1187 go low high = do
1187 go low high = do
1188− l <- peekByteIndex low arrContents
1188+ l <- peekAt low arrContents
1191 -- low is wrongly classified
1191 -- low is wrongly classified
@@ -1196,8 +1196,8 @@ partitionBy f arr@MutArray{..} = liftIO $ do
1196 case r of
1196 case r of
1197 Nothing -> return low
1197 Nothing -> return low
1198 Just (high1, h) -> do -- low < high1
1198 Just (high1, h) -> do -- low < high1
1199− pokeByteIndex low arrContents h
1199+ pokeAt low arrContents h
1200− pokeByteIndex high1 arrContents l
1200+ pokeAt high1 arrContents l
1201 let low1 = INDEX_NEXT(low,a)
1201 let low1 = INDEX_NEXT(low,a)
1202 high2 = INDEX_PREV(high1,a)
1202 high2 = INDEX_PREV(high1,a)
1203 if low1 <= high2
1203 if low1 <= high2
@@ -1331,7 +1331,7 @@ chunksOfAs ps n (D.Stream step state) =
1331 r <- step (adaptState gst) st
1331 r <- step (adaptState gst) st
1332 case r of
1332 case r of
1333 D.Yield x s -> do
1333 D.Yield x s -> do
1334− liftIO $ pokeByteIndex end contents x
1334+ liftIO $ pokeAt end contents x
1335 let end1 = INDEX_NEXT(end,a)
1335 let end1 = INDEX_NEXT(end,a)
1336 return $
1336 return $
1337 if end1 >= bound
1337 if end1 >= bound
@@ -1418,7 +1418,7 @@ flattenArrays (D.Stream step state) = D.Stream step' (OuterLoop state)
1418 return $ D.Skip $ OuterLoop st
1418 return $ D.Skip $ OuterLoop st
1420 step' _ (InnerLoop st contents p end) = do
1420 step' _ (InnerLoop st contents p end) = do
1421− x <- liftIO $ peekByteIndex p contents
1421+ x <- liftIO $ peekAt p contents
1422 return $ D.Yield x (InnerLoop st contents (INDEX_NEXT(p,a)) end)
1422 return $ D.Yield x (InnerLoop st contents (INDEX_NEXT(p,a)) end)
1424-- | Use the "readerRev" unfold instead.
1424-- | Use the "readerRev" unfold instead.
@@ -1448,7 +1448,7 @@ flattenArraysRev (D.Stream step state) = D.Stream step' (OuterLoop state)
1448 return $ D.Skip $ OuterLoop st
1448 return $ D.Skip $ OuterLoop st
1450 step' _ (InnerLoop st contents p start) = do
1450 step' _ (InnerLoop st contents p start) = do
1451− x <- liftIO $ peekByteIndex p contents
1451+ x <- liftIO $ peekAt p contents
1452 let cur = INDEX_PREV(p,a)
1452 let cur = INDEX_PREV(p,a)
1453 return $ D.Yield x (InnerLoop st contents cur start)
1453 return $ D.Yield x (InnerLoop st contents cur start)
@@ -1487,7 +1487,7 @@ producerWith liftio = Producer step (return . toArrayUnsafe) extract
1487 -- few actions for correctness and execution order sanity. We want
1487 -- few actions for correctness and execution order sanity. We want
1488 -- the peek to occur right here and not lazily at some later point
1488 -- the peek to occur right here and not lazily at some later point
1489 -- because we want the peek to be ordered with respect to the touch.
1489 -- because we want the peek to be ordered with respect to the touch.
1490− !x <- liftio $ peekByteIndex cur contents
1490+ !x <- liftio $ peekAt cur contents
1491 return $ D.Yield x (ArrayUnsafe contents (INDEX_NEXT(cur,a)) end)
1491 return $ D.Yield x (ArrayUnsafe contents (INDEX_NEXT(cur,a)) end)
1493 extract = return . fromArrayUnsafe
1493 extract = return . fromArrayUnsafe
@@ -1518,7 +1518,7 @@ readerRevWith liftio = Unfold step inject
1518 {-# INLINE_LATE step #-}
1518 {-# INLINE_LATE step #-}
1519 step (ArrayUnsafe _ start p) | p < start = return D.Stop
1519 step (ArrayUnsafe _ start p) | p < start = return D.Stop
1520 step (ArrayUnsafe contents start p) = do
1520 step (ArrayUnsafe contents start p) = do
1521− !x <- liftio $ peekByteIndex p contents
1521+ !x <- liftio $ peekAt p contents
1522 return $ D.Yield x (ArrayUnsafe contents start (INDEX_PREV(p,a)))
1522 return $ D.Yield x (ArrayUnsafe contents start (INDEX_PREV(p,a)))
1524-- | Unfold an array into a stream in reverse order.
1524-- | Unfold an array into a stream in reverse order.
@@ -1549,7 +1549,7 @@ toListFB c n MutArray{..} = go arrStart
1549 -- evaluated/written to before we peek at them.
1549 -- evaluated/written to before we peek at them.
1551 let !x = unsafeInlineIO $ do
1551 let !x = unsafeInlineIO $ do
1552− r <- peekByteIndex arrContents p
1552+ r <- peekAt arrContents p
1553 return r
1553 return r
1554 in c x (go (PTR_NEXT(p,a)))
1554 in c x (go (PTR_NEXT(p,a)))
@@ -1566,7 +1566,7 @@ toList MutArray{..} = liftIO $ go arrStart
1567 go p | assert (p <= arrEnd) (p == arrEnd) = return []
1567 go p | assert (p <= arrEnd) (p == arrEnd) = return []
1568 go p = do
1568 go p = do
1569− x <- peekByteIndex p arrContents
1569+ x <- peekAt p arrContents
1570 (:) x <$> go (INDEX_NEXT(p,a))
1570 (:) x <$> go (INDEX_NEXT(p,a))
1572{-# INLINE_NORMAL toStreamDWith #-}
1572{-# INLINE_NORMAL toStreamDWith #-}
@@ -1580,7 +1580,7 @@ toStreamDWith liftio MutArray{..} = D.Stream step arrStart
1580 {-# INLINE_LATE step #-}
1580 {-# INLINE_LATE step #-}
1581 step _ p | assert (p <= arrEnd) (p == arrEnd) = return D.Stop
1581 step _ p | assert (p <= arrEnd) (p == arrEnd) = return D.Stop
1582 step _ p = liftio $ do
1582 step _ p = liftio $ do
1583− r <- peekByteIndex p arrContents
1583+ r <- peekAt p arrContents
1584 return $ D.Yield r (INDEX_NEXT(p,a))
1584 return $ D.Yield r (INDEX_NEXT(p,a))
1586-- | Convert a 'MutArray' into a stream.
1586-- | Convert a 'MutArray' into a stream.
@@ -1601,7 +1601,7 @@ toStreamKWith liftio MutArray{..} = go arrStart
1602 go p | assert (p <= arrEnd) (p == arrEnd) = K.nil
1602 go p | assert (p <= arrEnd) (p == arrEnd) = K.nil
1603 | otherwise =
1603 | otherwise =
1604− let elemM = peekByteIndex p arrContents
1604+ let elemM = peekAt p arrContents
1605 in liftio elemM `K.consM` go (INDEX_NEXT(p,a))
1605 in liftio elemM `K.consM` go (INDEX_NEXT(p,a))
1607{-# INLINE toStreamK #-}
1607{-# INLINE toStreamK #-}
@@ -1621,7 +1621,7 @@ toStreamDRevWith liftio MutArray{..} =
1621 {-# INLINE_LATE step #-}
1621 {-# INLINE_LATE step #-}
1622 step _ p | p < arrStart = return D.Stop
1622 step _ p | p < arrStart = return D.Stop
1623 step _ p = liftio $ do
1623 step _ p = liftio $ do
1624− r <- peekByteIndex p arrContents
1624+ r <- peekAt p arrContents
1625 return $ D.Yield r (INDEX_PREV(p,a))
1625 return $ D.Yield r (INDEX_PREV(p,a))
1627-- | Convert a 'MutArray' into a stream in reverse order.
1627-- | Convert a 'MutArray' into a stream in reverse order.
@@ -1644,7 +1644,7 @@ toStreamKRevWith liftio MutArray {..} =
1645 go p | p < arrStart = K.nil
1645 go p | p < arrStart = K.nil
1646 | otherwise =
1646 | otherwise =
1647− let elemM = peekByteIndex p arrContents
1647+ let elemM = peekAt p arrContents
1648 in liftio elemM `K.consM` go (INDEX_PREV(p,a))
1648 in liftio elemM `K.consM` go (INDEX_PREV(p,a))
1650{-# INLINE toStreamKRev #-}
1650{-# INLINE toStreamKRev #-}
@@ -1712,7 +1712,7 @@ writeAppendNUnsafe n action =
1712 return $ toArrayUnsafe arr1
1712 return $ toArrayUnsafe arr1
1714 step (ArrayUnsafe contents start end) x = do
1714 step (ArrayUnsafe contents start end) x = do
1715− liftIO $ pokeByteIndex end contents x
1715+ liftIO $ pokeAt end contents x
1716 return $ ArrayUnsafe contents start (INDEX_NEXT(end,a))
1716 return $ ArrayUnsafe contents start (INDEX_NEXT(end,a))
1718-- | Append @n@ elements to an existing array. Any free space left in the array
1718-- | Append @n@ elements to an existing array. Any free space left in the array
@@ -1772,7 +1772,7 @@ writeNWithUnsafe alloc n = fromArrayUnsafe <$> FL.foldlM' step initial
1772 initial = toArrayUnsafe <$> alloc (max n 0)
1772 initial = toArrayUnsafe <$> alloc (max n 0)
1774 step (ArrayUnsafe contents start end) x = do
1774 step (ArrayUnsafe contents start end) x = do
1775− liftIO $ pokeByteIndex end contents x
1775+ liftIO $ pokeAt end contents x
1777 $ ArrayUnsafe contents start (INDEX_NEXT(end,a))
1777 $ ArrayUnsafe contents start (INDEX_NEXT(end,a))
@@ -1855,7 +1855,7 @@ writeRevNWithUnsafe alloc n = fromArrayUnsafe <$> FL.foldlM' step initial
1856 step (ArrayUnsafe contents start end) x = do
1856 step (ArrayUnsafe contents start end) x = do
1857 let ptr = INDEX_PREV(start,a)
1857 let ptr = INDEX_PREV(start,a)
1858− liftIO $ pokeByteIndex ptr contents x
1858+ liftIO $ pokeAt ptr contents x
1860 $ ArrayUnsafe contents ptr end
1860 $ ArrayUnsafe contents ptr end
@@ -1994,7 +1994,7 @@ fromStreamDNAs ps limit str = do
1996 fwrite arrContents ptr x = do
1996 fwrite arrContents ptr x = do
1997− liftIO $ pokeByteIndex ptr arrContents x
1997+ liftIO $ pokeAt ptr arrContents x
1998 return $ INDEX_NEXT(ptr,a)
1998 return $ INDEX_NEXT(ptr,a)
2000-- | Use the 'writeN' fold instead.
2000-- | Use the 'writeN' fold instead.
@@ -2416,7 +2416,7 @@ strip eq arr@MutArray{..} = liftIO $ do
2416 getStart cur = do
2416 getStart cur = do
2417 if cur < arrEnd
2417 if cur < arrEnd
2419− r <- peekByteIndex cur arrContents
2419+ r <- peekAt cur arrContents
2421 then getStart (INDEX_NEXT(cur,a))
2421 then getStart (INDEX_NEXT(cur,a))
2422 else return cur
2422 else return cur
@@ -2426,7 +2426,7 @@ strip eq arr@MutArray{..} = liftIO $ do
2426 if cur > low
2426 if cur > low
2428 let prev = INDEX_PREV(cur,a)
2428 let prev = INDEX_PREV(cur,a)
2429− r <- peekByteIndex prev arrContents
2429+ r <- peekAt prev arrContents
2431 then getLast prev low
2431 then getLast prev low
2432 else return cur
2432 else return cur