on master help sign in
Move "nil" to mutable array module
c0a5ddeHarendra Kumar
core/src/Streamly/Internal/Data/Array/Generic.hs+1−3
@@ -96,9 +96,7 @@ unsafeThaw (Array cont# arrS arrL) = MArray.MutArray cont# arrS arrL arrL
96
96
97{-# NOINLINE nil #-}
97{-# NOINLINE nil #-}
98nil :: Array a
98nil :: Array a
99−nil = unsafePerformIO $ do
99+nil = unsafePerformIO $ unsafeFreeze <$> MArray.nil
100− marr <- MArray.new 0
101− return $ unsafeFreeze marr
102
100
103-------------------------------------------------------------------------------
101-------------------------------------------------------------------------------
104-- Construction - Folds
102-- Construction - Folds
core/src/Streamly/Internal/Data/Array/Generic/Mut/Type.hs+10−2
@@ -16,7 +16,7 @@ module Streamly.Internal.Data.Array.Generic.Mut.Type
16
16
17 -- * Constructing and Writing
17 -- * Constructing and Writing
18 -- ** Construction
18 -- ** Construction
19− -- , nil
19+ , nil
20
20
21 -- *** Uninitialized Arrays
21 -- *** Uninitialized Arrays
22 , new
22 , new
@@ -236,7 +236,7 @@ bottomElement =
236--
236--
237-- /Pre-release/
237-- /Pre-release/
238{-# INLINE new #-}
238{-# INLINE new #-}
239−new :: forall m a. MonadIO m => Int -> m (MutArray a)
239+new :: MonadIO m => Int -> m (MutArray a)
240new n@(I# n#) =
240new n@(I# n#) =
241 liftIO
241 liftIO
242 $ IO
242 $ IO
@@ -246,6 +246,14 @@ new n@(I# n#) =
246 let ma = MutArray arr# 0 0 n
246 let ma = MutArray arr# 0 0 n
247 in (# s1#, ma #)
247 in (# s1#, ma #)
248
248
249+-- |
250+-- Definition:
251+--
252+-- >>> nil = Array.new 0
253+{-# INLINE nil #-}
254+nil :: MonadIO m => m (MutArray a)
255+nil = new 0
256+
249-------------------------------------------------------------------------------
257-------------------------------------------------------------------------------
250-- Random writes
258-- Random writes
251-------------------------------------------------------------------------------
259-------------------------------------------------------------------------------