--------------------------------- API Annotations --------------------------------- [A] : Added [R] : Removed [C] : Changed [O] : Old definition [N] : New definition [D] : Deprecated --------------------------------- API diff --------------------------------- [C] Streamly.Data.Stream.Prelude [A] useAcquire :: AcquireIO -> Config -> Config [D] parEval :: MonadAsync m => (Config -> Config) -> Stream m a -> Stream m a [A] parCrossApply :: MonadAsync m => (Config -> Config) -> Stream m (a -> b) -> Stream m a -> Stream m b [A] parBuffered :: MonadAsync m => (Config -> Config) -> Stream m a -> Stream m a [D] parApply :: MonadAsync m => (Config -> Config) -> Stream m (a -> b) -> Stream m a -> Stream m b [A] clearAcquire :: Config -> Config [A] Streamly.Data.Scanl.Prelude [A] Config [A] parTeeWith :: MonadAsync m => (Config -> Config) -> (a -> b -> c) -> Scanl m x a -> Scanl m x b -> Scanl m x c [A] parDistributeScanM :: MonadAsync m => (Config -> Config) -> m [Scanl m a b] -> Stream m a -> Stream m [b] [A] parDistributeScan :: MonadAsync m => (Config -> Config) -> [Scanl m a b] -> Stream m a -> Stream m [b] [A] parDemuxScanM :: (MonadAsync m, Ord k) => (Config -> Config) -> (a -> k) -> (k -> m (Scanl m a b)) -> Stream m a -> Stream m [(k, b)] [A] parDemuxScan :: (MonadAsync m, Ord k) => (Config -> Config) -> (a -> k) -> (k -> Scanl m a b) -> Stream m a -> Stream m [(k, b)] [A] maxBuffer :: Int -> Config -> Config [A] inspect :: Bool -> Config -> Config [A] boundThreads :: Bool -> Config -> Config [C] Streamly.Data.Fold.Prelude [C] toHashMapIO [O] toHashMapIO :: (MonadIO m, Hashable k, Ord k) => (a -> k) -> Fold m a b -> Fold m a (HashMap k b) [N] toHashMapIO :: (MonadIO m, Hashable k) => (a -> k) -> Fold m a b -> Fold m a (HashMap k b) [A] parUnzip :: MonadAsync m => (Config -> Config) -> Fold m b x -> Fold m c y -> Fold m (b, c) (x, y) [A] parTee :: MonadAsync m => (Config -> Config) -> Fold m x a -> Fold m x b -> Fold m x (a, b) [A] parPartition :: MonadAsync m => (Config -> Config) -> Fold m b x -> Fold m c y -> Fold m (Either b c) (x, y) [D] parEval :: MonadAsync m => (Config -> Config) -> Fold m a b -> Fold m a b [A] parDistributeScan :: MonadAsync m => (Config -> Config) -> m [Fold m a b] -> Stream m a -> Stream m [b] [A] parDistribute :: MonadAsync m => (Config -> Config) -> [Fold m a b] -> Fold m a [b] [A] parDemuxScan :: (MonadAsync m, Ord k) => (Config -> Config) -> (a -> k) -> (k -> m (Fold m a b)) -> Stream m a -> Stream m [(k, b)] [A] parBuffered :: MonadAsync m => (Config -> Config) -> Fold m a b -> Fold m a b --------------------------------- Internal API diff --------------------------------- [C] Streamly.Internal.Network.Inet.TCP [A] pipeChunks :: (MonadAsync m, MonadCatch m) => (Word8, Word8, Word8, Word8) -> PortNumber -> Stream m (Array Word8) -> Stream m (Array Word8) [D] Streamly.Internal.FileSystem.Event.Linux [D] Streamly.Internal.FileSystem.Event [C] Streamly.Internal.Data.Stream.Prelude [C] Channel [C] [enqueue] [O] [enqueue] :: Channel m a -> Bool -> (RunInIO m, StreamK m a) -> IO () [N] [enqueue] :: Channel m a -> (RunInIO m, StreamK m a) -> IO () [A] [channelStopping] :: Channel m a -> IORef Bool [A] [channelStopped] :: Channel m a -> MVar Bool [C] Channel [O] Channel :: RunInIO m -> IORef ([ChildEvent a], Int) -> MVar () -> m [ChildEvent a] -> m Bool -> Limit -> Limit -> Maybe (IORef Count) -> Maybe YieldRateInfo -> (Bool -> (RunInIO m, StreamK m a) -> IO ()) -> m () -> IO Bool -> IO Bool -> IORef Bool -> (Maybe WorkerInfo -> m ()) -> IORef (Set ThreadId) -> IORef Int -> (ThreadId -> m ()) -> MVar () -> Maybe (IORef ()) -> SVarStats -> Bool -> ThreadId -> Channel m a [N] Channel :: RunInIO m -> Limit -> IORef ([ChildEvent a], Int) -> MVar () -> m [ChildEvent a] -> m Bool -> Maybe (IORef Count) -> IO Bool -> Maybe YieldRateInfo -> IORef Bool -> m () -> ((RunInIO m, StreamK m a) -> IO ()) -> IO Bool -> (Maybe WorkerInfo -> m ()) -> IORef Bool -> MVar Bool -> Limit -> IORef (Set ThreadId) -> IORef Int -> (ThreadId -> m ()) -> MVar () -> Maybe (IORef ()) -> SVarStats -> Bool -> ThreadId -> Channel m a [A] yieldWith :: Maybe WorkerInfo -> Channel m a -> a -> IO Bool [R] yield :: Channel m a -> Maybe WorkerInfo -> a -> IO Bool [A] useAcquire :: AcquireIO -> Config -> Config [A] timedGroupsOf :: MonadAsync m => Double -> Int -> Fold m a b -> Stream m a -> Stream m b [A] timedChunksOf' :: (MonadAsync m, Unbox a) => Double -> Int -> Stream m a -> Stream m (Array a) [A] timedChunksOf :: (MonadAsync m, Unbox a) => Double -> Int -> Stream m a -> Stream m (Array a) [A] stopWith :: Maybe WorkerInfo -> Channel m a -> IO () [R] stopChannel :: MonadIO m => Channel m a -> m () [R] stop :: Channel m a -> Maybe WorkerInfo -> IO () [C] startChannel [O] startChannel :: MonadRunInIO m => Channel m a -> m () [N] startChannel :: MonadIO m => Channel m a -> m () [A] shutdown :: MonadIO m => Channel m a -> m () [R] sendWorkerWait :: MonadIO m => Bool -> (Channel m a -> IO ()) -> (Channel m a -> m Bool) -> Channel m a -> m () [C] readOutputQPaced [O] readOutputQPaced :: MonadRunInIO m => Channel m a -> m [ChildEvent a] [N] readOutputQPaced :: MonadIO m => Channel m a -> m [ChildEvent a] [C] readOutputQBounded [O] readOutputQBounded :: MonadRunInIO m => Bool -> Channel m a -> m [ChildEvent a] [N] readOutputQBounded :: MonadIO m => Bool -> Channel m a -> m [ChildEvent a] [R] pushWorker :: MonadRunInIO m => Count -> Channel m a -> m () [C] postProcessPaced [O] postProcessPaced :: MonadRunInIO m => Channel m a -> m Bool [N] postProcessPaced :: MonadIO m => Channel m a -> m Bool [C] postProcessBounded [O] postProcessBounded :: MonadRunInIO m => Channel m a -> m Bool [N] postProcessBounded :: MonadIO m => Channel m a -> m Bool [A] parYieldWith :: (Config -> Config) -> ((a -> m b) -> m c) -> Stream m a [A] parMergeMap :: (Config -> Config) -> (a -> Stream m b) -> Stream m a -> Stream m b [A] parMergeIterate :: (Config -> Config) -> (a -> Stream m a) -> Stream m a -> Stream m a [D] parEval :: MonadAsync m => (Config -> Config) -> Stream m a -> Stream m a [A] parCrossApply :: MonadAsync m => (Config -> Config) -> Stream m (a -> b) -> Stream m a -> Stream m b [A] parBuffered :: MonadAsync m => (Config -> Config) -> Stream m a -> Stream m a [D] parApply :: MonadAsync m => (Config -> Config) -> Stream m (a -> b) -> Stream m a -> Stream m b [A] newStreamAndCallback :: MonadAsync m => m (a -> m (), Stream m a) [A] newRateInfo :: Config -> IO (Maybe YieldRateInfo) [A] maxYields :: Maybe Int64 -> Config -> Config [D] groupsOfTimeout :: MonadAsync m => Int -> Double -> Fold m a b -> Stream m a -> Stream m b [A] getYieldLimit :: Config -> Maybe Count [A] getStreamRate :: Config -> Maybe Rate [A] getOrdered :: Config -> Bool [A] getMaxThreads :: Config -> Limit [A] getMaxBuffer :: Config -> Limit [A] getInterleaved :: Config -> Bool [A] getInspectMode :: Config -> Bool [A] getEagerDispatch :: Config -> Bool [A] getCleanup :: Config -> Maybe (IO () -> IO ()) [C] fromChannelK [O] fromChannelK :: MonadAsync m => Channel m a -> StreamK m a [N] fromChannelK :: MonadAsync m => Maybe (IO () -> IO ()) -> Channel m a -> StreamK m a [A] forkWorker :: MonadIO m => Count -> Channel m a -> m () [A] exceptionWith :: Maybe WorkerInfo -> Channel m a -> SomeException -> IO () [R] dumpSVar :: Channel m a -> IO String [A] dumpChannel :: Channel m a -> IO String [C] dispatchWorkerPaced [O] dispatchWorkerPaced :: MonadRunInIO m => Channel m a -> m Bool [N] dispatchWorkerPaced :: MonadIO m => Channel m a -> m Bool [C] dispatchWorker [O] dispatchWorker :: MonadRunInIO m => Count -> Channel m a -> m Bool [N] dispatchWorker :: MonadIO m => Count -> Channel m a -> m Bool [A] dispatchAllWait :: MonadIO m => Bool -> (Channel m a -> IO ()) -> (Channel m a -> m Bool) -> Channel m a -> m () [A] clearAcquire :: Config -> Config [A] cleanupChan :: Channel m a -> String -> IO () [A] channelDone :: Channel m a -> String -> IO () [A] chanConcatMapK :: MonadAsync m => (Config -> Config) -> Channel m b -> (a -> StreamK m b) -> StreamK m a -> StreamK m b [A] boundedIntervalsOf :: Int -> Double -> Int -> Fold m a b -> Stream m a -> Stream m b [A] boundThreads :: Bool -> Config -> Config [A] Streamly.Internal.Data.Scanl.Prelude [A] OutEvent [A] FoldPartial :: b -> OutEvent b [A] FoldException :: ThreadId -> SomeException -> OutEvent b [A] FoldEOF :: ThreadId -> OutEvent b [A] FoldDone :: ThreadId -> b -> OutEvent b [A] Config [A] Channel [A] [svarStats] :: Channel m a b -> SVarStats [A] [svarRef] :: Channel m a b -> Maybe (IORef ()) [A] [svarInspectMode] :: Channel m a b -> Bool [A] [svarCreator] :: Channel m a b -> ThreadId [A] [readInputQ] :: Channel m a b -> m [ChildEvent a] [A] [outputQueue] :: Channel m a b -> IORef ([OutEvent b], Int) [A] [outputDoorBell] :: Channel m a b -> MVar () [A] [maxInputBuffer] :: Channel m a b -> Limit [A] [inputSpaceDoorBell] :: Channel m a b -> MVar () [A] [inputQueue] :: Channel m a b -> IORef ([ChildEvent a], Int) [A] [inputItemDoorBell] :: Channel m a b -> MVar () [A] [closedForInput] :: Channel m a b -> IORef Bool [A] Channel :: IORef ([ChildEvent a], Int) -> Limit -> MVar () -> IORef Bool -> MVar () -> m [ChildEvent a] -> IORef ([OutEvent b], Int) -> MVar () -> Maybe (IORef ()) -> SVarStats -> Bool -> ThreadId -> Channel m a b [A] sendToWorker_ :: MonadAsync m => Channel m a b -> a -> m () [A] sendToWorker :: MonadAsync m => Channel m a b -> a -> m (Maybe b) [A] parTeeWith :: MonadAsync m => (Config -> Config) -> (a -> b -> c) -> Scanl m x a -> Scanl m x b -> Scanl m x c [A] parDistributeScanM :: MonadAsync m => (Config -> Config) -> m [Scanl m a b] -> Stream m a -> Stream m [b] [A] parDistributeScan :: MonadAsync m => (Config -> Config) -> [Scanl m a b] -> Stream m a -> Stream m [b] [A] parDemuxScanM :: (MonadAsync m, Ord k) => (Config -> Config) -> (a -> k) -> (k -> m (Scanl m a b)) -> Stream m a -> Stream m [(k, b)] [A] parDemuxScan :: (MonadAsync m, Ord k) => (Config -> Config) -> (a -> k) -> (k -> Scanl m a b) -> Stream m a -> Stream m [(k, b)] [A] newScanChannel :: MonadRunInIO m => (Config -> Config) -> Scanl m a b -> m (Channel m a b) [A] newChannelWithScan :: MonadRunInIO m => IORef ([OutEvent b], Int) -> MVar () -> (Config -> Config) -> Scanl m a b -> m (Channel m a b, ThreadId) [A] newChannelWith :: MonadRunInIO m => IORef ([OutEvent b], Int) -> MVar () -> (Config -> Config) -> Fold m a b -> m (Channel m a b, ThreadId) [A] newChannel :: MonadRunInIO m => (Config -> Config) -> Fold m a b -> m (Channel m a b) [A] maxBuffer :: Int -> Config -> Config [A] inspect :: Bool -> Config -> Config [A] finalize :: MonadIO m => Channel m a b -> m () [A] dumpChannel :: Channel m a b -> IO String [A] defaultConfig :: Config [A] cleanup :: MonadIO m => Channel m a b -> m () [A] checkFoldStatus :: MonadAsync m => Channel m a b -> m (Maybe b) [A] boundThreads :: Bool -> Config -> Config [C] Streamly.Internal.Data.Fold.Prelude [A] OutEvent [A] FoldPartial :: b -> OutEvent b [A] FoldException :: ThreadId -> SomeException -> OutEvent b [A] FoldEOF :: ThreadId -> OutEvent b [A] FoldDone :: ThreadId -> b -> OutEvent b [C] Channel [R] [readOutputQ] :: Channel m a b -> m [ChildEvent a] [A] [readInputQ] :: Channel m a b -> m [ChildEvent a] [C] [outputQueue] [O] [outputQueue] :: Channel m a b -> IORef ([ChildEvent a], Int) [N] [outputQueue] :: Channel m a b -> IORef ([OutEvent b], Int) [R] [outputQueueFromConsumer] :: Channel m a b -> IORef ([ChildEvent b], Int) [R] [outputDoorBellFromConsumer] :: Channel m a b -> MVar () [A] [maxInputBuffer] :: Channel m a b -> Limit [R] [maxBufferLimit] :: Channel m a b -> Limit [A] [inputSpaceDoorBell] :: Channel m a b -> MVar () [A] [inputQueue] :: Channel m a b -> IORef ([ChildEvent a], Int) [A] [inputItemDoorBell] :: Channel m a b -> MVar () [A] [closedForInput] :: Channel m a b -> IORef Bool [R] [bufferSpaceDoorBell] :: Channel m a b -> MVar () [C] Channel [O] Channel :: IORef ([ChildEvent a], Int) -> Limit -> MVar () -> m [ChildEvent a] -> IORef ([ChildEvent b], Int) -> MVar () -> MVar () -> Maybe (IORef ()) -> SVarStats -> Bool -> ThreadId -> Channel m a b [N] Channel :: IORef ([ChildEvent a], Int) -> Limit -> MVar () -> IORef Bool -> MVar () -> m [ChildEvent a] -> IORef ([OutEvent b], Int) -> MVar () -> Maybe (IORef ()) -> SVarStats -> Bool -> ThreadId -> Channel m a b [A] sendToWorker_ :: MonadAsync m => Channel m a b -> a -> m () [A] parUnzipWithM :: MonadAsync m => (Config -> Config) -> (a -> m (b, c)) -> Fold m b x -> Fold m c y -> Fold m a (x, y) [A] parUnzip :: MonadAsync m => (Config -> Config) -> Fold m b x -> Fold m c y -> Fold m (b, c) (x, y) [A] parTeeWith :: MonadAsync m => (Config -> Config) -> (a -> b -> c) -> Fold m x a -> Fold m x b -> Fold m x c [A] parTee :: MonadAsync m => (Config -> Config) -> Fold m x a -> Fold m x b -> Fold m x (a, b) [A] parPartition :: MonadAsync m => (Config -> Config) -> Fold m b x -> Fold m c y -> Fold m (Either b c) (x, y) [A] parLmapM :: (Config -> Config) -> (a -> m b) -> Fold m b r -> Fold m a r [D] parEval :: MonadAsync m => (Config -> Config) -> Fold m a b -> Fold m a b [A] parDistributeScan :: MonadAsync m => (Config -> Config) -> m [Fold m a b] -> Stream m a -> Stream m [b] [A] parDistribute :: MonadAsync m => (Config -> Config) -> [Fold m a b] -> Fold m a [b] [A] parDemuxScan :: (MonadAsync m, Ord k) => (Config -> Config) -> (a -> k) -> (k -> m (Fold m a b)) -> Stream m a -> Stream m [(k, b)] [A] parBuffered :: MonadAsync m => (Config -> Config) -> Fold m a b -> Fold m a b [A] newScanChannel :: MonadRunInIO m => (Config -> Config) -> Scanl m a b -> m (Channel m a b) [A] newChannelWithScan :: MonadRunInIO m => IORef ([OutEvent b], Int) -> MVar () -> (Config -> Config) -> Scanl m a b -> m (Channel m a b, ThreadId) [A] newChannelWith :: MonadRunInIO m => IORef ([OutEvent b], Int) -> MVar () -> (Config -> Config) -> Fold m a b -> m (Channel m a b, ThreadId) [A] finalize :: MonadIO m => Channel m a b -> m () [R] dumpSVar :: Channel m a b -> IO String [A] dumpChannel :: Channel m a b -> IO String [A] defaultConfig :: Config [A] cleanup :: MonadIO m => Channel m a b -> m () [C] Streamly.Internal.Data.Channel [C] YieldRateInfo [R] Config [R] workerRateControl :: Limit -> IORef Int -> YieldRateInfo -> WorkerInfo -> IO Bool [R] stopWhen :: StopWhen -> Config -> Config [R] setStreamLatency :: Int -> Config -> Config [C] sendYield [O] sendYield :: Limit -> Limit -> IORef Int -> Maybe WorkerInfo -> Maybe YieldRateInfo -> IORef ([ChildEvent a], Int) -> MVar () -> ChildEvent a -> IO Bool [N] sendYield :: Limit -> Limit -> IORef Int -> Maybe YieldRateInfo -> IORef ([ChildEvent a], Int) -> MVar () -> Maybe WorkerInfo -> a -> IO Bool [R] sendWithDoorBell :: IORef ([ChildEvent a], Int) -> MVar () -> ChildEvent a -> IO Int [C] sendStop [O] sendStop :: IORef Int -> Maybe WorkerInfo -> Maybe YieldRateInfo -> IORef ([ChildEvent a], Int) -> MVar () -> IO () [N] sendStop :: IORef Int -> Maybe YieldRateInfo -> IORef ([ChildEvent a], Int) -> MVar () -> Maybe WorkerInfo -> IO () [A] sendException :: IORef Int -> IORef ([ChildEvent a], Int) -> MVar () -> SomeException -> IO () [A] sendEvent :: IORef ([a], Int) -> MVar () -> a -> IO Int [C] readOutputQBasic [O] readOutputQBasic :: IORef ([ChildEvent a], Int) -> IO ([ChildEvent a], Int) [N] readOutputQBasic :: IORef ([a], Int) -> IO ([a], Int) [R] rate :: Maybe Rate -> Config -> Config [R] ordered :: Bool -> Config -> Config [R] newRateInfo :: Config -> IO (Maybe YieldRateInfo) [R] minRate :: Double -> Config -> Config [R] maxYields :: Maybe Int64 -> Config -> Config [R] maxThreads :: Int -> Config -> Config [R] maxRate :: Double -> Config -> Config [R] maxBuffer :: Int -> Config -> Config [R] interleaved :: Bool -> Config -> Config [R] inspect :: Bool -> Config -> Config [A] incrWorkerYieldCount :: Limit -> IORef Int -> YieldRateInfo -> WorkerInfo -> IO Bool [R] handleChildException :: IORef ([ChildEvent a], Int) -> MVar () -> SomeException -> IO () [R] getYieldLimit :: Config -> Maybe Count [R] getStreamRate :: Config -> Maybe Rate [R] getStreamLatency :: Config -> Maybe NanoSecond64 [R] getStopWhen :: Config -> StopWhen [R] getOrdered :: Config -> Bool [R] getMaxThreads :: Config -> Limit [R] getMaxBuffer :: Config -> Limit [R] getInterleaved :: Config -> Bool [R] getInspectMode :: Config -> Bool [R] getEagerDispatch :: Config -> Bool [R] getBound :: Config -> Bool [R] eager :: Bool -> Config -> Config [R] defaultConfig :: Config [R] constRate :: Double -> Config -> Config [R] cleanupSVar :: IORef (Set ThreadId) -> IO () [R] boundThreads :: Bool -> Config -> Config [R] avgRate :: Double -> Config -> Config