diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,6 +1,11 @@
 Changes
 =======
 
+Version 0.11.0.4
+----------------
+
+Fix compatibility with `optparse-applicative-0.13`
+
 Version 0.11.0.3
 ----------------
 
diff --git a/Test/Tasty.hs b/Test/Tasty.hs
--- a/Test/Tasty.hs
+++ b/Test/Tasty.hs
@@ -45,7 +45,29 @@
 defaultIngredients :: [Ingredient]
 defaultIngredients = [listingTests, consoleTestReporter]
 
--- | Parse the command line arguments and run the tests
+-- | Parse the command line arguments and run the tests.
+--
+-- When the tests finish, this function calls 'exitWith' with the exit code
+-- that indicates whether any tests have failed. Most external systems
+-- (stack, cabal, travis-ci, jenkins etc.) rely on the exit code to detect
+-- whether the tests pass. If you want to do something else after
+-- `defaultMain` returns, you need to catch the exception and then re-throw
+-- it. Example:
+--
+-- >import Test.Tasty
+-- >import Test.Tasty.HUnit
+-- >import System.Exit
+-- >import Control.Exception
+-- >
+-- >test = testCase "Test 1" (2 @?= 3)
+-- >
+-- >main = defaultMain test
+-- >  `catch` (\e -> do
+-- >    if e == ExitSuccess
+-- >      then putStrLn "Yea"
+-- >      else putStrLn "Nay"
+-- >    throwIO e)
+
 defaultMain :: TestTree -> IO ()
 defaultMain = defaultMainWithIngredients defaultIngredients
 
diff --git a/Test/Tasty/CmdLine.hs b/Test/Tasty/CmdLine.hs
--- a/Test/Tasty/CmdLine.hs
+++ b/Test/Tasty/CmdLine.hs
@@ -32,7 +32,11 @@
 suiteOptionParser ins tree = optionParser $ suiteOptions ins tree
 
 -- | Parse the command line arguments and run the tests using the provided
--- ingredient list
+-- ingredient list.
+--
+-- When the tests finish, this function calls 'exitWith' with the exit code
+-- that indicates whether any tests have failed. See 'defaultMain' for
+-- details.
 defaultMainWithIngredients :: [Ingredient] -> TestTree -> IO ()
 defaultMainWithIngredients ins testTree = do
   cmdlineOpts <- execParser $
diff --git a/Test/Tasty/Options/Core.hs b/Test/Tasty/Options/Core.hs
--- a/Test/Tasty/Options/Core.hs
+++ b/Test/Tasty/Options/Core.hs
@@ -14,6 +14,7 @@
 import Data.Proxy
 import Data.Tagged
 import Data.Fixed
+import Data.Monoid
 import Options.Applicative
 import GHC.Conc
 
diff --git a/Test/Tasty/Patterns.hs b/Test/Tasty/Patterns.hs
--- a/Test/Tasty/Patterns.hs
+++ b/Test/Tasty/Patterns.hs
@@ -47,6 +47,7 @@
 import Data.Tagged
 
 import Options.Applicative
+import Data.Monoid
 
 data Token = SlashToken
            | WildcardToken
diff --git a/tasty.cabal b/tasty.cabal
--- a/tasty.cabal
+++ b/tasty.cabal
@@ -2,7 +2,7 @@
 --  see http://haskell.org/cabal/users-guide/
 
 name:                tasty
-version:             0.11.0.3
+version:             0.11.0.4
 synopsis:            Modern and extensible testing framework
 description:         Tasty is a modern testing framework for Haskell.
                      It lets you combine your unit tests, golden
