diff --git a/Shakefile.hs b/Shakefile.hs
--- a/Shakefile.hs
+++ b/Shakefile.hs
@@ -22,17 +22,21 @@
         , "src//*.hs"
         ]
 
+  -- | Haskell rules.
+  --
+  hsRules "."
+
   -- | Cabal rules.
   --
-  cabalRules "wolf.cabal"
+  cabalRules "." "wolf.cabal"
 
   -- | Stack rules.
   --
-  stackRules pats
+  stackRules "." pats
 
   -- | sanity
   --
-  fake' pats "sanity" $ const $
+  fake "." pats "sanity" $ const $
     need [ fakeFile "build-error", fakeFile "lint" ]
 
   -- | Default things to run.
diff --git a/src/Network/AWS/Wolf/Decide.hs b/src/Network/AWS/Wolf/Decide.hs
--- a/src/Network/AWS/Wolf/Decide.hs
+++ b/src/Network/AWS/Wolf/Decide.hs
@@ -47,7 +47,7 @@
 completed he = do
   traceInfo "completed" mempty
   hes <- view adcEvents
-  (input, name) <- maybeThrowIO "No Completed Information" $ do
+  (input, name) <- maybeThrowIO' "No Completed Information" $ do
     atcea <- he ^. heActivityTaskCompletedEventAttributes
     he'   <- flip find hes $ (== atcea ^. atceaScheduledEventId) . view heEventId
     name  <- view atName . view atseaActivityType <$> he' ^. heActivityTaskScheduledEventAttributes
@@ -61,7 +61,7 @@
 begin :: MonadAmazonDecision c m => HistoryEvent -> m Decision
 begin he = do
   traceInfo "begin" mempty
-  input <- maybeThrowIO "No Start Information" $
+  input <- maybeThrowIO' "No Start Information" $
     view weseaInput <$> he ^. heWorkflowExecutionStartedEventAttributes
   p <- view adcPlan
   maybe (end input) (next input) $ headMay (p ^. pTasks)
@@ -73,7 +73,7 @@
   traceInfo "schedule" mempty
   hes <- view adcEvents
   f hes >>=
-    maybeThrowIO "No Select Information"
+    maybeThrowIO' "No Select Information"
   where
     f []       = return Nothing
     f (he:hes) =
diff --git a/src/Network/AWS/Wolf/File.hs b/src/Network/AWS/Wolf/File.hs
--- a/src/Network/AWS/Wolf/File.hs
+++ b/src/Network/AWS/Wolf/File.hs
@@ -100,7 +100,7 @@
 readYaml file =
   liftIO $ withFile file ReadMode $ \h -> do
     body <- BS.hGetContents h
-    eitherThrowIO $ decodeEither body
+    eitherThrowIO' $ decodeEither body
 
 -- | Get a temporary timestamped work directory.
 --
diff --git a/wolf.cabal b/wolf.cabal
--- a/wolf.cabal
+++ b/wolf.cabal
@@ -1,5 +1,5 @@
 name:                  wolf
-version:               0.3.7
+version:               0.3.8
 synopsis:              Amazon Simple Workflow Service Wrapper.
 description:           Wolf is a wrapper around Amazon Simple Workflow Service.
 homepage:              https://github.com/swift-nav/wolf
@@ -37,7 +37,7 @@
                      , amazonka-core
                      , amazonka-s3
                      , amazonka-swf
-                     , base >= 4.8 && < 4.9
+                     , base == 4.8.*
                      , bytestring
                      , conduit
                      , conduit-combinators
@@ -78,6 +78,6 @@
 executable shake-wolf
   main-is:             Shakefile.hs
   ghc-options:         -threaded -rtsopts -with-rtsopts=-N -Wall
-  build-depends:       base >= 4.8 && < 4.9
+  build-depends:       base == 4.8.*
                      , shakers
   default-language:    Haskell2010
