diff --git a/src/Quasar/Disposable.hs b/src/Quasar/Disposable.hs index d6128f0a174a9d1dc22f7a8e0227cc3288fdd727..dd53501b893e2c290f0d58c2d8af43eb611a1f8e 100644 --- a/src/Quasar/Disposable.hs +++ b/src/Quasar/Disposable.hs @@ -52,6 +52,7 @@ import Data.Sequence import Data.Sequence qualified as Seq import Quasar.Awaitable import Quasar.Prelude +import System.IO (hPutStrLn, stderr) -- * Disposable @@ -228,9 +229,13 @@ class IsResourceManager a where --subResourceManager :: MonadResourceManager m => m (DisposableResourceThingy) + throwToResourceManager :: Exception e => a -> e -> IO () + instance IsResourceManager ResourceManager where toResourceManager = id + -- TODO delegate to parent + throwToResourceManager _ ex = hPutStrLn stderr $ displayException ex class (MonadAwait m, MonadMask m, MonadIO m) => MonadResourceManager m where -- | Get the underlying resource manager.