@@ -65,8 +65,8 @@ module Streamly.Internal.Data.Array.Storable.Foreign
6565 -- * Elimination
6666
6767 , A.toList
68− , toStream
69− , toStreamRev
68+ , A.toStream
69+ , A.toStreamRev
7070 , read
7171 , ReadUState (..)
7272 , unsafeRead
@@ -160,7 +160,6 @@ import GHC.IO (IO(..))
160160import Streamly.Internal.Data.Array.Storable.Foreign.Types (Array(..), length)
161161import Streamly.Internal.Data.Fold.Types (Fold(..))
162162import Streamly.Internal.Data.Stream.Serial (SerialT)
163−import Streamly.Internal.Data.Stream.StreamK.Type (IsStream)
164163import Streamly.Internal.Data.Tuple.Strict (Tuple3'(..))
165164import Streamly.Internal.Data.Unfold.Types (Unfold(..))
166165
@@ -170,7 +169,6 @@ import qualified Streamly.Internal.Data.Fold as FL
170169import qualified Streamly.Internal.Data.Stream.Prelude as P
171170import qualified Streamly.Internal.Data.Stream.Serial as Serial
172171import qualified Streamly.Internal.Data.Stream.StreamD as D
173−import qualified Streamly.Internal.Data.Stream.StreamK as K
174172import qualified Streamly.Memory.Ring as RB
175173
176174-------------------------------------------------------------------------------
@@ -206,26 +204,6 @@ fromStream = P.foldOnce A.write
206204-- Elimination
207205-------------------------------------------------------------------------------
208206
209−-- | Convert an 'Array' into a stream.
210−--
211−-- /Internal/
212−{-# INLINE_EARLY toStream #-}
213−toStream :: (Monad m, K.IsStream t, Storable a) => Array a -> t m a
214−toStream = D.fromStreamD . A.toStreamD
215−-- XXX add fallback to StreamK rule
216−-- {-# RULES "Streamly.Array.read fallback to StreamK" [1]
217−-- forall a. S.readK (read a) = K.fromArray a #-}
218−
219−-- | Convert an 'Array' into a stream in reverse order.
220−--
221−-- /Internal/
222−{-# INLINE_EARLY toStreamRev #-}
223−toStreamRev :: (Monad m, IsStream t, Storable a) => Array a -> t m a
224−toStreamRev = D.fromStreamD . A.toStreamDRev
225−-- XXX add fallback to StreamK rule
226−-- {-# RULES "Streamly.Array.readRev fallback to StreamK" [1]
227−-- forall a. S.toStreamK (readRev a) = K.revFromArray a #-}
228−
229207data ReadUState a = ReadUState
230208 {-# UNPACK #-} !(ForeignPtr a) -- foreign ptr with end of array pointer
231209 {-# UNPACK #-} !(Ptr a) -- current pointer
@@ -530,7 +508,7 @@ streamTransform :: forall m a b. (MonadIO m, Storable a, Storable b)
530508 => (SerialT m a -> SerialT m b) -> Array a -> m (Array b)
531509streamTransform f arr =
532510 P.foldOnce (A.toArrayMinChunk (alignment (undefined :: a)) (length arr))
533− $ f (toStream arr)
511+ $ f (A.toStream arr)
534512
535513-------------------------------------------------------------------------------
536514-- Casts
@@ -603,11 +581,11 @@ asCString arr act = do
603581-- /Internal/
604582{-# INLINE fold #-}
605583fold :: forall m a b. (MonadIO m, Storable a) => Fold m a b -> Array a -> m b
606−fold f arr = P.foldOnce f (toStream arr :: Serial.SerialT m a)
584+fold f arr = P.foldOnce f (A.toStream arr :: Serial.SerialT m a)
607585
608586-- | Fold an array using a stream fold operation.
609587--
610588-- /Internal/
611589{-# INLINE streamFold #-}
612590streamFold :: (MonadIO m, Storable a) => (SerialT m a -> m b) -> Array a -> m b
613−streamFold f arr = f (toStream arr)
591+streamFold f arr = f (A.toStream arr)