packages feed

primitive-extras 0.1.7.1 → 0.1.8

raw patch · 2 files changed

+16/−1 lines, 2 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

+ PrimitiveExtras.Monad: replicateMPrimArray :: (Monad m, Prim element) => Int -> m element -> m (PrimArray element)

Files

library/PrimitiveExtras/Monad.hs view
@@ -13,3 +13,18 @@   do     indexCounts <- runFold (lmap fst (A.indexCounts outerArraySize))     runFold (A.primMultiArray (indexCounts :: PrimArray Word32))++{-| Please notice that this function is highly untested -}+replicateMPrimArray :: (Monad m, Prim element) => Int -> m element -> m (PrimArray element)+replicateMPrimArray size elementM =+  do+    !mutable <- return (unsafeDupablePerformIO (newPrimArray size))+    let +      iterate index =+        if index < size+          then do+            element <- elementM+            let !() = unsafeDupablePerformIO (writePrimArray mutable index element)+            iterate (succ index)+          else return (unsafePerformIO (unsafeFreezePrimArray mutable))+      in iterate 0
primitive-extras.cabal view
@@ -1,7 +1,7 @@ name:   primitive-extras version:-  0.1.7.1+  0.1.8 category:   Primitive synopsis: