diff --git a/src/Quasar/Core.hs b/src/Quasar/Core.hs index d809050e09f2f9a1041076f33b8018478723fa20..096d1448555116ab19ab7905ded90915ed84b4a6 100644 --- a/src/Quasar/Core.hs +++ b/src/Quasar/Core.hs @@ -15,7 +15,9 @@ module Quasar.Core ( cancelTask, cancelTaskIO, toTask, + completedTask, successfulTask, + failedTask, -- * AsyncIO AsyncIO, @@ -130,8 +132,15 @@ cancelTaskIO = awaitIO <=< dispose toTask :: IsAwaitable r a => a -> Task r toTask = Task . toAwaitable +completedTask :: Either SomeException r -> Task r +completedTask = toTask . completedAwaitable + +-- | Alias for `pure` successfulTask :: r -> Task r -successfulTask = Task . successfulAwaitable +successfulTask = pure + +failedTask :: SomeException -> Task r +failedTask = toTask . failedAwaitable