@@ -58,7 +58,7 @@ module Data.Primitive.SmallArray
5858 , smallArrayFromList
5959 , smallArrayFromListN
6060 , mapSmallArray'
61- , unsafeTraverseSmallArray
61+ , traverseSmallArrayP
6262 ) where
6363
6464
@@ -411,13 +411,13 @@ sizeofSmallMutableArray (SmallMutableArray ma) = sizeofMutableArray ma
411411-- "affine" 'PrimMonad' instance. In particular, it must only produce
412412-- *one* result array. 'Control.Monad.Trans.List.ListT'-transformed
413413-- monads, for example, will not work right at all.
414- unsafeTraverseSmallArray
414+ traverseSmallArrayP
415415 :: PrimMonad m
416416 => (a -> m b )
417417 -> SmallArray a
418418 -> m (SmallArray b )
419419#if HAVE_SMALL_ARRAY
420- unsafeTraverseSmallArray f = \ ! ary ->
420+ traverseSmallArrayP f = \ ! ary ->
421421 let
422422 ! sz = sizeofSmallArray ary
423423 go ! i ! mary
@@ -433,9 +433,9 @@ unsafeTraverseSmallArray f = \ !ary ->
433433 mary <- newSmallArray sz badTraverseValue
434434 go 0 mary
435435#else
436- unsafeTraverseSmallArray f (SmallArray ar) = SmallArray `liftM` unsafeTraverseArray f ar
436+ traverseSmallArrayP f (SmallArray ar) = SmallArray `liftM` traverseArrayP f ar
437437#endif
438- {-# INLINE unsafeTraverseSmallArray #-}
438+ {-# INLINE traverseSmallArrayP #-}
439439
440440-- | Strict map over the elements of the array.
441441mapSmallArray' :: (a -> b ) -> SmallArray a -> SmallArray b
@@ -698,8 +698,8 @@ traverseSmallArray f = \ !ary ->
698698{-# INLINE [1] traverseSmallArray #-}
699699
700700{-# RULES
701- "traverse/ST" forall (f :: a -> ST s b). traverseSmallArray f = unsafeTraverseSmallArray f
702- "traverse/IO" forall (f :: a -> IO b). traverseSmallArray f = unsafeTraverseSmallArray f
701+ "traverse/ST" forall (f :: a -> ST s b). traverseSmallArray f = traverseSmallArrayP f
702+ "traverse/IO" forall (f :: a -> IO b). traverseSmallArray f = traverseSmallArrayP f
703703"traverse/Id" forall (f :: a -> Identity b). traverseSmallArray f =
704704 (coerce :: (SmallArray a -> SmallArray (Identity b))
705705 -> SmallArray a -> Identity (SmallArray b)) (fmap f)
0 commit comments