@@ -25,6 +25,8 @@ where
26import Control.Exception (Exception, SomeException, mask_)
26import Control.Exception (Exception, SomeException, mask_)
27import Control.Monad.Catch (MonadCatch)
27import Control.Monad.Catch (MonadCatch)
28+import Control.Monad.IO.Class (MonadIO)
29+import Control.Monad.Trans.Control (MonadBaseControl)
28import Data.Map.Strict (Map)
30import Data.Map.Strict (Map)
29import GHC.Exts (inline)
31import GHC.Exts (inline)
30import Streamly.Internal.Control.Concurrent
32import Streamly.Internal.Control.Concurrent
@@ -140,7 +142,7 @@ bracket3D bef aft onExc onGC =
141-- /Pre-release/
143-- /Pre-release/
142{-# INLINE bracket3 #-}
144{-# INLINE bracket3 #-}
143−bracket3 :: (MonadRunInIO m, MonadCatch m)
145+bracket3 :: (MonadAsync m, MonadCatch m)
145 -> (b -> m c)
147 -> (b -> m c)
146 -> (b -> m d)
148 -> (b -> m d)
@@ -172,7 +174,7 @@ bracket3 bef aft gc exc bet = fromStreamD $
172-- /Inhibits stream fusion/
174-- /Inhibits stream fusion/
174{-# INLINE bracket #-}
176{-# INLINE bracket #-}
175−bracket :: (MonadRunInIO m, MonadCatch m)
177+bracket :: (MonadAsync m, MonadCatch m)
176 => m b -> (b -> m c) -> (b -> Stream m a) -> Stream m a
178 => m b -> (b -> m c) -> (b -> Stream m a) -> Stream m a
177bracket bef aft = bracket3 bef aft aft aft
179bracket bef aft = bracket3 bef aft aft aft
@@ -190,7 +192,7 @@ bracket bef aft = bracket3 bef aft aft aft
190-- /Inhibits stream fusion/
192-- /Inhibits stream fusion/
192{-# INLINE finally #-}
194{-# INLINE finally #-}
193−finally :: (MonadRunInIO m, MonadCatch m) =>
195+finally :: (MonadAsync m, MonadCatch m) =>
194 m b -> Stream m a -> Stream m a
196 m b -> Stream m a -> Stream m a
195finally action xs = bracket (return ()) (const action) (const xs)
197finally action xs = bracket (return ()) (const action) (const xs)
@@ -223,7 +225,13 @@ afterD action (D.Stream step state) = D.Stream step' Nothing
223-- /See also 'after_'/
225-- /See also 'after_'/
225{-# INLINE after #-}
227{-# INLINE after #-}
232+ (MonadIO m, MonadBaseControl IO m)
226−after :: MonadRunInIO m => m b -> Stream m a -> Stream m a
234+ => m b -> Stream m a -> Stream m a
227after action xs = fromStreamD $ afterD action $ toStreamD xs
235after action xs = fromStreamD $ afterD action $ toStreamD xs
229data RetryState emap s1 s2
237data RetryState emap s1 s2