@@ -2627,19 +2627,11 @@ unstreamPrimM :: (PrimMonad m, Vector v a) => MBundle m u a -> m (v a)
26272627{-# INLINE_FUSED unstreamPrimM #-}
26282628unstreamPrimM s = M. munstream s >>= unsafeFreeze
26292629
2630- -- FIXME: the next two functions are only necessary for the specialisations
2631- unstreamPrimM_IO :: Vector v a => MBundle IO u a -> IO (v a )
2632- {-# INLINE unstreamPrimM_IO #-}
2633- unstreamPrimM_IO = unstreamPrimM
2634-
2635- unstreamPrimM_ST :: Vector v a => MBundle (ST s ) u a -> ST s (v a )
2636- {-# INLINE unstreamPrimM_ST #-}
2637- unstreamPrimM_ST = unstreamPrimM
2638-
26392630{-# RULES
26402631
2641- "unstreamM[IO]" unstreamM = unstreamPrimM_IO
2642- "unstreamM[ST]" unstreamM = unstreamPrimM_ST #-}
2632+ "unstreamM[IO]" unstreamM @IO = unstreamPrimM
2633+ "unstreamM[ST]" forall s. forall. unstreamM @(ST s) = unstreamPrimM
2634+ #-}
26432635
26442636
26452637
@@ -2699,14 +2691,6 @@ unsafeGeneratePrim :: (PrimMonad m, Vector v a) => Int -> (Int -> m a) -> m (v a
26992691{-# INLINE unsafeGeneratePrim #-}
27002692unsafeGeneratePrim n f = unsafeFreeze =<< M. generateM n f
27012693
2702- generateA_IO :: (Vector v a ) => Int -> (Int -> IO a ) -> IO (v a )
2703- {-# INLINE generateA_IO #-}
2704- generateA_IO = unsafeGeneratePrim
2705-
2706- generateA_ST :: (Vector v a ) => Int -> (Int -> ST s a ) -> ST s (v a )
2707- {-# INLINE generateA_ST #-}
2708- generateA_ST = unsafeGeneratePrim
2709-
27102694-- Identity is used in lest for mapping over structures. So it's
27112695-- relatively important case.
27122696generateA_Identity :: (Vector v a ) => Int -> (Int -> Identity a ) -> Identity (v a )
@@ -2715,10 +2699,9 @@ generateA_Identity n f = Identity (generate n (runIdentity . f))
27152699
27162700
27172701{-# RULES
2718-
2719- "generateA[IO]" generateA = generateA_IO
2720- "generateA[ST]" generateA = generateA_ST
2721- "generateA[Identity]" generateA = generateA_Identity
2702+ "generateA[IO]" generateA @IO = unsafeGeneratePrim
2703+ "generateA[ST]" forall s. forall. generateA @(ST s) = unsafeGeneratePrim
2704+ "generateA[Identity]" generateA = generateA_Identity
27222705 #-}
27232706
27242707
0 commit comments