@@ -11,583 +11,13 @@
11-- experimental APIs.
11-- experimental APIs.
13module Streamly.Internal.Data.Stream.IsStream
13module Streamly.Internal.Data.Stream.IsStream
14− (
14+ ( module Streamly.Internal.Data.Stream.IsStream.Types
22− -- ** Speculative Streams
26− -- ** Asynchronous Streams
35− -- ** Zipping Streams
41− -- * Stream Type Adapters
80− -- ** Time Enumeration
89− -- ** From Generators
101− -- ** Cyclic Elements
104− -- ** From Containers
114− -- ** Deconstruction
131− -- ** Composable Left Folds
132− -- | See "Streamly.Internal.Data.Fold"
15+ , module Streamly.Internal.Data.Stream.IsStream.Generate
139− -- | See "Streamly.Internal.Data.Parser"
16+ , module Streamly.Internal.Data.Stream.IsStream.Eliminate
140− , parse
17+ , module Streamly.Internal.Data.Stream.IsStream.Transform
141− , parseK
18+ , module Streamly.Internal.Data.Stream.IsStream.Nesting
142− , parseD
19+ , module Streamly.Internal.Data.Stream.IsStream.Exception
143− , parseMany
20+ , module Streamly.Internal.Data.Stream.IsStream.Lift
149− -- ** Concurrent Folds
156− -- -- ** To Summary (Full Folds)
164− -- -- ** To Summary (Maybe) (Full Folds)
172− -- -- ** To Containers (Full Folds)
178− -- ** Composable Left Folds
180− , toStream -- XXX rename to write?
181− , toStreamRev -- XXX rename to writeRev?
185− -- -- ** To Elements (Partial Folds)
189− -- -- | Folds that extract selected elements of a stream or their properties.
199− -- -- ** To Boolean (Partial Folds)
208− -- ** Multi-Stream folds
213− -- finding subsequences
219− -- trimming sequences
259− -- ** Scan Using Fold
263− -- XXX Once we have pipes the contravariant transformations can be
264− -- represented by attaching pipes before a transformation.
276− -- ** Concurrent Transformation
288− -- ** Deleting Elements
291− -- , uniqBy -- by predicate e.g. to remove duplicate "/" in a path
292− -- , uniqOn -- to remove duplicate sequences
293− -- , pruneBy -- dropAround + uniqBy - like words
295− -- ** Inserting Elements
302− , intersperseSuffix_
303− , interspersePrefix_
304− , intersperseSuffixBySpan
305− -- , intersperseBySpan
306− -- , intersperseByIndices -- using an index function/stream
308− -- time domain intersperse
309− -- , intersperseByTime
310− -- , intersperseByEvent
321− -- , timestampedR -- timer
353− -- -- *** Searching Elements
357− -- -- *** Searching Sequences
358− -- , seqIndices -- search a sequence in the stream
360− -- -- *** Searching Multiple Sequences
361− -- , seqIndicesAny -- search any of the given sequence in the stream
363− -- -- -- ** Searching Streams
364− -- -- | Finding a stream within another stream.
367− -- | Streams can be sliced into segments in space or in time. We use the
368− -- term @chunk@ to refer to a spatial length of the stream (spatial window)
369− -- and the term @session@ to refer to a length in time (time window).
371− -- -- *** Using Element Separators
379− , wordsBy -- stripAndCompactBy
381− -- -- *** Splitting By Sequences
384− -- , splitOnPrefixSeq
386− -- Keeping the delimiters
388− , splitWithSuffixSeq
389− -- , splitByPrefixSeq
392− -- Splitting using multiple sequence separators
394− -- , splitOnAnySuffixSeq
395− -- , splitOnAnyPrefixSeq
397− -- -- *** Splitting By Streams
398− -- -- | Splitting a stream using another stream as separator.
402− , splitInnerBySuffix
405− -- In imperative terms, grouped folding can be considered as a nested loop
406− -- where we loop over the stream to group elements and then loop over
407− -- individual groups to fold them to a single value that is yielded in the
420− -- * Windowed Classification
422− -- | Split the stream into windows or chunks in space or time. Each window
423− -- can be associated with a key, all events associated with a particular
424− -- key in the window can be folded to a single result. The stream is split
425− -- into windows of specified size, the window can be terminated early if
426− -- the closing flag is specified in the input stream.
428− -- The term "chunk" is used for a space window and the term "session" is
429− -- used for a time window.
431− -- ** Tumbling Windows
432− -- | A new window starts after the previous window is finished.
434− -- , classifyChunksOf
435− , classifySessionsBy
436− , classifySessionsOf
438− -- ** Keep Alive Windows
439− -- | The window size is extended if an event arrives within the specified
440− -- window size. This can represent sessions with idle or inactive timeout.
442− -- , classifyKeepAliveChunks
443− , classifyKeepAliveSessions
446− -- ** Sliding Windows
447− -- | A new window starts after the specified slide from the previous
448− -- window. Therefore windows can overlap.
449− , classifySlidingChunks
450− , classifySlidingSessions
452− -- ** Sliding Window Buffers
453− -- , slidingChunkBuffer
454− -- , slidingSessionBuffer
456− -- * Combining Streams
496− -- ** Flattening a Container of Streams
497− , concatFoldableWith
498− , concatMapFoldableWith
499− , concatForFoldableWith
501− -- ** Flattening a Stream of Streams
510− -- ** Flattening Using Unfolds
512− , concatUnfoldInterleave
513− , concatUnfoldRoundrobin
515− -- ** Flattening a Tree of Streams
518− -- ** Flattening a Graph of Streams
521− -- ** Inserting Streams in Streams
523− , gintercalateSuffix
542− -- * Generalize Inner Monad
546− -- * Transform Inner Monad
562− , iterateMapLeftsWith
564− -- * Concurrency Control
@@ -598,11 +28,3 @@ import Streamly.Internal.Data.Stream.IsStream.Lift
598import Streamly.Internal.Data.Stream.IsStream.Nesting
28import Streamly.Internal.Data.Stream.IsStream.Nesting
599import Streamly.Internal.Data.Stream.IsStream.Transform
29import Streamly.Internal.Data.Stream.IsStream.Transform
600import Streamly.Internal.Data.Stream.IsStream.Types
30import Streamly.Internal.Data.Stream.IsStream.Types
602−import Prelude hiding
603− ( filter, drop, dropWhile, take, takeWhile, zipWith, foldr
604− , foldl, map, mapM, mapM_, sequence, all, any, sum, product, elem
605− , notElem, maximum, minimum, head, last, tail, length, null
606− , reverse, iterate, init, and, or, lookup, foldr1, (!!)
607− , scanl, scanl1, replicate, concatMap, span, splitAt, break
608− , repeat, concat, mconcat)