on master help sign in
Replace Unboxed with Unbox and remove the Unboxed type alias
commit1fb51c42ae5a3752ffc679fb6dd1afe419355bd4 authorAdithya Kumar <adithya@composewell.com> dateTue 25 Oct 2022, 17:25 (4 years ago) parentdb3f2de
28 files changed+292−295
benchmark/Streamly/Benchmark/Data/Array/Stream/Unboxed.hs+3−3 benchmark/Streamly/Benchmark/Unicode/Stream.hs+2−2 core/src/Streamly/Internal/Data/Array/Unboxed.hs+20−20 core/src/Streamly/Internal/Data/Array/Unboxed/Fold.hs+5−5 core/src/Streamly/Internal/Data/Array/Unboxed/Mut.hs+5−5 core/src/Streamly/Internal/Data/Array/Unboxed/Mut/Stream.hs+10−10 core/src/Streamly/Internal/Data/Array/Unboxed/Mut/Type.hs+98−98 core/src/Streamly/Internal/Data/Array/Unboxed/Stream.hs+32−32 core/src/Streamly/Internal/Data/Array/Unboxed/Type.hs+45−45 core/src/Streamly/Internal/Data/Fold.hs+6−6 core/src/Streamly/Internal/Data/IORef/Unboxed.hs+7−7 core/src/Streamly/Internal/Data/Ring/Unboxed.hs+3−3 core/src/Streamly/Internal/Data/Stream/Bottom.hs+2−2 core/src/Streamly/Internal/Data/Stream/Eliminate.hs+2−2 core/src/Streamly/Internal/Data/Stream/Generate.hs+2−2 core/src/Streamly/Internal/Data/Stream/Reduce.hs+2−2 core/src/Streamly/Internal/Data/Stream/StreamD/Nesting.hs+3−3 core/src/Streamly/Internal/Data/Unboxed.hs+6−9 core/src/Streamly/Internal/FileSystem/Handle.hs+4−4 src/Streamly/Internal/Data/Stream/IsStream/Common.hs+3−3 src/Streamly/Internal/Data/Stream/IsStream/Eliminate.hs+2−2 src/Streamly/Internal/Data/Stream/IsStream/Generate.hs+2−2 src/Streamly/Internal/Data/Stream/IsStream/Reduce.hs+10−10 src/Streamly/Internal/FileSystem/FD.hs+5−5 src/Streamly/Internal/Network/Socket.hs+7−7 test/Streamly/Test/Data/Array/Unboxed.hs+2−2 test/Streamly/Test/Data/Array/Unboxed/Mut.hs+2−2 test/Streamly/Test/Prelude/Serial.hs+2−2
benchmark/Streamly/Benchmark/Data/Array/Stream/Unboxed.hs+3−3
@@ -51,7 +51,7 @@ import Streamly.Benchmark.Common.Handle
5151import Control.Monad.IO.Class (MonadIO)
5252
5353#ifdef INSPECTION
54−import Streamly.Internal.Data.Unboxed (Unboxed)
54+import Streamly.Internal.Data.Unboxed (Unbox)
5555import Streamly.Internal.Data.Stream.StreamD.Type (Step(..))
5656import Test.Inspection
5757#endif
@@ -188,7 +188,7 @@ copyChunksSplitInterposeSuffix inh outh =
188188 $ Handle.readChunks inh
189189
190190#ifdef INSPECTION
191−inspect $ hasNoTypeClassesExcept 'copyChunksSplitInterposeSuffix [''Unboxed]
191+inspect $ hasNoTypeClassesExcept 'copyChunksSplitInterposeSuffix [''Unbox]
192192inspect $ 'copyChunksSplitInterposeSuffix `hasNoType` ''Step
193193#endif
194194
@@ -203,7 +203,7 @@ copyChunksSplitInterpose inh outh =
203203 $ Handle.readChunks inh
204204
205205#ifdef INSPECTION
206−inspect $ hasNoTypeClassesExcept 'copyChunksSplitInterpose [''Unboxed]
206+inspect $ hasNoTypeClassesExcept 'copyChunksSplitInterpose [''Unbox]
207207inspect $ 'copyChunksSplitInterpose `hasNoType` ''Step
208208#endif
209209
benchmark/Streamly/Benchmark/Unicode/Stream.hs+2−2
@@ -36,7 +36,7 @@ import Streamly.Benchmark.Common
3636import Streamly.Benchmark.Common.Handle
3737
3838#ifdef INSPECTION
39−import Streamly.Internal.Data.Unboxed (Unboxed)
39+import Streamly.Internal.Data.Unboxed (Unbox)
4040import Streamly.Internal.Data.Stream.StreamD.Type (Step(..))
4141import qualified Streamly.Internal.Data.Fold.Type as Fold
4242import qualified Streamly.Internal.Data.Tuple.Strict as Strict
@@ -106,7 +106,7 @@ linesUnlinesArrayCharCopy inh outh =
106106 $ Stream.unfold Handle.reader inh
107107
108108#ifdef INSPECTION
109−inspect $ hasNoTypeClassesExcept 'linesUnlinesArrayCharCopy [''Unboxed]
109+inspect $ hasNoTypeClassesExcept 'linesUnlinesArrayCharCopy [''Unbox]
110110-- inspect $ 'linesUnlinesArrayCharCopy `hasNoType` ''Step
111111#endif
112112
core/src/Streamly/Internal/Data/Array/Unboxed.hs+20−20
@@ -126,7 +126,7 @@ import Data.Word (Word8)
126126import Foreign.C.String (CString)
127127import Foreign.Ptr (castPtr)
128128import Streamly.Internal.Data.Unboxed
129− ( Unboxed
129+ ( Unbox
130130 , castContents
131131 , peekWith
132132 , sizeOf
@@ -165,7 +165,7 @@ import qualified Streamly.Internal.Data.Unfold as Unfold
165165--
166166-- /Pre-release/
167167{-# INLINE fromStreamN #-}
168−fromStreamN :: (MonadIO m, Unboxed a) => Int -> Stream m a -> m (Array a)
168+fromStreamN :: (MonadIO m, Unbox a) => Int -> Stream m a -> m (Array a)
169169fromStreamN n m = do
170170 when (n < 0) $ error "writeN: negative write count specified"
171171 A.fromStreamDN n $ Stream.toStreamD m
@@ -180,7 +180,7 @@ fromStreamN n m = do
180180--
181181-- /Pre-release/
182182{-# INLINE fromStream #-}
183−fromStream :: (MonadIO m, Unboxed a) => Stream m a -> m (Array a)
183+fromStream :: (MonadIO m, Unbox a) => Stream m a -> m (Array a)
184184fromStream m = P.fold A.write $ Stream.toStreamK m
185185-- write m = A.fromStreamD $ D.fromStreamK m
186186
@@ -189,7 +189,7 @@ fromStream m = P.fold A.write $ Stream.toStreamK m
189189-------------------------------------------------------------------------------
190190
191191{-# INLINE_NORMAL producer #-}
192−producer :: forall m a. (Monad m, Unboxed a) => Producer m (Array a) a
192+producer :: forall m a. (Monad m, Unbox a) => Producer m (Array a) a
193193producer =
194194 Producer.translate A.unsafeThaw A.unsafeFreeze
195195 $ MA.producerWith (return . unsafeInlineIO)
@@ -197,7 +197,7 @@ producer =
197197-- | Unfold an array into a stream.
198198--
199199{-# INLINE_NORMAL reader #-}
200−reader :: forall m a. (Monad m, Unboxed a) => Unfold m (Array a) a
200+reader :: forall m a. (Monad m, Unbox a) => Unfold m (Array a) a
201201reader = Producer.simplify producer
202202
203203-- | Unfold an array into a stream, does not check the end of the array, the
@@ -212,7 +212,7 @@ reader = Producer.simplify producer
212212-- /Pre-release/
213213--
214214{-# INLINE_NORMAL readerUnsafe #-}
215−readerUnsafe :: forall m a. (Monad m, Unboxed a) => Unfold m (Array a) a
215+readerUnsafe :: forall m a. (Monad m, Unbox a) => Unfold m (Array a) a
216216readerUnsafe = Unfold step inject
217217 where
218218
@@ -245,7 +245,7 @@ null arr = A.byteLength arr == 0
245245--
246246-- /Pre-release/
247247{-# INLINE getIndexRev #-}
248−getIndexRev :: forall a. Unboxed a => Int -> Array a -> Maybe a
248+getIndexRev :: forall a. Unbox a => Int -> Array a -> Maybe a
249249getIndexRev i arr =
250250 unsafeInlineIO
251251 $ do
@@ -261,7 +261,7 @@ getIndexRev i arr =
261261--
262262-- /Pre-release/
263263{-# INLINE last #-}
264−last :: Unboxed a => Array a -> Maybe a
264+last :: Unbox a => Array a -> Maybe a
265265last = getIndexRev 0
266266
267267-------------------------------------------------------------------------------
@@ -273,7 +273,7 @@ last = getIndexRev 0
273273--
274274{-# INLINE writeLastN #-}
275275writeLastN ::
276− (Unboxed a, MonadIO m) => Int -> Fold m a (Array a)
276+ (Unbox a, MonadIO m) => Int -> Fold m a (Array a)
277277writeLastN n
278278 | n <= 0 = fmap (const mempty) FL.drain
279279 | otherwise = A.unsafeFreeze <$> Fold step initial done
@@ -353,7 +353,7 @@ find = Unfold.fold Fold.null . Stream.unfold (findIndicesOf p)
353353-- /Pre-release/
354354{-# INLINE getSliceUnsafe #-}
355355getSliceUnsafe ::
356− forall a. Unboxed a
356+ forall a. Unbox a
357357 => Int -- ^ starting index
358358 -> Int -- ^ length of the slice
359359 -> Array a
@@ -369,7 +369,7 @@ getSliceUnsafe index len (Array contents start e) =
369369--
370370-- /Pre-release/
371371{-# INLINE splitOn #-}
372−splitOn :: (Monad m, Unboxed a) =>
372+splitOn :: (Monad m, Unbox a) =>
373373 (a -> Bool) -> Array a -> Stream m (Array a)
374374splitOn predicate arr =
375375 Stream.fromStreamD
@@ -377,7 +377,7 @@ splitOn predicate arr =
377377 $ D.sliceOnSuffix predicate (A.toStreamD arr)
378378
379379{-# INLINE genSlicesFromLen #-}
380−genSlicesFromLen :: forall m a. (Monad m, Unboxed a)
380+genSlicesFromLen :: forall m a. (Monad m, Unbox a)
381381 => Int -- ^ from index
382382 -> Int -- ^ length of the slice
383383 -> Unfold m (Array a) (Int, Int)
@@ -390,7 +390,7 @@ genSlicesFromLen from len =
390390--
391391-- /Pre-release//
392392{-# INLINE getSlicesFromLen #-}
393−getSlicesFromLen :: forall m a. (Monad m, Unboxed a)
393+getSlicesFromLen :: forall m a. (Monad m, Unbox a)
394394 => Int -- ^ from index
395395 -> Int -- ^ length of the slice
396396 -> Unfold m (Array a) (Array a)
@@ -408,7 +408,7 @@ getSlicesFromLen from len =
408408-- | /O(1)/ Lookup the element at the given index. Index starts from 0.
409409--
410410{-# INLINE getIndex #-}
411−getIndex :: forall a. Unboxed a => Int -> Array a -> Maybe a
411+getIndex :: forall a. Unbox a => Int -> Array a -> Maybe a
412412getIndex i arr =
413413 unsafeInlineIO
414414 $ do
@@ -435,7 +435,7 @@ getIndex i arr =
435435--
436436-- /Pre-release/
437437{-# INLINE getIndices #-}
438−getIndices :: (Monad m, Unboxed a) => Stream m Int -> Unfold m (Array a) a
438+getIndices :: (Monad m, Unbox a) => Stream m Int -> Unfold m (Array a) a
439439getIndices m =
440440 let unf = MA.getIndicesD (return . unsafeInlineIO) $ D.fromStreamK $ Stream.toStreamK m
441441 in Unfold.lmap A.unsafeThaw unf
@@ -471,7 +471,7 @@ getIndicesFromThenTo = undefined
471471-- operation.
472472--
473473{-# INLINE runPipe #-}
474−runPipe :: (MonadIO m, Unboxed a, Unboxed b)
474+runPipe :: (MonadIO m, Unbox a, Unbox b)
475475 => Pipe m a b -> Array a -> m (Array b)
476476runPipe f arr = P.runPipe (toArrayMinChunk (length arr)) $ f (A.read arr)
477477-}
@@ -484,7 +484,7 @@ runPipe f arr = P.runPipe (toArrayMinChunk (length arr)) $ f (A.read arr)
484484--
485485-- /Pre-release/
486486{-# INLINE streamTransform #-}
487−streamTransform :: forall m a b. (MonadIO m, Unboxed a, Unboxed b)
487+streamTransform :: forall m a b. (MonadIO m, Unbox a, Unbox b)
488488 => (Stream m a -> Stream m b) -> Array a -> m (Array b)
489489streamTransform f arr =
490490 P.fold (A.writeWith (length arr)) $ Stream.toStreamK $ f (A.read arr)
@@ -519,7 +519,7 @@ asBytes = castUnsafe
519519-- target element otherwise 'Nothing' is returned.
520520--
521521--
522−cast :: forall a b. (Unboxed b) => Array a -> Maybe (Array b)
522+cast :: forall a b. (Unbox b) => Array a -> Maybe (Array b)
523523cast arr =
524524 let len = A.byteLength arr
525525 r = len `mod` SIZE_OF(b)
@@ -551,12 +551,12 @@ asCStringUnsafe arr act = do
551551--
552552-- /Pre-release/
553553{-# INLINE fold #-}
554−fold :: forall m a b. (Monad m, Unboxed a) => Fold m a b -> Array a -> m b
554+fold :: forall m a b. (Monad m, Unbox a) => Fold m a b -> Array a -> m b
555555fold f arr = P.fold f (Stream.toStreamK (A.read arr))
556556
557557-- | Fold an array using a stream fold operation.
558558--
559559-- /Pre-release/
560560{-# INLINE streamFold #-}
561−streamFold :: (Monad m, Unboxed a) => (Stream m a -> m b) -> Array a -> m b
561+streamFold :: (Monad m, Unbox a) => (Stream m a -> m b) -> Array a -> m b
562562streamFold f arr = f (A.read arr)
core/src/Streamly/Internal/Data/Array/Unboxed/Fold.hs+5−5
@@ -61,7 +61,7 @@ import Control.Exception (assert)
6161import Control.Monad.Catch (MonadThrow)
6262import Control.Monad.IO.Class (MonadIO(..))
6363import Data.Bifunctor (first)
64−import Streamly.Internal.Data.Unboxed (peekWith, sizeOf, Unboxed)
64+import Streamly.Internal.Data.Unboxed (peekWith, sizeOf, Unbox)
6565import GHC.Types (SPEC(..))
6666import Streamly.Internal.Data.Array.Unboxed.Mut.Type (touch)
6767import Streamly.Internal.Data.Array.Unboxed.Type (Array(..))
@@ -101,7 +101,7 @@ newtype ArrayFold m a b = ArrayFold (ParserD.Parser m (Array a) b)
101101#ifdef DEVBUILD
102102fromFold :: forall m a b. (MonadIO m) =>
103103#else
104−fromFold :: forall m a b. (MonadIO m, Unboxed a) =>
104+fromFold :: forall m a b. (MonadIO m, Unbox a) =>
105105#endif
106106 Fold.Fold m a b -> ArrayFold m a b
107107fromFold (Fold.Fold fstep finitial fextract) =
@@ -143,7 +143,7 @@ fromFold (Fold.Fold fstep finitial fextract) =
143143#ifdef DEVBUILD
144144fromParserD :: forall m a b. (MonadIO m) =>
145145#else
146−fromParserD :: forall m a b. (MonadIO m, Unboxed a) =>
146+fromParserD :: forall m a b. (MonadIO m, Unbox a) =>
147147#endif
148148 ParserD.Parser m a b -> ArrayFold m a b
149149fromParserD (ParserD.Parser step1 initial1 extract1) =
@@ -189,7 +189,7 @@ fromParserD (ParserD.Parser step1 initial1 extract1) =
189189#ifdef DEVBUILD
190190fromParser :: forall m a b. (MonadThrow m, MonadIO m) =>
191191#else
192−fromParser :: forall m a b. (MonadThrow m, MonadIO m, Unboxed a) =>
192+fromParser :: forall m a b. (MonadThrow m, MonadIO m, Unbox a) =>
193193#endif
194194 Parser.Parser m a b -> ArrayFold m a b
195195fromParser = fromParserD . ParserD.fromParserK
@@ -314,7 +314,7 @@ instance MonadThrow m => Monad (ArrayFold m a) where
314314
315315-- | Take @n@ array elements (@a@) from a stream of arrays (@Array a@).
316316{-# INLINE take #-}
317−take :: forall m a b. (Monad m, Unboxed a) =>
317+take :: forall m a b. (Monad m, Unbox a) =>
318318 Int -> ArrayFold m a b -> ArrayFold m a b
319319take n (ArrayFold (ParserD.Parser step1 initial1 extract1)) =
320320 ArrayFold $ ParserD.Parser step initial extract
core/src/Streamly/Internal/Data/Array/Unboxed/Mut.hs+5−5
@@ -33,7 +33,7 @@ module Streamly.Internal.Data.Array.Unboxed.Mut
3333where
3434
3535import Control.Monad.IO.Class (MonadIO(..))
36−import Streamly.Internal.Data.Unboxed (Unboxed)
36+import Streamly.Internal.Data.Unboxed (Unbox)
3737import Streamly.Internal.Data.Stream (Stream)
3838import Streamly.Internal.Data.Unfold.Type (Unfold(..))
3939
@@ -50,7 +50,7 @@ import Streamly.Internal.Data.Array.Unboxed.Mut.Type
5050--
5151-- /Pre-release/
5252{-# INLINE splitOn #-}
53−splitOn :: (MonadIO m, Unboxed a) =>
53+splitOn :: (MonadIO m, Unbox a) =>
5454 (a -> Bool) -> Array a -> Stream m (Array a)
5555splitOn predicate arr =
5656 Stream.fromStreamD
@@ -63,7 +63,7 @@ splitOn predicate arr =
6363--
6464-- /Pre-release/
6565{-# INLINE genSlicesFromLen #-}
66−genSlicesFromLen :: forall m a. (Monad m, Unboxed a)
66+genSlicesFromLen :: forall m a. (Monad m, Unbox a)
6767 => Int -- ^ from index
6868 -> Int -- ^ length of the slice
6969 -> Unfold m (Array a) (Int, Int)
@@ -80,7 +80,7 @@ genSlicesFromLen from len =
8080--
8181-- /Pre-release/
8282{-# INLINE getSlicesFromLen #-}
83−getSlicesFromLen :: forall m a. (Monad m, Unboxed a)
83+getSlicesFromLen :: forall m a. (Monad m, Unbox a)
8484 => Int -- ^ from index
8585 -> Int -- ^ length of the slice
8686 -> Unfold m (Array a) (Array a)
@@ -98,6 +98,6 @@ getSlicesFromLen from len =
9898--
9999-- /Pre-release/
100100{-# INLINE fromStream #-}
101−fromStream :: (MonadIO m, Unboxed a) => Stream m a -> m (Array a)
101+fromStream :: (MonadIO m, Unbox a) => Stream m a -> m (Array a)
102102fromStream = fromStreamD . Stream.toStreamD
103103-- fromStream (Stream m) = P.fold write m
core/src/Streamly/Internal/Data/Array/Unboxed/Mut/Stream.hs+10−10
@@ -31,7 +31,7 @@ import Control.Monad.IO.Class (MonadIO(..))
3131import Control.Monad (when)
3232import Control.Monad.Catch (MonadThrow)
3333import Data.Bifunctor (first)
34−import Streamly.Internal.Data.Unboxed (Unboxed, sizeOf)
34+import Streamly.Internal.Data.Unboxed (Unbox, sizeOf)
3535import Streamly.Internal.Data.Array.Unboxed.Mut.Type (Array(..))
3636import Streamly.Internal.Data.Fold.Type (Fold(..))
3737import Streamly.Internal.Data.Stream.Type (Stream)
@@ -52,7 +52,7 @@ import qualified Streamly.Internal.Data.Stream.Type as Stream
5252--
5353-- /Pre-release/
5454{-# INLINE arraysOf #-}
55−arraysOf :: (MonadIO m, Unboxed a)
55+arraysOf :: (MonadIO m, Unbox a)
5656 => Int -> Stream m a -> Stream m (Array a)
5757arraysOf n = Stream.fromStreamD . MArray.arraysOf n . Stream.toStreamD
5858
@@ -81,7 +81,7 @@ data SpliceState s arr
8181--
8282-- @since 0.7.0
8383{-# INLINE_NORMAL packArraysChunksOf #-}
84−packArraysChunksOf :: (MonadIO m, Unboxed a)
84+packArraysChunksOf :: (MonadIO m, Unbox a)
8585 => Int -> D.Stream m (Array a) -> D.Stream m (Array a)
8686packArraysChunksOf n (D.Stream step state) =
8787 D.Stream step' (SpliceInitial state)
@@ -129,7 +129,7 @@ packArraysChunksOf n (D.Stream step state) =
129129-- lpackArraysChunksOf = Fold.many compactLEFold
130130--
131131{-# INLINE_NORMAL lpackArraysChunksOf #-}
132−lpackArraysChunksOf :: (MonadIO m, Unboxed a)
132+lpackArraysChunksOf :: (MonadIO m, Unbox a)
133133 => Int -> Fold m (Array a) () -> Fold m (Array a) ()
134134lpackArraysChunksOf n (Fold step1 initial1 extract1) =
135135 Fold step initial extract
@@ -191,7 +191,7 @@ lpackArraysChunksOf n (Fold step1 initial1 extract1) =
191191--
192192-- /Internal/
193193{-# INLINE compact #-}
194−compact :: (MonadIO m, Unboxed a)
194+compact :: (MonadIO m, Unbox a)
195195 => Int -> Stream m (Array a) -> Stream m (Array a)
196196compact n = Stream.fromStreamD . packArraysChunksOf n . Stream.toStreamD
197197
@@ -204,7 +204,7 @@ compact n = Stream.fromStreamD . packArraysChunksOf n . Stream.toStreamD
204204-- /Internal/
205205{-# INLINE_NORMAL compactLEParserD #-}
206206compactLEParserD ::
207− forall m a. (MonadThrow m, MonadIO m, Unboxed a)
207+ forall m a. (MonadThrow m, MonadIO m, Unbox a)
208208 => Int -> ParserD.Parser m (Array a) (Array a)
209209compactLEParserD n = ParserD.Parser step initial extract
210210
@@ -254,7 +254,7 @@ compactLEParserD n = ParserD.Parser step initial extract
254254-- /Internal/
255255{-# INLINE_NORMAL compactGEFold #-}
256256compactGEFold ::
257− forall m a. (MonadIO m, Unboxed a)
257+ forall m a. (MonadIO m, Unbox a)
258258 => Int -> FL.Fold m (Array a) (Array a)
259259compactGEFold n = Fold step initial extract
260260
@@ -298,7 +298,7 @@ compactGEFold n = Fold step initial extract
298298-- maximum specified size in bytes.
299299--
300300-- /Internal/
301−compactLE :: (MonadThrow m, MonadIO m, Unboxed a) =>
301+compactLE :: (MonadThrow m, MonadIO m, Unbox a) =>
302302 Int -> Stream m (Array a) -> Stream m (Array a)
303303compactLE n =
304304 Stream.fromStreamD . D.parseMany (compactLEParserD n) . Stream.toStreamD
@@ -308,7 +308,7 @@ compactLE n =
308308--
309309-- /Unimplemented/
310310{-# INLINE compactEQ #-}
311−compactEQ :: -- (MonadIO m, Unboxed a) =>
311+compactEQ :: -- (MonadIO m, Unbox a) =>
312312 Int -> Stream m (Array a) -> Stream m (Array a)
313313compactEQ _n _xs = undefined
314314 -- IsStream.fromStreamD $ D.foldMany (compactEQFold n) (IsStream.toStreamD xs)
@@ -319,7 +319,7 @@ compactEQ _n _xs = undefined
319319-- /Internal/
320320{-# INLINE compactGE #-}
321321compactGE ::
322− (MonadIO m, Unboxed a)
322+ (MonadIO m, Unbox a)
323323 => Int -> Stream m (Array a) -> Stream m (Array a)
324324compactGE n =
325325 Stream.fromStreamD . D.foldMany (compactGEFold n) . Stream.toStreamD
core/src/Streamly/Internal/Data/Array/Unboxed/Mut/Type.hs+98−98
@@ -223,7 +223,7 @@ import Foreign.C.Types (CSize(..), CInt(..))
223223import Foreign.Ptr (plusPtr, minusPtr, nullPtr)
224224import Streamly.Internal.Data.Unboxed
225225 ( MutableByteArray(..)
226− , Unboxed
226+ , Unbox
227227 , alignment
228228 , castContents
229229 , getMutableByteArray#
@@ -286,7 +286,7 @@ foreign import ccall unsafe "string.h memcmp" c_memcmp
286286-- how many elements of that type will completely fit in those bytes.
287287--
288288{-# INLINE bytesToElemCount #-}
289−bytesToElemCount :: forall a. Unboxed a => a -> Int -> Int
289+bytesToElemCount :: forall a. Unbox a => a -> Int -> Int
290290bytesToElemCount _ n = n `div` SIZE_OF(a)
291291
292292-- XXX we are converting Int to CSize
@@ -333,7 +333,7 @@ memcmp p1 p2 len = do
333333--
334334data Array a =
335335#ifdef DEVBUILD
336− Unboxed a =>
336+ Unbox a =>
337337#endif
338338 -- The array is a range into arrContents. arrContents may be a superset of
339339 -- the slice represented by the array. All offsets are in bytes.
@@ -389,7 +389,7 @@ unpin arr@Array{..} = do
389389--
390390-- /Pre-release/
391391{-# INLINE newArrayWith #-}
392−newArrayWith :: forall m a. (MonadIO m, Unboxed a)
392+newArrayWith :: forall m a. (MonadIO m, Unbox a)
393393 => (Int -> Int -> m (MutableByteArray a)) -> Int -> Int -> m (Array a)
394394newArrayWith alloc alignSize count = do
395395 let size = max (count * SIZE_OF(a)) 0
@@ -403,7 +403,7 @@ newArrayWith alloc alignSize count = do
403403
404404nil ::
405405#ifdef DEVBUILD
406− Unboxed a =>
406+ Unbox a =>
407407#endif
408408 Array a
409409nil = Array Unboxed.nil 0 0 0
@@ -415,7 +415,7 @@ nil = Array Unboxed.nil 0 0 0
415415--
416416-- /Pre-release/
417417{-# INLINE newPinnedBytes #-}
418−newPinnedBytes :: forall m a. (MonadIO m, Unboxed a) => Int -> m (Array a)
418+newPinnedBytes :: forall m a. (MonadIO m, Unbox a) => Int -> m (Array a)
419419newPinnedBytes bytes = do
420420 contents <-
421421 liftIO
@@ -432,7 +432,7 @@ newPinnedBytes bytes = do
432432--
433433-- /Internal/
434434{-# INLINE newAlignedPinned #-}
435−newAlignedPinned :: (MonadIO m, Unboxed a) => Int -> Int -> m (Array a)
435+newAlignedPinned :: (MonadIO m, Unbox a) => Int -> Int -> m (Array a)
436436newAlignedPinned =
437437 newArrayWith (\s a -> liftIO $ Unboxed.newAlignedPinnedBytes s a)
438438
@@ -443,14 +443,14 @@ newAlignedPinned =
443443-- instance of the type.
444444--
445445{-# INLINE newPinned #-}
446−newPinned :: forall m a. (MonadIO m, Unboxed a) => Int -> m (Array a)
446+newPinned :: forall m a. (MonadIO m, Unbox a) => Int -> m (Array a)
447447newPinned = newAlignedPinned (alignment (undefined :: a))
448448
449449-- | Allocates an empty unpinned array that can hold 'count' items. The memory
450450-- of the array is uninitialized.
451451--
452452{-# INLINE new #-}
453−new :: (MonadIO m, Unboxed a) => Int -> m (Array a)
453+new :: (MonadIO m, Unbox a) => Int -> m (Array a)
454454new =
455455 newArrayWith
456456 (\s _ -> liftIO $ Unboxed.newUnpinnedBytes s)
@@ -462,7 +462,7 @@ new =
462462-- /Internal/
463463{-# INLINE withNewArrayUnsafe #-}
464464withNewArrayUnsafe ::
465− (MonadIO m, Unboxed a) => Int -> (Ptr a -> m ()) -> m (Array a)
465+ (MonadIO m, Unbox a) => Int -> (Ptr a -> m ()) -> m (Array a)
466466withNewArrayUnsafe count f = do
467467 arr <- newPinned count
468468 asPtrUnsafe arr
@@ -477,7 +477,7 @@ withNewArrayUnsafe count f = do
477477--
478478-- /Pre-release/
479479{-# INLINE putIndexUnsafe #-}
480−putIndexUnsafe :: forall m a. (MonadIO m, Unboxed a)
480+putIndexUnsafe :: forall m a. (MonadIO m, Unbox a)
481481 => Int -> a -> Array a -> m ()
482482putIndexUnsafe i x Array{..} = do
483483 let index = INDEX_OF(arrStart, i, a)
@@ -496,7 +496,7 @@ invalidIndex label i =
496496-- >>> putIndex ix val arr = Stream.fold (f arr) (Stream.fromPure (ix, val))
497497--
498498{-# INLINE putIndex #-}
499−putIndex :: forall m a. (MonadIO m, Unboxed a) => Int -> a -> Array a -> m ()
499+putIndex :: forall m a. (MonadIO m, Unbox a) => Int -> a -> Array a -> m ()
500500putIndex i x Array{..} = do
501501 let index = INDEX_OF(arrStart,i,a)
502502 if i >= 0 && INDEX_VALID(index,arrEnd,a)
@@ -508,7 +508,7 @@ putIndex i x Array{..} = do
508508--
509509-- /Pre-release/
510510{-# INLINE putIndices #-}
511−putIndices :: forall m a. (MonadIO m, Unboxed a)
511+putIndices :: forall m a. (MonadIO m, Unbox a)
512512 => Array a -> Fold m (Int, a) ()
513513putIndices arr = FL.foldlM' step (return ())
514514
@@ -519,7 +519,7 @@ putIndices arr = FL.foldlM' step (return ())
519519-- | Modify a given index of an array using a modifier function.
520520--
521521-- /Pre-release/
522−modifyIndexUnsafe :: forall m a b. (MonadIO m, Unboxed a) =>
522+modifyIndexUnsafe :: forall m a b. (MonadIO m, Unbox a) =>
523523 Int -> (a -> (a, b)) -> Array a -> m b
524524modifyIndexUnsafe i f Array{..} = liftIO $ do
525525 let index = INDEX_OF(arrStart,i,a)
@@ -532,7 +532,7 @@ modifyIndexUnsafe i f Array{..} = liftIO $ do
532532-- | Modify a given index of an array using a modifier function.
533533--
534534-- /Pre-release/
535−modifyIndex :: forall m a b. (MonadIO m, Unboxed a) =>
535+modifyIndex :: forall m a b. (MonadIO m, Unbox a) =>
536536 Int -> (a -> (a, b)) -> Array a -> m b
537537modifyIndex i f Array{..} = do
538538 let index = INDEX_OF(arrStart,i,a)
@@ -549,7 +549,7 @@ modifyIndex i f Array{..} = do
549549--
550550-- /Pre-release/
551551{-# INLINE modifyIndices #-}
552−modifyIndices :: forall m a . (MonadIO m, Unboxed a)
552+modifyIndices :: forall m a . (MonadIO m, Unbox a)
553553 => (Int -> a -> a) -> Array a -> Fold m Int ()
554554modifyIndices f arr = FL.foldlM' step initial
555555
@@ -564,7 +564,7 @@ modifyIndices f arr = FL.foldlM' step initial
564564-- | Modify each element of an array using the supplied modifier function.
565565--
566566-- /Pre-release/
567−modify :: forall m a. (MonadIO m, Unboxed a)
567+modify :: forall m a. (MonadIO m, Unbox a)
568568 => (a -> a) -> Array a -> m ()
569569modify f Array{..} = liftIO $
570570 go arrStart
@@ -578,7 +578,7 @@ modify f Array{..} = liftIO $
578578 go (INDEX_NEXT(i,a))
579579
580580{-# INLINE swapArrayByteIndices #-}
581−swapArrayByteIndices :: Unboxed a => MutableByteArray a -> Int -> Int -> IO ()
581+swapArrayByteIndices :: Unbox a => MutableByteArray a -> Int -> Int -> IO ()
582582swapArrayByteIndices arrContents i1 i2 = do
583583 r1 <- peekWith arrContents i1
584584 r2 <- peekWith arrContents i2
@@ -591,7 +591,7 @@ swapArrayByteIndices arrContents i1 i2 = do
591591--
592592-- /Pre-release/
593593{-# INLINE unsafeSwapIndices #-}
594−unsafeSwapIndices :: forall m a. (MonadIO m, Unboxed a)
594+unsafeSwapIndices :: forall m a. (MonadIO m, Unbox a)
595595 => Int -> Int -> Array a -> m ()
596596unsafeSwapIndices i1 i2 Array{..} = liftIO $ do
597597 let t1 = INDEX_OF(arrStart,i1,a)
@@ -601,7 +601,7 @@ unsafeSwapIndices i1 i2 Array{..} = liftIO $ do
601601-- | Swap the elements at two indices.
602602--
603603-- /Pre-release/
604−swapIndices :: forall m a. (MonadIO m, Unboxed a)
604+swapIndices :: forall m a. (MonadIO m, Unbox a)
605605 => Int -> Int -> Array a -> m ()
606606swapIndices i1 i2 Array{..} = liftIO $ do
607607 let t1 = INDEX_OF(arrStart,i1,a)
@@ -672,7 +672,7 @@ roundUpToPower2 n =
672672-- case it returns one element's size.
673673--
674674{-# INLINE allocBytesToBytes #-}
675−allocBytesToBytes :: forall a. Unboxed a => a -> Int -> Int
675+allocBytesToBytes :: forall a. Unbox a => a -> Int -> Int
676676allocBytesToBytes _ n = max (arrayPayloadSize n) (SIZE_OF(a))
677677
678678-- | Given an 'Unboxed' type (unused first arg) and real allocation size
@@ -680,7 +680,7 @@ allocBytesToBytes _ n = max (arrayPayloadSize n) (SIZE_OF(a))
680680-- fit in it, returns at least 1.
681681--
682682{-# INLINE allocBytesToElemCount #-}
683−allocBytesToElemCount :: Unboxed a => a -> Int -> Int
683+allocBytesToElemCount :: Unbox a => a -> Int -> Int
684684allocBytesToElemCount x bytes =
685685 let n = bytesToElemCount x (allocBytesToBytes x bytes)
686686 in assert (n >= 1) n
@@ -745,14 +745,14 @@ reallocAligned elemSize alignSize newCapacityInBytes Array{..} = do
745745-- 'largeObjectThreshold' then it is rounded up to the block size (4K).
746746--
747747{-# INLINABLE realloc #-}
748−realloc :: forall m a. (MonadIO m, Unboxed a) => Int -> Array a -> m (Array a)
748+realloc :: forall m a. (MonadIO m, Unbox a) => Int -> Array a -> m (Array a)
749749realloc bytes arr =
750750 liftIO $ reallocAligned (SIZE_OF(a)) (alignment (undefined :: a)) bytes arr
751751
752752-- | @reallocWith label capSizer minIncrBytes array@. The label is used
753753-- in error messages and the capSizer is used to determine the capacity of the
754754-- new array in bytes given the current byte length of the array.
755−reallocWith :: forall m a. (MonadIO m , Unboxed a) =>
755+reallocWith :: forall m a. (MonadIO m , Unbox a) =>
756756 String
757757 -> (Int -> Int)
758758 -> Int
@@ -786,7 +786,7 @@ reallocWith label capSizer minIncrBytes arr = do
786786--
787787-- /Pre-release/
788788{-# INLINE resize #-}
789−resize :: forall m a. (MonadIO m, Unboxed a) =>
789+resize :: forall m a. (MonadIO m, Unbox a) =>
790790 Int -> Array a -> m (Array a)
791791resize nElems arr@Array{..} = do
792792 let req = SIZE_OF(a) * nElems
@@ -800,7 +800,7 @@ resize nElems arr@Array{..} = do
800800--
801801-- /Pre-release/
802802{-# INLINE resizeExp #-}
803−resizeExp :: forall m a. (MonadIO m, Unboxed a) =>
803+resizeExp :: forall m a. (MonadIO m, Unbox a) =>
804804 Int -> Array a -> m (Array a)
805805resizeExp nElems arr@Array{..} = do
806806 let req = roundUpLargeArray (SIZE_OF(a) * nElems)
@@ -822,7 +822,7 @@ resizeExp nElems arr@Array{..} = do
822822--
823823-- /Pre-release/
824824{-# INLINE rightSize #-}
825−rightSize :: forall m a. (MonadIO m, Unboxed a) => Array a -> m (Array a)
825+rightSize :: forall m a. (MonadIO m, Unbox a) => Array a -> m (Array a)
826826rightSize arr@Array{..} = do
827827 assert (arrEnd <= arrBound) (return ())
828828 let start = arrStart
@@ -854,7 +854,7 @@ rightSize arr@Array{..} = do
854854--
855855-- /Internal/
856856{-# INLINE snocNewEnd #-}
857−snocNewEnd :: (MonadIO m, Unboxed a) => Int -> Array a -> a -> m (Array a)
857+snocNewEnd :: (MonadIO m, Unbox a) => Int -> Array a -> a -> m (Array a)
858858snocNewEnd newEnd arr@Array{..} x = liftIO $ do
859859 assert (newEnd <= arrBound) (return ())
860860 pokeWith arrContents arrEnd x
@@ -866,7 +866,7 @@ snocNewEnd newEnd arr@Array{..} x = liftIO $ do
866866--
867867-- /Internal/
868868{-# INLINE snocUnsafe #-}
869−snocUnsafe :: forall m a. (MonadIO m, Unboxed a) =>
869+snocUnsafe :: forall m a. (MonadIO m, Unbox a) =>
870870 Array a -> a -> m (Array a)
871871snocUnsafe arr@Array{..} = snocNewEnd (INDEX_NEXT(arrEnd,a)) arr
872872
@@ -875,7 +875,7 @@ snocUnsafe arr@Array{..} = snocNewEnd (INDEX_NEXT(arrEnd,a)) arr
875875--
876876-- /Internal/
877877{-# INLINE snocMay #-}
878−snocMay :: forall m a. (MonadIO m, Unboxed a) =>
878+snocMay :: forall m a. (MonadIO m, Unbox a) =>
879879 Array a -> a -> m (Maybe (Array a))
880880snocMay arr@Array{..} x = liftIO $ do
881881 let newEnd = INDEX_NEXT(arrEnd,a)
@@ -885,7 +885,7 @@ snocMay arr@Array{..} x = liftIO $ do
885885
886886-- NOINLINE to move it out of the way and not pollute the instruction cache.
887887{-# NOINLINE snocWithRealloc #-}
888−snocWithRealloc :: forall m a. (MonadIO m, Unboxed a) =>
888+snocWithRealloc :: forall m a. (MonadIO m, Unbox a) =>
889889 (Int -> Int)
890890 -> Array a
891891 -> a
@@ -908,7 +908,7 @@ snocWithRealloc sizer arr x = do
908908--
909909-- /Pre-release/
910910{-# INLINE snocWith #-}
911−snocWith :: forall m a. (MonadIO m, Unboxed a) =>
911+snocWith :: forall m a. (MonadIO m, Unbox a) =>
912912 (Int -> Int)
913913 -> Array a
914914 -> a
@@ -930,7 +930,7 @@ snocWith allocSize arr x = liftIO $ do
930930--
931931-- /Pre-release/
932932{-# INLINE snocLinear #-}
933−snocLinear :: forall m a. (MonadIO m, Unboxed a) => Array a -> a -> m (Array a)
933+snocLinear :: forall m a. (MonadIO m, Unbox a) => Array a -> a -> m (Array a)
934934snocLinear = snocWith (+ allocBytesToBytes (undefined :: a) arrayChunkBytes)
935935
936936-- | The array is mutated to append an additional element to it. If there is no
@@ -947,7 +947,7 @@ snocLinear = snocWith (+ allocBytesToBytes (undefined :: a) arrayChunkBytes)
947947-- Performs O(n * log n) copies to grow, but is liberal with memory allocation.
948948--
949949{-# INLINE snoc #-}
950−snoc :: forall m a. (MonadIO m, Unboxed a) => Array a -> a -> m (Array a)
950+snoc :: forall m a. (MonadIO m, Unbox a) => Array a -> a -> m (Array a)
951951snoc = snocWith f
952952
953953 where
@@ -967,7 +967,7 @@ snoc = snocWith f
967967--
968968-- Unsafe because it does not check the bounds of the array.
969969{-# INLINE_NORMAL getIndexUnsafe #-}
970−getIndexUnsafe :: forall m a. (MonadIO m, Unboxed a) => Int -> Array a -> m a
970+getIndexUnsafe :: forall m a. (MonadIO m, Unbox a) => Int -> Array a -> m a
971971getIndexUnsafe i Array{..} = do
972972 let index = INDEX_OF(arrStart,i,a)
973973 assert (i >= 0 && INDEX_VALID(index,arrEnd,a)) (return ())
@@ -976,7 +976,7 @@ getIndexUnsafe i Array{..} = do
976976-- | /O(1)/ Lookup the element at the given index. Index starts from 0.
977977--
978978{-# INLINE getIndex #-}
979−getIndex :: forall m a. (MonadIO m, Unboxed a) => Int -> Array a -> m a
979+getIndex :: forall m a. (MonadIO m, Unbox a) => Int -> Array a -> m a
980980getIndex i Array{..} = do
981981 let index = INDEX_OF(arrStart,i,a)
982982 if i >= 0 && INDEX_VALID(index,arrEnd,a)
@@ -989,7 +989,7 @@ getIndex i Array{..} = do
989989-- Slightly faster than computing the forward index and using getIndex.
990990--
991991{-# INLINE getIndexRev #-}
992−getIndexRev :: forall m a. (MonadIO m, Unboxed a) => Int -> Array a -> m a
992+getIndexRev :: forall m a. (MonadIO m, Unbox a) => Int -> Array a -> m a
993993getIndexRev i Array{..} = do
994994 let index = RINDEX_OF(arrEnd,i,a)
995995 if i >= 0 && index >= arrStart
@@ -1005,7 +1005,7 @@ data GetIndicesState contents start end st =
10051005--
10061006-- /Pre-release/
10071007{-# INLINE getIndicesD #-}
1008−getIndicesD :: (Monad m, Unboxed a) =>
1008+getIndicesD :: (Monad m, Unbox a) =>
10091009 (forall b. IO b -> m b) -> D.Stream m Int -> Unfold m (Array a) a
10101010getIndicesD liftio (D.Stream stepi sti) = Unfold step inject
10111011
@@ -1025,7 +1025,7 @@ getIndicesD liftio (D.Stream stepi sti) = Unfold step inject
10251025 D.Stop -> return D.Stop
10261026
10271027{-# INLINE getIndices #-}
1028−getIndices :: (MonadIO m, Unboxed a) => Stream m Int -> Unfold m (Array a) a
1028+getIndices :: (MonadIO m, Unbox a) => Stream m Int -> Unfold m (Array a) a
10291029getIndices = getIndicesD liftIO . Stream.toStreamD
10301030
10311031-------------------------------------------------------------------------------
@@ -1042,7 +1042,7 @@ getIndices = getIndicesD liftIO . Stream.toStreamD
10421042--
10431043-- /Pre-release/
10441044{-# INLINE getSliceUnsafe #-}
1045−getSliceUnsafe :: forall a. Unboxed a
1045+getSliceUnsafe :: forall a. Unbox a
10461046 => Int -- ^ from index
10471047 -> Int -- ^ length of the slice
10481048 -> Array a
@@ -1061,7 +1061,7 @@ getSliceUnsafe index len (Array contents start e _) =
10611061--
10621062-- /Pre-release/
10631063{-# INLINE getSlice #-}
1064−getSlice :: forall a. Unboxed a =>
1064+getSlice :: forall a. Unbox a =>
10651065 Int -- ^ from index
10661066 -> Int -- ^ length of the slice
10671067 -> Array a
@@ -1089,7 +1089,7 @@ getSlice index len (Array contents start e _) =
10891089-- of cache locality and when you do not want to allocate additional memory.
10901090--
10911091{-# INLINE reverse #-}
1092−reverse :: forall m a. (MonadIO m, Unboxed a) => Array a -> m ()
1092+reverse :: forall m a. (MonadIO m, Unbox a) => Array a -> m ()
10931093reverse Array{..} = liftIO $ do
10941094 let l = arrStart
10951095 h = INDEX_PREV(arrEnd,a)
@@ -1116,7 +1116,7 @@ permute = undefined
11161116--
11171117-- /Pre-release/
11181118{-# INLINE partitionBy #-}
1119−partitionBy :: forall m a. (MonadIO m, Unboxed a)
1119+partitionBy :: forall m a. (MonadIO m, Unbox a)
11201120 => (a -> Bool) -> Array a -> m (Array a, Array a)
11211121partitionBy f arr@Array{..} = liftIO $ do
11221122 if arrStart >= arrEnd
@@ -1238,7 +1238,7 @@ byteLength Array{..} =
12381238-- involves a costly division operation.
12391239--
12401240{-# INLINE length #-}
1241−length :: forall a. Unboxed a => Array a -> Int
1241+length :: forall a. Unbox a => Array a -> Int
12421242length arr =
12431243 let elemSize = SIZE_OF(a)
12441244 blen = byteLength arr
@@ -1282,7 +1282,7 @@ data GroupState s contents start end bound
12821282--
12831283-- /Pre-release/
12841284{-# INLINE_NORMAL arraysOf #-}
1285−arraysOf :: forall m a. (MonadIO m, Unboxed a)
1285+arraysOf :: forall m a. (MonadIO m, Unbox a)
12861286 => Int -> D.Stream m a -> D.Stream m (Array a)
12871287-- XXX the idiomatic implementation leads to large regression in the D.reverse'
12881288-- benchmark. It seems it has difficulty producing optimized code when
@@ -1329,7 +1329,7 @@ arraysOf n (D.Stream step state) =
13291329-- XXX buffer to a list instead?
13301330-- | Buffer the stream into arrays in memory.
13311331{-# INLINE arrayStreamKFromStreamD #-}
1332−arrayStreamKFromStreamD :: forall m a. (MonadIO m, Unboxed a) =>
1332+arrayStreamKFromStreamD :: forall m a. (MonadIO m, Unbox a) =>
13331333 D.Stream m a -> m (K.Stream m (Array a))
13341334arrayStreamKFromStreamD =
13351335 let n = allocBytesToElemCount (undefined :: a) defaultChunkSize
@@ -1350,7 +1350,7 @@ data FlattenState s contents a =
13501350-- We can try this if there are any fusion issues in the unfold.
13511351--
13521352{-# INLINE_NORMAL flattenArrays #-}
1353−flattenArrays :: forall m a. (MonadIO m, Unboxed a)
1353+flattenArrays :: forall m a. (MonadIO m, Unbox a)
13541354 => D.Stream m (Array a) -> D.Stream m a
13551355flattenArrays (D.Stream step state) = D.Stream step' (OuterLoop state)
13561356
@@ -1379,7 +1379,7 @@ flattenArrays (D.Stream step state) = D.Stream step' (OuterLoop state)
13791379-- We can try this if there are any fusion issues in the unfold.
13801380--
13811381{-# INLINE_NORMAL flattenArraysRev #-}
1382−flattenArraysRev :: forall m a. (MonadIO m, Unboxed a)
1382+flattenArraysRev :: forall m a. (MonadIO m, Unbox a)
13831383 => D.Stream m (Array a) -> D.Stream m a
13841384flattenArraysRev (D.Stream step state) = D.Stream step' (OuterLoop state)
13851385
@@ -1417,7 +1417,7 @@ toArrayUnsafe (Array contents start end _) = ArrayUnsafe contents start end
14171417
14181418fromArrayUnsafe ::
14191419#ifdef DEVBUILD
1420− Unboxed a =>
1420+ Unbox a =>
14211421#endif
14221422 ArrayUnsafe a -> Array a
14231423fromArrayUnsafe (ArrayUnsafe contents start end) =
@@ -1425,7 +1425,7 @@ fromArrayUnsafe (ArrayUnsafe contents start end) =
14251425
14261426{-# INLINE_NORMAL producerWith #-}
14271427producerWith ::
1428− forall m a. (Monad m, Unboxed a)
1428+ forall m a. (Monad m, Unbox a)
14291429 => (forall b. IO b -> m b) -> Producer m (Array a) a
14301430producerWith liftio = Producer step (return . toArrayUnsafe) extract
14311431 where
@@ -1446,18 +1446,18 @@ producerWith liftio = Producer step (return . toArrayUnsafe) extract
14461446-- | Resumable unfold of an array.
14471447--
14481448{-# INLINE_NORMAL producer #-}
1449−producer :: forall m a. (MonadIO m, Unboxed a) => Producer m (Array a) a
1449+producer :: forall m a. (MonadIO m, Unbox a) => Producer m (Array a) a
14501450producer = producerWith liftIO
14511451
14521452-- | Unfold an array into a stream.
14531453--
14541454{-# INLINE_NORMAL reader #-}
1455−reader :: forall m a. (MonadIO m, Unboxed a) => Unfold m (Array a) a
1455+reader :: forall m a. (MonadIO m, Unbox a) => Unfold m (Array a) a
14561456reader = Producer.simplify producer
14571457
14581458{-# INLINE_NORMAL readerRevWith #-}
14591459readerRevWith ::
1460− forall m a. (Monad m, Unboxed a)
1460+ forall m a. (Monad m, Unbox a)
14611461 => (forall b. IO b -> m b) -> Unfold m (Array a) a
14621462readerRevWith liftio = Unfold step inject
14631463 where
@@ -1475,7 +1475,7 @@ readerRevWith liftio = Unfold step inject
14751475-- | Unfold an array into a stream in reverse order.
14761476--
14771477{-# INLINE_NORMAL readerRev #-}
1478−readerRev :: forall m a. (MonadIO m, Unboxed a) => Unfold m (Array a) a
1478+readerRev :: forall m a. (MonadIO m, Unbox a) => Unfold m (Array a) a
14791479readerRev = readerRevWith liftIO
14801480
14811481-------------------------------------------------------------------------------
@@ -1486,7 +1486,7 @@ readerRev = readerRevWith liftIO
14861486-- Use foldr/build fusion to fuse with list consumers
14871487-- This can be useful when using the IsList instance
14881488{-# INLINE_LATE toListFB #-}
1489−toListFB :: forall a b. Unboxed a => (a -> b -> b) -> b -> Array a -> b
1489+toListFB :: forall a b. Unbox a => (a -> b -> b) -> b -> Array a -> b
14901490toListFB c n Array{..} = go arrStart
14911491 where
14921492
@@ -1510,7 +1510,7 @@ toListFB c n Array{..} = go arrStart
15101510-- | Convert an 'Array' into a list.
15111511--
15121512{-# INLINE toList #-}
1513−toList :: forall m a. (MonadIO m, Unboxed a) => Array a -> m [a]
1513+toList :: forall m a. (MonadIO m, Unbox a) => Array a -> m [a]
15141514toList Array{..} = liftIO $ go arrStart
15151515 where
15161516
@@ -1521,7 +1521,7 @@ toList Array{..} = liftIO $ go arrStart
15211521
15221522{-# INLINE_NORMAL toStreamDWith #-}
15231523toStreamDWith ::
1524− forall m a. (Monad m, Unboxed a)
1524+ forall m a. (Monad m, Unbox a)
15251525 => (forall b. IO b -> m b) -> Array a -> D.Stream m a
15261526toStreamDWith liftio Array{..} = D.Stream step arrStart
15271527
@@ -1539,12 +1539,12 @@ toStreamDWith liftio Array{..} = D.Stream step arrStart
15391539--
15401540-- We can try this if the unfold has any performance issues.
15411541{-# INLINE_NORMAL toStreamD #-}
1542−toStreamD :: forall m a. (MonadIO m, Unboxed a) => Array a -> D.Stream m a
1542+toStreamD :: forall m a. (MonadIO m, Unbox a) => Array a -> D.Stream m a
15431543toStreamD = toStreamDWith liftIO
15441544
15451545{-# INLINE toStreamKWith #-}
15461546toStreamKWith ::
1547− forall m a. (Monad m, Unboxed a)
1547+ forall m a. (Monad m, Unbox a)
15481548 => (forall b. IO b -> m b) -> Array a -> K.Stream m a
15491549toStreamKWith liftio Array{..} = go arrStart
15501550
@@ -1556,12 +1556,12 @@ toStreamKWith liftio Array{..} = go arrStart
15561556 in liftio elemM `K.consM` go (INDEX_NEXT(p,a))
15571557
15581558{-# INLINE toStreamK #-}
1559−toStreamK :: forall m a. (MonadIO m, Unboxed a) => Array a -> K.Stream m a
1559+toStreamK :: forall m a. (MonadIO m, Unbox a) => Array a -> K.Stream m a
15601560toStreamK = toStreamKWith liftIO
15611561
15621562{-# INLINE_NORMAL toStreamDRevWith #-}
15631563toStreamDRevWith ::
1564− forall m a. (Monad m, Unboxed a)
1564+ forall m a. (Monad m, Unbox a)
15651565 => (forall b. IO b -> m b) -> Array a -> D.Stream m a
15661566toStreamDRevWith liftio Array{..} =
15671567 let p = INDEX_PREV(arrEnd,a)
@@ -1581,12 +1581,12 @@ toStreamDRevWith liftio Array{..} =
15811581--
15821582-- We can try this if the unfold has any perf issues.
15831583{-# INLINE_NORMAL toStreamDRev #-}
1584−toStreamDRev :: forall m a. (MonadIO m, Unboxed a) => Array a -> D.Stream m a
1584+toStreamDRev :: forall m a. (MonadIO m, Unbox a) => Array a -> D.Stream m a
15851585toStreamDRev = toStreamDRevWith liftIO
15861586
15871587{-# INLINE toStreamKRevWith #-}
15881588toStreamKRevWith ::
1589− forall m a. (Monad m, Unboxed a)
1589+ forall m a. (Monad m, Unbox a)
15901590 => (forall b. IO b -> m b) -> Array a -> K.Stream m a
15911591toStreamKRevWith liftio Array {..} =
15921592 let p = INDEX_PREV(arrEnd,a)
@@ -1600,7 +1600,7 @@ toStreamKRevWith liftio Array {..} =
16001600 in liftio elemM `K.consM` go (INDEX_PREV(p,a))
16011601
16021602{-# INLINE toStreamKRev #-}
1603−toStreamKRev :: forall m a. (MonadIO m, Unboxed a) => Array a -> K.Stream m a
1603+toStreamKRev :: forall m a. (MonadIO m, Unbox a) => Array a -> K.Stream m a
16041604toStreamKRev = toStreamKRevWith liftIO
16051605
16061606-------------------------------------------------------------------------------
@@ -1612,12 +1612,12 @@ toStreamKRev = toStreamKRevWith liftIO
16121612--
16131613-- | Strict left fold of an array.
16141614{-# INLINE_NORMAL foldl' #-}
1615−foldl' :: (MonadIO m, Unboxed a) => (b -> a -> b) -> b -> Array a -> m b
1615+foldl' :: (MonadIO m, Unbox a) => (b -> a -> b) -> b -> Array a -> m b
16161616foldl' f z arr = D.foldl' f z $ toStreamD arr
16171617
16181618-- | Right fold of an array.
16191619{-# INLINE_NORMAL foldr #-}
1620−foldr :: (MonadIO m, Unboxed a) => (a -> b -> b) -> b -> Array a -> m b
1620+foldr :: (MonadIO m, Unbox a) => (a -> b -> b) -> b -> Array a -> m b
16211621foldr f z arr = D.foldr f z $ toStreamD arr
16221622
16231623-------------------------------------------------------------------------------
@@ -1641,7 +1641,7 @@ foldr f z arr = D.foldr f z $ toStreamD arr
16411641--
16421642-- /Internal/
16431643{-# INLINE_NORMAL appendNUnsafe #-}
1644−appendNUnsafe :: forall m a. (MonadIO m, Unboxed a) =>
1644+appendNUnsafe :: forall m a. (MonadIO m, Unbox a) =>
16451645 m (Array a)
16461646 -> Int
16471647 -> Fold m a (Array a)
@@ -1673,7 +1673,7 @@ appendNUnsafe action n =
16731673-- >>> appendN initial n = Fold.take n (Array.appendNUnsafe initial n)
16741674--
16751675{-# INLINE_NORMAL appendN #-}
1676−appendN :: forall m a. (MonadIO m, Unboxed a) =>
1676+appendN :: forall m a. (MonadIO m, Unbox a) =>
16771677 m (Array a) -> Int -> Fold m a (Array a)
16781678appendN initial n = FL.take n (appendNUnsafe initial n)
16791679
@@ -1688,7 +1688,7 @@ appendN initial n = FL.take n (appendNUnsafe initial n)
16881688--
16891689-- /Pre-release/
16901690{-# INLINE appendWith #-}
1691−appendWith :: forall m a. (MonadIO m, Unboxed a) =>
1691+appendWith :: forall m a. (MonadIO m, Unbox a) =>
16921692 (Int -> Int) -> m (Array a) -> Fold m a (Array a)
16931693appendWith sizer = FL.foldlM' (snocWith sizer)
16941694
@@ -1701,7 +1701,7 @@ appendWith sizer = FL.foldlM' (snocWith sizer)
17011701-- >>> append = Array.appendWith (* 2)
17021702--
17031703{-# INLINE append #-}
1704−append :: forall m a. (MonadIO m, Unboxed a) =>
1704+append :: forall m a. (MonadIO m, Unbox a) =>
17051705 m (Array a) -> Fold m a (Array a)
17061706append = appendWith (* 2)
17071707
@@ -1715,7 +1715,7 @@ append = appendWith (* 2)
17151715--
17161716-- /Pre-release/
17171717{-# INLINE_NORMAL writeNWithUnsafe #-}
1718−writeNWithUnsafe :: forall m a. (MonadIO m, Unboxed a)
1718+writeNWithUnsafe :: forall m a. (MonadIO m, Unbox a)
17191719 => (Int -> m (Array a)) -> Int -> Fold m a (Array a)
17201720writeNWithUnsafe alloc n = fromArrayUnsafe <$> FL.foldlM' step initial
17211721
@@ -1737,7 +1737,7 @@ writeNWithUnsafe alloc n = fromArrayUnsafe <$> FL.foldlM' step initial
17371737-- >>> writeNUnsafe = Array.writeNWithUnsafe Array.newPinned
17381738--
17391739{-# INLINE_NORMAL writeNUnsafe #-}
1740−writeNUnsafe :: forall m a. (MonadIO m, Unboxed a)
1740+writeNUnsafe :: forall m a. (MonadIO m, Unbox a)
17411741 => Int -> Fold m a (Array a)
17421742writeNUnsafe = writeNWithUnsafe newPinned
17431743
@@ -1748,7 +1748,7 @@ writeNUnsafe = writeNWithUnsafe newPinned
17481748-- >>> writeNWith alloc n = Array.appendN (alloc n) n
17491749--
17501750{-# INLINE_NORMAL writeNWith #-}
1751−writeNWith :: forall m a. (MonadIO m, Unboxed a)
1751+writeNWith :: forall m a. (MonadIO m, Unbox a)
17521752 => (Int -> m (Array a)) -> Int -> Fold m a (Array a)
17531753writeNWith alloc n = FL.take n (writeNWithUnsafe alloc n)
17541754
@@ -1760,14 +1760,14 @@ writeNWith alloc n = FL.take n (writeNWithUnsafe alloc n)
17601760-- >>> writeN n = Array.appendN (Array.newPinned n) n
17611761--
17621762{-# INLINE_NORMAL writeN #-}
1763−writeN :: forall m a. (MonadIO m, Unboxed a) => Int -> Fold m a (Array a)
1763+writeN :: forall m a. (MonadIO m, Unbox a) => Int -> Fold m a (Array a)
17641764writeN = writeNWith newPinned
17651765
17661766-- | Like writeNWithUnsafe but writes the array in reverse order.
17671767--
17681768-- /Internal/
17691769{-# INLINE_NORMAL writeRevNWithUnsafe #-}
1770−writeRevNWithUnsafe :: forall m a. (MonadIO m, Unboxed a)
1770+writeRevNWithUnsafe :: forall m a. (MonadIO m, Unbox a)
17711771 => (Int -> m (Array a)) -> Int -> Fold m a (Array a)
17721772writeRevNWithUnsafe alloc n = fromArrayUnsafe <$> FL.foldlM' step initial
17731773
@@ -1788,7 +1788,7 @@ writeRevNWithUnsafe alloc n = fromArrayUnsafe <$> FL.foldlM' step initial
17881788--
17891789-- /Internal/
17901790{-# INLINE_NORMAL writeRevNWith #-}
1791−writeRevNWith :: forall m a. (MonadIO m, Unboxed a)
1791+writeRevNWith :: forall m a. (MonadIO m, Unbox a)
17921792 => (Int -> m (Array a)) -> Int -> Fold m a (Array a)
17931793writeRevNWith alloc n = FL.take n (writeRevNWithUnsafe alloc n)
17941794
@@ -1796,7 +1796,7 @@ writeRevNWith alloc n = FL.take n (writeRevNWithUnsafe alloc n)
17961796--
17971797-- /Pre-release/
17981798{-# INLINE_NORMAL writeRevN #-}
1799−writeRevN :: forall m a. (MonadIO m, Unboxed a) => Int -> Fold m a (Array a)
1799+writeRevN :: forall m a. (MonadIO m, Unbox a) => Int -> Fold m a (Array a)
18001800writeRevN = writeRevNWith newPinned
18011801
18021802-- | @writeNAligned align n@ folds a maximum of @n@ elements from the input
@@ -1808,7 +1808,7 @@ writeRevN = writeRevNWith newPinned
18081808-- /Pre-release/
18091809--
18101810{-# INLINE_NORMAL writeNAligned #-}
1811−writeNAligned :: forall m a. (MonadIO m, Unboxed a)
1811+writeNAligned :: forall m a. (MonadIO m, Unbox a)
18121812 => Int -> Int -> Fold m a (Array a)
18131813writeNAligned align = writeNWith (newAlignedPinned align)
18141814
@@ -1826,7 +1826,7 @@ writeNAligned align = writeNWith (newAlignedPinned align)
18261826-- /Unimplemented/
18271827--
18281828{-# INLINE_NORMAL writeChunks #-}
1829−writeChunks :: (MonadIO m, Unboxed a) =>
1829+writeChunks :: (MonadIO m, Unbox a) =>
18301830 Int -> Fold m a (K.Stream n (Array a))
18311831writeChunks n = FL.many (writeN n) FL.toStreamK
18321832
@@ -1859,7 +1859,7 @@ writeChunks n = FL.many (writeN n) FL.toStreamK
18591859--
18601860-- /Pre-release/
18611861{-# INLINE_NORMAL writeWith #-}
1862−writeWith :: forall m a. (MonadIO m, Unboxed a)
1862+writeWith :: forall m a. (MonadIO m, Unbox a)
18631863 => Int -> Fold m a (Array a)
18641864-- writeWith n = FL.rmapM rightSize $ appendWith (* 2) (newPinned n)
18651865writeWith elemCount =
@@ -1897,7 +1897,7 @@ writeWith elemCount =
18971897-- /Caution! Do not use this on infinite streams./
18981898--
18991899{-# INLINE write #-}
1900−write :: forall m a. (MonadIO m, Unboxed a) => Fold m a (Array a)
1900+write :: forall m a. (MonadIO m, Unbox a) => Fold m a (Array a)
19011901write = writeWith (allocBytesToElemCount (undefined :: a) arrayChunkBytes)
19021902
19031903-------------------------------------------------------------------------------
@@ -1909,7 +1909,7 @@ write = writeWith (allocBytesToElemCount (undefined :: a) arrayChunkBytes)
19091909-- >>> fromStreamDN n = StreamD.fold (Array.writeN n)
19101910--
19111911{-# INLINE_NORMAL fromStreamDN #-}
1912−fromStreamDN :: forall m a. (MonadIO m, Unboxed a)
1912+fromStreamDN :: forall m a. (MonadIO m, Unbox a)
19131913 => Int -> D.Stream m a -> m (Array a)
19141914-- fromStreamDN n = D.fold (writeN n)
19151915fromStreamDN limit str = do
@@ -1928,14 +1928,14 @@ fromStreamDN limit str = do
19281928-- array may hold less than N elements.
19291929--
19301930{-# INLINABLE fromListN #-}
1931−fromListN :: (MonadIO m, Unboxed a) => Int -> [a] -> m (Array a)
1931+fromListN :: (MonadIO m, Unbox a) => Int -> [a] -> m (Array a)
19321932fromListN n xs = fromStreamDN n $ D.fromList xs
19331933
19341934-- | Like fromListN but writes the array in reverse order.
19351935--
19361936-- /Pre-release/
19371937{-# INLINE fromListRevN #-}
1938−fromListRevN :: (MonadIO m, Unboxed a) => Int -> [a] -> m (Array a)
1938+fromListRevN :: (MonadIO m, Unbox a) => Int -> [a] -> m (Array a)
19391939fromListRevN n xs = D.fold (writeRevN n) $ D.fromList xs
19401940
19411941-------------------------------------------------------------------------------
@@ -1943,14 +1943,14 @@ fromListRevN n xs = D.fold (writeRevN n) $ D.fromList xs
19431943-------------------------------------------------------------------------------
19441944
19451945{-# INLINE arrayStreamKLength #-}
1946−arrayStreamKLength :: (Monad m, Unboxed a) => K.Stream m (Array a) -> m Int
1946+arrayStreamKLength :: (Monad m, Unbox a) => K.Stream m (Array a) -> m Int
19471947arrayStreamKLength as = K.foldl' (+) 0 (K.map length as)
19481948
19491949-- | Convert an array stream to an array. Note that this requires peak memory
19501950-- that is double the size of the array stream.
19511951--
19521952{-# INLINE fromArrayStreamK #-}
1953−fromArrayStreamK :: (Unboxed a, MonadIO m) =>
1953+fromArrayStreamK :: (Unbox a, MonadIO m) =>
19541954 K.Stream m (Array a) -> m (Array a)
19551955fromArrayStreamK as = do
19561956 len <- arrayStreamKLength as
@@ -1970,13 +1970,13 @@ fromArrayStreamK as = do
19701970-- >>> fromStreamD = StreamD.fold Array.write
19711971--
19721972{-# INLINE fromStreamD #-}
1973−fromStreamD :: (MonadIO m, Unboxed a) => D.Stream m a -> m (Array a)
1973+fromStreamD :: (MonadIO m, Unbox a) => D.Stream m a -> m (Array a)
19741974fromStreamD m = arrayStreamKFromStreamD m >>= fromArrayStreamK
19751975
19761976-- | Create an 'Array' from a list. The list must be of finite size.
19771977--
19781978{-# INLINE fromList #-}
1979−fromList :: (MonadIO m, Unboxed a) => [a] -> m (Array a)
1979+fromList :: (MonadIO m, Unbox a) => [a] -> m (Array a)
19801980fromList xs = fromStreamD $ D.fromList xs
19811981
19821982-- XXX We are materializing the whole list first for getting the length. Check
@@ -1984,7 +1984,7 @@ fromList xs = fromStreamD $ D.fromList xs
19841984
19851985-- | Like 'fromList' but writes the contents of the list in reverse order.
19861986{-# INLINE fromListRev #-}
1987−fromListRev :: (MonadIO m, Unboxed a) => [a] -> m (Array a)
1987+fromListRev :: (MonadIO m, Unbox a) => [a] -> m (Array a)
19881988fromListRev xs = fromListRevN (Prelude.length xs) xs
19891989
19901990-------------------------------------------------------------------------------
@@ -2009,7 +2009,7 @@ putSliceUnsafe src srcStartBytes dst dstStartBytes lenBytes = liftIO $ do
20092009
20102010-- | Copy two arrays into a newly allocated array.
20112011{-# INLINE spliceCopy #-}
2012−spliceCopy :: forall m a. (MonadIO m, Unboxed a) =>
2012+spliceCopy :: forall m a. (MonadIO m, Unbox a) =>
20132013 Array a -> Array a -> m (Array a)
20142014spliceCopy arr1 arr2 = liftIO $ do
20152015 let start1 = arrStart arr1
@@ -2051,7 +2051,7 @@ spliceUnsafe dst src =
20512051--
20522052-- /Pre-release/
20532053{-# INLINE spliceWith #-}
2054−spliceWith :: forall m a. (MonadIO m, Unboxed a) =>
2054+spliceWith :: forall m a. (MonadIO m, Unbox a) =>
20552055 (Int -> Int -> Int) -> Array a -> Array a -> m (Array a)
20562056spliceWith sizer dst@(Array _ start end bound) src = do
20572057{-
@@ -2085,7 +2085,7 @@ spliceWith sizer dst@(Array _ start end bound) src = do
20852085--
20862086-- /Pre-release/
20872087{-# INLINE splice #-}
2088−splice :: (MonadIO m, Unboxed a) => Array a -> Array a -> m (Array a)
2088+splice :: (MonadIO m, Unbox a) => Array a -> Array a -> m (Array a)
20892089splice = spliceWith (+)
20902090
20912091-- | Like 'append' but the growth of the array is exponential. Whenever a new
@@ -2099,7 +2099,7 @@ splice = spliceWith (+)
20992099--
21002100-- /Pre-release/
21012101{-# INLINE spliceExp #-}
2102−spliceExp :: (MonadIO m, Unboxed a) => Array a -> Array a -> m (Array a)
2102+spliceExp :: (MonadIO m, Unbox a) => Array a -> Array a -> m (Array a)
21032103spliceExp = spliceWith (\l1 l2 -> max (l1 * 2) (l1 + l2))
21042104
21052105-------------------------------------------------------------------------------
@@ -2137,7 +2137,7 @@ breakOn sep arr@Array{..} = asPtrUnsafe arr $ \p -> liftIO $ do
21372137-- | Create two slices of an array without copying the original array. The
21382138-- specified index @i@ is the first index of the second slice.
21392139--
2140−splitAt :: forall a. Unboxed a => Int -> Array a -> (Array a, Array a)
2140+splitAt :: forall a. Unbox a => Int -> Array a -> (Array a, Array a)
21412141splitAt i arr@Array{..} =
21422142 let maxIndex = length arr - 1
21432143 in if i < 0
@@ -2189,7 +2189,7 @@ asBytes = castUnsafe
21892189-- type @b@. The length of the array should be a multiple of the size of the
21902190-- target element otherwise 'Nothing' is returned.
21912191--
2192−cast :: forall a b. Unboxed b => Array a -> Maybe (Array b)
2192+cast :: forall a b. Unbox b => Array a -> Maybe (Array b)
21932193cast arr =
21942194 let len = byteLength arr
21952195 r = len `mod` SIZE_OF(b)
@@ -2278,7 +2278,7 @@ cmp arr1 arr2 =
22782278-- NFData
22792279-------------------------------------------------------------------------------
22802280
2281−-- This is an Unboxed array, we cannot have unevaluated data in it so this is
2281+-- This is an Unbox array, we cannot have unevaluated data in it so this is
22822282-- just a no op.
22832283instance NFData (Array a) where
22842284 {-# INLINE rnf #-}
@@ -2292,7 +2292,7 @@ instance NFData1 Array where
22922292--
22932293-- /Pre-release/
22942294{-# INLINE strip #-}
2295−strip :: forall a m. (Unboxed a, MonadIO m) =>
2295+strip :: forall a m. (Unbox a, MonadIO m) =>
22962296 (a -> Bool) -> Array a -> m (Array a)
22972297strip eq arr@Array{..} = liftIO $ do
22982298 st <- getStart arrStart
@@ -2336,7 +2336,7 @@ strip eq arr@Array{..} = liftIO $ do
23362336--
23372337-- /Pre-release/
23382338{-# INLINE bubble #-}
2339−bubble :: (MonadIO m, Unboxed a) => (a -> a -> Ordering) -> Array a -> m ()
2339+bubble :: (MonadIO m, Unbox a) => (a -> a -> Ordering) -> Array a -> m ()
23402340bubble cmp0 arr =
23412341 when (l > 1) $ do
23422342 x <- getIndexUnsafe (l - 1) arr
core/src/Streamly/Internal/Data/Array/Unboxed/Stream.hs+32−32
@@ -55,7 +55,7 @@ import Control.Exception (assert)
5555import Control.Monad.Catch (MonadThrow, throwM)
5656import Control.Monad.IO.Class (MonadIO(..))
5757import Data.Word (Word8)
58−import Streamly.Internal.Data.Unboxed (Unboxed, peekWith, sizeOf)
58+import Streamly.Internal.Data.Unboxed (Unbox, peekWith, sizeOf)
5959import Fusion.Plugin.Types (Fuse(..))
6060import GHC.Exts (SpecConstrAnnotation(..))
6161import GHC.Types (SPEC(..))
@@ -107,7 +107,7 @@ import qualified Streamly.Internal.Data.Stream.StreamK.Type as K
107107--
108108-- /Pre-release/
109109{-# INLINE arraysOf #-}
110−arraysOf :: (MonadIO m, Unboxed a)
110+arraysOf :: (MonadIO m, Unbox a)
111111 => Int -> Stream m a -> Stream m (Array a)
112112arraysOf n str = fromStreamD $ A.arraysOf n (toStreamD str)
113113
@@ -127,7 +127,7 @@ arraysOf n str = fromStreamD $ A.arraysOf n (toStreamD str)
127127--
128128-- @since 0.7.0
129129{-# INLINE concat #-}
130−concat :: (Monad m, Unboxed a) => Stream m (Array a) -> Stream m a
130+concat :: (Monad m, Unbox a) => Stream m (Array a) -> Stream m a
131131-- concat m = fromStreamD $ A.flattenArrays (toStreamD m)
132132-- concat m = fromStreamD $ D.concatMap A.toStreamD (toStreamD m)
133133concat m = fromStreamD $ D.unfoldMany A.reader (toStreamD m)
@@ -139,7 +139,7 @@ concat m = fromStreamD $ D.unfoldMany A.reader (toStreamD m)
139139--
140140-- @since 0.7.0
141141{-# INLINE concatRev #-}
142−concatRev :: (Monad m, Unboxed a) => Stream m (Array a) -> Stream m a
142+concatRev :: (Monad m, Unbox a) => Stream m (Array a) -> Stream m a
143143-- concatRev m = fromStreamD $ A.flattenArraysRev (toStreamD m)
144144concatRev m = fromStreamD $ D.unfoldMany A.readerRev (toStreamD m)
145145
@@ -152,11 +152,11 @@ concatRev m = fromStreamD $ D.unfoldMany A.readerRev (toStreamD m)
152152--
153153-- /Pre-release/
154154{-# INLINE interpose #-}
155−interpose :: (Monad m, Unboxed a) => a -> Stream m (Array a) -> Stream m a
155+interpose :: (Monad m, Unbox a) => a -> Stream m (Array a) -> Stream m a
156156interpose x = S.interpose x A.reader
157157
158158{-# INLINE intercalateSuffix #-}
159−intercalateSuffix :: (Monad m, Unboxed a)
159+intercalateSuffix :: (Monad m, Unbox a)
160160 => Array a -> Stream m (Array a) -> Stream m a
161161intercalateSuffix = S.intercalateSuffix A.reader
162162
@@ -165,7 +165,7 @@ intercalateSuffix = S.intercalateSuffix A.reader
165165--
166166-- @since 0.7.0
167167{-# INLINE interposeSuffix #-}
168−interposeSuffix :: (Monad m, Unboxed a)
168+interposeSuffix :: (Monad m, Unbox a)
169169 => a -> Stream m (Array a) -> Stream m a
170170-- interposeSuffix x = fromStreamD . A.unlines x . toStreamD
171171interposeSuffix x = S.interposeSuffix x A.reader
@@ -176,7 +176,7 @@ data FlattenState s a =
176176
177177-- XXX Remove monadIO constraint
178178{-# INLINE_NORMAL unlines #-}
179−unlines :: forall m a. (MonadIO m, Unboxed a)
179+unlines :: forall m a. (MonadIO m, Unbox a)
180180 => a -> D.Stream m (Array a) -> D.Stream m a
181181unlines sep (D.Stream step state) = D.Stream step' (OuterLoop state)
182182 where
@@ -204,7 +204,7 @@ unlines sep (D.Stream step state) = D.Stream step' (OuterLoop state)
204204-- module Streamly.Internal.Data.Array.Unboxed.Mut.Stream
205205--
206206{-# INLINE_NORMAL packArraysChunksOf #-}
207−packArraysChunksOf :: (MonadIO m, Unboxed a)
207+packArraysChunksOf :: (MonadIO m, Unbox a)
208208 => Int -> D.Stream m (Array a) -> D.Stream m (Array a)
209209packArraysChunksOf n str =
210210 D.map A.unsafeFreeze $ AS.packArraysChunksOf n $ D.map A.unsafeThaw str
@@ -212,7 +212,7 @@ packArraysChunksOf n str =
212212-- XXX instead of writing two different versions of this operation, we should
213213-- write it as a pipe.
214214{-# INLINE_NORMAL lpackArraysChunksOf #-}
215−lpackArraysChunksOf :: (MonadIO m, Unboxed a)
215+lpackArraysChunksOf :: (MonadIO m, Unbox a)
216216 => Int -> Fold m (Array a) () -> Fold m (Array a) ()
217217lpackArraysChunksOf n fld =
218218 FL.lmap A.unsafeThaw $ AS.lpackArraysChunksOf n (FL.lmap A.unsafeFreeze fld)
@@ -222,7 +222,7 @@ lpackArraysChunksOf n fld =
222222--
223223-- @since 0.7.0
224224{-# INLINE compact #-}
225−compact :: (MonadIO m, Unboxed a)
225+compact :: (MonadIO m, Unbox a)
226226 => Int -> Stream m (Array a) -> Stream m (Array a)
227227compact n xs = fromStreamD $ packArraysChunksOf n (toStreamD xs)
228228
@@ -319,7 +319,7 @@ splitOnSuffix byte s =
319319-- to the number of times it can be called on the same stream.
320320--
321321{-# INLINE_NORMAL foldBreakD #-}
322−foldBreakD :: forall m a b. (MonadIO m, Unboxed a) =>
322+foldBreakD :: forall m a b. (MonadIO m, Unbox a) =>
323323 Fold m a b -> D.Stream m (Array a) -> m (b, D.Stream m (Array a))
324324foldBreakD (FL.Fold fstep initial extract) stream@(D.Stream step state) = do
325325 res <- initial
@@ -355,7 +355,7 @@ foldBreakD (FL.Fold fstep initial extract) stream@(D.Stream step state) = do
355355 FL.Partial fs1 -> goArray SPEC st fp next fs1
356356
357357{-# INLINE_NORMAL foldBreakK #-}
358−foldBreakK :: forall m a b. (MonadIO m, Unboxed a) =>
358+foldBreakK :: forall m a b. (MonadIO m, Unbox a) =>
359359 Fold m a b -> K.Stream m (Array a) -> m (b, K.Stream m (Array a))
360360foldBreakK (FL.Fold fstep initial extract) stream = do
361361 res <- initial
@@ -396,7 +396,7 @@ foldBreakK (FL.Fold fstep initial extract) stream = do
396396--
397397{-# INLINE_NORMAL foldBreak #-}
398398foldBreak ::
399− (MonadIO m, Unboxed a)
399+ (MonadIO m, Unbox a)
400400 => Fold m a b
401401 -> Stream m (A.Array a)
402402 -> m (b, Stream m (A.Array a))
@@ -415,7 +415,7 @@ foldBreak f =
415415
416416-- When we have to take an array partially, take the last part of the array.
417417{-# INLINE takeArrayListRev #-}
418−takeArrayListRev :: forall a. Unboxed a => Int -> [Array a] -> [Array a]
418+takeArrayListRev :: forall a. Unbox a => Int -> [Array a] -> [Array a]
419419takeArrayListRev = go
420420
421421 where
@@ -436,7 +436,7 @@ takeArrayListRev = go
436436-- the first split.
437437{-# INLINE splitAtArrayListRev #-}
438438splitAtArrayListRev ::
439− forall a. Unboxed a => Int -> [Array a] -> ([Array a],[Array a])
439+ forall a. Unbox a => Int -> [Array a] -> ([Array a],[Array a])
440440splitAtArrayListRev n ls
441441 | n <= 0 = ([], ls)
442442 | otherwise = go n ls
@@ -470,14 +470,14 @@ foldlM' step begin = D.foldlM' step begin . S.toStreamD
470470-- CAUTION! length must more than equal to lengths of all the arrays in the
471471-- stream.
472472{-# INLINE spliceArraysLenUnsafe #-}
473−spliceArraysLenUnsafe :: (MonadIO m, Unboxed a)
473+spliceArraysLenUnsafe :: (MonadIO m, Unbox a)
474474 => Int -> Stream m (MA.Array a) -> m (MA.Array a)
475475spliceArraysLenUnsafe len buffered = do
476476 arr <- liftIO $ MA.newPinned len
477477 foldlM' MA.spliceUnsafe (return arr) buffered
478478
479479{-# INLINE _spliceArrays #-}
480−_spliceArrays :: (MonadIO m, Unboxed a)
480+_spliceArrays :: (MonadIO m, Unbox a)
481481 => Stream m (Array a) -> m (Array a)
482482_spliceArrays s = do
483483 buffered <- S.foldr S.cons S.nil s
@@ -491,7 +491,7 @@ _spliceArrays s = do
491491 writeArr dst arr = MA.spliceUnsafe dst (A.unsafeThaw arr)
492492
493493{-# INLINE _spliceArraysBuffered #-}
494−_spliceArraysBuffered :: (MonadIO m, Unboxed a)
494+_spliceArraysBuffered :: (MonadIO m, Unbox a)
495495 => Stream m (Array a) -> m (Array a)
496496_spliceArraysBuffered s = do
497497 buffered <- S.foldr S.cons S.nil s
@@ -499,7 +499,7 @@ _spliceArraysBuffered s = do
499499 A.unsafeFreeze <$> spliceArraysLenUnsafe len (fmap A.unsafeThaw s)
500500
501501{-# INLINE spliceArraysRealloced #-}
502−spliceArraysRealloced :: forall m a. (MonadIO m, Unboxed a)
502+spliceArraysRealloced :: forall m a. (MonadIO m, Unbox a)
503503 => Stream m (Array a) -> m (Array a)
504504spliceArraysRealloced s = do
505505 let n = allocBytesToElemCount (undefined :: a) (4 * 1024)
@@ -515,7 +515,7 @@ spliceArraysRealloced s = do
515515--
516516-- @since 0.7.0
517517{-# INLINE toArray #-}
518−toArray :: (MonadIO m, Unboxed a) => Stream m (Array a) -> m (Array a)
518+toArray :: (MonadIO m, Unbox a) => Stream m (Array a) -> m (Array a)
519519toArray = spliceArraysRealloced
520520-- spliceArrays = _spliceArraysBuffered
521521
@@ -526,7 +526,7 @@ toArray = spliceArraysRealloced
526526--
527527{-
528528{-# INLINE toArraysInRange #-}
529−toArraysInRange :: (MonadIO m, Unboxed a)
529+toArraysInRange :: (MonadIO m, Unbox a)
530530 => Int -> Int -> Fold m (Array a) b -> Fold m a b
531531toArraysInRange low high (Fold step initial extract) =
532532-}
@@ -534,7 +534,7 @@ toArraysInRange low high (Fold step initial extract) =
534534{-
535535-- | Fold the input to a pure buffered stream (List) of arrays.
536536{-# INLINE _toArraysOf #-}
537−_toArraysOf :: (MonadIO m, Unboxed a)
537+_toArraysOf :: (MonadIO m, Unbox a)
538538 => Int -> Fold m a (Stream Identity (Array a))
539539_toArraysOf n = FL.chunksOf n (A.writeNF n) FL.toStream
540540-}
@@ -556,7 +556,7 @@ newtype List a = List {getList :: [a]}
556556-- to the number of times it can be called on the same stream.
557557{-# INLINE_NORMAL parseBreakD #-}
558558parseBreakD ::
559− forall m a b. (MonadIO m, MonadThrow m, Unboxed a)
559+ forall m a b. (MonadIO m, MonadThrow m, Unbox a)
560560 => PRD.Parser m a b
561561 -> D.Stream m (Array.Array a)
562562 -> m (b, D.Stream m (Array.Array a))
@@ -637,7 +637,7 @@ parseBreakD
637637
638638{-# INLINE_NORMAL parseBreakK #-}
639639parseBreakK ::
640− forall m a b. (MonadIO m, MonadThrow m, Unboxed a)
640+ forall m a b. (MonadIO m, MonadThrow m, Unbox a)
641641 => PRD.Parser m a b
642642 -> K.Stream m (Array.Array a)
643643 -> m (b, K.Stream m (Array.Array a))
@@ -772,7 +772,7 @@ parseBreakK (PRD.Parser pstep initial extract) stream = do
772772--
773773{-# INLINE_NORMAL parseBreak #-}
774774parseBreak ::
775− (MonadIO m, MonadThrow m, Unboxed a)
775+ (MonadIO m, MonadThrow m, Unbox a)
776776 => PR.Parser m a b
777777 -> Stream m (A.Array a)
778778 -> m (b, Stream m (A.Array a))
@@ -798,7 +798,7 @@ parseBreak p =
798798--
799799{-# INLINE_NORMAL runArrayParserDBreak #-}
800800runArrayParserDBreak ::
801− forall m a b. (MonadIO m, MonadThrow m, Unboxed a)
801+ forall m a b. (MonadIO m, MonadThrow m, Unbox a)
802802 => PRD.Parser m (Array a) b
803803 -> D.Stream m (Array.Array a)
804804 -> m (b, D.Stream m (Array.Array a))
@@ -927,7 +927,7 @@ runArrayParserDBreak
927927--
928928{-# INLINE parseArr #-}
929929parseArr ::
930− (MonadIO m, MonadThrow m, Unboxed a)
930+ (MonadIO m, MonadThrow m, Unbox a)
931931 => ASF.Parser m a b
932932 -> Stream m (A.Array a)
933933 -> m (b, Stream m (A.Array a))
@@ -939,7 +939,7 @@ parseArr p s = fmap fromStreamD <$> parseBreakD p (toStreamD s)
939939-- /Pre-release/
940940--
941941{-# INLINE runArrayFold #-}
942−runArrayFold :: (MonadIO m, MonadThrow m, Unboxed a) =>
942+runArrayFold :: (MonadIO m, MonadThrow m, Unbox a) =>
943943 ArrayFold m a b -> Stream m (A.Array a) -> m b
944944runArrayFold (ArrayFold p) s = fst <$> runArrayParserDBreak p (toStreamD s)
945945
@@ -948,7 +948,7 @@ runArrayFold (ArrayFold p) s = fst <$> runArrayParserDBreak p (toStreamD s)
948948-- /Pre-release/
949949--
950950{-# INLINE runArrayFoldBreak #-}
951−runArrayFoldBreak :: (MonadIO m, MonadThrow m, Unboxed a) =>
951+runArrayFoldBreak :: (MonadIO m, MonadThrow m, Unbox a) =>
952952 ArrayFold m a b -> Stream m (A.Array a) -> m (b, Stream m (A.Array a))
953953runArrayFoldBreak (ArrayFold p) s =
954954 second fromStreamD <$> runArrayParserDBreak p (toStreamD s)
@@ -966,7 +966,7 @@ data ParseChunksState x inpBuf st pst =
966966
967967{-# INLINE_NORMAL runArrayFoldManyD #-}
968968runArrayFoldManyD
969− :: (MonadThrow m, Unboxed a)
969+ :: (MonadThrow m, Unbox a)
970970 => ArrayFold m a b
971971 -> D.Stream m (Array a)
972972 -> D.Stream m b
@@ -1151,7 +1151,7 @@ runArrayFoldManyD
11511151-- /Pre-release/
11521152{-# INLINE runArrayFoldMany #-}
11531153runArrayFoldMany
1154− :: (MonadThrow m, Unboxed a)
1154+ :: (MonadThrow m, Unbox a)
11551155 => ArrayFold m a b
11561156 -> Stream m (Array a)
11571157 -> Stream m b
core/src/Streamly/Internal/Data/Array/Unboxed/Type.hs+45−45
@@ -90,7 +90,7 @@ import GHC.Ptr (Ptr(..))
9090import Streamly.Internal.Data.Array.Unboxed.Mut.Type (MutableByteArray)
9191import Streamly.Internal.Data.Fold.Type (Fold(..))
9292import Streamly.Internal.Data.Stream.Type (Stream)
93−import Streamly.Internal.Data.Unboxed (Unboxed, peekWith, sizeOf)
93+import Streamly.Internal.Data.Unboxed (Unbox, peekWith, sizeOf)
9494import Streamly.Internal.Data.Unfold.Type (Unfold(..))
9595import Text.Read (readPrec, readListPrec, readListPrecDefault)
9696
@@ -128,7 +128,7 @@ import Streamly.Internal.System.IO (unsafeInlineIO, defaultChunkSize)
128128--
129129data Array a =
130130#ifdef DEVBUILD
131− Unboxed a =>
131+ Unbox a =>
132132#endif
133133 -- All offsets are in terms of bytes from the start of arraycontents
134134 Array
@@ -176,7 +176,7 @@ unsafeFreeze (MA.Array ac as ae _) = Array ac as ae
176176-- | Similar to 'unsafeFreeze' but uses 'MA.rightSize' on the mutable array
177177-- first.
178178{-# INLINE unsafeFreezeWithShrink #-}
179−unsafeFreezeWithShrink :: Unboxed a => MA.Array a -> Array a
179+unsafeFreezeWithShrink :: Unbox a => MA.Array a -> Array a
180180unsafeFreezeWithShrink arr = unsafePerformIO $ do
181181 MA.Array ac as ae _ <- MA.rightSize arr
182182 return $ Array ac as ae
@@ -211,7 +211,7 @@ unpin = fmap unsafeFreeze . MA.unpin . unsafeThaw
211211
212212-- Splice two immutable arrays creating a new array.
213213{-# INLINE splice #-}
214−splice :: (MonadIO m, Unboxed a) => Array a -> Array a -> m (Array a)
214+splice :: (MonadIO m, Unbox a) => Array a -> Array a -> m (Array a)
215215splice arr1 arr2 =
216216 unsafeFreeze <$> MA.splice (unsafeThaw arr1) (unsafeThaw arr2)
217217
@@ -220,7 +220,7 @@ splice arr1 arr2 =
220220-- array may hold less than N elements.
221221--
222222{-# INLINABLE fromListN #-}
223−fromListN :: Unboxed a => Int -> [a] -> Array a
223+fromListN :: Unbox a => Int -> [a] -> Array a
224224fromListN n xs = unsafePerformIO $ unsafeFreeze <$> MA.fromListN n xs
225225
226226-- | Create an 'Array' from the first N elements of a list in reverse order.
@@ -229,13 +229,13 @@ fromListN n xs = unsafePerformIO $ unsafeFreeze <$> MA.fromListN n xs
229229--
230230-- /Pre-release/
231231{-# INLINABLE fromListRevN #-}
232−fromListRevN :: Unboxed a => Int -> [a] -> Array a
232+fromListRevN :: Unbox a => Int -> [a] -> Array a
233233fromListRevN n xs = unsafePerformIO $ unsafeFreeze <$> MA.fromListRevN n xs
234234
235235-- | Create an 'Array' from a list. The list must be of finite size.
236236--
237237{-# INLINE fromList #-}
238−fromList :: Unboxed a => [a] -> Array a
238+fromList :: Unbox a => [a] -> Array a
239239fromList xs = unsafePerformIO $ unsafeFreeze <$> MA.fromList xs
240240
241241-- | Create an 'Array' from a list in reverse order. The list must be of finite
@@ -243,16 +243,16 @@ fromList xs = unsafePerformIO $ unsafeFreeze <$> MA.fromList xs
243243--
244244-- /Pre-release/
245245{-# INLINABLE fromListRev #-}
246−fromListRev :: Unboxed a => [a] -> Array a
246+fromListRev :: Unbox a => [a] -> Array a
247247fromListRev xs = unsafePerformIO $ unsafeFreeze <$> MA.fromListRev xs
248248
249249{-# INLINE_NORMAL fromStreamDN #-}
250−fromStreamDN :: forall m a. (MonadIO m, Unboxed a)
250+fromStreamDN :: forall m a. (MonadIO m, Unbox a)
251251 => Int -> D.Stream m a -> m (Array a)
252252fromStreamDN limit str = unsafeFreeze <$> MA.fromStreamDN limit str
253253
254254{-# INLINE_NORMAL fromStreamD #-}
255−fromStreamD :: forall m a. (MonadIO m, Unboxed a)
255+fromStreamD :: forall m a. (MonadIO m, Unbox a)
256256 => D.Stream m a -> m (Array a)
257257fromStreamD str = unsafeFreeze <$> MA.fromStreamD str
258258
@@ -261,14 +261,14 @@ fromStreamD str = unsafeFreeze <$> MA.fromStreamD str
261261-------------------------------------------------------------------------------
262262
263263{-# INLINE bufferChunks #-}
264−bufferChunks :: (MonadIO m, Unboxed a) =>
264+bufferChunks :: (MonadIO m, Unbox a) =>
265265 D.Stream m a -> m (K.Stream m (Array a))
266266bufferChunks m = D.foldr K.cons K.nil $ arraysOf defaultChunkSize m
267267
268268-- | @arraysOf n stream@ groups the input stream into a stream of
269269-- arrays of size n.
270270{-# INLINE_NORMAL arraysOf #-}
271−arraysOf :: forall m a. (MonadIO m, Unboxed a)
271+arraysOf :: forall m a. (MonadIO m, Unbox a)
272272 => Int -> D.Stream m a -> D.Stream m (Array a)
273273arraysOf n str = D.map unsafeFreeze $ MA.arraysOf n str
274274
@@ -279,7 +279,7 @@ arraysOf n str = D.map unsafeFreeze $ MA.arraysOf n str
279279-- We can try this if there are any fusion issues in the unfold.
280280--
281281{-# INLINE_NORMAL flattenArrays #-}
282−flattenArrays :: forall m a. (MonadIO m, Unboxed a)
282+flattenArrays :: forall m a. (MonadIO m, Unbox a)
283283 => D.Stream m (Array a) -> D.Stream m a
284284flattenArrays = MA.flattenArrays . D.map unsafeThaw
285285
@@ -290,7 +290,7 @@ flattenArrays = MA.flattenArrays . D.map unsafeThaw
290290-- We can try this if there are any fusion issues in the unfold.
291291--
292292{-# INLINE_NORMAL flattenArraysRev #-}
293−flattenArraysRev :: forall m a. (MonadIO m, Unboxed a)
293+flattenArraysRev :: forall m a. (MonadIO m, Unbox a)
294294 => D.Stream m (Array a) -> D.Stream m a
295295flattenArraysRev = MA.flattenArraysRev . D.map unsafeThaw
296296
@@ -310,12 +310,12 @@ breakOn sep arr = do
310310--
311311-- Unsafe because it does not check the bounds of the array.
312312{-# INLINE_NORMAL unsafeIndexIO #-}
313−unsafeIndexIO :: forall a. Unboxed a => Int -> Array a -> IO a
313+unsafeIndexIO :: forall a. Unbox a => Int -> Array a -> IO a
314314unsafeIndexIO i arr = MA.getIndexUnsafe i (unsafeThaw arr)
315315
316316-- | Return element at the specified index without checking the bounds.
317317{-# INLINE_NORMAL unsafeIndex #-}
318−unsafeIndex :: forall a. Unboxed a => Int -> Array a -> a
318+unsafeIndex :: forall a. Unbox a => Int -> Array a -> a
319319unsafeIndex i arr = let !r = unsafeInlineIO $ unsafeIndexIO i arr in r
320320
321321-- | /O(1)/ Get the byte length of the array.
@@ -328,30 +328,30 @@ byteLength = MA.byteLength . unsafeThaw
328328-- array.
329329--
330330{-# INLINE length #-}
331−length :: Unboxed a => Array a -> Int
331+length :: Unbox a => Array a -> Int
332332length arr = MA.length (unsafeThaw arr)
333333
334334-- | Unfold an array into a stream in reverse order.
335335--
336336{-# INLINE_NORMAL readerRev #-}
337−readerRev :: forall m a. (Monad m, Unboxed a) => Unfold m (Array a) a
337+readerRev :: forall m a. (Monad m, Unbox a) => Unfold m (Array a) a
338338readerRev = Unfold.lmap unsafeThaw $ MA.readerRevWith (return . unsafeInlineIO)
339339
340340{-# INLINE_NORMAL toStreamD #-}
341−toStreamD :: forall m a. (Monad m, Unboxed a) => Array a -> D.Stream m a
341+toStreamD :: forall m a. (Monad m, Unbox a) => Array a -> D.Stream m a
342342toStreamD arr = MA.toStreamDWith (return . unsafeInlineIO) (unsafeThaw arr)
343343
344344{-# INLINE toStreamK #-}
345−toStreamK :: forall m a. (Monad m, Unboxed a) => Array a -> K.Stream m a
345+toStreamK :: forall m a. (Monad m, Unbox a) => Array a -> K.Stream m a
346346toStreamK arr = MA.toStreamKWith (return . unsafeInlineIO) (unsafeThaw arr)
347347
348348{-# INLINE_NORMAL toStreamDRev #-}
349−toStreamDRev :: forall m a. (Monad m, Unboxed a) => Array a -> D.Stream m a
349+toStreamDRev :: forall m a. (Monad m, Unbox a) => Array a -> D.Stream m a
350350toStreamDRev arr =
351351 MA.toStreamDRevWith (return . unsafeInlineIO) (unsafeThaw arr)
352352
353353{-# INLINE toStreamKRev #-}
354−toStreamKRev :: forall m a. (Monad m, Unboxed a) => Array a -> K.Stream m a
354+toStreamKRev :: forall m a. (Monad m, Unbox a) => Array a -> K.Stream m a
355355toStreamKRev arr =
356356 MA.toStreamKRevWith (return . unsafeInlineIO) (unsafeThaw arr)
357357
@@ -359,14 +359,14 @@ toStreamKRev arr =
359359--
360360-- /Pre-release/
361361{-# INLINE_EARLY read #-}
362−read :: (Monad m, Unboxed a) => Array a -> Stream m a
362+read :: (Monad m, Unbox a) => Array a -> Stream m a
363363read = Stream.fromStreamD . toStreamD
364364
365365-- | Same as 'read'
366366--
367367{-# DEPRECATED toStream "Please use 'read' instead." #-}
368368{-# INLINE_EARLY toStream #-}
369−toStream :: (Monad m, Unboxed a) => Array a -> Stream m a
369+toStream :: (Monad m, Unbox a) => Array a -> Stream m a
370370toStream = read
371371-- XXX add fallback to StreamK rule
372372-- {-# RULES "Streamly.Array.read fallback to StreamK" [1]
@@ -376,14 +376,14 @@ toStream = read
376376--
377377-- /Pre-release/
378378{-# INLINE_EARLY readRev #-}
379−readRev :: (Monad m, Unboxed a) => Array a -> Stream m a
379+readRev :: (Monad m, Unbox a) => Array a -> Stream m a
380380readRev = Stream.fromStreamD . toStreamDRev
381381
382382-- | Same as 'readRev'
383383--
384384{-# DEPRECATED toStreamRev "Please use 'readRev' instead." #-}
385385{-# INLINE_EARLY toStreamRev #-}
386−toStreamRev :: (Monad m, Unboxed a) => Array a -> Stream m a
386+toStreamRev :: (Monad m, Unbox a) => Array a -> Stream m a
387387toStreamRev = readRev
388388
389389-- XXX add fallback to StreamK rule
@@ -391,17 +391,17 @@ toStreamRev = readRev
391391-- forall a. S.toStreamK (readRev a) = K.revFromArray a #-}
392392
393393{-# INLINE_NORMAL foldl' #-}
394−foldl' :: forall a b. Unboxed a => (b -> a -> b) -> b -> Array a -> b
394+foldl' :: forall a b. Unbox a => (b -> a -> b) -> b -> Array a -> b
395395foldl' f z arr = runIdentity $ D.foldl' f z $ toStreamD arr
396396
397397{-# INLINE_NORMAL foldr #-}
398−foldr :: Unboxed a => (a -> b -> b) -> b -> Array a -> b
398+foldr :: Unbox a => (a -> b -> b) -> b -> Array a -> b
399399foldr f z arr = runIdentity $ D.foldr f z $ toStreamD arr
400400
401401-- | Create two slices of an array without copying the original array. The
402402-- specified index @i@ is the first index of the second slice.
403403--
404−splitAt :: Unboxed a => Int -> Array a -> (Array a, Array a)
404+splitAt :: Unbox a => Int -> Array a -> (Array a, Array a)
405405splitAt i arr = (unsafeFreeze a, unsafeFreeze b)
406406 where
407407 (a, b) = MA.splitAt i (unsafeThaw arr)
@@ -409,7 +409,7 @@ splitAt i arr = (unsafeFreeze a, unsafeFreeze b)
409409-- Use foldr/build fusion to fuse with list consumers
410410-- This can be useful when using the IsList instance
411411{-# INLINE_LATE toListFB #-}
412−toListFB :: forall a b. Unboxed a => (a -> b -> b) -> b -> Array a -> b
412+toListFB :: forall a b. Unbox a => (a -> b -> b) -> b -> Array a -> b
413413toListFB c n Array{..} = go arrStart
414414 where
415415
@@ -427,7 +427,7 @@ toListFB c n Array{..} = go arrStart
427427-- | Convert an 'Array' into a list.
428428--
429429{-# INLINE toList #-}
430−toList :: Unboxed a => Array a -> [a]
430+toList :: Unbox a => Array a -> [a]
431431toList s = build (\c n -> toListFB c n s)
432432
433433-------------------------------------------------------------------------------
@@ -438,7 +438,7 @@ toList s = build (\c n -> toListFB c n s)
438438-- 'Array'.
439439--
440440{-# INLINE_NORMAL writeN #-}
441−writeN :: forall m a. (MonadIO m, Unboxed a) => Int -> Fold m a (Array a)
441+writeN :: forall m a. (MonadIO m, Unbox a) => Int -> Fold m a (Array a)
442442writeN = fmap unsafeFreeze . MA.writeN
443443
444444-- | @writeNAligned alignment n@ folds a maximum of @n@ elements from the input
@@ -447,7 +447,7 @@ writeN = fmap unsafeFreeze . MA.writeN
447447-- /Pre-release/
448448--
449449{-# INLINE_NORMAL writeNAligned #-}
450−writeNAligned :: forall m a. (MonadIO m, Unboxed a)
450+writeNAligned :: forall m a. (MonadIO m, Unbox a)
451451 => Int -> Int -> Fold m a (Array a)
452452writeNAligned alignSize = fmap unsafeFreeze . MA.writeNAligned alignSize
453453
@@ -458,12 +458,12 @@ writeNAligned alignSize = fmap unsafeFreeze . MA.writeNAligned alignSize
458458-- slowdown.
459459--
460460{-# INLINE_NORMAL writeNUnsafe #-}
461−writeNUnsafe :: forall m a. (MonadIO m, Unboxed a)
461+writeNUnsafe :: forall m a. (MonadIO m, Unbox a)
462462 => Int -> Fold m a (Array a)
463463writeNUnsafe n = unsafeFreeze <$> MA.writeNUnsafe n
464464
465465{-# INLINE_NORMAL writeWith #-}
466−writeWith :: forall m a. (MonadIO m, Unboxed a)
466+writeWith :: forall m a. (MonadIO m, Unbox a)
467467 => Int -> Fold m a (Array a)
468468-- writeWith n = FL.rmapM spliceArrays $ toArraysOf n
469469writeWith elemCount = unsafeFreeze <$> MA.writeWith elemCount
@@ -473,18 +473,18 @@ writeWith elemCount = unsafeFreeze <$> MA.writeWith elemCount
473473-- /Caution! Do not use this on infinite streams./
474474--
475475{-# INLINE write #-}
476−write :: forall m a. (MonadIO m, Unboxed a) => Fold m a (Array a)
476+write :: forall m a. (MonadIO m, Unbox a) => Fold m a (Array a)
477477write = fmap unsafeFreeze MA.write
478478
479479-------------------------------------------------------------------------------
480480-- Instances
481481-------------------------------------------------------------------------------
482482
483−instance (Show a, Unboxed a) => Show (Array a) where
483+instance (Show a, Unbox a) => Show (Array a) where
484484 {-# INLINE showsPrec #-}
485485 showsPrec _ = shows . toList
486486
487−instance (Unboxed a, Read a, Show a) => Read (Array a) where
487+instance (Unbox a, Read a, Show a) => Read (Array a) where
488488 {-# INLINE readPrec #-}
489489 readPrec = fromList <$> readPrec
490490 readListPrec = readListPrecDefault
@@ -494,7 +494,7 @@ instance (a ~ Char) => IsString (Array a) where
494494 fromString = fromList
495495
496496-- GHC versions 8.0 and below cannot derive IsList
497−instance Unboxed a => IsList (Array a) where
497+instance Unbox a => IsList (Array a) where
498498 type (Item (Array a)) = a
499499 {-# INLINE fromList #-}
500500 fromList = fromList
@@ -505,12 +505,12 @@ instance Unboxed a => IsList (Array a) where
505505
506506-- XXX we are assuming that Unboxed equality means element equality. This may
507507-- or may not be correct? arrcmp is 40% faster compared to stream equality.
508−instance (Unboxed a, Eq a) => Eq (Array a) where
508+instance (Unbox a, Eq a) => Eq (Array a) where
509509 {-# INLINE (==) #-}
510510 arr1 == arr2 =
511511 (==) EQ $ unsafeInlineIO $! unsafeThaw arr1 `MA.cmp` unsafeThaw arr2
512512
513−-- Since this is an Unboxed array we cannot have unevaluated data in it so
513+-- Since this is an Unbox array we cannot have unevaluated data in it so
514514-- this is just a no op.
515515instance NFData (Array a) where
516516 {-# INLINE rnf #-}
@@ -519,7 +519,7 @@ instance NFData (Array a) where
519519instance NFData1 Array where
520520 liftRnf _ Array{} = ()
521521
522−instance (Unboxed a, Ord a) => Ord (Array a) where
522+instance (Unbox a, Ord a) => Ord (Array a) where
523523 {-# INLINE compare #-}
524524 compare arr1 arr2 = runIdentity $
525525 D.cmpBy compare (toStreamD arr1) (toStreamD arr2)
@@ -582,16 +582,16 @@ instance Foldable Array where
582582-- Semigroup and Monoid
583583-------------------------------------------------------------------------------
584584
585−instance Unboxed a => Semigroup (Array a) where
585+instance Unbox a => Semigroup (Array a) where
586586 arr1 <> arr2 = unsafePerformIO $ splice arr1 arr2
587587
588588nil ::
589589#ifdef DEVBUILD
590− Unboxed a =>
590+ Unbox a =>
591591#endif
592592 Array a
593593nil = Array Unboxed.nil 0 0
594594
595−instance Unboxed a => Monoid (Array a) where
595+instance Unbox a => Monoid (Array a) where
596596 mempty = nil
597597 mappend = (<>)
core/src/Streamly/Internal/Data/Fold.hs+6−6
@@ -343,7 +343,7 @@ import Foreign.Storable (peek, sizeOf)
343343import Streamly.Internal.Data.IsMap (IsMap(..))
344344import Streamly.Internal.Data.Maybe.Strict (Maybe'(..), toMaybe)
345345import Streamly.Internal.Data.Pipe.Type (Pipe (..), PipeState(..))
346−import Streamly.Internal.Data.Unboxed (Unboxed)
346+import Streamly.Internal.Data.Unboxed (Unbox)
347347import Streamly.Internal.Data.Unfold.Type (Unfold(..))
348348import Streamly.Internal.Data.Tuple.Strict (Tuple'(..), Tuple3'(..))
349349import Streamly.Internal.Data.Stream.Type (Stream)
@@ -1625,7 +1625,7 @@ data SplitOnSeqState acc a rb rh w ck =
16251625--
16261626-- /Pre-release/
16271627{-# INLINE takeEndBySeq #-}
1628−takeEndBySeq :: forall m a b. (MonadIO m, Unboxed a, Enum a, Eq a) =>
1628+takeEndBySeq :: forall m a b. (MonadIO m, Unbox a, Enum a, Eq a) =>
16291629 Array.Array a
16301630 -> Fold m a b
16311631 -> Fold m a b
@@ -1761,7 +1761,7 @@ takeEndBySeq patArr (Fold fstep finitial fextract) =
17611761-- /Pre-release/
17621762--
17631763{-# INLINE takeEndBySeq_ #-}
1764−takeEndBySeq_ :: forall m a b. (MonadIO m, Unboxed a, Enum a, Eq a) =>
1764+takeEndBySeq_ :: forall m a b. (MonadIO m, Unbox a, Enum a, Eq a) =>
17651765 Array.Array a
17661766 -> Fold m a b
17671767 -> Fold m a b
@@ -2757,7 +2757,7 @@ unfoldMany (Unfold ustep inject) (Fold fstep initial extract) =
27572757 consume s a = inject a >>= produce s
27582758
27592759{-# INLINE topBy #-}
2760−topBy :: (MonadIO m, Unboxed a) =>
2760+topBy :: (MonadIO m, Unbox a) =>
27612761 (a -> a -> Ordering)
27622762 -> Int
27632763 -> Fold m a (MA.Array a)
@@ -2796,7 +2796,7 @@ topBy cmp n = Fold step initial extract
27962796--
27972797-- /Pre-release/
27982798{-# INLINE top #-}
2799−top :: (MonadIO m, Unboxed a, Ord a) => Int -> Fold m a (MA.Array a)
2799+top :: (MonadIO m, Unbox a, Ord a) => Int -> Fold m a (MA.Array a)
28002800top = topBy $ flip compare
28012801
28022802-- | Fold the input stream to bottom n elements.
@@ -2807,5 +2807,5 @@ top = topBy $ flip compare
28072807--
28082808-- /Pre-release/
28092809{-# INLINE bottom #-}
2810−bottom :: (MonadIO m, Unboxed a, Ord a) => Int -> Fold m a (MA.Array a)
2810+bottom :: (MonadIO m, Unbox a, Ord a) => Int -> Fold m a (MA.Array a)
28112811bottom = topBy compare
core/src/Streamly/Internal/Data/IORef/Unboxed.hs+7−7
@@ -41,7 +41,7 @@ where
4141import Control.Monad.IO.Class (MonadIO(..))
4242import Streamly.Internal.Data.Unboxed
4343 ( MutableByteArray(..)
44− , Unboxed
44+ , Unbox
4545 , sizeOf
4646 , peekWith
4747 , pokeWith
@@ -50,14 +50,14 @@ import Streamly.Internal.Data.Unboxed
5050
5151import qualified Streamly.Internal.Data.Stream.StreamD.Type as D
5252
53−-- | An 'IORef' holds a single 'Unboxed' value.
53+-- | An 'IORef' holds a single 'Unbox'-able value.
5454newtype IORef a = IORef (MutableByteArray a)
5555
5656-- | Create a new 'IORef'.
5757--
5858-- /Pre-release/
5959{-# INLINE newIORef #-}
60−newIORef :: forall a. Unboxed a => a -> IO (IORef a)
60+newIORef :: forall a. Unbox a => a -> IO (IORef a)
6161newIORef x = do
6262 var <- newUnpinnedBytes (sizeOf (undefined :: a))
6363 pokeWith var 0 x
@@ -67,21 +67,21 @@ newIORef x = do
6767--
6868-- /Pre-release/
6969{-# INLINE writeIORef #-}
70−writeIORef :: Unboxed a => IORef a -> a -> IO ()
70+writeIORef :: Unbox a => IORef a -> a -> IO ()
7171writeIORef (IORef var) = pokeWith var 0
7272
7373-- | Read a value from an 'IORef'.
7474--
7575-- /Pre-release/
7676{-# INLINE readIORef #-}
77−readIORef :: Unboxed a => IORef a -> IO a
77+readIORef :: Unbox a => IORef a -> IO a
7878readIORef (IORef var) = peekWith var 0
7979
8080-- | Modify the value of an 'IORef' using a function with strict application.
8181--
8282-- /Pre-release/
8383{-# INLINE modifyIORef' #-}
84−modifyIORef' :: Unboxed a => IORef a -> (a -> a) -> IO ()
84+modifyIORef' :: Unbox a => IORef a -> (a -> a) -> IO ()
8585modifyIORef' var g = do
8686 x <- readIORef var
8787 writeIORef var (g x)
@@ -90,7 +90,7 @@ modifyIORef' var g = do
9090--
9191-- /Pre-release/
9292{-# INLINE_NORMAL toStreamD #-}
93−toStreamD :: (MonadIO m, Unboxed a) => IORef a -> D.Stream m a
93+toStreamD :: (MonadIO m, Unbox a) => IORef a -> D.Stream m a
9494toStreamD var = D.Stream step ()
9595
9696 where
core/src/Streamly/Internal/Data/Ring/Unboxed.hs+3−3
@@ -81,7 +81,7 @@ import Foreign.ForeignPtr.Unsafe (unsafeForeignPtrToPtr)
8181import Foreign.Ptr (plusPtr, minusPtr, castPtr)
8282import Streamly.Internal.Data.Unboxed as Unboxed
8383 ( MutableByteArray
84− , Unboxed
84+ , Unbox
8585 , castContents
8686 , peekWith
8787 )
@@ -561,7 +561,7 @@ data Tuple4' a b c d = Tuple4' !a !b !c !d deriving Show
561561-- a))@ action depends on when it is executed. It does not capture the sanpshot
562562-- of the ring at a particular time.
563563{-# INLINE slidingWindowWith #-}
564−slidingWindowWith :: forall m a b. (MonadIO m, Unboxed a)
564+slidingWindowWith :: forall m a b. (MonadIO m, Unbox a)
565565 => Int -> Fold m ((a, Maybe a), m (Array a)) b -> Fold m a b
566566slidingWindowWith n (Fold step1 initial1 extract1) = Fold step initial extract
567567
@@ -615,6 +615,6 @@ slidingWindowWith n (Fold step1 initial1 extract1) = Fold step initial extract
615615-- there is no old element.
616616--
617617{-# INLINE slidingWindow #-}
618−slidingWindow :: forall m a b. (MonadIO m, Unboxed a)
618+slidingWindow :: forall m a b. (MonadIO m, Unbox a)
619619 => Int -> Fold m (a, Maybe a) b -> Fold m a b
620620slidingWindow n f = slidingWindowWith n (lmap fst f)
core/src/Streamly/Internal/Data/Stream/Bottom.hs+2−2
@@ -63,7 +63,7 @@ where
6363import Control.Monad.IO.Class (MonadIO(..))
6464import Streamly.Internal.Data.Fold.Type (Fold (..))
6565import Streamly.Internal.Data.Time.Units (AbsTime, RelTime64, addToAbsTime64)
66−import Streamly.Internal.Data.Unboxed (Unboxed)
66+import Streamly.Internal.Data.Unboxed (Unbox)
6767import Streamly.Internal.System.IO (defaultChunkSize)
6868
6969import qualified Streamly.Internal.Data.Array.Unboxed.Type as A
@@ -418,7 +418,7 @@ reverse s = fromStreamD $ D.reverse $ toStreamD s
418418--
419419-- /Pre-release/
420420{-# INLINE reverse' #-}
421−reverse' :: (MonadIO m, Unboxed a) => Stream m a -> Stream m a
421+reverse' :: (MonadIO m, Unbox a) => Stream m a -> Stream m a
422422-- reverse' s = fromStreamD $ D.reverse' $ toStreamD s
423423reverse' =
424424 fromStreamD
core/src/Streamly/Internal/Data/Stream/Eliminate.hs+2−2
@@ -75,7 +75,7 @@ import Control.Monad.Catch (MonadThrow)
7575import Control.Monad.IO.Class (MonadIO(..))
7676import Control.Monad.Trans.Class (MonadTrans(..))
7777import Streamly.Internal.Data.Parser (Parser (..))
78−import Streamly.Internal.Data.Unboxed (Unboxed)
78+import Streamly.Internal.Data.Unboxed (Unbox)
7979
8080import qualified Streamly.Internal.Data.Array.Unboxed.Type as Array
8181import qualified Streamly.Internal.Data.Fold as Fold
@@ -291,7 +291,7 @@ isPrefixOf m1 m2 = D.isPrefixOf (toStreamD m1) (toStreamD m2)
291291-- /Requires 'Storable' constraint/
292292--
293293{-# INLINE isInfixOf #-}
294−isInfixOf :: (MonadIO m, Eq a, Enum a, Unboxed a)
294+isInfixOf :: (MonadIO m, Eq a, Enum a, Unbox a)
295295 => Stream m a -> Stream m a -> m Bool
296296isInfixOf infx stream = do
297297 arr <- fold Array.write infx
core/src/Streamly/Internal/Data/Stream/Generate.hs+2−2
@@ -79,7 +79,7 @@ import Streamly.Internal.Data.Stream.Enumerate
7979import Streamly.Internal.Data.Stream.Type
8080 (Stream, fromStreamD, fromStreamK, toStreamK)
8181import Streamly.Internal.Data.Time.Units (AbsTime, RelTime64, addToAbsTime64)
82−import Streamly.Internal.Data.Unboxed (Unboxed)
82+import Streamly.Internal.Data.Unboxed (Unbox)
8383import Streamly.Internal.Data.Unfold.Type (Unfold)
8484
8585import qualified Streamly.Internal.Data.IORef.Unboxed as Unboxed
@@ -458,5 +458,5 @@ fromByteStr# addr =
458458-- /Pre-release/
459459--
460460{-# INLINE fromUnboxedIORef #-}
461−fromUnboxedIORef :: (MonadIO m, Unboxed a) => Unboxed.IORef a -> Stream m a
461+fromUnboxedIORef :: (MonadIO m, Unbox a) => Unboxed.IORef a -> Stream m a
462462fromUnboxedIORef = fromStreamD . Unboxed.toStreamD
core/src/Streamly/Internal/Data/Stream/Reduce.hs+2−2
@@ -64,7 +64,7 @@ import Streamly.Internal.Data.Parser (Parser (..))
6464import Streamly.Internal.Data.Refold.Type (Refold (..))
6565import Streamly.Internal.Data.Stream.Bottom (foldManyPost)
6666import Streamly.Internal.Data.Stream.Type (Stream, fromStreamD, toStreamD)
67−import Streamly.Internal.Data.Unboxed (Unboxed)
67+import Streamly.Internal.Data.Unboxed (Unbox)
6868
6969import qualified Streamly.Internal.Data.Array.Unboxed.Type as Array
7070import qualified Streamly.Internal.Data.Parser.ParserD as ParserD
@@ -427,6 +427,6 @@ parseIterate f i m = fromStreamD $
427427--
428428-- /Pre-release/
429429{-# INLINE arraysOf #-}
430−arraysOf :: (MonadIO m, Unboxed a)
430+arraysOf :: (MonadIO m, Unbox a)
431431 => Int -> Stream m a -> Stream m (Array a)
432432arraysOf n = fromStreamD . Array.arraysOf n . toStreamD
core/src/Streamly/Internal/Data/Stream/StreamD/Nesting.hs+3−3
@@ -166,7 +166,7 @@ import Streamly.Internal.Data.Parser (ParseError(..))
166166import Streamly.Internal.Data.Refold.Type (Refold(..))
167167import Streamly.Internal.Data.SVar.Type (adaptState)
168168import Streamly.Internal.Data.Tuple.Strict (Tuple'(..))
169−import Streamly.Internal.Data.Unboxed (Unboxed)
169+import Streamly.Internal.Data.Unboxed (Unbox)
170170import Streamly.Internal.Data.Unfold.Type (Unfold(..))
171171
172172import qualified Streamly.Internal.Data.Array.Unboxed.Type as A
@@ -1823,7 +1823,7 @@ data SplitOnSeqState rb rh ck w fs s b x =
18231823
18241824{-# INLINE_NORMAL splitOnSeq #-}
18251825splitOnSeq
1826− :: forall m a b. (MonadIO m, Unboxed a, Enum a, Eq a)
1826+ :: forall m a b. (MonadIO m, Unbox a, Enum a, Eq a)
18271827 => Array a
18281828 -> Fold m a b
18291829 -> Stream m a
@@ -2136,7 +2136,7 @@ data SplitOnSuffixSeqState rb rh ck w fs s b x =
21362136
21372137{-# INLINE_NORMAL splitOnSuffixSeq #-}
21382138splitOnSuffixSeq
2139− :: forall m a b. (MonadIO m, Unboxed a, Enum a, Eq a)
2139+ :: forall m a b. (MonadIO m, Unbox a, Enum a, Eq a)
21402140 => Bool
21412141 -> Array a
21422142 -> Fold m a b
core/src/Streamly/Internal/Data/Unboxed.hs+6−9
@@ -2,8 +2,7 @@
22{-# LANGUAGE UnboxedTuples #-}
33
44module Streamly.Internal.Data.Unboxed
5− ( Unboxed
6− , Unbox(..)
5+ ( Unbox(..)
76 , alignment
87 , peekWith
98 , pokeWith
@@ -137,7 +136,7 @@ unpin arr@(MutableByteArray marr#) =
137136 (# s1#, marr1# #) -> (# s1#, MutableByteArray marr1# #)
138137
139138--------------------------------------------------------------------------------
140−-- The Unboxed type class
139+-- The Unbox type class
141140--------------------------------------------------------------------------------
142141
143142-- In theory we could convert a type to and from a byte stream and use that
@@ -188,8 +187,6 @@ class Storable a => Unbox a where
188187 -- index.
189188 unbox :: MutableByteArray a -> Int -> a -> IO ()
190189
191−type Unboxed a = Unbox a
192−
193190#define DERIVE_UNBOXED(_type, _constructor, _readArray, _writeArray) \
194191instance Unbox _type where { \
195192; {-# INLINE box #-} \
@@ -310,8 +307,8 @@ DERIVE_WRAPPED_UNBOX(Unbox a =>,(Identity a),Identity)
310307DERIVE_WRAPPED_UNBOX(Unbox a =>,(Down a),Down)
311308#endif
312309DERIVE_WRAPPED_UNBOX(Unbox a =>,(Const a b),Const)
313−DERIVE_BINARY_UNBOX(forall a. Unboxed a =>,(Complex a),(:+),a)
314−DERIVE_BINARY_UNBOX(forall a. (Integral a, Unboxed a) =>,(Ratio a),(:%),a)
310+DERIVE_BINARY_UNBOX(forall a. Unbox a =>,(Complex a),(:+),a)
311+DERIVE_BINARY_UNBOX(forall a. (Integral a, Unbox a) =>,(Ratio a),(:%),a)
315312DERIVE_BINARY_UNBOX(,Fingerprint,Fingerprint,Word64)
316313
317314instance Unbox () where
@@ -350,9 +347,9 @@ instance Unbox Bool where
350347--------------------------------------------------------------------------------
351348
352349{-# INLINE peekWith #-}
353−peekWith :: Unboxed a => MutableByteArray a -> Int -> IO a
350+peekWith :: Unbox a => MutableByteArray a -> Int -> IO a
354351peekWith = box
355352
356353{-# INLINE pokeWith #-}
357−pokeWith :: Unboxed a => MutableByteArray a -> Int -> a -> IO ()
354+pokeWith :: Unbox a => MutableByteArray a -> Int -> a -> IO ()
358355pokeWith = unbox
core/src/Streamly/Internal/FileSystem/Handle.hs+4−4
@@ -115,7 +115,7 @@ import Control.Monad.IO.Class (MonadIO(..))
115115import Data.Function ((&))
116116import Data.Maybe (isNothing, fromJust)
117117import Data.Word (Word8)
118−import Streamly.Internal.Data.Unboxed (Unboxed)
118+import Streamly.Internal.Data.Unboxed (Unbox)
119119import System.IO (Handle, SeekMode(..), hGetBufSome, hPutBuf, hSeek)
120120import Prelude hiding (read)
121121
@@ -417,7 +417,7 @@ putChunks h = S.fold (FL.drainBy (putChunk h))
417417-- we do not split the arrays to fit exactly to the specified size.
418418--
419419{-# INLINE putChunksWith #-}
420−putChunksWith :: (MonadIO m, Unboxed a)
420+putChunksWith :: (MonadIO m, Unbox a)
421421 => Int -> Handle -> Stream m (Array a) -> m ()
422422putChunksWith n h xs = putChunks h $ AS.compact n xs
423423
@@ -470,7 +470,7 @@ chunkWriter = Refold.drainBy putChunk
470470-- remains below the specified size.
471471--
472472{-# INLINE writeChunksWith #-}
473−writeChunksWith :: (MonadIO m, Unboxed a)
473+writeChunksWith :: (MonadIO m, Unbox a)
474474 => Int -> Handle -> Fold m (Array a) ()
475475writeChunksWith n h = lpackArraysChunksOf n (writeChunks h)
476476
@@ -478,7 +478,7 @@ writeChunksWith n h = lpackArraysChunksOf n (writeChunks h)
478478--
479479{-# DEPRECATED writeChunksWithBufferOf "Please use writeChunksWith instead." #-}
480480{-# INLINE writeChunksWithBufferOf #-}
481−writeChunksWithBufferOf :: (MonadIO m, Unboxed a)
481+writeChunksWithBufferOf :: (MonadIO m, Unbox a)
482482 => Int -> Handle -> Fold m (Array a) ()
483483writeChunksWithBufferOf = writeChunksWith
484484
src/Streamly/Internal/Data/Stream/IsStream/Common.hs+3−3
@@ -79,7 +79,7 @@ import Streamly.Internal.Data.Stream.IsStream.Type
7979import Streamly.Internal.Data.Stream.Serial (SerialT)
8080import Streamly.Internal.Data.Time.Units (AbsTime, RelTime64, addToAbsTime64)
8181import Streamly.Internal.System.IO (defaultChunkSize)
82−import Streamly.Internal.Data.Unboxed (Unboxed)
82+import Streamly.Internal.Data.Unboxed (Unbox)
8383
8484import qualified Streamly.Data.Stream as Stream (fold, foldBreak)
8585import qualified Streamly.Internal.Data.Array.Unboxed.Type as A
@@ -500,7 +500,7 @@ reverse s = fromStreamD $ D.reverse $ toStreamD s
500500--
501501-- /Pre-release/
502502{-# INLINE reverse' #-}
503−reverse' :: (IsStream t, MonadIO m, Unboxed a) => t m a -> t m a
503+reverse' :: (IsStream t, MonadIO m, Unbox a) => t m a -> t m a
504504-- reverse' s = fromStreamD $ D.reverse' $ toStreamD s
505505reverse' =
506506 fromStreamD
@@ -679,7 +679,7 @@ foldManyPost f m = fromStreamD $ D.foldManyPost f (toStreamD m)
679679-- that we can search files in files for example.
680680{-# INLINE splitOnSeq #-}
681681splitOnSeq
682− :: (IsStream t, MonadIO m, Unboxed a, Enum a, Eq a)
682+ :: (IsStream t, MonadIO m, Unbox a, Enum a, Eq a)
683683 => Array a -> Fold m a b -> t m a -> t m b
684684splitOnSeq patt f m =
685685 IsStream.fromStreamD $ D.splitOnSeq patt f (IsStream.toStreamD m)
src/Streamly/Internal/Data/Stream/IsStream/Eliminate.hs+2−2
@@ -166,7 +166,7 @@ import Streamly.Internal.Data.Stream.IsStream.Common
166166import Streamly.Internal.Data.Stream.IsStream.Type
167167 (IsStream, toStreamD, fromStreamD, toStreamD)
168168import Streamly.Internal.Data.Stream.Serial (SerialT)
169−import Streamly.Internal.Data.Unboxed (Unboxed)
169+import Streamly.Internal.Data.Unboxed (Unbox)
170170
171171import qualified Streamly.Data.Array.Unboxed as A
172172import qualified Streamly.Data.Stream as Stream
@@ -849,7 +849,7 @@ isPrefixOf m1 m2 = D.isPrefixOf (toStreamD m1) (toStreamD m2)
849849-- /Requires 'Storable' constraint/
850850--
851851{-# INLINE isInfixOf #-}
852−isInfixOf :: (MonadIO m, Eq a, Enum a, Unboxed a)
852+isInfixOf :: (MonadIO m, Eq a, Enum a, Unbox a)
853853 => SerialT m a -> SerialT m a -> m Bool
854854isInfixOf infx stream = do
855855 arr <- fold A.write infx
src/Streamly/Internal/Data/Stream/IsStream/Generate.hs+2−2
@@ -104,7 +104,7 @@ import Streamly.Internal.Data.Stream.IsStream.Type
104104import Streamly.Internal.Data.Stream.Serial (SerialT, WSerialT)
105105import Streamly.Internal.Data.Stream.Zip (ZipSerialM)
106106import Streamly.Internal.Data.Time.Units (AbsTime , RelTime64, addToAbsTime64)
107−import Streamly.Internal.Data.Unboxed (Unboxed)
107+import Streamly.Internal.Data.Unboxed (Unbox)
108108
109109import qualified Streamly.Internal.Data.IORef.Unboxed as Unboxed
110110 (toStreamD, IORef)
@@ -661,5 +661,5 @@ fromCallback setCallback = concatM $ do
661661-- /Pre-release/
662662--
663663{-# INLINE fromPrimIORef #-}
664−fromPrimIORef :: (IsStream t, MonadIO m, Unboxed a) => Unboxed.IORef a -> t m a
664+fromPrimIORef :: (IsStream t, MonadIO m, Unbox a) => Unboxed.IORef a -> t m a
665665fromPrimIORef = fromStreamD . Unboxed.toStreamD
src/Streamly/Internal/Data/Stream/IsStream/Reduce.hs+10−10
@@ -179,7 +179,7 @@ import Streamly.Internal.Data.Stream.IsStream.Type
179179import Streamly.Internal.Data.Time.Units
180180 ( AbsTime, MilliSecond64(..), addToAbsTime, toRelTime
181181 , toAbsTime)
182−import Streamly.Internal.Data.Unboxed (Unboxed)
182+import Streamly.Internal.Data.Unboxed (Unbox)
183183
184184import qualified Data.Heap as H
185185import qualified Streamly.Data.Unfold as Unfold
@@ -798,7 +798,7 @@ splitWithSuffix predicate f = foldMany (FL.takeEndBy predicate f)
798798-- /Unimplemented/
799799--
800800{-# INLINE splitOnAny #-}
801−splitOnAny :: -- (IsStream t, Monad m, Unboxed a, Integral a) =>
801+splitOnAny :: -- (IsStream t, Monad m, Unbox a, Integral a) =>
802802 [Array a] -> Fold m a b -> t m a -> t m b
803803splitOnAny _subseq _f _m =
804804 undefined -- D.fromStreamD $ D.splitOnAny f subseq (D.toStreamD m)
@@ -843,7 +843,7 @@ splitOnAny _subseq _f _m =
843843-- /Pre-release/
844844{-# INLINE splitBySeq #-}
845845splitBySeq
846− :: (IsStream t, MonadAsync m, Unboxed a, Enum a, Eq a)
846+ :: (IsStream t, MonadAsync m, Unbox a, Enum a, Eq a)
847847 => Array a -> Fold m a b -> t m a -> t m b
848848splitBySeq patt f m =
849849 intersperseM (fold f (A.read patt)) $ splitOnSeq patt f m
@@ -894,7 +894,7 @@ splitBySeq patt f m =
894894-- /Pre-release/
895895{-# INLINE splitOnSuffixSeq #-}
896896splitOnSuffixSeq
897− :: (IsStream t, MonadIO m, Unboxed a, Enum a, Eq a)
897+ :: (IsStream t, MonadIO m, Unbox a, Enum a, Eq a)
898898 => Array a -> Fold m a b -> t m a -> t m b
899899splitOnSuffixSeq patt f m =
900900 fromStreamD $ D.splitOnSuffixSeq False patt f (toStreamD m)
@@ -908,7 +908,7 @@ splitOnSuffixSeq patt f m =
908908--
909909-- /Unimplemented/
910910{-# INLINE wordsOn #-}
911−wordsOn :: -- (IsStream t, Monad m, Unboxed a, Eq a) =>
911+wordsOn :: -- (IsStream t, Monad m, Unbox a, Eq a) =>
912912 Array a -> Fold m a b -> t m a -> t m b
913913wordsOn _subseq _f _m =
914914 undefined -- D.fromStreamD $ D.wordsOn f subseq (D.toStreamD m)
@@ -946,7 +946,7 @@ wordsOn _subseq _f _m =
946946-- /Pre-release/
947947{-# INLINE splitWithSuffixSeq #-}
948948splitWithSuffixSeq
949− :: (IsStream t, MonadIO m, Unboxed a, Enum a, Eq a)
949+ :: (IsStream t, MonadIO m, Unbox a, Enum a, Eq a)
950950 => Array a -> Fold m a b -> t m a -> t m b
951951splitWithSuffixSeq patt f m =
952952 fromStreamD $ D.splitOnSuffixSeq True patt f (toStreamD m)
@@ -958,7 +958,7 @@ splitWithSuffixSeq patt f m =
958958--
959959-- /Unimplemented/
960960{-# INLINE splitOnSuffixSeqAny #-}
961−splitOnSuffixSeqAny :: -- (IsStream t, Monad m, Unboxed a, Integral a) =>
961+splitOnSuffixSeqAny :: -- (IsStream t, Monad m, Unbox a, Integral a) =>
962962 [Array a] -> Fold m a b -> t m a -> t m b
963963splitOnSuffixSeqAny _subseq _f _m = undefined
964964 -- D.fromStreamD $ D.splitPostAny f subseq (D.toStreamD m)
@@ -994,7 +994,7 @@ chunksOf n f = fromStreamD . D.chunksOf n f . toStreamD
994994--
995995-- /Pre-release/
996996{-# INLINE arraysOf #-}
997−arraysOf :: (IsStream t, MonadIO m, Unboxed a)
997+arraysOf :: (IsStream t, MonadIO m, Unbox a)
998998 => Int -> t m a -> t m (Array a)
999999arraysOf n = fromStreamD . A.arraysOf n . toStreamD
10001000
@@ -1100,7 +1100,7 @@ classifySlidingSessions tick interval slide (Fold step initial extract) str
11001100-- insert the new elements, and apply an incremental fold on the sliding
11011101-- window, supplying the outgoing elements, the new ring buffer as arguments.
11021102slidingChunkBuffer
1103− :: (IsStream t, Monad m, Ord a, Unboxed a)
1103+ :: (IsStream t, Monad m, Ord a, Unbox a)
11041104 => Int -- window size
11051105 -> Int -- window slide
11061106 -> Fold m (Ring a, Array a) b
@@ -1113,7 +1113,7 @@ slidingChunkBuffer = undefined
11131113-- an incremental fold on the sliding window, supplying the outgoing elements,
11141114-- and the new radix tree buffer as arguments.
11151115slidingSessionBuffer
1116− :: (IsStream t, Monad m, Ord a, Unboxed a)
1116+ :: (IsStream t, Monad m, Ord a, Unbox a)
11171117 => Int -- window size
11181118 -> Int -- tick size
11191119 -> Fold m (RTree a, Array a) b
src/Streamly/Internal/FileSystem/FD.hs+5−5
@@ -120,7 +120,7 @@ import Control.Monad.IO.Class (MonadIO(..))
120120import Data.Word (Word8)
121121-- import Foreign.ForeignPtr.Unsafe (unsafeForeignPtrToPtr)
122122import Foreign.Ptr (castPtr)
123−import Streamly.Internal.Data.Unboxed (Unboxed)
123+import Streamly.Internal.Data.Unboxed (Unbox)
124124-- import System.IO (Handle, hGetBufSome, hPutBuf)
125125import System.IO (IOMode)
126126import Prelude hiding (read)
@@ -240,7 +240,7 @@ readArrayUpto size (Handle fd) = do
240240--
241241-- @since 0.7.0
242242{-# INLINABLE writeArray #-}
243−writeArray :: Unboxed a => Handle -> Array a -> IO ()
243+writeArray :: Unbox a => Handle -> Array a -> IO ()
244244writeArray _ arr | A.length arr == 0 = return ()
245245writeArray (Handle fd) arr =
246246 asPtrUnsafe arr $ \p ->
@@ -337,7 +337,7 @@ readInChunksOf :: (MonadIO m) => Int -> Handle -> Stream m Word8
337337readInChunksOf chunkSize h = AS.concat $ readArraysOfUpto chunkSize h
338338
339339-- TODO
340−-- read :: (MonadIO m, Unboxed a) => Handle -> Stream m a
340+-- read :: (MonadIO m, Unbox a) => Handle -> Stream m a
341341--
342342-- > read = 'readByChunks' A.defaultChunkSize
343343-- | Generate a stream of elements of the given type from a file 'Handle'. The
@@ -356,7 +356,7 @@ read = AS.concat . readArrays
356356--
357357-- @since 0.7.0
358358{-# INLINE writeArrays #-}
359−writeArrays :: (MonadIO m, Unboxed a) => Handle -> Stream m (Array a) -> m ()
359+writeArrays :: (MonadIO m, Unbox a) => Handle -> Stream m (Array a) -> m ()
360360writeArrays h = S.fold (FL.drainBy (liftIO . writeArray h))
361361
362362-- | Write a stream of arrays to a handle after coalescing them in chunks of
@@ -366,7 +366,7 @@ writeArrays h = S.fold (FL.drainBy (liftIO . writeArray h))
366366--
367367-- @since 0.7.0
368368{-# INLINE writeArraysPackedUpto #-}
369−writeArraysPackedUpto :: (MonadIO m, Unboxed a)
369+writeArraysPackedUpto :: (MonadIO m, Unbox a)
370370 => Int -> Handle -> Stream m (Array a) -> m ()
371371writeArraysPackedUpto n h xs = writeArrays h $ AS.compact n xs
372372
src/Streamly/Internal/Network/Socket.hs+7−7
@@ -72,7 +72,7 @@ import Control.Monad.IO.Class (MonadIO(..))
7272import Data.Maybe (isNothing, fromJust)
7373import Data.Word (Word8)
7474import Foreign.Ptr (plusPtr, Ptr, castPtr)
75−import Streamly.Internal.Data.Unboxed (Unboxed)
75+import Streamly.Internal.Data.Unboxed (Unbox)
7676import Network.Socket
7777 (Socket, SocketOption(..), Family(..), SockAddr(..),
7878 ProtocolNumber, withSocketsDo, SocketType(..), socket, bind,
@@ -303,7 +303,7 @@ sendAll s p len = do
303303 when (sent >= 0) $ sendAll s (p `plusPtr` sent) (len - sent)
304304
305305{-# INLINABLE writeArrayWith #-}
306−writeArrayWith :: Unboxed a
306+writeArrayWith :: Unbox a
307307 => (h -> Ptr Word8 -> Int -> IO ())
308308 -> h
309309 -> Array a
@@ -318,7 +318,7 @@ writeArrayWith f h arr = A.asPtrUnsafe arr $ \ptr -> f h (castPtr ptr) aLen
318318-- | Write an Array to a file handle.
319319--
320320{-# INLINABLE putChunk #-}
321−putChunk :: Unboxed a => Socket -> Array a -> IO ()
321+putChunk :: Unbox a => Socket -> Array a -> IO ()
322322putChunk = writeArrayWith sendAll
323323
324324-------------------------------------------------------------------------------
@@ -448,7 +448,7 @@ reader = UF.first defaultChunkSize readerWith
448448-- | Write a stream of arrays to a handle.
449449--
450450{-# INLINE putChunks #-}
451−putChunks :: (MonadIO m, Unboxed a)
451+putChunks :: (MonadIO m, Unbox a)
452452 => Socket -> Stream m (Array a) -> m ()
453453putChunks h = S.fold (FL.drainBy (liftIO . putChunk h))
454454
@@ -456,7 +456,7 @@ putChunks h = S.fold (FL.drainBy (liftIO . putChunk h))
456456-- to the socket as a separate IO request.
457457--
458458{-# INLINE writeChunks #-}
459−writeChunks :: (MonadIO m, Unboxed a) => Socket -> Fold m (Array a) ()
459+writeChunks :: (MonadIO m, Unbox a) => Socket -> Fold m (Array a) ()
460460writeChunks h = FL.drainBy (liftIO . putChunk h)
461461
462462-- | @writeChunksWith bufsize socket@ writes a stream of arrays to
@@ -466,7 +466,7 @@ writeChunks h = FL.drainBy (liftIO . putChunk h)
466466-- the specified size it emitted as it is.
467467--
468468{-# INLINE writeChunksWith #-}
469−writeChunksWith :: (MonadIO m, Unboxed a)
469+writeChunksWith :: (MonadIO m, Unbox a)
470470 => Int -> Socket -> Fold m (Array a) ()
471471writeChunksWith n h = lpackArraysChunksOf n (writeChunks h)
472472
@@ -474,7 +474,7 @@ writeChunksWith n h = lpackArraysChunksOf n (writeChunks h)
474474--
475475{-# DEPRECATED writeChunksWithBufferOf "Please use 'writeChunksWith' instead" #-}
476476{-# INLINE writeChunksWithBufferOf #-}
477−writeChunksWithBufferOf :: (MonadIO m, Unboxed a)
477+writeChunksWithBufferOf :: (MonadIO m, Unbox a)
478478 => Int -> Socket -> Fold m (Array a) ()
479479writeChunksWithBufferOf = writeChunksWith
480480
test/Streamly/Test/Data/Array/Unboxed.hs+2−2
@@ -15,7 +15,7 @@ import Foreign.Storable (peek)
1515import GHC.Ptr (plusPtr)
1616import Streamly.Data.Fold (Fold)
1717import Streamly.Internal.Data.Stream (Stream)
18−import Streamly.Internal.Data.Unboxed (Unboxed, sizeOf)
18+import Streamly.Internal.Data.Unboxed (Unbox, sizeOf)
1919import Streamly.Test.Common (listEquals)
2020
2121import qualified Streamly.Data.Fold as Fold
@@ -164,7 +164,7 @@ testBubbleAsc = testBubbleWith True
164164testBubbleDesc :: Property
165165testBubbleDesc = testBubbleWith False
166166
167−testByteLengthWithMA :: forall a. Unboxed a => a -> IO ()
167+testByteLengthWithMA :: forall a. Unbox a => a -> IO ()
168168testByteLengthWithMA _ = do
169169 arrA <- MA.newPinned 100 :: IO (MA.Array a)
170170 let arrW8 = MA.castUnsafe arrA :: MA.Array Word8
test/Streamly/Test/Data/Array/Unboxed/Mut.hs+2−2
@@ -13,7 +13,7 @@ import GHC.Int (Int16(..), Int32(..), Int64(..), Int8(..))
1313import GHC.Real (Ratio(..))
1414import GHC.Stable (StablePtr(..))
1515import GHC.Word (Word16(..), Word32(..), Word64(..), Word8(..))
16−import Streamly.Internal.Data.Unboxed (Unboxed)
16+import Streamly.Internal.Data.Unboxed (Unbox)
1717import Streamly.Test.Common (chooseInt)
1818import Test.Hspec (hspec, describe, it)
1919import Test.Hspec.QuickCheck
@@ -138,7 +138,7 @@ testUnboxInstanceExistance = do
138138 TEST_IE(Const Int Int)
139139 where
140140
141− testIE :: Unboxed a => [a] -> IO ()
141+ testIE :: Unbox a => [a] -> IO ()
142142 testIE lst = void $ MArray.fromList lst
143143
144144main :: IO ()
test/Streamly/Test/Prelude/Serial.hs+2−2
@@ -20,7 +20,7 @@ import Data.List (sort, group, intercalate)
2020import Data.Maybe ( isJust, fromJust )
2121import Data.Word (Word8)
2222import Data.Semigroup (Sum(..), getSum)
23−import Streamly.Internal.Data.Unboxed (Unboxed)
23+import Streamly.Internal.Data.Unboxed (Unbox)
2424import Test.Hspec.QuickCheck
2525import Test.QuickCheck
2626 ( Gen
@@ -111,7 +111,7 @@ splitOnSuffixSeq = do
111111 $ IS.splitOnSuffixSeq (A.fromList pat) FL.toList (S.fromList xs)
112112
113113splitterProperties ::
114− forall a. (Arbitrary a, Eq a, Show a, Unboxed a, Enum a)
114+ forall a. (Arbitrary a, Eq a, Show a, Unbox a, Enum a)
115115 => a
116116 -> String
117117 -> Spec