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.Zip.Concurrent

Description

To run examples in this module:

>>> import qualified Streamly.Internal.Data.Stream as Stream
>>> import qualified Streamly.Data.Fold as Fold

Documentation

newtype ZipConcurrent m a Source #

Constructors

ZipConcurrent 

Fields

Instances

Instances details
MonadAsync m => Applicative (ZipConcurrent m) Source #

An IO stream whose applicative instance zips streams concurrently. Note that it uses the default concurrency options.

>>> s = ZipConcurrent $ Stream.fromList [1, 2, 3]
>>> x = (,,) <$> s <*> s <*> s
>>> Stream.fold Fold.toList (getZipConcurrent x)
[(1,1,1),(2,2,2),(3,3,3)]

Since: 0.9.0

Instance details

Defined in Streamly.Internal.Data.Stream.Zip.Concurrent

Methods

pure :: a -> ZipConcurrent m a #

(<*>) :: ZipConcurrent m (a -> b) -> ZipConcurrent m a -> ZipConcurrent m b #

liftA2 :: (a -> b -> c) -> ZipConcurrent m a -> ZipConcurrent m b -> ZipConcurrent m c #

(*>) :: ZipConcurrent m a -> ZipConcurrent m b -> ZipConcurrent m b #

(<*) :: ZipConcurrent m a -> ZipConcurrent m b -> ZipConcurrent m a #

Monad m => Functor (ZipConcurrent m) Source # 
Instance details

Defined in Streamly.Internal.Data.Stream.Zip.Concurrent

Methods

fmap :: (a -> b) -> ZipConcurrent m a -> ZipConcurrent m b #

(<$) :: a -> ZipConcurrent m b -> ZipConcurrent m a #