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: