тебя сразу уводит из стримов
боюсь, в стриминге нет втстроенной рекурсии, и именно next надо использовать retrierStream :: MonadIO m => (a -> HandleResult) -> Stream (Of a) m () -> Stream (Of a) m () retrierStream handle input = do e <- lift $ next input case e of Left () -> pure () Right (a, input') -> do case handle a of Ok -> yield a NotOk -> liftIO $ threadDelay $ 2 * 1000 * 1000 retrierStream handle input'
можно через mapM (если ещё не решено)
Обсуждают сегодня