on master help sign in
Modify NFData for PrimArray and expose Prim
602011fadithyaov
src/Streamly/Data/PrimArray.hs+2−1
@@ -9,6 +9,7 @@
9--
9--
10module Streamly.Data.PrimArray
10module Streamly.Data.PrimArray
11 ( PrimArray
11 ( PrimArray
12+ , Prim
12
13
13 -- * Construction
14 -- * Construction
14 , A.fromListN
15 , A.fromListN
@@ -38,6 +39,6 @@ module Streamly.Data.PrimArray
38 )
39 )
39where
40where
40
41
41−import Streamly.Internal.Data.PrimArray (PrimArray)
42+import Streamly.Internal.Data.PrimArray (PrimArray, Prim)
42
43
43import qualified Streamly.Internal.Data.PrimArray as A
44import qualified Streamly.Internal.Data.PrimArray as A
src/Streamly/Internal/Data/PrimArray.hs+3−2
@@ -17,6 +17,7 @@
17--
17--
18module Streamly.Internal.Data.PrimArray
18module Streamly.Internal.Data.PrimArray
19 ( PrimArray(..)
19 ( PrimArray(..)
20+ , Prim(..)
20
21
21 , foldl'
22 , foldl'
22 , foldr
23 , foldr
@@ -149,9 +150,9 @@ fromListN n xs = unsafePerformIO $ fromStreamDN n $ D.fromList xs
149fromList :: Prim a => [a] -> PrimArray a
150fromList :: Prim a => [a] -> PrimArray a
150fromList xs = unsafePerformIO $ fromStreamD $ D.fromList xs
151fromList xs = unsafePerformIO $ fromStreamD $ D.fromList xs
151
152
152−instance NFData (PrimArray a) where
153+instance Prim a => NFData (PrimArray a) where
153 {-# INLINE rnf #-}
154 {-# INLINE rnf #-}
154− rnf = const ()
155+ rnf = foldl' (\_ _ -> ()) ()
155
156
156{-# INLINE fromStreamN #-}
157{-# INLINE fromStreamN #-}
157fromStreamN :: (MonadIO m, Prim a) => Int -> SerialT m a -> m (PrimArray a)
158fromStreamN :: (MonadIO m, Prim a) => Int -> SerialT m a -> m (PrimArray a)