streamly-0.9.0: Streaming, dataflow programming and declarative concurrency
Copyright(c) 2017 Composewell Technologies
LicenseBSD-3-Clause
Maintainerstreamly@composewell.com
Stabilityexperimental
PortabilityGHC
Safe HaskellSafe-Inferred
LanguageHaskell2010

Streamly.Internal.Data.Stream.Concurrent.Channel.Append

Description

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

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.