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