on master help sign in
Move "nil" to mutable array module

Use a wrapper in the immutable module.

commitc0a5dde7baa32302b8bac513b08eb1aa18683607 authorHarendra Kumar <harendra@composewell.com> dateFri 10 Mar 2023, 13:02 (4 years ago) parent1946eb8
2 files changed+11−5
core/src/Streamly/Internal/Data/Array/Generic.hs+1−3 core/src/Streamly/Internal/Data/Array/Generic/Mut/Type.hs+10−2
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
9696
9797{-# NOINLINE nil #-}
9898nil :: Array a
99−nil = unsafePerformIO $ do
100− marr <- MArray.new 0
101− return $ unsafeFreeze marr
99+nil = unsafePerformIO $ unsafeFreeze <$> MArray.nil
102100
103101-------------------------------------------------------------------------------
104102-- 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
1616
1717 -- * Constructing and Writing
1818 -- ** Construction
19− -- , nil
19+ , nil
2020
2121 -- *** Uninitialized Arrays
2222 , new
@@ -236,7 +236,7 @@ bottomElement =
236236--
237237-- /Pre-release/
238238{-# INLINE new #-}
239−new :: forall m a. MonadIO m => Int -> m (MutArray a)
239+new :: MonadIO m => Int -> m (MutArray a)
240240new n@(I# n#) =
241241 liftIO
242242 $ IO
@@ -246,6 +246,14 @@ new n@(I# n#) =
246246 let ma = MutArray arr# 0 0 n
247247 in (# s1#, ma #)
248248
249+-- |
250+-- Definition:
251+--
252+-- >>> nil = Array.new 0
253+{-# INLINE nil #-}
254+nil :: MonadIO m => m (MutArray a)
255+nil = new 0
256+
249257-------------------------------------------------------------------------------
250258-- Random writes
251259-------------------------------------------------------------------------------