-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | A Testing Framework for Haskell
--   
--   Hspec is a testing framework for Haskell. Some of Hspec's distinctive
--   features are:
--   
--   <ul>
--   <li>a friendly DSL for defining tests</li>
--   <li>integration with QuickCheck, SmallCheck, and HUnit</li>
--   <li>parallel test execution</li>
--   <li>automatic discovery of test files</li>
--   </ul>
--   
--   The Hspec Manual is at <a>https://hspec.github.io/</a>.
@package hspec
@version 2.11.16



-- | <i>Deprecated: Use <a>Test.Hspec.Api.Formatters.V1</a> instead.</i>
module Test.Hspec.Formatters
data Formatter
Formatter :: FormatM () -> ([String] -> String -> FormatM ()) -> FormatM () -> (Path -> FormatM ()) -> (Path -> Progress -> FormatM ()) -> (Path -> String -> FormatM ()) -> (Path -> String -> FailureReason -> FormatM ()) -> (Path -> String -> Maybe String -> FormatM ()) -> FormatM () -> FormatM () -> Formatter
[headerFormatter] :: Formatter -> FormatM ()
[exampleGroupStarted] :: Formatter -> [String] -> String -> FormatM ()
[exampleGroupDone] :: Formatter -> FormatM ()
[exampleStarted] :: Formatter -> Path -> FormatM ()
[exampleProgress] :: Formatter -> Path -> Progress -> FormatM ()
[exampleSucceeded] :: Formatter -> Path -> String -> FormatM ()
[exampleFailed] :: Formatter -> Path -> String -> FailureReason -> FormatM ()
[examplePending] :: Formatter -> Path -> String -> Maybe String -> FormatM ()
[failedFormatter] :: Formatter -> FormatM ()
[footerFormatter] :: Formatter -> FormatM ()
data FailureReason
NoReason :: FailureReason
Reason :: String -> FailureReason
ExpectedButGot :: Maybe String -> String -> String -> FailureReason
Error :: Maybe String -> SomeException -> FailureReason
formatterToFormat :: Formatter -> FormatConfig -> IO Format
checks :: Formatter
newtype Seconds
Seconds :: Double -> Seconds
failed_examples :: Formatter
progress :: Formatter
silent :: Formatter
specdoc :: Formatter
data FailureRecord
FailureRecord :: Maybe Location -> Path -> FailureReason -> FailureRecord
[failureRecordLocation] :: FailureRecord -> Maybe Location
[failureRecordPath] :: FailureRecord -> Path
[failureRecordMessage] :: FailureRecord -> FailureReason
type FormatM = Free FormatF
extraChunk :: String -> FormatM ()
getCPUTime :: FormatM (Maybe Seconds)
getFailCount :: FormatM Int
getFailMessages :: FormatM [FailureRecord]
getPendingCount :: FormatM Int
getRealTime :: FormatM Seconds
getSuccessCount :: FormatM Int
getTotalCount :: FormatM Int
missingChunk :: String -> FormatM ()
useDiff :: FormatM Bool
usedSeed :: FormatM Integer
withFailColor :: FormatM a -> FormatM a
withInfoColor :: FormatM a -> FormatM a
withPendingColor :: FormatM a -> FormatM a
withSuccessColor :: FormatM a -> FormatM a
write :: String -> FormatM ()
writeLine :: String -> FormatM ()
writeTransient :: String -> FormatM ()
formatException :: SomeException -> String

