on master help sign in
Change the first argument of concatMapM in unfolds from () to Void

Change, concatMapM :: (b -> m (Unfold m () c)) -> Unfold m a b -> Unfold m a c to, concatMapM :: (b -> m (Unfold m Void c)) -> Unfold m a b -> Unfold m a c

commitaced27067fe9db0838296c9f5450e7c301e50d39 authoradithyaov <adithya@composewell.com> dateWed 11 Nov 2020, 18:32 (6 years ago) parent8a93c0c
3 files changed+3−8
benchmark/Streamly/Benchmark/Data/Unfold.hs−1 src/Streamly/Internal/Data/Unfold.hs+2−2 test/Streamly/Test/Data/Unfold.hs+1−5
benchmark/Streamly/Benchmark/Data/Unfold.hs−1
@@ -393,7 +393,6 @@ concatMapM size start =
393393
394394 unfoldInGen i =
395395 return
396− $ UF.lmap (\() -> undefined)
397396 $ UF.supply (UF.enumerateFromToIntegral (i + sizeInner)) i
398397
399398 unfoldOut = UF.enumerateFromToIntegral (start + sizeOuter)
src/Streamly/Internal/Data/Unfold.hs+2−2
@@ -1031,7 +1031,7 @@ data ConcatMapState s1 s2 = ConcatMapOuter s1 | ConcatMapInner s1 s2
10311031--
10321032{-# INLINE_NORMAL concatMapM #-}
10331033concatMapM :: Monad m
1034− => (b -> m (Unfold m () c)) -> Unfold m a b -> Unfold m a c
1034+ => (b -> m (Unfold m Void c)) -> Unfold m a b -> Unfold m a c
10351035concatMapM f (Unfold step1 inject1) = Unfold step inject
10361036 where
10371037 inject x = do
@@ -1044,7 +1044,7 @@ concatMapM f (Unfold step1 inject1) = Unfold step inject
10441044 case r of
10451045 Yield x s -> do
10461046 Unfold step2 inject2 <- f x
1047− innerSt <- inject2 ()
1047+ innerSt <- inject2 undefined
10481048 return $ Skip (ConcatMapInner s (Stream (\_ ss -> step2 ss)
10491049 innerSt))
10501050 Skip s -> return $ Skip (ConcatMapOuter s)
test/Streamly/Test/Data/Unfold.hs+1−5
@@ -350,11 +350,7 @@ concatMapM =
350350 let unfInF b =
351351 modify (+ 1)
352352 >> return
353− (UF.lmap
354− (\() -> undefined)
355− (UF.supply
356− (UF.replicateM 10)
357− (modify (+ 1) >> return b)))
353+ (UF.supply (UF.replicateM 10) (modify (+ 1) >> return b))
358354 listInF b = replicate 10 b
359355 unfOut = UF.enumerateFromToIntegral 10
360356 unf = UF.concatMapM unfInF unfOut