on master help sign in
Remove MonadIO constraint from "read"
commit0fc692b04d66e4b314de846ec1970739a7d07c94 authorHarendra Kumar <harendra@composewell.com> dateFri 10 Mar 2023, 14:06 (4 years ago) parent05dde8e
1 file changed+5−4
core/src/Streamly/Internal/Data/Array/Generic.hs+5−4
core/src/Streamly/Internal/Data/Array/Generic.hs+5−4
@@ -166,8 +166,9 @@ toList arr = loop 0
166166 loop i = getIndexUnsafe arr i : loop (i + 1)
167167
168168{-# INLINE_NORMAL read #-}
169−read :: MonadIO m => Array a -> Stream m a
170−read = MArray.toStreamD . unsafeThaw
169+read :: Monad m => Array a -> Stream m a
170+read arr@Array{..} =
171+ D.map (getIndexUnsafe arr) $ D.enumerateFromToIntegral 0 (arrLen - 1)
171172
172173{-# INLINE_NORMAL readRev #-}
173174readRev :: Monad m => Array a -> Stream m a
@@ -188,11 +189,11 @@ foldr :: (a -> b -> b) -> b -> Array a -> b
188189foldr f z arr = unsafePerformIO $ D.foldr f z $ read arr
189190
190191{-# 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
192193fold f arr = D.fold f (read arr)
193194
194195{-# 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
196197streamFold f arr = f (read arr)
197198
198199-------------------------------------------------------------------------------