module Test.Hspec.Runner
type Spec = SpecWith ()
type SpecWith a = SpecM a ()
hspec :: Spec -> IO ()
hspecWith :: Config -> Spec -> IO ()
defaultConfig :: Config
data Config
Config :: Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Maybe Int -> Bool -> Bool -> Bool -> Maybe Integer -> Maybe Integer -> Maybe FilePath -> Bool -> Bool -> Maybe (Path -> Bool) -> Maybe (Path -> Bool) -> Maybe Int -> Maybe Int -> Maybe Int -> Maybe Int -> Maybe Int -> ColorMode -> UnicodeMode -> Bool -> Maybe Int -> Maybe (Maybe Int -> String -> String -> IO ()) -> Bool -> (Bool -> String -> String -> (String, String)) -> (SomeException -> String) -> Bool -> Bool -> [(String, FormatConfig -> IO Format)] -> Maybe (FormatConfig -> IO Format) -> Maybe Formatter -> Bool -> Maybe Int -> Annotations -> Config
[configIgnoreConfigFile] :: Config -> Bool
[configDryRun] :: Config -> Bool
[configFocusedOnly] :: Config -> Bool
[configFailOnEmpty] :: Config -> Bool
[configFailOnFocused] :: Config -> Bool
[configFailOnPending] :: Config -> Bool
[configFailOnEmptyDescription] :: Config -> Bool
[configPrintSlowItems] :: Config -> Maybe Int
[configPrintCpuTime] :: Config -> Bool
[configFailFast] :: Config -> Bool
[configRandomize] :: Config -> Bool
[configSeed] :: Config -> Maybe Integer
[configQuickCheckSeed] :: Config -> Maybe Integer
[configFailureReport] :: Config -> Maybe FilePath
[configRerun] :: Config -> Bool
[configRerunAllOnSuccess] :: Config -> Bool
[configFilterPredicate] :: Config -> Maybe (Path -> Bool)
[configSkipPredicate] :: Config -> Maybe (Path -> Bool)
[configQuickCheckMaxSuccess] :: Config -> Maybe Int
[configQuickCheckMaxDiscardRatio] :: Config -> Maybe Int
[configQuickCheckMaxSize] :: Config -> Maybe Int
[configQuickCheckMaxShrinks] :: Config -> Maybe Int
[configSmallCheckDepth] :: Config -> Maybe Int
[configColorMode] :: Config -> ColorMode
[configUnicodeMode] :: Config -> UnicodeMode
[configDiff] :: Config -> Bool
[configDiffContext] :: Config -> Maybe Int
[configExternalDiff] :: Config -> Maybe (Maybe Int -> String -> String -> IO ())
[configPrettyPrint] :: Config -> Bool
[configPrettyPrintFunction] :: Config -> Bool -> String -> String -> (String, String)
[configFormatException] :: Config -> SomeException -> String
[configTimes] :: Config -> Bool
[configExpertMode] :: Config -> Bool
[configAvailableFormatters] :: Config -> [(String, FormatConfig -> IO Format)]
[configFormat] :: Config -> Maybe (FormatConfig -> IO Format)
[configFormatter] :: Config -> Maybe Formatter
[configHtmlOutput] :: Config -> Bool
[configConcurrentJobs] :: Config -> Maybe Int
[configAnnotations] :: Config -> Annotations
configAddFilter :: (Path -> Bool) -> Config -> Config
readConfig :: Config -> [String] -> IO Config
data ColorMode
ColorAuto :: ColorMode
ColorNever :: ColorMode
ColorAlways :: ColorMode
data UnicodeMode
UnicodeAuto :: UnicodeMode
UnicodeNever :: UnicodeMode
UnicodeAlways :: UnicodeMode
data ResultItem
data ResultItemStatus
ResultItemSuccess :: ResultItemStatus
ResultItemPending :: ResultItemStatus
ResultItemFailure :: ResultItemStatus
data SpecResult
data Summary
Summary :: !Int -> !Int -> Summary
[summaryExamples] :: Summary -> !Int
[summaryFailures] :: Summary -> !Int
isSuccess :: Summary -> Bool
resultItemIsFailure :: ResultItem -> Bool
toSummary :: SpecResult -> Summary
type Path = ([String], String)
registerDefaultFormatter :: (String, FormatConfig -> IO Format) -> Config -> Config
registerFormatter :: (String, FormatConfig -> IO Format) -> Config -> Config
evalSpec :: Config -> SpecWith a -> IO (Config, [SpecTree a])
evaluateResult :: SpecResult -> IO ()
evaluateSummary :: Summary -> IO ()
hspecResult :: Spec -> IO Summary
hspecWithResult :: Config -> Spec -> IO Summary
runSpec :: Spec -> Config -> IO Summary
runSpecForest :: [SpecTree ()] -> Config -> IO SpecResult


-- | Hspec is a testing framework for Haskell.
--   
--   This is the library reference for Hspec. The <a>User's Manual</a>
--   contains more in-depth documentation.
module Test.Hspec
type Spec = SpecWith ()
type SpecWith a = SpecM a ()
class Example e
type family Arg e
type HasCallStack = ?callStack :: CallStack
type Selector a = a -> Bool
type Expectation = Assertion
shouldBe :: (HasCallStack, Show a, Eq a) => a -> a -> Expectation
shouldContain :: (HasCallStack, Show a, Eq a) => [a] -> [a] -> Expectation
shouldEndWith :: (HasCallStack, Show a, Eq a) => [a] -> [a] -> Expectation
shouldMatchList :: (HasCallStack, Show a, Eq a) => [a] -> [a] -> Expectation
shouldNotBe :: (HasCallStack, Show a, Eq a) => a -> a -> Expectation
shouldNotContain :: (HasCallStack, Show a, Eq a) => [a] -> [a] -> Expectation
shouldNotReturn :: (HasCallStack, Show a, Eq a) => IO a -> a -> Expectation
shouldNotSatisfy :: (HasCallStack, Show a) => a -> (a -> Bool) -> Expectation
shouldReturn :: (HasCallStack, Show a, Eq a) => IO a -> a -> Expectation
shouldSatisfy :: (HasCallStack, Show a) => a -> (a -> Bool) -> Expectation
shouldStartWith :: (HasCallStack, Show a, Eq a) => [a] -> [a] -> Expectation
shouldThrow :: (HasCallStack, Exception e) => IO a -> Selector e -> Expectation
anyArithException :: Selector ArithException
anyErrorCall :: Selector ErrorCall
anyException :: Selector SomeException
anyIOException :: Selector IOException
errorCall :: String -> Selector ErrorCall
expectationFailure :: HasCallStack => String -> Expectation
it :: (HasCallStack, Example a) => String -> a -> SpecWith (Arg a)
specify :: (HasCallStack, Example a) => String -> a -> SpecWith (Arg a)
describe :: HasCallStack => String -> SpecWith a -> SpecWith a
context :: HasCallStack => String -> SpecWith a -> SpecWith a

