Copyright | (c) 2017 Composewell Technologies |
---|---|
License | BSD-3-Clause |
Maintainer | streamly@composewell.com |
Stability | experimental |
Portability | GHC |
Safe Haskell | Safe-Inferred |
Language | Haskell2010 |
The functions in this module are separated from the combinators using these because of a GHC issue. We need to have newChannel specialized but not inlined. If we keep it in the same module as its users we cannot achieve that and the code becomes bloated. But if it is in a separate module we can use INLINABLE and SPECIALIZE on it which makes it specialized but it is not actually inlined.
Synopsis
- newChannel :: MonadRunInIO m => (Config -> Config) -> m (Channel m a)
Documentation
newChannel :: MonadRunInIO m => (Config -> Config) -> m (Channel m a) Source #
Create a new async style concurrent stream evaluation channel. The monad state used to run the stream actions is taken from the call site of newChannel.