@@ -92,6 +92,9 @@ import Foreign.Storable (Storable(..))
9292import GHC.Base (Addr#, nullAddr#)
9393import GHC.Exts (IsList, IsString(..))
9494import GHC.ForeignPtr (ForeignPtr(..), newForeignPtr_)
95+#ifdef DEVBUILD
96+import GHC.ForeignPtr (touchForeignPtr, unsafeForeignPtrToPtr)
97+#endif
9598import GHC.IO (unsafePerformIO)
9699import GHC.Ptr (Ptr(..))
97100import Streamly.Internal.Data.Fold.Types (Fold(..), lmap)
@@ -232,7 +235,11 @@ spliceTwo arr1 arr2 =
232235-- /Internal/
233236--
234237{-# INLINE fromPtr #-}
235−fromPtr :: Int -> Ptr a -> Array a
238+fromPtr ::
239+#ifdef DEVBUILD
240+ Storable a =>
241+#endif
242+ Int -> Ptr a -> Array a
236243fromPtr n ptr = MA.unsafeInlineIO $ do
237244 fptr <- newForeignPtr_ ptr
238245 let end = ptr `plusPtr` n
@@ -274,7 +281,11 @@ fromPtr n ptr = MA.unsafeInlineIO $ do
274281-- /Internal/
275282--
276283{-# INLINE fromAddr# #-}
277−fromAddr# :: Int -> Addr# -> Array a
284+fromAddr# ::
285+#ifdef DEVBUILD
286+ Storable a =>
287+#endif
288+ Int -> Addr# -> Array a
278289fromAddr# n addr# = fromPtr n (castPtr $ Ptr addr#)
279290
280291-- | Generate a byte array from an 'Addr#' that contains a sequence of NUL