@@ -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)
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'(..))
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
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
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)
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)