@@ -1620,21 +1620,22 @@ import Control.Monad.Trans.Class (MonadTrans (lift))
1620-- Interop with @conduit@:
1620-- Interop with @conduit@:
1623−-- import "Streamly.Prelude" (SerialT)
1623+-- import "Streamly.Prelude" (IsStream, MonadAsync, SerialT)
1624-- import qualified "Streamly.Prelude" as S
1624-- import qualified "Streamly.Prelude" as S
1625-- import qualified Data.Conduit as C
1625-- import qualified Data.Conduit as C
1626-- import qualified Data.Conduit.List as C
1626-- import qualified Data.Conduit.List as C
1627−-- import qualified Data.Conduit.Combinators as C
1629−-- -- It seems there is no way out of a conduit as it does not provide an
1628+-- -- | conduit to streamly
1630−-- -- uncons or a tail function. We can convert streamly to conduit though.
1629+-- fromConduit :: (IsStream t, MonadAsync m) => C.ConduitT () a m () -> t m a
1630+-- fromConduit = S.unfoldrM C.unconsM . C.sealConduitT
1632-- -- | streamly to conduit
1632-- -- | streamly to conduit
1633-- toConduit :: Monad m => SerialT m a -> C.ConduitT i a m ()
1633-- toConduit :: Monad m => SerialT m a -> C.ConduitT i a m ()
1634−-- toConduit s = C.unfoldM S.'uncons' s
1634+-- toConduit = C.unfoldM S.'uncons'
1636-- main = do
1636-- main = do
1637+-- S.'toList' (fromConduit (C.sourceList [1..3])) >>= print
1637−-- C.runConduit (toConduit (S.'fromFoldable' [1..3]) C..| C.sinkList) >>= print
1638+-- C.runConduit (toConduit (S.'fromFoldable' [1..3]) C..| C.consume) >>= print
1640-- $comparison
1641-- $comparison