on master help sign in
Merge pull request #214 from neongreen/sig

Get 'replicateM' to specialize

commit00c761301edd4f04b3669719a88b6ac76ab80c05 authorHarendra Kumar <harendra.kumar@gmail.com> dateThu 25 Jul 2019, 15:27 (7 years ago) parentf56cab73d1ed12
1 file changed+3−2
src/Streamly/Streams/StreamD.hs+3−2
src/Streamly/Streams/StreamD.hs+3−2
@@ -273,7 +273,7 @@ import qualified Control.Monad.Catch as MC
273273import Streamly.Mem.Array.Types (Array(..))
274274import Streamly.Fold.Types (Fold(..))
275275import Streamly.Pipe.Types (Pipe(..), PipeState(..))
276−import Streamly.SVar (MonadAsync, defState, adaptState)
276+import Streamly.SVar (MonadAsync, defState, adaptState, State)
277277
278278import Streamly.Streams.StreamD.Type
279279
@@ -366,10 +366,11 @@ repeat :: Monad m => a -> Stream m a
366366repeat x = Stream (\_ _ -> return $ Yield x ()) ()
367367
368368{-# INLINE_NORMAL replicateM #-}
369−replicateM :: Monad m => Int -> m a -> Stream m a
369+replicateM :: forall m a. Monad m => Int -> m a -> Stream m a
370370replicateM n p = Stream step n
371371 where
372372 {-# INLINE_LATE step #-}
373+ step :: State K.Stream m a -> Int -> m (Step Int a)
373374 step _ i | i <= 0 = return Stop
374375 | otherwise = do
375376 x <- p