diff --git a/Shelly/Background.hs b/Shelly/Background.hs
--- a/Shelly/Background.hs
+++ b/Shelly/Background.hs
@@ -18,9 +18,9 @@
 import qualified Control.Concurrent.MSem as Sem
 
 -- | Create a 'BgJobManager' that has a 'limit' on the max number of background tasks.
--- an invocation of jobs is independent of any others, and not tied to the ShIO monad in any way.
+-- an invocation of jobs is independent of any others, and not tied to the Sh monad in any way.
 -- This blocks the execution of the program until all 'background' jobs are finished.
-jobs :: Int -> (BgJobManager -> ShIO a) -> ShIO a
+jobs :: Int -> (BgJobManager -> Sh a) -> Sh a
 jobs limit action = do
     unless (limit > 0) $ terror "expected limit to be > 0"
     availableJobsSem <- liftIO $ Sem.new limit
@@ -40,14 +40,14 @@
 
 -- | Returns the promised result from a backgrounded task.  Blocks until
 -- the task completes.
-getBgResult :: BgResult a -> ShIO a
+getBgResult :: BgResult a -> Sh a
 getBgResult (BgResult mvar) = liftIO $ takeMVar mvar
 
--- | Run the `ShIO` task asynchronously in the background, returns
+-- | Run the `Sh` task asynchronously in the background, returns
 -- the `BgResult a`, a promise immediately. Run "getBgResult" to wait for the result.
--- The background task will inherit the current ShIO context
--- The 'BjJobManager' ensures the max jobs limit must be sufficient for the parent and all children.
-background :: BgJobManager -> ShIO a -> ShIO (BgResult a)
+-- The background task will inherit the current Sh context
+-- The 'BgJobManager' ensures the max jobs limit must be sufficient for the parent and all children.
+background :: BgJobManager -> Sh a -> Sh (BgResult a)
 background (BgJobManager manager) proc = do
   state <- get
   liftIO $ do
diff --git a/shelly-extra.cabal b/shelly-extra.cabal
--- a/shelly-extra.cabal
+++ b/shelly-extra.cabal
@@ -1,17 +1,18 @@
 Name:       shelly-extra
 
-Version:     0.2.2.1
+Version:     0.2.3
 Synopsis:    shelly features that require extra dependencies
 
-Description: Please see the shelly package. Shelly provides a single module for convenient
-             systems programming in Haskell, similar in spirit to POSIX shells.
+Description: A background job implementation for performing tasks in parallel.
              .
-             shelly-extra is designed to be a grab bag for functionality that
+             Please see the shelly package. Shelly provides a single module for convenient systems programming in Haskell, similar in spirit to POSIX shells.
+             .
+             shelly-extra is designed to be a grab bag for functionality that either
+             .
                * requires extra dependencies
              .
-               * or is application specific and not generally applicable
+               * is application specific and not generally applicable
              .
-             currently contains a background job implementation for performing tasks in parallel
 
 
 Homepage:            https://github.com/yesodweb/Shelly.hs
@@ -27,7 +28,7 @@
 Library
   Exposed-modules:     Shelly.Background
 
-  Build-depends: base >= 4 && < 5, shelly >= 0.10, SafeSemaphore
+  Build-depends: base >= 4 && < 5, shelly >= 0.13, SafeSemaphore
 
   ghc-options: -Wall
 
diff --git a/test/main.hs b/test/main.hs
--- a/test/main.hs
+++ b/test/main.hs
@@ -5,11 +5,11 @@
 
 import Shelly
 import Shelly.Background
-import Data.Text.Lazy (Text, stripEnd)
+import Data.Text (Text, stripEnd)
 import Test.HUnit
 default (Text)
 
-shIOUnit :: ShIO ()
+shIOUnit :: Sh ()
 shIOUnit = do
   cmd "pwd"
   chdir ".." $
@@ -32,11 +32,11 @@
     echo recho
 
     (res :: Text) <- cmd "pwd"
-    liftIO $ putStrLn $ show res
+    liftIO $ print res
     inspect res
 
-    inspect =<< (cmd "echo" "compose" :: ShIO Text)
-    inspect =<< (cmd "pwd")
+    inspect =<< (cmd "echo" "compose" :: Sh Text)
+    inspect =<< cmd "pwd"
 
     -- this somehow forces more evaluation
     shIOUnit
