diff --git a/src/Quasar/Async.hs b/src/Quasar/Async.hs index 07a1422d61901771491bbee3a66a457f67934600..62db12aa46afd963bfaf0c0ebf27b6324ed2b2ac 100644 --- a/src/Quasar/Async.hs +++ b/src/Quasar/Async.hs @@ -89,7 +89,7 @@ instance {-# OVERLAPPABLE #-} MonadAsync m => MonadAsync (ReaderT r m) where -- -- TODO change signature to `Awaitable` async :: MonadAsync m => (forall f. MonadAsync f => f a) -> m (Awaitable a) -async action = asyncWithUnmask ($ action) +async action = asyncWithUnmask \unmask -> unmask action asyncWithUnmask :: MonadAsync m => (forall f. MonadAsync f => (forall a. f a -> f a) -> f r) -> m (Awaitable r) asyncWithUnmask action = do @@ -113,7 +113,7 @@ runUnlimitedAsync action = do forkTask :: MonadIO m => IO a -> m (Task a) -forkTask action = forkTaskWithUnmask ($ action) +forkTask action = forkTaskWithUnmask \unmask -> unmask action forkTask_ :: MonadIO m => IO () -> m Disposable forkTask_ action = toDisposable <$> forkTask action