@@ -105,10 +105,12 @@ import qualified Data.Primitive.Types as PT
105#if MIN_VERSION_base(4,9,0) && !MIN_VERSION_base(4,11,0)
105#if MIN_VERSION_base(4,9,0) && !MIN_VERSION_base(4,11,0)
106import Data.Semigroup (Semigroup)
106import Data.Semigroup (Semigroup)
108−#if MIN_VERSION_base(4,9,0)
109+#if MIN_VERSION_base(4,9,0) && MIN_VERSION_primitive(0,6,4)
109import qualified Data.Semigroup as SG
110import qualified Data.Semigroup as SG
112-- | Arrays of unboxed elements. This accepts types like 'Double', 'Char',
114-- | Arrays of unboxed elements. This accepts types like 'Double', 'Char',
113-- 'Int', and 'Word', as well as their fixed-length variants ('Word8',
115-- 'Int', and 'Word', as well as their fixed-length variants ('Word8',
114-- 'Word16', etc.). Since the elements are unboxed, a 'PrimArray' is strict
116-- 'Word16', etc.). Since the elements are unboxed, a 'PrimArray' is strict
@@ -204,6 +206,8 @@ primArrayFromListN len vs = runST run where
204primArrayToList :: forall a. Prim a => PrimArray a -> [a]
206primArrayToList :: forall a. Prim a => PrimArray a -> [a]
205primArrayToList xs = build (\c n -> foldrPrimArray c n xs)
207primArrayToList xs = build (\c n -> foldrPrimArray c n xs)
209+#if MIN_VERSION_primitive(0,6,4)
207primArrayToByteArray :: PrimArray a -> PB.ByteArray
211primArrayToByteArray :: PrimArray a -> PB.ByteArray
208primArrayToByteArray (PrimArray x) = PB.ByteArray x
212primArrayToByteArray (PrimArray x) = PB.ByteArray x
@@ -226,6 +230,8 @@ instance Monoid (PrimArray a) where
227 mconcat = byteArrayToPrimArray . mconcat . map primArrayToByteArray
231 mconcat = byteArrayToPrimArray . mconcat . map primArrayToByteArray
229-- | The empty primitive array.
235-- | The empty primitive array.
230emptyPrimArray :: PrimArray a
236emptyPrimArray :: PrimArray a
231{-# NOINLINE emptyPrimArray #-}
237{-# NOINLINE emptyPrimArray #-}