packages feed

primdata 0.1.2.5 → 0.1.2.6

raw patch · 3 files changed

+29/−2 lines, 3 filesPVP: minor bump suggested

API additions: PVP suggests at least a minor version bump

API changes (from Hackage documentation)

+ Data.Array.FI: toList :: Flat a => Array a -> [a]
+ Data.Array.UI: (!#) :: Unlifted a => Array a -> Int# -> a
+ Data.Array.UI: foldr' :: Unlifted a => (a -> b -> b) -> b -> Array a -> b
+ Data.Array.UI: size# :: Array a -> Int#
+ Data.Array.UI: toList :: Unlifted a => Array a -> [a]

Files

Data/Array/FI.hs view
@@ -137,6 +137,10 @@         _  -> z {-# inline foldr' #-} +toList :: forall a. Flat a => Array a -> [a]+toList = foldr' (:) []+{-# inlinable toList #-}+ rfoldr :: forall a b. Flat a => (a -> b -> b) -> b -> Array a -> b rfoldr f = \z (Array arr) -> go (Data.Array.FI.size# @a arr -# 1#) z arr where     go i z arr = case i >=# 0# of
Data/Array/UI.hs view
@@ -43,13 +43,22 @@            (# s, arr #) -> arr) {-# noinline empty #-} +infixl 7 !#+(!#) :: Unlifted a => Array a -> Int# -> a+(!#) (Array arr) i = from# (indexUnlifted# arr i)+{-# inline (!#) #-}+ infixl 7 ! (!) :: Unlifted a => Array a -> Int -> a (!) (Array arr) (I# i) = from# (indexUnlifted# arr i) {-# inline (!) #-} +size# :: Array a -> Int#+size# (Array arr) = sizeofArrayArray# arr+{-# inline size# #-}+ size :: Array a -> Int-size (Array arr) = I# (sizeofArrayArray# arr)+size arr = I# (size# arr) {-# inline size #-}  -- | Create a new array from a slice of the input array.@@ -73,6 +82,16 @@         _  -> z {-# inline foldr #-} +foldr' :: forall a b. Unlifted a => (a -> b -> b) -> b -> Array a -> b+foldr' f z = \(Array arr) -> go 0# (sizeofArrayArray# arr) z arr where+    go :: Int# -> Int# -> b -> ArrayArray# -> b+    go i s z arr = case i <# s of+        1# -> case indexUnlifted# arr i of+                a -> case from# a of+                  !a -> f a $! go (i +# 1#) s z arr+        _  -> z+{-# inline foldr' #-}+ foldl' :: forall a b. Unlifted a => (b -> a -> b) -> b -> Array a -> b foldl' f z = \(Array arr) -> go 0# (sizeofArrayArray# arr) z arr  where     go i s z arr = case i <# s of@@ -91,6 +110,10 @@             go _      _ s = case unsafeFreezeArrayArray# marr s of                               (# _, arr #) -> arr) {-# inline fromList #-}++toList :: forall a. Unlifted a => Array a -> [a]+toList = foldr' (:) []+{-# inlinable toList #-}  {-# inline forIx #-} forIx :: forall a. Unlifted a => Array a -> (Int -> a -> IO ()) -> IO ()
primdata.cabal view
@@ -5,7 +5,7 @@ -- see: https://github.com/sol/hpack  name:           primdata-version:        0.1.2.5+version:        0.1.2.6 synopsis:       Minimum-overhead primitive datatypes category:       primitive author:         András Kovács