Skip to content
Snippets Groups Projects
Commit 93ea492e authored by Jens Nolte's avatar Jens Nolte
Browse files

Add stronger constraints for MonadAsync/MonadAwait


Co-authored-by: default avatarJan Beinke <git@janbeinke.com>
parent f7aba7a2
No related branches found
No related tags found
No related merge requests found
......@@ -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)
......
......@@ -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
......
......@@ -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
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment