diff --git a/nanospec.cabal b/nanospec.cabal
--- a/nanospec.cabal
+++ b/nanospec.cabal
@@ -1,5 +1,5 @@
 name:             nanospec
-version:          0.1.0
+version:          0.2.0
 license:          MIT
 license-file:     LICENSE
 copyright:        (c) 2012 Simon Hengel
@@ -42,4 +42,4 @@
   build-depends:
       base
     , hspec >= 1.3
-    , silently
+    , silently >= 1.2.4
diff --git a/src/Test/Hspec.hs b/src/Test/Hspec.hs
--- a/src/Test/Hspec.hs
+++ b/src/Test/Hspec.hs
@@ -40,8 +40,15 @@
 add :: SpecTree -> SpecM ()
 add s = SpecM () [s]
 
+instance Functor SpecM where
+  fmap = undefined
+
+instance Applicative SpecM where
+  pure a = SpecM a []
+  (<*>) = ap
+
 instance Monad SpecM where
-  return a             = SpecM a []
+  return = pure
   SpecM a xs >>= f = case f a of
     SpecM b ys -> SpecM b (xs ++ ys)
 
diff --git a/test/Test/HspecSpec.hs b/test/Test/HspecSpec.hs
--- a/test/Test/HspecSpec.hs
+++ b/test/Test/HspecSpec.hs
@@ -27,7 +27,7 @@
     failure = H.expect "failure" False
 
 runSpec :: H.Spec -> IO [String]
-runSpec s = lines . fst <$> capture (H.hspec s `E.catch` ignore)
+runSpec s = lines <$> capture_ (H.hspec s `E.catch` ignore)
   where
     ignore :: ExitCode -> IO ()
     ignore _ = return ()
