content: -----------------------------------------------------------------------------
  -- |
  -- Module      :  Test.StateMachine
  -- Copyright   :  (C) 2017, ATS Advanced Telematic Systems GmbH
  -- License     :  BSD-style (see the file LICENSE)
  --
  -- Maintainer  :  Stevan Andjelkovic <stevan.andjelkovic@strath.ac.uk>
  -- Stability   :  provisional
  -- Portability :  non-portable (GHC extensions)
  --
  -- The main module for state machine based testing, it contains
  -- combinators that help you build sequential and parallel properties.
  --
  -----------------------------------------------------------------------------
  
  module Test.StateMachine
  
    ( -- * Sequential property combinators
      forAllCommands
    , existsCommands
    , runCommands
    , prettyCommands
    , prettyCommands'
    , checkCommandNames
    , coverCommandNames
    , commandNames
    , commandNamesInOrder
    , saveCommands
    , runSavedCommands
    , showLabelledExamples
    , showLabelledExamples'
    , noCleanup
  
    -- * Parallel property combinators
    , forAllParallelCommands
    , forAllNParallelCommands
    , runNParallelCommands
    , runParallelCommands
    , runParallelCommands'
    , runParallelCommandsNTimes
    , runNParallelCommandsNTimes'
    , runParallelCommandsNTimes'
    , runNParallelCommandsNTimes
    , prettyNParallelCommands
    , prettyParallelCommands
    , prettyParallelCommandsWithOpts
    , prettyNParallelCommandsWithOpts
    , checkCommandNamesParallel
    , coverCommandNamesParallel
    , commandNamesParallel
  
      -- * Types
    , StateMachine(StateMachine)
    , Concrete
    , Symbolic
    , Reference
    , concrete
    , reference
    , Opaque(..)
    , opaque
    , Reason(..)
    , GenSym
    , genSym
    , CommandNames(..)
  
    , module Test.StateMachine.Logic
    , module Test.StateMachine.Markov
  
      -- * Re-export
    , ToExpr
    , toExpr
  
    ) where
  
  import           Data.TreeDiff
                     (ToExpr, toExpr)
  import           Prelude
                     ()
  
  import           Test.StateMachine.ConstructorName
  import           Test.StateMachine.Logic
  import           Test.StateMachine.Markov
  import           Test.StateMachine.Parallel
  import           Test.StateMachine.Sequential
  import           Test.StateMachine.Types
  