diff --git a/Control/Shell/Control.hs b/Control/Shell/Control.hs
--- a/Control/Shell/Control.hs
+++ b/Control/Shell/Control.hs
@@ -26,6 +26,11 @@
   --   error message.
   assert :: String -> guard -> Shell (Result guard)
 
+instance Guard (Either l r) where
+  type Result (Either l r) = r
+  assert _ (Right x) = return x
+  assert desc _      = fail desc
+
 instance Guard (Maybe a) where
   type Result (Maybe a) = a
   assert _ (Just x) = return x
diff --git a/shellmate.cabal b/shellmate.cabal
--- a/shellmate.cabal
+++ b/shellmate.cabal
@@ -1,5 +1,5 @@
 name:                shellmate
-version:             0.3.3
+version:             0.3.4
 synopsis:            Simple interface for shell scripting in Haskell.
 description:         Aims to simplify development of cross-platform shell scripts and similar things.
 homepage:            https://github.com/valderman/shellmate
