diff --git a/src/Quasar/Observable.hs b/src/Quasar/Observable.hs
index 2ca45e6d5d2f1d331599344aa5c463fe46b967f4..0971917bff268f985bfbc8940208492df8e61851 100644
--- a/src/Quasar/Observable.hs
+++ b/src/Quasar/Observable.hs
@@ -106,7 +106,7 @@ class IsRetrievable v o => IsObservable v o | o -> v where
 observeBlocking :: (IsObservable v o, MonadResourceManager m) => o -> (ObservableMessage v -> m ()) -> m a
 observeBlocking observable handler = do
   -- `withScopedResourceManager` removes the `observe` callback when the `handler` fails.
-  genericWithScopedResourceManager do
+  withScopedResourceManager do
     var <- liftIO newEmptyTMVarIO
     observe observable \msg -> liftIO $ atomically do
       void $ tryTakeTMVar var
diff --git a/src/Quasar/ResourceManager.hs b/src/Quasar/ResourceManager.hs
index 1a9a1eadfa9602afed0578e5405e437bf82e4d1a..672ded67d51ef43a13174d3f054db4719292425a 100644
--- a/src/Quasar/ResourceManager.hs
+++ b/src/Quasar/ResourceManager.hs
@@ -9,7 +9,6 @@ module Quasar.ResourceManager (
   registerDisposable,
   registerDisposeAction,
   withScopedResourceManager,
-  genericWithScopedResourceManager,
   onResourceManager,
   captureDisposable,
   captureDisposable_,
@@ -156,12 +155,8 @@ registerNewResource action = mask_ $ lockResourceManager do
 registerNewResource_ :: (IsDisposable a, MonadResourceManager m) => m a -> m ()
 registerNewResource_ action = void $ registerNewResource action
 
-withScopedResourceManager :: MonadResourceManager m => ResourceManagerIO a -> m a
+withScopedResourceManager :: MonadResourceManager m => m a -> m a
 withScopedResourceManager action =
-  bracket newResourceManager dispose \scope -> onResourceManager scope action
-
-genericWithScopedResourceManager :: MonadResourceManager m => m a -> m a
-genericWithScopedResourceManager action =
   bracket newResourceManager dispose \scope -> localResourceManager scope action