diff --git a/shake-plus.cabal b/shake-plus.cabal
--- a/shake-plus.cabal
+++ b/shake-plus.cabal
@@ -4,10 +4,10 @@
 --
 -- see: https://github.com/sol/hpack
 --
--- hash: 8342b31fe1513a9660bb1d8de9f01642c17efd7fb214eb454d784d5fac6f80cb
+-- hash: 387cbfa8f76d0fd32c1779aede5a19c917ea2afd3d19382b489d8f1ae52be81f
 
 name:           shake-plus
-version:        0.0.2.1
+version:        0.0.2.2
 synopsis:       Re-export of Shake using well-typed paths and ReaderT.
 description:    Re-export of Shake using well-typed paths and ReaderT. This is an early release so some things may be missing or broken but so far the conveniences have been worth it.
 category:       development, shake
diff --git a/src/Development/Shake/Plus/Core.hs b/src/Development/Shake/Plus/Core.hs
--- a/src/Development/Shake/Plus/Core.hs
+++ b/src/Development/Shake/Plus/Core.hs
@@ -22,7 +22,7 @@
 import RIO
 
 -- | Monads in which `Action`s may be embedded.
-class Monad m => MonadAction m where
+class MonadIO m => MonadAction m where
   liftAction :: Action a -> m a
 
 instance MonadAction Action where
@@ -73,7 +73,7 @@
 
 -- | Concrete `Action` runner, hardcoded to `ReaderT r Action a`.
 newtype RAction r a = RAction (ReaderT r Action a)
-  deriving (Functor, Applicative, Monad, MonadReader r, MonadIO, MonadAction, MonadUnliftAction)
+  deriving (Functor, Applicative, Monad, MonadReader r, MonadIO, MonadAction, MonadUnliftAction, MonadFail)
 
 -- | Concrete `Rules` collector, hardcoded to `ReaderT r Rules a`.
 newtype ShakePlus r a = ShakePlus (ReaderT r Rules a)
diff --git a/src/Development/Shake/Plus/Directory.hs b/src/Development/Shake/Plus/Directory.hs
--- a/src/Development/Shake/Plus/Directory.hs
+++ b/src/Development/Shake/Plus/Directory.hs
@@ -7,10 +7,8 @@
 , getDirectoryFilesIO
 ) where
 
-import Control.Exception.Extra
 import Development.Shake.Plus.Core
 import qualified Development.Shake
-import Development.Shake (FilePattern)
 import RIO
 import Path
 import Within