-- | <tt>example</tt> is a type restricted version of <a>id</a>. It can be
--   used to get better error messages on type mismatches.
--   
--   Compare e.g.
--   
--   <pre>
--   it "exposes some behavior" $ example $ do
--     putStrLn
--   </pre>
--   
--   with
--   
--   <pre>
--   it "exposes some behavior" $ do
--     putStrLn
--   </pre>
example :: Expectation -> Expectation
parallel :: SpecWith a -> SpecWith a
sequential :: SpecWith a -> SpecWith a
runIO :: IO r -> SpecM a r
pending :: HasCallStack => Expectation
pendingWith :: HasCallStack => String -> Expectation
xit :: (HasCallStack, Example a) => String -> a -> SpecWith (Arg a)
xspecify :: (HasCallStack, Example a) => String -> a -> SpecWith (Arg a)
xdescribe :: HasCallStack => String -> SpecWith a -> SpecWith a
xcontext :: HasCallStack => String -> SpecWith a -> SpecWith a
focus :: SpecWith a -> SpecWith a
fit :: (HasCallStack, Example a) => String -> a -> SpecWith (Arg a)
fspecify :: (HasCallStack, Example a) => String -> a -> SpecWith (Arg a)
fdescribe :: HasCallStack => String -> SpecWith a -> SpecWith a
fcontext :: HasCallStack => String -> SpecWith a -> SpecWith a
type ActionWith a = a -> IO ()
before :: IO a -> SpecWith a -> Spec
before_ :: IO () -> SpecWith a -> SpecWith a
beforeWith :: (b -> IO a) -> SpecWith a -> SpecWith b
beforeAll :: HasCallStack => IO a -> SpecWith a -> Spec
beforeAll_ :: HasCallStack => IO () -> SpecWith a -> SpecWith a
beforeAllWith :: HasCallStack => (b -> IO a) -> SpecWith a -> SpecWith b
after :: ActionWith a -> SpecWith a -> SpecWith a
after_ :: IO () -> SpecWith a -> SpecWith a
afterAll :: HasCallStack => ActionWith a -> SpecWith a -> SpecWith a
afterAll_ :: HasCallStack => IO () -> SpecWith a -> SpecWith a
around :: (ActionWith a -> IO ()) -> SpecWith a -> Spec
around_ :: (IO () -> IO ()) -> SpecWith a -> SpecWith a
aroundWith :: (ActionWith a -> ActionWith b) -> SpecWith a -> SpecWith b
aroundAll :: HasCallStack => (ActionWith a -> IO ()) -> SpecWith a -> Spec
aroundAll_ :: HasCallStack => (IO () -> IO ()) -> SpecWith a -> SpecWith a
aroundAllWith :: HasCallStack => (ActionWith a -> ActionWith b) -> SpecWith a -> SpecWith b
mapSubject :: (b -> a) -> SpecWith a -> SpecWith b
ignoreSubject :: SpecWith () -> SpecWith a
hspec :: Spec -> IO ()

module Test.Hspec.QuickCheck
modifyArgs :: (Args -> Args) -> SpecWith a -> SpecWith a
modifyMaxSuccess :: (Int -> Int) -> SpecWith a -> SpecWith a
modifyMaxDiscardRatio :: (Int -> Int) -> SpecWith a -> SpecWith a
modifyMaxSize :: (Int -> Int) -> SpecWith a -> SpecWith a
modifyMaxShrinks :: (Int -> Int) -> SpecWith a -> SpecWith a

-- | <pre>
--   prop ".." $
--     ..
--   </pre>
--   
--   is a shortcut for
--   
--   <pre>
--   <a>it</a> ".." $ <a>property</a> $
--     ..
--   </pre>
prop :: (HasCallStack, Testable prop) => String -> prop -> Spec

-- | <pre>
--   xprop ".." $
--     ..
--   </pre>
--   
--   is a shortcut for
--   
--   <pre>
--   <a>xit</a> ".." $ <a>property</a> $
--     ..
--   </pre>
xprop :: (HasCallStack, Testable prop) => String -> prop -> Spec

-- | <pre>
--   fprop ".." $
--     ..
--   </pre>
--   
--   is a shortcut for
--   
--   <pre>
--   <a>fit</a> ".." $ <a>property</a> $
--     ..
--   </pre>
fprop :: (HasCallStack, Testable prop) => String -> prop -> Spec
