on master help sign in
Reduce Internal module imports from streamly-core package (#1830)
b1eb9c4Ranjeet Ranjan
src/Streamly/Internal/Console/Stdio.hs+2−2
@@ -47,9 +47,9 @@ import Streamly.Internal.Data.Stream (Stream)
47import Streamly.Internal.Data.Unfold (Unfold)
47import Streamly.Internal.Data.Unfold (Unfold)
48import Streamly.Internal.Data.Fold (Fold)
48import Streamly.Internal.Data.Fold (Fold)
49
49
50−import qualified Streamly.Internal.Data.Array.Unboxed as Array
50+import qualified Streamly.Data.Array.Unboxed as Array (fromList)
51+import qualified Streamly.Data.Unfold as Unfold (lmap)
51import qualified Streamly.Internal.Data.Stream.IsStream as Stream
52import qualified Streamly.Internal.Data.Stream.IsStream as Stream
52−import qualified Streamly.Internal.Data.Unfold as Unfold
53import qualified Streamly.Internal.FileSystem.Handle as Handle
53import qualified Streamly.Internal.FileSystem.Handle as Handle
54import qualified Streamly.Internal.Unicode.Stream as Unicode
54import qualified Streamly.Internal.Unicode.Stream as Unicode
55
55
src/Streamly/Internal/Data/Array/Stream/Foreign.hs+17−7
@@ -64,11 +64,11 @@ import GHC.Exts (SpecConstrAnnotation(..))
64import GHC.Types (SPEC(..))
64import GHC.Types (SPEC(..))
65import Prelude hiding (null, last, (!!), read, concat, unlines)
65import Prelude hiding (null, last, (!!), read, concat, unlines)
66
66
67+import Streamly.Data.Fold (Fold)
68+import Streamly.Data.Stream (Stream)
67import Streamly.Internal.Data.Array.Unboxed.Type (Array(..))
69import Streamly.Internal.Data.Array.Unboxed.Type (Array(..))
68import Streamly.Internal.Data.Array.Stream.Fold.Foreign (ArrayFold(..))
70import Streamly.Internal.Data.Array.Stream.Fold.Foreign (ArrayFold(..))
69−import Streamly.Internal.Data.Fold.Type (Fold(..))
70import Streamly.Internal.Data.Parser (ParseError(..))
71import Streamly.Internal.Data.Parser (ParseError(..))
71−import Streamly.Internal.Data.Stream (Stream)
72import Streamly.Internal.Data.Stream.IsStream.Type
72import Streamly.Internal.Data.Stream.IsStream.Type
73 (IsStream, fromStreamD, toStreamD)
73 (IsStream, fromStreamD, toStreamD)
74import Streamly.Internal.Data.SVar (adaptState, defState)
74import Streamly.Internal.Data.SVar (adaptState, defState)
@@ -76,6 +76,7 @@ import Streamly.Internal.Data.Array.Unboxed.Mut.Type
76 (allocBytesToElemCount)
76 (allocBytesToElemCount)
77import Streamly.Internal.Data.Tuple.Strict (Tuple'(..))
77import Streamly.Internal.Data.Tuple.Strict (Tuple'(..))
78
78
79+import qualified Streamly.Data.Fold as FL
79import qualified Streamly.Internal.Data.Array.Unboxed as A
80import qualified Streamly.Internal.Data.Array.Unboxed as A
80import qualified Streamly.Internal.Data.Array.Unboxed as Array
81import qualified Streamly.Internal.Data.Array.Unboxed as Array
81-- import qualified Streamly.Internal.Data.Array.Stream.Fold.Foreign
82-- import qualified Streamly.Internal.Data.Array.Stream.Fold.Foreign
@@ -84,12 +85,21 @@ import qualified Streamly.Internal.Data.Array.Unboxed.Type as A
84import qualified Streamly.Internal.Data.Array.Unboxed.Mut.Type as MA
85import qualified Streamly.Internal.Data.Array.Unboxed.Mut.Type as MA
85import qualified Streamly.Internal.Data.Array.Stream.Mut.Foreign as AS
86import qualified Streamly.Internal.Data.Array.Stream.Mut.Foreign as AS
86import qualified Streamly.Internal.Data.Fold.Type as FL
87import qualified Streamly.Internal.Data.Fold.Type as FL
88+ (Fold(..), Step(..))
87import qualified Streamly.Internal.Data.Parser as PR
89import qualified Streamly.Internal.Data.Parser as PR
88import qualified Streamly.Internal.Data.Parser.ParserD as PRD
90import qualified Streamly.Internal.Data.Parser.ParserD as PRD
91+ (Parser(..), Initial(..), fromParserK)
89import qualified Streamly.Internal.Data.Stream.IsStream as S
92import qualified Streamly.Internal.Data.Stream.IsStream as S
90import qualified Streamly.Internal.Data.Stream.StreamD as D
93import qualified Streamly.Internal.Data.Stream.StreamD as D
94+ ( fromList, nil, cons, map
95+ , unfoldMany, append, splitInnerBy, splitInnerBySuffix
96+ )
97+import qualified Streamly.Internal.Data.Stream.StreamD.Type as D
98+ (Step(Yield, Stop, Skip), Stream(Stream))
91−import qualified Streamly.Internal.Data.Stream.StreamK as K
99+import qualified Streamly.Internal.Data.Stream.StreamK.Type as K
100+ (Stream, cons, nil, fromPure, foldStream)
92−import qualified Streamly.Internal.Data.Stream.Type as Stream
101+import qualified Streamly.Internal.Data.Stream as Stream
102+ (fromStreamK, toStreamK)
93
103
94-- XXX Since these are immutable arrays MonadIO constraint can be removed from
104-- XXX Since these are immutable arrays MonadIO constraint can be removed from
95-- most places.
105-- most places.
@@ -319,7 +329,7 @@ splitOnSuffix byte s =
319{-# INLINE_NORMAL foldBreakD #-}
329{-# INLINE_NORMAL foldBreakD #-}
320foldBreakD :: forall m a b. (MonadIO m, Unboxed a) =>
330foldBreakD :: forall m a b. (MonadIO m, Unboxed a) =>
321 Fold m a b -> D.Stream m (Array a) -> m (b, D.Stream m (Array a))
331 Fold m a b -> D.Stream m (Array a) -> m (b, D.Stream m (Array a))
322−foldBreakD (Fold fstep initial extract) stream@(D.Stream step state) = do
332+foldBreakD (FL.Fold fstep initial extract) stream@(D.Stream step state) = do
323 res <- initial
333 res <- initial
324 case res of
334 case res of
325 FL.Partial fs -> go SPEC state fs
335 FL.Partial fs -> go SPEC state fs
@@ -355,7 +365,7 @@ foldBreakD (Fold fstep initial extract) stream@(D.Stream step state) = do
355{-# INLINE_NORMAL foldBreakK #-}
365{-# INLINE_NORMAL foldBreakK #-}
356foldBreakK :: forall m a b. (MonadIO m, Unboxed a) =>
366foldBreakK :: forall m a b. (MonadIO m, Unboxed a) =>
357 Fold m a b -> K.Stream m (Array a) -> m (b, K.Stream m (Array a))
367 Fold m a b -> K.Stream m (Array a) -> m (b, K.Stream m (Array a))
358−foldBreakK (Fold fstep initial extract) stream = do
368+foldBreakK (FL.Fold fstep initial extract) stream = do
359 res <- initial
369 res <- initial
360 case res of
370 case res of
361 FL.Partial fs -> go fs stream
371 FL.Partial fs -> go fs stream
@@ -395,7 +405,7 @@ foldBreakK (Fold fstep initial extract) stream = do
395{-# INLINE_NORMAL foldBreak #-}
405{-# INLINE_NORMAL foldBreak #-}
396foldBreak ::
406foldBreak ::
397 (MonadIO m, Unboxed a)
407 (MonadIO m, Unboxed a)
398− => FL.Fold m a b
408+ => Fold m a b
399 -> Stream m (A.Array a)
409 -> Stream m (A.Array a)
400 -> m (b, Stream m (A.Array a))
410 -> m (b, Stream m (A.Array a))
401-- foldBreak f s = fmap fromStreamD <$> foldBreakD f (toStreamD s)
411-- foldBreak f s = fmap fromStreamD <$> foldBreakD f (toStreamD s)
src/Streamly/Internal/Data/Binary/Decode.hs+4
@@ -31,9 +31,13 @@ import Streamly.Internal.Data.Parser (Parser)
31import Streamly.Internal.Data.Maybe.Strict (Maybe'(..))
31import Streamly.Internal.Data.Maybe.Strict (Maybe'(..))
32import Streamly.Internal.Data.Tuple.Strict (Tuple' (..))
32import Streamly.Internal.Data.Tuple.Strict (Tuple' (..))
33
33
34+import qualified Streamly.Data.Array.Unboxed as A
34import qualified Streamly.Internal.Data.Array.Unboxed as A
35import qualified Streamly.Internal.Data.Array.Unboxed as A
36+ (unsafeIndex, castUnsafe)
35import qualified Streamly.Internal.Data.Parser as PR
37import qualified Streamly.Internal.Data.Parser as PR
38+ (fromPure, either, satisfy, takeEQ)
36import qualified Streamly.Internal.Data.Parser.ParserD as PRD
39import qualified Streamly.Internal.Data.Parser.ParserD as PRD
40+ (Parser(..), Initial(..), Step(..), toParserK)
37
41
38-- | A value of type '()' is encoded as @0@ in binary encoding.
42-- | A value of type '()' is encoded as @0@ in binary encoding.
39--
43--
src/Streamly/Internal/Data/Fold/Async.hs+2−2
@@ -21,11 +21,11 @@ import Control.Concurrent.MVar (MVar, newMVar, swapMVar, readMVar)
21import Control.Exception (SomeException(..), catch, mask)
21import Control.Exception (SomeException(..), catch, mask)
22import Control.Monad (void)
22import Control.Monad (void)
23import Control.Monad.IO.Class (MonadIO(..))
23import Control.Monad.IO.Class (MonadIO(..))
24+import Streamly.Data.Fold (many)
25+import Streamly.Internal.Data.Fold.Type (Fold(..), Step (..))
24import Streamly.Internal.Control.Concurrent (MonadAsync, withRunInIO)
26import Streamly.Internal.Control.Concurrent (MonadAsync, withRunInIO)
25import Streamly.Internal.Data.Tuple.Strict (Tuple3'(..))
27import Streamly.Internal.Data.Tuple.Strict (Tuple3'(..))
26
28
27−import Streamly.Internal.Data.Fold.Type
28−
29-- $setup
29-- $setup
30-- >>> :m
30-- >>> :m
31-- >>> :set -XFlexibleContexts
31-- >>> :set -XFlexibleContexts
src/Streamly/Internal/Data/Fold/SVar.hs+1−1
@@ -20,7 +20,7 @@ import Control.Monad (void)
20import Control.Monad.IO.Class (MonadIO(liftIO))
20import Control.Monad.IO.Class (MonadIO(liftIO))
21import Streamly.Internal.Data.Fold.Type (Fold(..))
21import Streamly.Internal.Data.Fold.Type (Fold(..))
22
22
23−import qualified Streamly.Internal.Data.Fold.Type as FL
23+import qualified Streamly.Internal.Data.Fold.Type as FL (Step(Done, Partial))
24
24
25import Streamly.Internal.Data.SVar
25import Streamly.Internal.Data.SVar
26
26
src/Streamly/Internal/Data/SmallArray.hs+6−5
@@ -48,17 +48,18 @@ import Control.Monad.IO.Class (MonadIO, liftIO)
48import GHC.IO (unsafePerformIO)
48import GHC.IO (unsafePerformIO)
49import Data.Functor.Identity (runIdentity)
49import Data.Functor.Identity (runIdentity)
50
50
51−import Streamly.Internal.Data.SmallArray.Type
51+import Streamly.Data.Fold (Fold)
52−
52+import Streamly.Data.Stream (Stream)
53import Streamly.Internal.Data.Tuple.Strict (Tuple'(..))
53import Streamly.Internal.Data.Tuple.Strict (Tuple'(..))
54import Streamly.Internal.Data.Unfold.Type (Unfold(..))
54import Streamly.Internal.Data.Unfold.Type (Unfold(..))
55−import Streamly.Internal.Data.Fold.Type (Fold(..))
56−import Streamly.Internal.Data.Stream.Type (Stream)
57
55
58import qualified Streamly.Internal.Data.Stream.StreamD as D
56import qualified Streamly.Internal.Data.Stream.StreamD as D
59import qualified Streamly.Internal.Data.Fold.Type as FL
57import qualified Streamly.Internal.Data.Fold.Type as FL
58+ (Fold (..), Step (Done, Partial))
60import qualified Streamly.Internal.Data.Stream.Type as Stream
59import qualified Streamly.Internal.Data.Stream.Type as Stream
61
60
61+import Streamly.Internal.Data.SmallArray.Type
62+
62{-# NOINLINE bottomElement #-}
63{-# NOINLINE bottomElement #-}
63bottomElement :: a
64bottomElement :: a
64bottomElement = undefined
65bottomElement = undefined
@@ -106,7 +107,7 @@ foldr f z arr = runIdentity $ D.foldr f z $ toStreamD arr
106-- of elements use an 'Array' from either "Streamly.Data.Array" or "Streamly.Data.Array.Foreign".
107-- of elements use an 'Array' from either "Streamly.Data.Array" or "Streamly.Data.Array.Foreign".
107{-# INLINE_NORMAL writeN #-}
108{-# INLINE_NORMAL writeN #-}
108writeN :: MonadIO m => Int -> Fold m a (SmallArray a)
109writeN :: MonadIO m => Int -> Fold m a (SmallArray a)
109−writeN len = Fold step initial extract
110+writeN len = FL.Fold step initial extract
110
111
111 where
112 where
112
113
src/Streamly/Internal/Data/Stream/Ahead.hs+4−1
@@ -54,8 +54,11 @@ import Streamly.Internal.Control.Concurrent
54import Streamly.Internal.Data.Stream.StreamK.Type (Stream)
54import Streamly.Internal.Data.Stream.StreamK.Type (Stream)
55
55
56import qualified Streamly.Internal.Data.Stream.StreamK.Type as K
56import qualified Streamly.Internal.Data.Stream.StreamK.Type as K
57+ (foldStreamShared, cons, mkStream, foldStream, fromEffect
58+ , nil, concatMapWith, fromPure, bindWith, withLocal)
57import qualified Streamly.Internal.Data.Stream.StreamD.Type as D
59import qualified Streamly.Internal.Data.Stream.StreamD.Type as D
60+ (mapM, fromStreamK, toStreamK)
58−import qualified Streamly.Internal.Data.Stream.Type as Stream
61+import qualified Streamly.Internal.Data.Stream as Stream (toStreamK)
59
62
60import Streamly.Internal.Data.Stream.SVar.Generate
63import Streamly.Internal.Data.Stream.SVar.Generate
61import Streamly.Internal.Data.SVar
64import Streamly.Internal.Data.SVar
src/Streamly/Internal/Data/Stream/Async.hs+4−2
@@ -65,10 +65,12 @@ import Streamly.Internal.Data.Stream.StreamK.Type (Stream)
65import Streamly.Internal.Data.Stream.SVar.Generate (fromSVar, fromSVarD)
65import Streamly.Internal.Data.Stream.SVar.Generate (fromSVar, fromSVarD)
66
66
67import qualified Streamly.Internal.Data.Stream.StreamK.Type as K
67import qualified Streamly.Internal.Data.Stream.StreamK.Type as K
68+ (foldStreamShared, mkStream, foldStream, fromEffect
69+ , nil, concatMapWith, fromPure, bindWith, withLocal)
68import qualified Streamly.Internal.Data.Stream.StreamD.Type as D
70import qualified Streamly.Internal.Data.Stream.StreamD.Type as D
71+ (Stream(..), Step(..), mapM, toStreamK, fromStreamK)
69−import qualified Streamly.Internal.Data.Stream.Type as Stream
72+import qualified Streamly.Internal.Data.Stream as Stream (toStreamK)
70
73
71−import Streamly.Internal.Data.SVar.Type
72import Streamly.Internal.Data.SVar
74import Streamly.Internal.Data.SVar
73
75
74#include "Instances.hs"
76#include "Instances.hs"
src/Streamly/Internal/Data/Stream/IsStream/Common.hs+6−1
@@ -80,13 +80,18 @@ import Streamly.Internal.Data.Time.Units (AbsTime, RelTime64, addToAbsTime64)
80import Streamly.Internal.System.IO (defaultChunkSize)
80import Streamly.Internal.System.IO (defaultChunkSize)
81import Streamly.Internal.Data.Unboxed (Unboxed)
81import Streamly.Internal.Data.Unboxed (Unboxed)
82
82
83+import qualified Streamly.Data.Stream as Stream (fold, foldBreak)
83import qualified Streamly.Internal.Data.Array.Unboxed.Type as A
84import qualified Streamly.Internal.Data.Array.Unboxed.Type as A
84import qualified Streamly.Internal.Data.Stream.Async as Async
85import qualified Streamly.Internal.Data.Stream.Async as Async
85import qualified Streamly.Internal.Data.Stream.IsStream.Type as IsStream
86import qualified Streamly.Internal.Data.Stream.IsStream.Type as IsStream
86import qualified Streamly.Internal.Data.Stream.Parallel as Par
87import qualified Streamly.Internal.Data.Stream.Parallel as Par
87import qualified Streamly.Internal.Data.Stream.StreamK.Type as K
88import qualified Streamly.Internal.Data.Stream.StreamK.Type as K
89+ (fromPure, fromEffect, repeatMWith, reverse)
88import qualified Streamly.Internal.Data.Stream.StreamD as D
90import qualified Streamly.Internal.Data.Stream.StreamD as D
89−import qualified Streamly.Internal.Data.Stream as Stream
91+ (repeatM, times, foldContinue, map, scanlMAfter', postscanlMAfter'
92+ , postscanlM', take, takeWhile, takeEndBy, drop, findIndices
93+ , fromStreamK, toStreamK, concatMapM, concatMap, foldManyPost, splitOnSeq
94+ , zipWithM, zipWith, intersperseM, reverse)
90
95
91import Prelude hiding (take, takeWhile, drop, reverse, concatMap, map, zipWith)
96import Prelude hiding (take, takeWhile, drop, reverse, concatMap, map, zipWith)
92
97
src/Streamly/Internal/Data/Stream/IsStream/Eliminate.hs+7−1
@@ -166,12 +166,18 @@ import Streamly.Internal.Data.Stream.IsStream.Type
166import Streamly.Internal.Data.Stream.Serial (SerialT)
166import Streamly.Internal.Data.Stream.Serial (SerialT)
167import Streamly.Internal.Data.Unboxed (Unboxed)
167import Streamly.Internal.Data.Unboxed (Unboxed)
168
168
169−import qualified Streamly.Internal.Data.Array.Unboxed.Type as A
169+import qualified Streamly.Data.Array.Unboxed as A
170+import qualified Streamly.Data.Stream as Stream
170import qualified Streamly.Internal.Data.Fold as FL
171import qualified Streamly.Internal.Data.Fold as FL
171import qualified Streamly.Internal.Data.Stream.IsStream.Type as IsStream
172import qualified Streamly.Internal.Data.Stream.IsStream.Type as IsStream
172import qualified Streamly.Internal.Data.Stream.StreamD as D
173import qualified Streamly.Internal.Data.Stream.StreamD as D
174+ (foldr1, foldlT, foldlM', mapM_, null, head, headElse, last, elem
175+ , notElem, all, any, minimum, minimumBy, maximum, maximumBy, the, lookup
176+ , find, findM, toListRev, isPrefixOf, isSubsequenceOf, stripPrefix, (!!))
173import qualified Streamly.Internal.Data.Stream.StreamK.Type as K
177import qualified Streamly.Internal.Data.Stream.StreamK.Type as K
178+ (uncons, foldlS, tail, init)
174import qualified Streamly.Internal.Data.Stream as Stream
179import qualified Streamly.Internal.Data.Stream as Stream
180+ (foldr, toStreamK, parseK, parseD, parseBreakD, foldrM, stripSuffix)
175import qualified System.IO as IO
181import qualified System.IO as IO
176
182
177import Prelude hiding
183import Prelude hiding
src/Streamly/Internal/Data/Stream/IsStream/Enumeration.hs+11−1
@@ -63,7 +63,17 @@ import Data.Functor.Identity (Identity(..))
63import Streamly.Internal.Data.Stream.IsStream.Type (IsStream(..), fromStreamD)
63import Streamly.Internal.Data.Stream.IsStream.Type (IsStream(..), fromStreamD)
64
64
65import qualified Streamly.Internal.Data.Stream.IsStream.Type as IsStream
65import qualified Streamly.Internal.Data.Stream.IsStream.Type as IsStream
66−import qualified Streamly.Internal.Data.Stream.StreamD.Generate as D
66+import qualified Streamly.Internal.Data.Stream.StreamD as D
67+ ( enumerateFromNum
68+ , enumerateFromThenNum
69+ , enumerateFromThenToIntegral
70+ , enumerateFromThenIntegral
71+ , enumerateFromStepIntegral
72+ , enumerateFromToIntegral
73+ , enumerateFromIntegral
74+ , enumerateFromToFractional
75+ , enumerateFromThenToFractional
76+ )
67import qualified Streamly.Internal.Data.Stream.Serial as Serial (map)
77import qualified Streamly.Internal.Data.Stream.Serial as Serial (map)
68
78
69-- $setup
79-- $setup
src/Streamly/Internal/Data/Stream/IsStream/Exception.hs+13−1
@@ -30,7 +30,19 @@ import Streamly.Internal.Control.Concurrent (MonadRunInIO, MonadAsync)
30import Streamly.Internal.Data.Stream.IsStream.Type
30import Streamly.Internal.Data.Stream.IsStream.Type
31 (IsStream(..), fromStreamD, toStreamD)
31 (IsStream(..), fromStreamD, toStreamD)
32
32
33−import qualified Streamly.Internal.Data.Stream.StreamD as D
33+import qualified Streamly.Internal.Data.Stream.StreamD.Exception as D
34+ ( before
35+ , after_
36+ , after
37+ , onException
38+ , bracket_
39+ , bracket'
40+ , finally_
41+ , finally
42+ , ghandle
43+ , handle
44+ , retry
45+ )
34
46
35-- $setup
47-- $setup
36-- >>> :m
48-- >>> :m
src/Streamly/Internal/Data/Stream/IsStream/Expand.hs+6−1
@@ -171,14 +171,19 @@ import Streamly.Internal.Data.Stream.IsStream.Common
171 , zipWith, zipWithM)
171 , zipWith, zipWithM)
172import Streamly.Internal.Data.Stream.IsStream.Type
172import Streamly.Internal.Data.Stream.IsStream.Type
173 (IsStream(..), fromStreamD, toStreamD)
173 (IsStream(..), fromStreamD, toStreamD)
174−import Streamly.Internal.Data.Unfold.Type (Unfold)
174+import Streamly.Data.Unfold (Unfold)
175
175
176import qualified Streamly.Internal.Data.Stream.IsStream.Type as IsStream
176import qualified Streamly.Internal.Data.Stream.IsStream.Type as IsStream
177import qualified Streamly.Internal.Data.Stream.Parallel as Par
177import qualified Streamly.Internal.Data.Stream.Parallel as Par
178import qualified Streamly.Internal.Data.Stream.WSerial as WSerial
178import qualified Streamly.Internal.Data.Stream.WSerial as WSerial
179import qualified Streamly.Internal.Data.Stream.StreamD as D
179import qualified Streamly.Internal.Data.Stream.StreamD as D
180+ (append, interleave, interleaveSuffix, interleaveInfix, interleaveMin
181+ , roundRobin, mergeByM, unfoldMany, unfoldManyInterleave, intersperse
182+ , unfoldManyRoundRobin, interpose, interposeSuffix, gintercalate
183+ , gintercalateSuffix, intersperseSuffix)
180import qualified Streamly.Internal.Data.Stream.StreamK as K (mergeBy, mergeByM)
184import qualified Streamly.Internal.Data.Stream.StreamK as K (mergeBy, mergeByM)
181import qualified Streamly.Internal.Data.Stream.StreamK.Type as K
185import qualified Streamly.Internal.Data.Stream.StreamK.Type as K
186+ (interleave, serial, concatPairsWith)
182import qualified Streamly.Internal.Data.Stream.ZipAsync as ZipAsync
187import qualified Streamly.Internal.Data.Stream.ZipAsync as ZipAsync
183
188
184import Prelude hiding (concat, concatMap, zipWith)
189import Prelude hiding (concat, concatMap, zipWith)
src/Streamly/Internal/Data/Stream/IsStream/Generate.hs+8−2
@@ -107,12 +107,18 @@ import Streamly.Internal.Data.Time.Units (AbsTime , RelTime64, addToAbsTime64)
107import Streamly.Internal.Data.Unboxed (Unboxed)
107import Streamly.Internal.Data.Unboxed (Unboxed)
108
108
109import qualified Streamly.Internal.Data.IORef.Unboxed as Unboxed
109import qualified Streamly.Internal.Data.IORef.Unboxed as Unboxed
110+ (toStreamD, IORef)
110import qualified Streamly.Internal.Data.Stream.IsStream.Type as IsStream
111import qualified Streamly.Internal.Data.Stream.IsStream.Type as IsStream
111import qualified Streamly.Internal.Data.Stream.Parallel as Par
112import qualified Streamly.Internal.Data.Stream.Parallel as Par
112import qualified Streamly.Internal.Data.Stream.Serial as Serial
113import qualified Streamly.Internal.Data.Stream.Serial as Serial
113−import qualified Streamly.Internal.Data.Stream.StreamD.Generate as D
114+import qualified Streamly.Internal.Data.Stream.StreamD as D
115+ (unfold, unfoldr, toStreamK, unfoldr, repeat, replicate, replicateM
116+ , fromIndices, fromIndicesM, iterate, iterateM, toStreamK, fromListM
117+ , fromListM)
114import qualified Streamly.Internal.Data.Stream.StreamK.Type as K
118import qualified Streamly.Internal.Data.Stream.StreamK.Type as K
119+ (unfoldr, unfoldrMWith, replicateMWith, fromIndicesMWith, iterateMWith
120+ , mfix, fromFoldable, fromFoldableM)
115−import qualified Streamly.Internal.Data.Stream.Type as Stream
121+import qualified Streamly.Internal.Data.Stream.Type as Stream (fromStreamK)
116import qualified System.IO as IO
122import qualified System.IO as IO
117
123
118import Prelude hiding (iterate, replicate, repeat)
124import Prelude hiding (iterate, replicate, repeat)
src/Streamly/Internal/Data/Stream/IsStream/Lift.hs+1
@@ -33,6 +33,7 @@ import Streamly.Internal.Data.Stream.IsStream.Type
33import Streamly.Internal.Data.Stream.Serial (SerialT)
33import Streamly.Internal.Data.Stream.Serial (SerialT)
34
34
35import qualified Streamly.Internal.Data.Stream.StreamD as D
35import qualified Streamly.Internal.Data.Stream.StreamD as D
36+ (hoist, liftInner, runReaderT, evalStateT, runStateT)
36
37
37------------------------------------------------------------------------------
38------------------------------------------------------------------------------
38-- Generalize the underlying monad
39-- Generalize the underlying monad
src/Streamly/Internal/Data/Stream/IsStream/Reduce.hs+17
@@ -182,11 +182,28 @@ import Streamly.Internal.Data.Unboxed (Unboxed)
182import qualified Data.Heap as H
182import qualified Data.Heap as H
183import qualified Streamly.Data.Unfold as Unfold
183import qualified Streamly.Data.Unfold as Unfold
184import qualified Streamly.Internal.Data.Array.Unboxed.Type as A
184import qualified Streamly.Internal.Data.Array.Unboxed.Type as A
185+ (arraysOf, toStream)
185import qualified Streamly.Internal.Data.Fold as FL
186import qualified Streamly.Internal.Data.Fold as FL
187+ (Fold, Step(..), takeEndBy_, takeEndBy, catMaybes, take)
186import qualified Streamly.Internal.Data.IsMap as IsMap
188import qualified Streamly.Internal.Data.IsMap as IsMap
187import qualified Streamly.Internal.Data.Parser.ParserD as PRD
189import qualified Streamly.Internal.Data.Parser.ParserD as PRD
190+ (Parser(..), fromParserK)
188import qualified Streamly.Internal.Data.Stream.IsStream.Type as IsStream
191import qualified Streamly.Internal.Data.Stream.IsStream.Type as IsStream
189import qualified Streamly.Internal.Data.Stream.StreamD as D
192import qualified Streamly.Internal.Data.Stream.StreamD as D
193+ ( foldMany
194+ , chunksOf
195+ , refoldMany
196+ , foldIterateM
197+ , refoldIterateM
198+ , parseMany
199+ , parseIterate
200+ , groupsBy
201+ , groupsRollingBy
202+ , wordsBy
203+ , splitOnSuffixSeq
204+ , splitInnerBy
205+ , splitInnerBySuffix
206+ )
190import qualified Streamly.Internal.Data.Stream.IsStream.Expand as Expand
207import qualified Streamly.Internal.Data.Stream.IsStream.Expand as Expand
191import qualified Streamly.Internal.Data.Stream.IsStream.Transform as Transform
208import qualified Streamly.Internal.Data.Stream.IsStream.Transform as Transform
192
209
src/Streamly/Internal/Data/Stream/IsStream/Top.hs+4−2
@@ -67,10 +67,12 @@ import Streamly.Internal.Data.Time.Units (NanoSecond64(..), toRelTime64)
67
67
68import qualified Data.List as List
68import qualified Data.List as List
69import qualified Data.Map.Strict as Map
69import qualified Data.Map.Strict as Map
70−import qualified Streamly.Internal.Data.Array as Array
70+import qualified Streamly.Internal.Data.Array as Array (fromStream, toStream)
71−import qualified Streamly.Internal.Data.Array.Unboxed.Mut.Type as MA
71+import qualified Streamly.Data.Array.Unboxed.Mut as MA
72import qualified Streamly.Internal.Data.Fold as Fold
72import qualified Streamly.Internal.Data.Fold as Fold
73+ (head, last, toStream, toStreamRev)
73import qualified Streamly.Internal.Data.Parser as Parser
74import qualified Streamly.Internal.Data.Parser as Parser
75+ (groupByRollingEither)
74import qualified Streamly.Internal.Data.Stream.IsStream.Lift as Stream
76import qualified Streamly.Internal.Data.Stream.IsStream.Lift as Stream
75import qualified Streamly.Internal.Data.Stream.IsStream.Eliminate as Stream
77import qualified Streamly.Internal.Data.Stream.IsStream.Eliminate as Stream
76import qualified Streamly.Internal.Data.Stream.IsStream.Generate as Stream
78import qualified Streamly.Internal.Data.Stream.IsStream.Generate as Stream
src/Streamly/Internal/Data/Stream/IsStream/Transform.hs+9−1
@@ -252,11 +252,19 @@ import Streamly.Internal.Data.Stream.Serial (SerialT)
252import Streamly.Internal.Data.SVar (Rate(..))
252import Streamly.Internal.Data.SVar (Rate(..))
253import Streamly.Internal.Data.Time.Units (TimeUnit64, AbsTime, RelTime64)
253import Streamly.Internal.Data.Time.Units (TimeUnit64, AbsTime, RelTime64)
254
254
255−import qualified Streamly.Internal.Data.Fold as FL
255+import qualified Streamly.Data.Fold as FL
256import qualified Streamly.Internal.Data.Stream.Parallel as Par
256import qualified Streamly.Internal.Data.Stream.Parallel as Par
257import qualified Streamly.Internal.Data.Stream.Serial as Serial
257import qualified Streamly.Internal.Data.Stream.Serial as Serial
258import qualified Streamly.Internal.Data.Stream.StreamD as D
258import qualified Streamly.Internal.Data.Stream.StreamD as D
259+ (transform, foldrT, tap, tapOffsetEvery, pollCounts, mapM, scanOnce
260+ , scanMany, postscanOnce, scanlx', scanlM', scanl', postscanl', prescanl'
261+ , prescanlM', scanl1M', scanl1', filter, filterM, uniq, deleteBy, takeWhileM
262+ , takeByTime, dropWhile, dropWhileM, dropByTime, insertBy, intersperse
263+ , intersperseM_, intersperseSuffix, intersperseSuffix_
264+ , intersperseSuffixBySpan, indexed, indexedR, rollingMap, rollingMapM
265+ , rollingMap2, mapMaybe, mapMaybeM)
259import qualified Streamly.Internal.Data.Stream.StreamK.Type as K
266import qualified Streamly.Internal.Data.Stream.StreamK.Type as K
267+ (foldrS, foldrSShared, mapMWith)
260import qualified Prelude
268import qualified Prelude
261
269
262import Prelude hiding
270import Prelude hiding
src/Streamly/Internal/Data/Stream/IsStream/Type.hs+9−1
@@ -118,8 +118,16 @@ import qualified Streamly.Internal.Data.Stream.Parallel as Parallel
118import qualified Streamly.Internal.Data.Stream.Serial as Serial
118import qualified Streamly.Internal.Data.Stream.Serial as Serial
119import qualified Streamly.Internal.Data.Stream.WSerial as WSerial
119import qualified Streamly.Internal.Data.Stream.WSerial as WSerial
120import qualified Streamly.Internal.Data.Stream.StreamD.Type as D
120import qualified Streamly.Internal.Data.Stream.StreamD.Type as D
121+ (Stream(..), toStreamK, fromStreamK
122+ , drain, eqBy, cmpBy, fromList, toList, foldrMx, foldlMx'
123+ , foldlx', foldl', fold)
121import qualified Streamly.Internal.Data.Stream.StreamK.Type as K
124import qualified Streamly.Internal.Data.Stream.StreamK.Type as K
125+ (Stream(..), cons, fromEffect
126+ , nil, fromPure, bindWith, drain
127+ , fromFoldable, consM, nilM, repeat)
128+import qualified Streamly.Data.Stream as Stream
122−import qualified Streamly.Internal.Data.Stream.Type as Stream
129+import qualified Streamly.Internal.Data.Stream as Stream
130+ (fromStreamK, toStreamK)
123import qualified Streamly.Internal.Data.Stream.Zip as Zip
131import qualified Streamly.Internal.Data.Stream.Zip as Zip
124import qualified Streamly.Internal.Data.Stream.ZipAsync as ZipAsync
132import qualified Streamly.Internal.Data.Stream.ZipAsync as ZipAsync
125
133
src/Streamly/Internal/Data/Stream/Parallel.hs+6−2
@@ -64,16 +64,20 @@ import Prelude hiding (map)
64
64
65import qualified Data.Set as Set
65import qualified Data.Set as Set
66
66
67+import Streamly.Data.Fold (Fold)
67import Streamly.Internal.Control.Concurrent (MonadAsync)
68import Streamly.Internal.Control.Concurrent (MonadAsync)
68−import Streamly.Internal.Data.Fold.Type (Fold)
69import Streamly.Internal.Data.Stream.StreamD.Type (Step(..))
69import Streamly.Internal.Data.Stream.StreamD.Type (Step(..))
70import Streamly.Internal.Data.Stream.StreamK.Type (Stream)
70import Streamly.Internal.Data.Stream.StreamK.Type (Stream)
71
71
72import qualified Streamly.Internal.Data.Stream.StreamK.Type as K
72import qualified Streamly.Internal.Data.Stream.StreamK.Type as K
73+ (foldStreamShared, mkStream, foldStream, fromEffect
74+ , nil, concatMapWith, fromPure, bindWith, withLocal)
73import qualified Streamly.Internal.Data.Stream.StreamD.Type as D
75import qualified Streamly.Internal.Data.Stream.StreamD.Type as D
76+ (Stream(..), mapM, toStreamK, fromStreamK)
74import qualified Streamly.Internal.Data.Stream.SVar.Generate as SVar
77import qualified Streamly.Internal.Data.Stream.SVar.Generate as SVar
75import qualified Streamly.Internal.Data.Stream.SVar.Eliminate as SVar
78import qualified Streamly.Internal.Data.Stream.SVar.Eliminate as SVar
76−import qualified Streamly.Internal.Data.Stream.Type as Stream
79+import qualified Streamly.Internal.Data.Stream as Stream
80+ (toStreamK, fromStreamK)
77
81
78import Streamly.Internal.Data.SVar
82import Streamly.Internal.Data.SVar
79
83
src/Streamly/Internal/Data/Stream/SVar/Eliminate.hs+4−1
@@ -36,12 +36,15 @@ import Streamly.Internal.Control.ForkLifted (doFork)
36import Streamly.Internal.Data.Atomics (atomicModifyIORefCAS_)
36import Streamly.Internal.Data.Atomics (atomicModifyIORefCAS_)
37import Streamly.Internal.Data.Fold.SVar (write, writeLimited)
37import Streamly.Internal.Data.Fold.SVar (write, writeLimited)
38import Streamly.Internal.Data.Fold.Type (Fold(..))
38import Streamly.Internal.Data.Fold.Type (Fold(..))
39−import Streamly.Internal.Data.Stream.Type (Stream)
39+import Streamly.Data.Stream (Stream)
40import Streamly.Internal.Data.Time.Clock (Clock(Monotonic), getTime)
40import Streamly.Internal.Data.Time.Clock (Clock(Monotonic), getTime)
41
41
42import qualified Streamly.Internal.Data.Stream.StreamD.Type as D
42import qualified Streamly.Internal.Data.Stream.StreamD.Type as D
43+ (Stream(..), Step(..), fold)
43import qualified Streamly.Internal.Data.Stream.StreamK.Type as K
44import qualified Streamly.Internal.Data.Stream.StreamK.Type as K
45+ (Stream(..), mkStream, foldStream, foldStreamShared, nilM)
44import qualified Streamly.Internal.Data.Stream.Type as Stream
46import qualified Streamly.Internal.Data.Stream.Type as Stream
47+ (fromStreamK, toStreamK)
45
48
46import Streamly.Internal.Data.SVar
49import Streamly.Internal.Data.SVar
47
50
src/Streamly/Internal/Data/Stream/SVar/Generate.hs+3−1
@@ -43,8 +43,10 @@ import Streamly.Internal.Data.Time.Clock (Clock(Monotonic), getTime)
43import System.Mem (performMajorGC)
43import System.Mem (performMajorGC)
44
44
45import qualified Streamly.Internal.Data.Stream.StreamD.Type as D
45import qualified Streamly.Internal.Data.Stream.StreamD.Type as D
46+ (Stream(..), Step(..))
46import qualified Streamly.Internal.Data.Stream.StreamK.Type as K
47import qualified Streamly.Internal.Data.Stream.StreamK.Type as K
48+ (Stream(..), foldStreamShared, mkStream, foldStream)
47−import qualified Streamly.Internal.Data.Stream.Type as Stream
49+import qualified Streamly.Internal.Data.Stream.Type as Stream (fromStreamK)
48
50
49import Streamly.Internal.Data.SVar
51import Streamly.Internal.Data.SVar
50
52
src/Streamly/Internal/Data/Stream/Serial.hs+3−2
@@ -38,8 +38,9 @@ where
38import Data.Semigroup (Semigroup(..))
38import Data.Semigroup (Semigroup(..))
39#endif
39#endif
40import GHC.Exts (IsList(..))
40import GHC.Exts (IsList(..))
41−import Streamly.Internal.Data.Stream (Stream)
41+import Streamly.Data.Stream (Stream)
42+
42−import qualified Streamly.Internal.Data.Stream as Stream
43+import qualified Streamly.Data.Stream as Stream
43
44
44import Prelude hiding (map)
45import Prelude hiding (map)
45
46
src/Streamly/Internal/Data/Stream/WSerial.hs+4−2
@@ -50,9 +50,11 @@ import Streamly.Internal.Data.Maybe.Strict (Maybe'(..), toMaybe)
50import Streamly.Internal.Data.Stream.StreamK.Type (Stream)
50import Streamly.Internal.Data.Stream.StreamK.Type (Stream)
51
51
52import qualified Streamly.Internal.Data.Stream.Common as P
52import qualified Streamly.Internal.Data.Stream.Common as P
53−import qualified Streamly.Internal.Data.Stream.StreamD.Generate as D
53+import qualified Streamly.Internal.Data.Stream.StreamD as D
54−import qualified Streamly.Internal.Data.Stream.StreamD.Type as D
54+ (fromStreamK, toStreamK, mapM)
55import qualified Streamly.Internal.Data.Stream.StreamK.Type as K
55import qualified Streamly.Internal.Data.Stream.StreamK.Type as K
56+ (cons, consM, nil, concatMapWith, fromPure, bindWith
57+ , withLocal, interleave, interleaveFst, interleaveMin)
56
58
57import Prelude hiding (map, mapM, repeat, filter)
59import Prelude hiding (map, mapM, repeat, filter)
58
60
src/Streamly/Internal/Data/Stream/ZipAsync.hs+4−3
@@ -27,13 +27,14 @@ import Data.Semigroup (Semigroup(..))
27import Streamly.Internal.Control.Concurrent (MonadAsync)
27import Streamly.Internal.Control.Concurrent (MonadAsync)
28import Streamly.Internal.Data.Stream.StreamK.Type (Stream)
28import Streamly.Internal.Data.Stream.StreamK.Type (Stream)
29
29
30−import qualified Streamly.Internal.Data.Stream.StreamK.Type as K
31import qualified Streamly.Internal.Data.Stream.StreamK as K
30import qualified Streamly.Internal.Data.Stream.StreamK as K
31+ (mkStream, foldStream, zipWithM, consM)
32−import qualified Streamly.Internal.Data.Stream.StreamD as D
32+import qualified Streamly.Internal.Data.Stream.StreamD as D (fromStreamK)
33import qualified Streamly.Internal.Data.Stream.Serial as Serial
33import qualified Streamly.Internal.Data.Stream.Serial as Serial
34import qualified Streamly.Internal.Data.Stream.SVar.Eliminate as SVar
34import qualified Streamly.Internal.Data.Stream.SVar.Eliminate as SVar
35import qualified Streamly.Internal.Data.Stream.SVar.Generate as SVar
35import qualified Streamly.Internal.Data.Stream.SVar.Generate as SVar
36−import qualified Streamly.Internal.Data.Stream.Type as Stream
36+import qualified Streamly.Internal.Data.Stream as Stream
37+ (fromStreamK, toStreamK)
37import Streamly.Internal.Data.SVar
38import Streamly.Internal.Data.SVar
38
39
39import Prelude hiding (map, repeat, zipWith, errorWithoutStackTrace)
40import Prelude hiding (map, repeat, zipWith, errorWithoutStackTrace)
src/Streamly/Internal/Data/Unfold/SVar.hs+1−5
@@ -24,16 +24,12 @@ import Streamly.Internal.Control.Concurrent (MonadAsync)
24import Streamly.Internal.Data.Stream.StreamD.Type (Step(..))
24import Streamly.Internal.Data.Stream.StreamD.Type (Step(..))
25import Streamly.Internal.Data.Time.Clock (Clock(Monotonic), getTime)
25import Streamly.Internal.Data.Time.Clock (Clock(Monotonic), getTime)
26import Streamly.Internal.Data.SVar (printSVar, cleanupSVar, sendStopToProducer)
26import Streamly.Internal.Data.SVar (printSVar, cleanupSVar, sendStopToProducer)
27+import Streamly.Internal.Data.Unfold.Type (Unfold(..))
27import System.Mem (performMajorGC)
28import System.Mem (performMajorGC)
28
29
29import qualified Control.Monad.Catch as MC
30import qualified Control.Monad.Catch as MC
30
31
31import Streamly.Internal.Data.SVar.Type
32import Streamly.Internal.Data.SVar.Type
32−import Streamly.Internal.Data.Unfold.Type
33−import Prelude
34− hiding (map, mapM, takeWhile, take, filter, const, zipWith
35− , drop, dropWhile, either)
36−
37-------------------------------------------------------------------------------
33-------------------------------------------------------------------------------
38-- Generation from SVar
34-- Generation from SVar
39-------------------------------------------------------------------------------
35-------------------------------------------------------------------------------
src/Streamly/Internal/FileSystem/Dir.hs+4−3
@@ -72,7 +72,8 @@ import Streamly.Internal.Data.Stream.IsStream.Type (IsStream)
72
72
73-- import qualified Streamly.Data.Fold as FL
73-- import qualified Streamly.Data.Fold as FL
74-- import qualified Streamly.Internal.Data.Fold.Type as FL
74-- import qualified Streamly.Internal.Data.Fold.Type as FL
75−import qualified Streamly.Internal.Data.Unfold as UF
75+import qualified Streamly.Data.Unfold as UF
76+import qualified Streamly.Internal.Data.Unfold as UF (mapM2)
76-- import qualified Streamly.Internal.Data.Array.Stream.Foreign as AS
77-- import qualified Streamly.Internal.Data.Array.Stream.Foreign as AS
77import qualified Streamly.Internal.Data.Stream.IsStream as S
78import qualified Streamly.Internal.Data.Stream.IsStream as S
78-- import qualified Streamly.Data.Array.Unboxed as A
79-- import qualified Streamly.Data.Array.Unboxed as A
@@ -239,7 +240,7 @@ readEither =
239--
240--
240{-# INLINE readFiles #-}
241{-# INLINE readFiles #-}
241readFiles :: MonadIO m => Unfold m String String
242readFiles :: MonadIO m => Unfold m String String
242−readFiles = UF.map (fromRight undefined) $ UF.filter isRight readEither
243+readFiles = fmap (fromRight undefined) $ UF.filter isRight readEither
243
244
244-- | Read directories only. Filter out "." and ".." entries.
245-- | Read directories only. Filter out "." and ".." entries.
245--
246--
@@ -247,7 +248,7 @@ readFiles = UF.map (fromRight undefined) $ UF.filter isRight readEither
247--
248--
248{-# INLINE readDirs #-}
249{-# INLINE readDirs #-}
249readDirs :: MonadIO m => Unfold m String String
250readDirs :: MonadIO m => Unfold m String String
250−readDirs = UF.map (fromLeft undefined) $ UF.filter isLeft readEither
251+readDirs = fmap (fromLeft undefined) $ UF.filter isLeft readEither
251
252
252-- | Raw read of a directory.
253-- | Raw read of a directory.
253--
254--
src/Streamly/Internal/FileSystem/Event/Linux.hs+2−1
@@ -182,8 +182,9 @@ import GHC.IO.Handle.FD (handleToFd)
182import qualified Data.IntMap.Lazy as Map
182import qualified Data.IntMap.Lazy as Map
183import qualified Data.List.NonEmpty as NonEmpty
183import qualified Data.List.NonEmpty as NonEmpty
184import qualified Streamly.Internal.Data.Array.Unboxed as A
184import qualified Streamly.Internal.Data.Array.Unboxed as A
185−import qualified Streamly.Internal.Data.Fold as FL
185+import qualified Streamly.Data.Fold as FL
186import qualified Streamly.Internal.Data.Parser as PR
186import qualified Streamly.Internal.Data.Parser as PR
187+ (takeEQ, fromEffect, fromFold)
187import qualified Streamly.Internal.Data.Stream.IsStream as S
188import qualified Streamly.Internal.Data.Stream.IsStream as S
188import qualified Streamly.Internal.FileSystem.Dir as Dir
189import qualified Streamly.Internal.FileSystem.Dir as Dir
189import qualified Streamly.Internal.FileSystem.Handle as FH
190import qualified Streamly.Internal.FileSystem.Handle as FH
src/Streamly/Internal/FileSystem/FD.hs+3−1
@@ -146,10 +146,12 @@ import qualified Streamly.Internal.System.IOVec.Type as RawIO
146-- import Streamly.String (encodeUtf8, decodeUtf8, foldLines)
146-- import Streamly.String (encodeUtf8, decodeUtf8, foldLines)
147
147
148import qualified Streamly.Data.Array.Unboxed as A
148import qualified Streamly.Data.Array.Unboxed as A
149−import qualified Streamly.Internal.Data.Array.Unboxed.Mut.Type as MArray
149+import qualified Streamly.Internal.Data.Array.Unboxed.Mut as MArray
150+ (Array(..), newPinnedArrayBytes, asPtrUnsafe)
150import qualified Streamly.Internal.Data.Array.Stream.Foreign as AS
151import qualified Streamly.Internal.Data.Array.Stream.Foreign as AS
151import qualified Streamly.Prelude as S
152import qualified Streamly.Prelude as S
152import qualified Streamly.Internal.Data.Stream.StreamD.Type as D
153import qualified Streamly.Internal.Data.Stream.StreamD.Type as D
154+ (Stream(..), Step(..))
153
155
154-------------------------------------------------------------------------------
156-------------------------------------------------------------------------------
155-- References
157-- References
src/Streamly/Internal/FileSystem/File.hs+8−6
@@ -94,19 +94,21 @@ import Prelude hiding (read)
94import qualified Control.Monad.Catch as MC
94import qualified Control.Monad.Catch as MC
95import qualified System.IO as SIO
95import qualified System.IO as SIO
96
96
97+import Streamly.Data.Fold (chunksOf)
97import Streamly.Internal.Control.Concurrent (MonadAsync)
98import Streamly.Internal.Control.Concurrent (MonadAsync)
98−import Streamly.Internal.Data.Fold.Type (Fold(..))
99−import Streamly.Internal.Data.Unfold.Type (Unfold(..))
100import Streamly.Internal.Data.Array.Unboxed.Type (Array(..), writeNUnsafe)
99import Streamly.Internal.Data.Array.Unboxed.Type (Array(..), writeNUnsafe)
100+import Streamly.Internal.Data.Fold.Type (Fold(..))
101import Streamly.Internal.Data.Stream.Type (Stream)
101import Streamly.Internal.Data.Stream.Type (Stream)
102import Streamly.Internal.Data.Stream.IsStream.Type (IsStream)
102import Streamly.Internal.Data.Stream.IsStream.Type (IsStream)
103−-- import Streamly.Data.Fold (Fold)
103+import Streamly.Internal.Data.Unfold.Type (Unfold(..))
104-- import Streamly.String (encodeUtf8, decodeUtf8, foldLines)
104-- import Streamly.String (encodeUtf8, decodeUtf8, foldLines)
105import Streamly.Internal.System.IO (defaultChunkSize)
105import Streamly.Internal.System.IO (defaultChunkSize)
106
106
107−import qualified Streamly.Internal.Data.Array.Unboxed as A
107+import qualified Streamly.Data.Array.Unboxed as A
108+import qualified Streamly.Data.Unfold as UF
108import qualified Streamly.Internal.Data.Fold.Type as FL
109import qualified Streamly.Internal.Data.Fold.Type as FL
110+ (Step(..), snoc, initialize)
109−import qualified Streamly.Internal.Data.Unfold as UF
111+import qualified Streamly.Internal.Data.Unfold as UF (bracket)
110import qualified Streamly.Internal.FileSystem.Handle as FH
112import qualified Streamly.Internal.FileSystem.Handle as FH
111import qualified Streamly.Internal.Data.Array.Stream.Foreign as AS
113import qualified Streamly.Internal.Data.Array.Stream.Foreign as AS
112import qualified Streamly.Internal.Data.Stream.IsStream as S
114import qualified Streamly.Internal.Data.Stream.IsStream as S
@@ -405,7 +407,7 @@ writeChunks path = Fold step initial extract
405writeWith :: (MonadIO m, MonadCatch m)
407writeWith :: (MonadIO m, MonadCatch m)
406 => Int -> FilePath -> Fold m Word8 ()
408 => Int -> FilePath -> Fold m Word8 ()
407writeWith n path =
409writeWith n path =
408− FL.chunksOf n (writeNUnsafe n) (writeChunks path)
410+ chunksOf n (writeNUnsafe n) (writeChunks path)
409
411
410-- > write = 'writeWith' A.defaultChunkSize
412-- > write = 'writeWith' A.defaultChunkSize
411--
413--
src/Streamly/Internal/FileSystem/Handle.hs+7−4
@@ -130,15 +130,18 @@ import Streamly.Internal.Data.Array.Stream.Foreign (lpackArraysChunksOf)
130-- import Streamly.String (encodeUtf8, decodeUtf8, foldLines)
130-- import Streamly.String (encodeUtf8, decodeUtf8, foldLines)
131import Streamly.Internal.System.IO (defaultChunkSize)
131import Streamly.Internal.System.IO (defaultChunkSize)
132
132
133−import qualified Streamly.Internal.Data.Array.Unboxed as A
133+import qualified Streamly.Data.Fold as FL
134+import qualified Streamly.Data.Array.Unboxed as A
134import qualified Streamly.Internal.Data.Array.Unboxed.Type as A
135import qualified Streamly.Internal.Data.Array.Unboxed.Type as A
136+ (byteLength, asPtrUnsafe)
135−import qualified Streamly.Internal.Data.Array.Unboxed.Mut.Type as MArray
137+import qualified Streamly.Internal.Data.Array.Unboxed.Mut as MArray
138+ (Array(..), newPinnedArrayBytes, asPtrUnsafe)
136import qualified Streamly.Internal.Data.Array.Stream.Foreign as AS
139import qualified Streamly.Internal.Data.Array.Stream.Foreign as AS
137import qualified Streamly.Internal.Data.Refold.Type as Refold
140import qualified Streamly.Internal.Data.Refold.Type as Refold
138−import qualified Streamly.Internal.Data.Fold as FL
141+import qualified Streamly.Internal.Data.Fold.Type as FL(refoldMany)
139−import qualified Streamly.Internal.Data.Fold.Type as FL
140import qualified Streamly.Internal.Data.Stream.IsStream as S
142import qualified Streamly.Internal.Data.Stream.IsStream as S
141import qualified Streamly.Internal.Data.Stream.StreamD.Type as D
143import qualified Streamly.Internal.Data.Stream.StreamD.Type as D
144+ (Stream(..), Step(..))
142import qualified Streamly.Internal.Data.Unfold as UF
145import qualified Streamly.Internal.Data.Unfold as UF
143
146
144-- $setup
147-- $setup
src/Streamly/Internal/Network/Inet/TCP.hs+5−2
@@ -117,10 +117,13 @@ import Streamly.Internal.System.IO (defaultChunkSize)
117import qualified Control.Monad.Catch as MC
117import qualified Control.Monad.Catch as MC
118import qualified Network.Socket as Net
118import qualified Network.Socket as Net
119
119
120−import qualified Streamly.Internal.Data.Unfold as UF
120+import qualified Streamly.Data.Array.Unboxed as A
121−import qualified Streamly.Internal.Data.Array.Unboxed as A
121+import qualified Streamly.Data.Fold as FL
122+import qualified Streamly.Data.Unfold as UF
123+import qualified Streamly.Internal.Data.Unfold as UF (bracket, first)
122import qualified Streamly.Internal.Data.Array.Stream.Foreign as AS
124import qualified Streamly.Internal.Data.Array.Stream.Foreign as AS
123import qualified Streamly.Internal.Data.Fold.Type as FL
125import qualified Streamly.Internal.Data.Fold.Type as FL
126+ (initialize, snoc, Step(..))
124import qualified Streamly.Internal.Data.Stream.IsStream as S
127import qualified Streamly.Internal.Data.Stream.IsStream as S
125import qualified Streamly.Internal.Network.Socket as ISK
128import qualified Streamly.Internal.Network.Socket as ISK
126
129
src/Streamly/Internal/Network/Socket.hs+8−4
@@ -101,14 +101,18 @@ import Streamly.Internal.Data.Unfold.Type (Unfold(..))
101-- import Streamly.String (encodeUtf8, decodeUtf8, foldLines)
101-- import Streamly.String (encodeUtf8, decodeUtf8, foldLines)
102import Streamly.Internal.System.IO (defaultChunkSize)
102import Streamly.Internal.System.IO (defaultChunkSize)
103
103
104−import qualified Streamly.Internal.Data.Array.Unboxed as A
104+import qualified Streamly.Data.Array.Unboxed as A (read, length, writeN)
105+import qualified Streamly.Data.Fold as FL
105import qualified Streamly.Internal.Data.Array.Unboxed.Type as A
106import qualified Streamly.Internal.Data.Array.Unboxed.Type as A
107+ (unsafeFreeze, asPtrUnsafe, byteLength, writeNUnsafe)
106−import qualified Streamly.Internal.Data.Array.Unboxed.Mut.Type as MArray
108+import qualified Streamly.Internal.Data.Array.Unboxed.Mut as MArray
109+ (Array(..), newPinnedArrayBytes, asPtrUnsafe)
107import qualified Streamly.Internal.Data.Array.Stream.Foreign as AS
110import qualified Streamly.Internal.Data.Array.Stream.Foreign as AS
108−import qualified Streamly.Internal.Data.Fold as FL
109import qualified Streamly.Internal.Data.Stream.IsStream as S
111import qualified Streamly.Internal.Data.Stream.IsStream as S
110import qualified Streamly.Internal.Data.Stream.StreamD.Type as D
112import qualified Streamly.Internal.Data.Stream.StreamD.Type as D
113+ (Stream(..), Step(..))
114+import qualified Streamly.Data.Unfold as UF
111−import qualified Streamly.Internal.Data.Unfold as UF
115+import qualified Streamly.Internal.Data.Unfold as UF (first, map)
112
116
113-- | @'forSocketM' action socket@ runs the monadic computation @action@ passing
117-- | @'forSocketM' action socket@ runs the monadic computation @action@ passing
114-- the socket handle to it. The handle will be closed on exit from
118-- the socket handle to it. The handle will be closed on exit from
src/Streamly/Internal/Unicode/Array/Char.hs+5−6
@@ -18,16 +18,15 @@ module Streamly.Internal.Unicode.Array.Char
18where
18where
19
19
20import Control.Monad.IO.Class (MonadIO)
20import Control.Monad.IO.Class (MonadIO)
21−import Streamly.Prelude (MonadAsync)
22−import Prelude hiding (String, lines, words, unlines, unwords)
23−import Streamly.Internal.Data.Array.Unboxed (Array)
21+import Streamly.Data.Array.Unboxed (Array)
24import Streamly.Internal.Data.Stream.IsStream (IsStream)
22import Streamly.Internal.Data.Stream.IsStream (IsStream)
23+import Streamly.Prelude (MonadAsync)
25
24
26−import qualified Streamly.Internal.Data.Array.Unboxed as A
25+import qualified Streamly.Data.Array.Unboxed as A
27− (write, read)
28−
29import qualified Streamly.Internal.Unicode.Stream as S
26import qualified Streamly.Internal.Unicode.Stream as S
30
27
28+import Prelude hiding (String, lines, words, unlines, unwords)
29+
31-- $setup
30-- $setup
32-- >>> :m
31-- >>> :m
33-- >>> :set -XOverloadedStrings
32-- >>> :set -XOverloadedStrings
src/Streamly/Internal/Unicode/Char/Parser.hs+8−1
@@ -61,8 +61,15 @@ import Prelude hiding (print)
61import Streamly.Internal.Data.Parser (Parser)
61import Streamly.Internal.Data.Parser (Parser)
62
62
63import qualified Data.Char as Char
63import qualified Data.Char as Char
64+import qualified Streamly.Data.Fold as Fold
64import qualified Streamly.Internal.Data.Parser as Parser
65import qualified Streamly.Internal.Data.Parser as Parser
65−import qualified Streamly.Internal.Data.Fold as Fold
66+ (
67+ lmap
68+ , satisfy
69+ , list
70+ , takeWhile1
71+ , dropWhile
72+ )
66
73
67--------------------------------------------------------------------------------
74--------------------------------------------------------------------------------
68-- Character classification
75-- Character classification
src/Streamly/Internal/Unicode/Stream.hs+7−6
@@ -114,14 +114,15 @@ import Streamly.Internal.Data.Unboxed (peekWith)
114import Streamly.Internal.Data.Unfold.Type (Unfold(..))
114import Streamly.Internal.Data.Unfold.Type (Unfold(..))
115import Streamly.Internal.System.IO (unsafeInlineIO)
115import Streamly.Internal.System.IO (unsafeInlineIO)
116
116
117−import qualified Streamly.Internal.Data.Fold as Fold
117+import qualified Streamly.Data.Fold as Fold
118−import qualified Streamly.Internal.Data.Unfold as Unfold
118+import qualified Streamly.Data.Unfold as Unfold
119−import qualified Streamly.Internal.Data.Parser as Parser
119+import qualified Streamly.Internal.Data.Parser as Parser (Parser)
120import qualified Streamly.Internal.Data.Parser.ParserD as ParserD
120import qualified Streamly.Internal.Data.Parser.ParserD as ParserD
121+ (Parser(..), Step(..), Initial(..), toParserK, toFold)
121−import qualified Streamly.Internal.Data.Stream as Stream
122+import qualified Streamly.Internal.Data.Stream as Stream (fromByteStr#)
122import qualified Streamly.Internal.Data.Stream.Serial as Serial
123import qualified Streamly.Internal.Data.Stream.Serial as Serial
123−import qualified Streamly.Internal.Data.Array.Unboxed as Array
124+import qualified Streamly.Data.Array.Unboxed as Array
124−import qualified Streamly.Internal.Data.Array.Unboxed.Type as A
125+import qualified Streamly.Internal.Data.Array.Unboxed.Type as A (Array (..))
125import qualified Streamly.Internal.Data.Stream.IsStream as S
126import qualified Streamly.Internal.Data.Stream.IsStream as S
126import qualified Streamly.Internal.Data.Stream.StreamD as D
127import qualified Streamly.Internal.Data.Stream.StreamD as D
127
128
src/Streamly/Internal/Unicode/String.hs+2−1
@@ -41,8 +41,9 @@ import Streamly.Internal.Data.Parser (Parser)
41import Language.Haskell.TH
41import Language.Haskell.TH
42import Language.Haskell.TH.Quote
42import Language.Haskell.TH.Quote
43
43
44−import qualified Streamly.Internal.Data.Fold as Fold
44+import qualified Streamly.Data.Fold as Fold
45import qualified Streamly.Internal.Data.Parser as Parser
45import qualified Streamly.Internal.Data.Parser as Parser
46+ (some, many, takeWhile1)
46import qualified Streamly.Internal.Data.Stream.IsStream as Stream
47import qualified Streamly.Internal.Data.Stream.IsStream as Stream
47import qualified Streamly.Internal.Unicode.Char.Parser as Parser
48import qualified Streamly.Internal.Unicode.Char.Parser as Parser
48
49
src/Streamly/Internal/Unicode/Utf8.hs+2−2
@@ -24,10 +24,10 @@ where
24
24
25import Control.DeepSeq (NFData)
25import Control.DeepSeq (NFData)
26import Data.Word (Word8)
26import Data.Word (Word8)
27−import Streamly.Internal.Data.Array.Unboxed.Type (Array)
27+import Streamly.Data.Array.Unboxed (Array)
28import System.IO.Unsafe (unsafePerformIO)
28import System.IO.Unsafe (unsafePerformIO)
29
29
30−import qualified Streamly.Internal.Data.Array.Unboxed as Array
30+import qualified Streamly.Internal.Data.Array.Unboxed as Array (fromStreamN, toStream)
31import qualified Streamly.Internal.Data.Stream.IsStream as Stream
31import qualified Streamly.Internal.Data.Stream.IsStream as Stream
32import qualified Streamly.Internal.Unicode.Stream as Unicode
32import qualified Streamly.Internal.Unicode.Stream as Unicode
33
33