Make findIndices inplace-fusible
authorRoman Leshchinskiy <rl@cse.unsw.edu.au>
Fri, 11 Dec 2009 01:28:25 +0000 (01:28 +0000)
committerRoman Leshchinskiy <rl@cse.unsw.edu.au>
Fri, 11 Dec 2009 01:28:25 +0000 (01:28 +0000)
Data/Vector/Generic.hs

index f1906d3..6fb407a 100644 (file)
@@ -945,9 +945,8 @@ findIndex f = Stream.findIndex f . stream
 findIndices :: (Vector v a, Vector v Int) => (a -> Bool) -> v a -> v Int
 {-# INLINE findIndices #-}
 findIndices f = unstream
 findIndices :: (Vector v a, Vector v Int) => (a -> Bool) -> v a -> v Int
 {-# INLINE findIndices #-}
 findIndices f = unstream
-              . Stream.map fst
-              . Stream.filter (f . snd)
-              . Stream.indexed
+              . inplace (MStream.map fst . MStream.filter (f . snd)
+                                         . MStream.indexed)
               . stream
 
 -- | Yield 'Just' the index of the first occurence of the given element or
               . stream
 
 -- | Yield 'Just' the index of the first occurence of the given element or