@@ -58,7 +58,7 @@ import Control.Monad.IO.Class (MonadIO(..))
5858import Data.Semigroup (Semigroup(..))
5959#endif
6060import Data.Word (Word8)
61−import Streamly.Internal.Data.Unboxed (Storable, peekWith, sizeOf)
61+import Streamly.Internal.Data.Unboxed (Storable, Unboxed, peekWith, sizeOf)
6262import Fusion.Plugin.Types (Fuse(..))
6363import GHC.Exts (SpecConstrAnnotation(..))
6464import GHC.Types (SPEC(..))
@@ -105,7 +105,7 @@ import qualified Streamly.Internal.Data.Stream.Type as Stream
105105--
106106-- /Pre-release/
107107{-# INLINE arraysOf #-}
108−arraysOf :: (IsStream t, MonadIO m, Storable a)
108+arraysOf :: (IsStream t, MonadIO m, Unboxed a)
109109 => Int -> t m a -> t m (Array a)
110110arraysOf n str = fromStreamD $ A.arraysOf n (toStreamD str)
111111
@@ -125,7 +125,7 @@ arraysOf n str = fromStreamD $ A.arraysOf n (toStreamD str)
125125--
126126-- @since 0.7.0
127127{-# INLINE concat #-}
128−concat :: (IsStream t, Monad m, Storable a) => t m (Array a) -> t m a
128+concat :: (IsStream t, Monad m, Unboxed a) => t m (Array a) -> t m a
129129-- concat m = fromStreamD $ A.flattenArrays (toStreamD m)
130130-- concat m = fromStreamD $ D.concatMap A.toStreamD (toStreamD m)
131131concat m = fromStreamD $ D.unfoldMany A.read (toStreamD m)
@@ -137,7 +137,7 @@ concat m = fromStreamD $ D.unfoldMany A.read (toStreamD m)
137137--
138138-- @since 0.7.0
139139{-# INLINE concatRev #-}
140−concatRev :: (IsStream t, Monad m, Storable a) => t m (Array a) -> t m a
140+concatRev :: (IsStream t, Monad m, Unboxed a) => t m (Array a) -> t m a
141141-- concatRev m = fromStreamD $ A.flattenArraysRev (toStreamD m)
142142concatRev m = fromStreamD $ D.unfoldMany A.readRev (toStreamD m)
143143
@@ -150,11 +150,11 @@ concatRev m = fromStreamD $ D.unfoldMany A.readRev (toStreamD m)
150150--
151151-- /Pre-release/
152152{-# INLINE interpose #-}
153−interpose :: (Monad m, IsStream t, Storable a) => a -> t m (Array a) -> t m a
153+interpose :: (Monad m, IsStream t, Unboxed a) => a -> t m (Array a) -> t m a
154154interpose x = S.interpose x A.read
155155
156156{-# INLINE intercalateSuffix #-}
157−intercalateSuffix :: (Monad m, IsStream t, Storable a)
157+intercalateSuffix :: (Monad m, IsStream t, Unboxed a)
158158 => Array a -> t m (Array a) -> t m a
159159intercalateSuffix = S.intercalateSuffix A.read
160160
@@ -163,7 +163,7 @@ intercalateSuffix = S.intercalateSuffix A.read
163163--
164164-- @since 0.7.0
165165{-# INLINE interposeSuffix #-}
166−interposeSuffix :: (Monad m, IsStream t, Storable a)
166+interposeSuffix :: (Monad m, IsStream t, Unboxed a)
167167 => a -> t m (Array a) -> t m a
168168-- interposeSuffix x = fromStreamD . A.unlines x . toStreamD
169169interposeSuffix x = S.interposeSuffix x A.read
@@ -174,7 +174,7 @@ data FlattenState s a =
174174
175175-- XXX Remove monadIO constraint
176176{-# INLINE_NORMAL unlines #-}
177−unlines :: forall m a. (MonadIO m, Storable a)
177+unlines :: forall m a. (MonadIO m, Unboxed a)
178178 => a -> D.Stream m (Array a) -> D.Stream m a
179179unlines sep (D.Stream step state) = D.Stream step' (OuterLoop state)
180180 where
@@ -202,7 +202,7 @@ unlines sep (D.Stream step state) = D.Stream step' (OuterLoop state)
202202-- module Streamly.Internal.Data.Array.Stream.Mut.Foreign
203203--
204204{-# INLINE_NORMAL packArraysChunksOf #-}
205−packArraysChunksOf :: (MonadIO m, Storable a)
205+packArraysChunksOf :: (MonadIO m, Unboxed a)
206206 => Int -> D.Stream m (Array a) -> D.Stream m (Array a)
207207packArraysChunksOf n str =
208208 D.map A.unsafeFreeze $ AS.packArraysChunksOf n $ D.map A.unsafeThaw str
@@ -210,7 +210,7 @@ packArraysChunksOf n str =
210210-- XXX instead of writing two different versions of this operation, we should
211211-- write it as a pipe.
212212{-# INLINE_NORMAL lpackArraysChunksOf #-}
213−lpackArraysChunksOf :: (MonadIO m, Storable a)
213+lpackArraysChunksOf :: (MonadIO m, Unboxed a)
214214 => Int -> Fold m (Array a) () -> Fold m (Array a) ()
215215lpackArraysChunksOf n fld =
216216 FL.lmap A.unsafeThaw $ AS.lpackArraysChunksOf n (FL.lmap A.unsafeFreeze fld)
@@ -220,7 +220,7 @@ lpackArraysChunksOf n fld =
220220--
221221-- @since 0.7.0
222222{-# INLINE compact #-}
223−compact :: (MonadIO m, Storable a)
223+compact :: (MonadIO m, Unboxed a)
224224 => Int -> SerialT m (Array a) -> SerialT m (Array a)
225225compact n xs = fromStreamD $ packArraysChunksOf n (toStreamD xs)
226226
@@ -317,7 +317,7 @@ splitOnSuffix byte s =
317317-- to the number of times it can be called on the same stream.
318318--
319319{-# INLINE_NORMAL foldBreakD #-}
320−foldBreakD :: forall m a b. (MonadIO m, Storable a) =>
320+foldBreakD :: forall m a b. (MonadIO m, Unboxed a) =>
321321 Fold m a b -> D.Stream m (Array a) -> m (b, D.Stream m (Array a))
322322foldBreakD (Fold fstep initial extract) stream@(D.Stream step state) = do
323323 res <- initial
@@ -353,7 +353,7 @@ foldBreakD (Fold fstep initial extract) stream@(D.Stream step state) = do
353353 FL.Partial fs1 -> goArray SPEC st fp next fs1
354354
355355{-# INLINE_NORMAL foldBreakK #-}
356−foldBreakK :: forall m a b. (MonadIO m, Storable a) =>
356+foldBreakK :: forall m a b. (MonadIO m, Unboxed a) =>
357357 Fold m a b -> K.Stream m (Array a) -> m (b, K.Stream m (Array a))
358358foldBreakK (Fold fstep initial extract) stream = do
359359 res <- initial
@@ -394,7 +394,7 @@ foldBreakK (Fold fstep initial extract) stream = do
394394--
395395{-# INLINE_NORMAL foldBreak #-}
396396foldBreak ::
397− (MonadIO m, Storable a)
397+ (MonadIO m, Unboxed a)
398398 => FL.Fold m a b
399399 -> SerialT m (A.Array a)
400400 -> m (b, SerialT m (A.Array a))
@@ -413,7 +413,7 @@ foldBreak f =
413413
414414-- When we have to take an array partially, take the last part of the array.
415415{-# INLINE takeArrayListRev #-}
416−takeArrayListRev :: forall a. Storable a => Int -> [Array a] -> [Array a]
416+takeArrayListRev :: forall a. Unboxed a => Int -> [Array a] -> [Array a]
417417takeArrayListRev = go
418418
419419 where
@@ -464,14 +464,14 @@ splitAtArrayListRev n ls
464464-- CAUTION! length must more than equal to lengths of all the arrays in the
465465-- stream.
466466{-# INLINE spliceArraysLenUnsafe #-}
467−spliceArraysLenUnsafe :: (MonadIO m, Storable a)
467+spliceArraysLenUnsafe :: (MonadIO m, Unboxed a)
468468 => Int -> SerialT m (MA.Array a) -> m (MA.Array a)
469469spliceArraysLenUnsafe len buffered = do
470470 arr <- liftIO $ MA.newArray len
471471 S.foldlM' MA.spliceUnsafe (return arr) buffered
472472
473473{-# INLINE _spliceArrays #-}
474−_spliceArrays :: (MonadIO m, Storable a)
474+_spliceArrays :: (MonadIO m, Unboxed a)
475475 => SerialT m (Array a) -> m (Array a)
476476_spliceArrays s = do
477477 buffered <- S.foldr S.cons S.nil s
@@ -485,7 +485,7 @@ _spliceArrays s = do
485485 writeArr dst arr = MA.spliceUnsafe dst (A.unsafeThaw arr)
486486
487487{-# INLINE _spliceArraysBuffered #-}
488−_spliceArraysBuffered :: (MonadIO m, Storable a)
488+_spliceArraysBuffered :: (MonadIO m, Unboxed a)
489489 => SerialT m (Array a) -> m (Array a)
490490_spliceArraysBuffered s = do
491491 buffered <- S.foldr S.cons S.nil s
@@ -493,7 +493,7 @@ _spliceArraysBuffered s = do
493493 A.unsafeFreeze <$> spliceArraysLenUnsafe len (S.map A.unsafeThaw s)
494494
495495{-# INLINE spliceArraysRealloced #-}
496−spliceArraysRealloced :: forall m a. (MonadIO m, Storable a)
496+spliceArraysRealloced :: forall m a. (MonadIO m, Unboxed a)
497497 => SerialT m (Array a) -> m (Array a)
498498spliceArraysRealloced s = do
499499 let n = allocBytesToElemCount (undefined :: a) (4 * 1024)
@@ -509,7 +509,7 @@ spliceArraysRealloced s = do
509509--
510510-- @since 0.7.0
511511{-# INLINE toArray #-}
512−toArray :: (MonadIO m, Storable a) => SerialT m (Array a) -> m (Array a)
512+toArray :: (MonadIO m, Unboxed a) => SerialT m (Array a) -> m (Array a)
513513toArray = spliceArraysRealloced
514514-- spliceArrays = _spliceArraysBuffered
515515
@@ -520,7 +520,7 @@ toArray = spliceArraysRealloced
520520--
521521{-
522522{-# INLINE toArraysInRange #-}
523−toArraysInRange :: (IsStream t, MonadIO m, Storable a)
523+toArraysInRange :: (IsStream t, MonadIO m, Unboxed a)
524524 => Int -> Int -> Fold m (Array a) b -> Fold m a b
525525toArraysInRange low high (Fold step initial extract) =
526526-}
@@ -528,7 +528,7 @@ toArraysInRange low high (Fold step initial extract) =
528528{-
529529-- | Fold the input to a pure buffered stream (List) of arrays.
530530{-# INLINE _toArraysOf #-}
531−_toArraysOf :: (MonadIO m, Storable a)
531+_toArraysOf :: (MonadIO m, Unboxed a)
532532 => Int -> Fold m a (SerialT Identity (Array a))
533533_toArraysOf n = FL.chunksOf n (A.writeNF n) FL.toStream
534534-}
@@ -549,7 +549,7 @@ newtype List a = List {getList :: [a]}
549549-- to the number of times it can be called on the same stream.
550550{-# INLINE_NORMAL parseBreakD #-}
551551parseBreakD ::
552− forall m a b. (MonadIO m, MonadThrow m, Storable a)
552+ forall m a b. (MonadIO m, MonadThrow m, Unboxed a)
553553 => PRD.Parser m a b
554554 -> D.Stream m (Array.Array a)
555555 -> m (b, D.Stream m (Array.Array a))
@@ -629,7 +629,7 @@ parseBreakD
629629
630630{-# INLINE_NORMAL parseBreakK #-}
631631parseBreakK ::
632− forall m a b. (MonadIO m, MonadThrow m, Storable a)
632+ forall m a b. (MonadIO m, MonadThrow m, Unboxed a)
633633 => PRD.Parser m a b
634634 -> K.Stream m (Array.Array a)
635635 -> m (b, K.Stream m (Array.Array a))
@@ -708,7 +708,7 @@ parseBreakK (PRD.Parser pstep initial extract) stream = do
708708--
709709{-# INLINE_NORMAL parseBreak #-}
710710parseBreak ::
711− (MonadIO m, MonadThrow m, Storable a)
711+ (MonadIO m, MonadThrow m, Unboxed a)
712712 => PR.Parser m a b
713713 -> SerialT m (A.Array a)
714714 -> m (b, SerialT m (A.Array a))
@@ -734,7 +734,7 @@ parseBreak p =
734734--
735735{-# INLINE_NORMAL runArrayParserDBreak #-}
736736runArrayParserDBreak ::
737− forall m a b. (MonadIO m, MonadThrow m, Storable a)
737+ forall m a b. (MonadIO m, MonadThrow m, Unboxed a)
738738 => PRD.Parser m (Array a) b
739739 -> D.Stream m (Array.Array a)
740740 -> m (b, D.Stream m (Array.Array a))
@@ -806,7 +806,7 @@ runArrayParserDBreak
806806--
807807{-# INLINE parseArr #-}
808808parseArr ::
809− (MonadIO m, MonadThrow m, Storable a)
809+ (MonadIO m, MonadThrow m, Unboxed a)
810810 => ASF.Parser m a b
811811 -> SerialT m (A.Array a)
812812 -> m (b, SerialT m (A.Array a))
@@ -818,7 +818,7 @@ parseArr p s = fmap fromStreamD <$> parseBreakD p (toStreamD s)
818818-- /Pre-release/
819819--
820820{-# INLINE runArrayFold #-}
821−runArrayFold :: (MonadIO m, MonadThrow m, Storable a) =>
821+runArrayFold :: (MonadIO m, MonadThrow m, Unboxed a) =>
822822 ArrayFold m a b -> SerialT m (A.Array a) -> m b
823823runArrayFold (ArrayFold p) s = fst <$> runArrayParserDBreak p (toStreamD s)
824824
@@ -827,7 +827,7 @@ runArrayFold (ArrayFold p) s = fst <$> runArrayParserDBreak p (toStreamD s)
827827-- /Pre-release/
828828--
829829{-# INLINE runArrayFoldBreak #-}
830−runArrayFoldBreak :: (MonadIO m, MonadThrow m, Storable a) =>
830+runArrayFoldBreak :: (MonadIO m, MonadThrow m, Unboxed a) =>
831831 ArrayFold m a b -> SerialT m (A.Array a) -> m (b, SerialT m (A.Array a))
832832runArrayFoldBreak (ArrayFold p) s =
833833 second fromStreamD <$> runArrayParserDBreak p (toStreamD s)
@@ -842,7 +842,7 @@ data ParseChunksState x inpBuf st pst =
842842
843843{-# INLINE_NORMAL runArrayFoldManyD #-}
844844runArrayFoldManyD
845− :: (MonadThrow m, Storable a)
845+ :: (MonadThrow m, Unboxed a)
846846 => ArrayFold m a b
847847 -> D.Stream m (Array a)
848848 -> D.Stream m b
@@ -970,7 +970,7 @@ runArrayFoldManyD
970970-- /Pre-release/
971971{-# INLINE runArrayFoldMany #-}
972972runArrayFoldMany
973− :: (IsStream t, MonadThrow m, Storable a)
973+ :: (IsStream t, MonadThrow m, Unboxed a)
974974 => ArrayFold m a b
975975 -> t m (Array a)
976976 -> t m b