@@ -166,8 +166,9 @@ toList arr = loop 0
166 loop i = getIndexUnsafe arr i : loop (i + 1)
166 loop i = getIndexUnsafe arr i : loop (i + 1)
168{-# INLINE_NORMAL read #-}
168{-# INLINE_NORMAL read #-}
169−read :: MonadIO m => Array a -> Stream m a
169+read :: Monad m => Array a -> Stream m a
170−read = MArray.toStreamD . unsafeThaw
170+read arr@Array{..} =
171+ D.map (getIndexUnsafe arr) $ D.enumerateFromToIntegral 0 (arrLen - 1)
172{-# INLINE_NORMAL readRev #-}
173{-# INLINE_NORMAL readRev #-}
173readRev :: Monad m => Array a -> Stream m a
174readRev :: Monad m => Array a -> Stream m a
@@ -188,11 +189,11 @@ foldr :: (a -> b -> b) -> b -> Array a -> b
188foldr f z arr = unsafePerformIO $ D.foldr f z $ read arr
189foldr f z arr = unsafePerformIO $ D.foldr f z $ read arr
190{-# INLINE fold #-}
191{-# INLINE fold #-}
191−fold :: MonadIO m => Fold m a b -> Array a -> m b
192+fold :: Monad m => Fold m a b -> Array a -> m b
192fold f arr = D.fold f (read arr)
193fold f arr = D.fold f (read arr)
194{-# INLINE streamFold #-}
195{-# INLINE streamFold #-}
195−streamFold :: MonadIO m => (Stream m a -> m b) -> Array a -> m b
196+streamFold :: Monad m => (Stream m a -> m b) -> Array a -> m b
196streamFold f arr = f (read arr)
197streamFold f arr = f (read arr)
198-------------------------------------------------------------------------------
199-------------------------------------------------------------------------------