From 93ea492ee0055a956b83f27deb5e535413396422 Mon Sep 17 00:00:00 2001 From: Jens Nolte <git@queezle.net> Date: Sun, 29 Aug 2021 20:31:55 +0200 Subject: [PATCH] Add stronger constraints for MonadAsync/MonadAwait Co-authored-by: Jan Beinke <git@janbeinke.com> --- src/Quasar/Async.hs | 2 +- src/Quasar/Awaitable.hs | 2 +- src/Quasar/Disposable.hs | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Quasar/Async.hs b/src/Quasar/Async.hs index b3efc4d..3aa9c21 100644 --- a/src/Quasar/Async.hs +++ b/src/Quasar/Async.hs @@ -25,7 +25,7 @@ import Quasar.Disposable import Quasar.Prelude -class (MonadAwait m, MonadResourceManager m, MonadCatch m) => MonadAsync m where +class (MonadAwait m, MonadResourceManager m, MonadMask m) => MonadAsync m where -- | TODO async :: m r -> m (Task r) async action = asyncWithUnmask ($ action) diff --git a/src/Quasar/Awaitable.hs b/src/Quasar/Awaitable.hs index 931a39b..930fd6f 100644 --- a/src/Quasar/Awaitable.hs +++ b/src/Quasar/Awaitable.hs @@ -72,7 +72,7 @@ class IsAwaitable r a | a -> r where -class Monad m => MonadAwait m where +class (MonadCatch m, MonadPlus m) => MonadAwait m where await :: IsAwaitable r a => a -> m r instance MonadAwait IO where diff --git a/src/Quasar/Disposable.hs b/src/Quasar/Disposable.hs index 76e0f28..238c90e 100644 --- a/src/Quasar/Disposable.hs +++ b/src/Quasar/Disposable.hs @@ -210,10 +210,10 @@ class HasResourceManager a where instance HasResourceManager ResourceManager where getResourceManager = id -class MonadIO m => MonadResourceManager m where +class (MonadMask m, MonadIO m) => MonadResourceManager m where askResourceManager :: m ResourceManager -instance MonadIO m => MonadResourceManager (ReaderT ResourceManager m) where +instance (MonadMask m, MonadIO m) => MonadResourceManager (ReaderT ResourceManager m) where askResourceManager = ask -- GitLab