Harendra Kumar
Harendra Kumar
Even if we figure out and create a simpler/less powerful type class it may take time to evolve the API. If we really want `resourcet` functionality with `streamly`, I think...
Updated this in #395 - using `resourcet` package with `MonadBaseControl`. ``` {-# LANGUAGE FlexibleContexts #-} module RunResourceT where import Control.Exception (catch, mask, throwIO) import Control.Monad.IO.Unlift (MonadIO(..), MonadUnliftIO, withRunInIO) import Control.Monad.Trans.Control...
@hydramo Yes, I can imagine in a traditional imperative style composition and with too many resources resourcet could be easier to deal with. However, in a fully idiomatic streaming composition...
Note: In Parsers a workaround for `Skip` is to use `Partial 1`.
we have not seen this again - pushing to next release.
`scan` is the solution to most stateful problems. However, the problem with standard scan functions is that they cannot run an action when the stream ends. We have a special...
> One way to allow an efficient implementation of this function is to have zipBoth :: SerialT m a -> SerialT m b -> SerialT m (EitherBoth a b), where...
You have to first consider whether the performance is good enough for the given use case, if it is then you do not need to do anything. But you can...
This seems to happen when we add some prints or traces in the code, may be due to some race condition.
Maybe we can put these in a separate `Time` module so that we can give them exactly the same names as corresponding regular combinators. For example: * take - take...