@@ -61,13 +61,15 @@ import Streamly.Internal.Data.Fold.Type (Fold(..))
61import Streamly.Internal.Data.Stream.Type (Stream)
61import Streamly.Internal.Data.Stream.Type (Stream)
62import Streamly.Internal.Data.Tuple.Strict (Tuple'(..), Tuple3'(..))
62import Streamly.Internal.Data.Tuple.Strict (Tuple'(..), Tuple3'(..))
63import Streamly.Internal.Data.Unfold.Type (Unfold(..))
63import Streamly.Internal.Data.Unfold.Type (Unfold(..))
64+import Streamly.Internal.System.IO (unsafeInlineIO)
65import qualified Streamly.Internal.Data.Array.Generic.Mut.Type as MArray
66import qualified Streamly.Internal.Data.Array.Generic.Mut.Type as MArray
66import qualified Streamly.Internal.Data.Fold.Type as FL
67import qualified Streamly.Internal.Data.Fold.Type as FL
68+import qualified Streamly.Internal.Data.Producer.Type as Producer
69+import qualified Streamly.Internal.Data.Producer as Producer
67import qualified Streamly.Internal.Data.Ring as RB
70import qualified Streamly.Internal.Data.Ring as RB
68import qualified Streamly.Internal.Data.Stream.StreamD as D
71import qualified Streamly.Internal.Data.Stream.StreamD as D
69import qualified Streamly.Internal.Data.Stream.Type as Stream
72import qualified Streamly.Internal.Data.Stream.Type as Stream
70−import qualified Streamly.Internal.Data.Unfold as Unfold
71import qualified Text.ParserCombinators.ReadPrec as ReadPrec
73import qualified Text.ParserCombinators.ReadPrec as ReadPrec
73import Data.IORef
75import Data.IORef
@@ -174,8 +176,11 @@ length :: Array a -> Int
174length = arrLen
176length = arrLen
176{-# INLINE_NORMAL reader #-}
178{-# INLINE_NORMAL reader #-}
177−reader :: MonadIO m => Unfold m (Array a) a
179+reader :: Monad m => Unfold m (Array a) a
178−reader = Unfold.lmap unsafeThaw MArray.reader
180+reader =
182+ $ Producer.translate unsafeThaw unsafeFreeze
183+ $ MArray.producerWith (return . unsafeInlineIO)
180-------------------------------------------------------------------------------
185-------------------------------------------------------------------------------
181-- Elimination - to streams
186-- Elimination - to streams