on master help sign in
Get 'replicateM' to specialize
commit3d1ed1267cfe28c04efe9849193283f8912b0910 authorArtyom Kazak <yom@artyom.me> dateWed 24 Jul 2019, 00:09 (7 years ago) parent7c6eac8
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