on master help sign in
static argument transformation for mappend
commit6f1a0b1fa6d567fa7c62d58dd296025cf25f2a8d authorHarendra Kumar <harendra.kumar@gmail.com> dateTue 12 Sep 2017, 21:24 (9 years ago) parent5a21de2
1 file changed+7−5
src/Asyncly/AsyncT.hs+7−5
src/Asyncly/AsyncT.hs+7−5
@@ -125,11 +125,13 @@ type MonadAsync m = (MonadIO m, MonadBaseControl IO m, MonadThrow m)
125125
126126-- | Appends the results of two AsyncT computations in order.
127127instance Semigroup (AsyncT m a) where
128− (AsyncT m1) <> m2 = AsyncT $ \ctx stp yld ->
129− let stop = (runAsyncT m2) ctx stp yld
130− yield a c Nothing = yld a c (Just m2)
131− yield a c (Just r) = yld a c (Just (mappend r m2))
132− in m1 ctx stop yield
128+ m1 <> m2 = go m1
129+ where
130+ go (AsyncT m) = AsyncT $ \ctx stp yld ->
131+ let stop = (runAsyncT m2) ctx stp yld
132+ yield a c Nothing = yld a c (Just m2)
133+ yield a c (Just r) = yld a c (Just (go r))
134+ in m ctx stop yield
133135
134136-- | Appends the results of two AsyncT computations in order.
135137instance Monoid (AsyncT m a) where