diff --git a/Control/Concurrent/ParallelIO/Global.hs b/Control/Concurrent/ParallelIO/Global.hs
--- a/Control/Concurrent/ParallelIO/Global.hs
+++ b/Control/Concurrent/ParallelIO/Global.hs
@@ -42,7 +42,7 @@
 -- worker.
 --
 -- See also 'L.extraWorkerWhileBlocked'.
-extraWorkerWhileBlocked :: IO () -> IO ()
+extraWorkerWhileBlocked :: IO a -> IO a
 extraWorkerWhileBlocked = L.extraWorkerWhileBlocked globalPool
 
 -- | Internal method for adding extra unblocked threads to a pool if one is going to be
diff --git a/Control/Concurrent/ParallelIO/Local.hs b/Control/Concurrent/ParallelIO/Local.hs
--- a/Control/Concurrent/ParallelIO/Local.hs
+++ b/Control/Concurrent/ParallelIO/Local.hs
@@ -99,7 +99,7 @@
 -- work. If you have this situation, and you don't use this method to wrap blocking actions, then
 -- you may get a deadlock if all your worker threads get blocked on work that they assume will be
 -- done by other worker threads.
-extraWorkerWhileBlocked :: Pool -> IO () -> IO ()
+extraWorkerWhileBlocked :: Pool -> IO a -> IO a
 extraWorkerWhileBlocked pool wait = E.bracket (spawnPoolWorkerFor pool) (\() -> killPoolWorkerFor pool) (\() -> wait)
 
 -- | Internal method for adding extra unblocked threads to a pool if one is going to be
diff --git a/parallel-io.cabal b/parallel-io.cabal
--- a/parallel-io.cabal
+++ b/parallel-io.cabal
@@ -1,5 +1,5 @@
 Name:               parallel-io
-Version:            0.2.1.1
+Version:            0.2.2
 Cabal-Version:      >= 1.2
 Category:           Concurrency
 Synopsis:           Combinators for executing IO actions in parallel on a thread pool.
