    {-# OPTIONS_HADDOCK not-home #-}
    module Test.Hspec.Monadic {-# DEPRECATED "use \"Test.Hspec\", \"Test.Hspec.Runner\" or \"Test.Hspec.Core\" instead" #-} (
    -- * Types
      Spec
    , Example

    -- * Defining a spec
    , describe
    , context
    , it
    , pending

    -- * Running a spec
    , hspec
    , Summary (..)

    -- * Interface to the non-monadic API
    , runSpecM
    , fromSpecList

    -- * Deprecated types and functions
    , Specs
    , descriptions
    , hspecB
    , hspecX
    , hHspec
    ) where

    import           System.IO
    import           Control.Applicative

    import           Test.Hspec.Core (runSpecM, fromSpecList)
    import           Test.Hspec.Runner
    import           Test.Hspec

    {-# DEPRECATED Specs "use `Spec` instead" #-}             -- since 1.2.0
    type Specs = Spec

    {-# DEPRECATED descriptions "use `sequence_` instead" #-} -- since 1.0.0
    descriptions :: [Spec] -> Spec
    descriptions = sequence_

    {-# DEPRECATED hspecX "use `hspec` instead" #-}           -- since 1.2.0
    hspecX :: Spec -> IO ()
    hspecX = hspec

    {-# DEPRECATED hspecB "use `hspecWith` instead" #-}       -- since 1.4.0
    hspecB :: Spec -> IO Bool
    hspecB spec = (== 0) . summaryFailures <$> hspecWith defaultConfig spec

    {-# DEPRECATED hHspec "use hspecWith instead" #-}         -- since 1.4.0
    hHspec :: Handle -> Spec -> IO Summary
    hHspec h = hspecWith defaultConfig {configHandle = Left h}