diff --git a/src/Quasar/Async/V2.hs b/src/Quasar/Async/V2.hs
index 0a10cc1e7bf94f021bb78ee302edd34f9a61e095..f159f464a6e22a7db02a51f1138f285ae2bb800e 100644
--- a/src/Quasar/Async/V2.hs
+++ b/src/Quasar/Async/V2.hs
@@ -73,7 +73,7 @@ asyncWithUnmask' fn = maskIfRequired do
     resultVar <- newAsyncVarSTM
     threadIdVar <- newAsyncVarSTM
     -- Disposer is created first to ensure the resource can be safely attached
-    disposer <- newPrimitiveDisposer (disposeFn key resultVar (toAwaitable threadIdVar)) worker exChan
+    disposer <- newUnmanagedPrimitiveDisposer (disposeFn key resultVar (toAwaitable threadIdVar)) worker exChan
     pure (key, resultVar, threadIdVar, disposer)
 
   registerResource disposer
diff --git a/src/Quasar/Resources.hs b/src/Quasar/Resources.hs
index 33fd4b4078a8265833bdbe2f2752c52f1ba7befa..5ac6be860a1d3a5490aa525920309f2aded3cfd0 100644
--- a/src/Quasar/Resources.hs
+++ b/src/Quasar/Resources.hs
@@ -24,8 +24,8 @@ module Quasar.Resources (
   -- * Types to implement resources
   -- ** Disposer
   Disposer,
-  newIODisposerSTM,
-  newSTMDisposerSTM,
+  newUnmanagedIODisposerSTM,
+  newUnmanagedSTMDisposerSTM,
 
   -- ** Resource manager
   ResourceManager,
@@ -46,11 +46,11 @@ import Quasar.Resources.Disposer
 import Quasar.Utils.ShortIO
 
 
-newIODisposerSTM :: IO () -> TIOWorker -> ExceptionChannel -> STM Disposer
-newIODisposerSTM fn worker exChan = newPrimitiveDisposer (forkAsyncShortIO fn exChan) worker exChan
+newUnmanagedIODisposerSTM :: IO () -> TIOWorker -> ExceptionChannel -> STM Disposer
+newUnmanagedIODisposerSTM fn worker exChan = newUnmanagedPrimitiveDisposer (forkAsyncShortIO fn exChan) worker exChan
 
-newSTMDisposerSTM :: STM () -> TIOWorker -> ExceptionChannel -> STM Disposer
-newSTMDisposerSTM fn worker exChan = newPrimitiveDisposer disposeFn worker exChan
+newUnmanagedSTMDisposerSTM :: STM () -> TIOWorker -> ExceptionChannel -> STM Disposer
+newUnmanagedSTMDisposerSTM fn worker exChan = newUnmanagedPrimitiveDisposer disposeFn worker exChan
   where
     disposeFn :: ShortIO (Awaitable ())
     disposeFn = unsafeShortIO $ atomically $
@@ -69,7 +69,7 @@ registerDisposeAction fn = do
   exChan <- askExceptionChannel
   rm <- askResourceManager
   ensureSTM do
-    disposer <- newIODisposerSTM fn worker exChan
+    disposer <- newUnmanagedIODisposerSTM fn worker exChan
     attachResource rm disposer
     pure disposer
 
@@ -82,7 +82,7 @@ registerDisposeTransaction fn = do
   exChan <- askExceptionChannel
   rm <- askResourceManager
   ensureSTM do
-    disposer <- newSTMDisposerSTM fn worker exChan
+    disposer <- newUnmanagedSTMDisposerSTM fn worker exChan
     attachResource rm disposer
     pure disposer
 
diff --git a/src/Quasar/Resources/Disposer.hs b/src/Quasar/Resources/Disposer.hs
index 0db63b06d8bc0d4c8987cda459ad9a4b32090b58..c4e97a1a19e399bcc568bca37d3bc93e0b53d5be 100644
--- a/src/Quasar/Resources/Disposer.hs
+++ b/src/Quasar/Resources/Disposer.hs
@@ -8,7 +8,7 @@ module Quasar.Resources.Disposer (
   disposeEventuallySTM_,
   isDisposing,
   isDisposed,
-  newPrimitiveDisposer,
+  newUnmanagedPrimitiveDisposer,
 
   -- * Resource manager
   ResourceManager,
@@ -49,8 +49,8 @@ instance Resource Disposer where
 type DisposeFn = ShortIO (Awaitable ())
 
 
-newPrimitiveDisposer :: ShortIO (Awaitable ()) -> TIOWorker -> ExceptionChannel -> STM Disposer
-newPrimitiveDisposer fn worker exChan = do
+newUnmanagedPrimitiveDisposer :: ShortIO (Awaitable ()) -> TIOWorker -> ExceptionChannel -> STM Disposer
+newUnmanagedPrimitiveDisposer fn worker exChan = do
   key <- newUniqueSTM
   FnDisposer key worker exChan <$> newTOnce fn <*> newFinalizers
 
diff --git a/src/Quasar/Timer.hs b/src/Quasar/Timer.hs
index e0d6973ff3264110037b596990f3a069bcfec59c..a05e6f8db478f2e7f15591f7d0cffe4946f4f39e 100644
--- a/src/Quasar/Timer.hs
+++ b/src/Quasar/Timer.hs
@@ -180,7 +180,7 @@ newUnmanagedTimer scheduler time = liftIO do
   key <- newUnique
   completed <- newAsyncVar
   atomically do
-    disposer <- newSTMDisposerSTM (disposeFn completed) (ioWorker scheduler) (exceptionChannel scheduler)
+    disposer <- newUnmanagedSTMDisposerSTM (disposeFn completed) (ioWorker scheduler) (exceptionChannel scheduler)
     let timer = Timer { key, time, completed, disposer, scheduler }
     tryTakeTMVar (heap scheduler) >>= \case
       Just timers -> putTMVar (heap scheduler) (insert timer timers)