module Hedgehog (
Property
, PropertyT
, Group(..)
, PropertyName
, GroupName
, property
, test
, forAll
, forAllWith
, discard
, check
, recheck
, recheckAt
, discover
, discoverPrefix
, checkParallel
, checkSequential
, Confidence
, verifiedTermination
, withConfidence
, withTests
, TestLimit
, withDiscards
, DiscardLimit
, withShrinks
, ShrinkLimit
, withRetries
, ShrinkRetries
, withSkip
, Skip
, Gen
, GenT
, MonadGen(..)
, Range
, Size(..)
, Seed(..)
, Test
, TestT
, MonadTest(..)
, annotate
, annotateShow
, footnote
, footnoteShow
, success
, failure
, assert
, diff
, (===)
, (/==)
, tripping
, eval
, evalNF
, evalM
, evalIO
, evalEither
, evalEitherM
, evalExceptT
, evalMaybe
, evalMaybeM
, LabelName
, classify
, cover
, label
, collect
, Command(..)
, Callback(..)
, Action
, Sequential(..)
, Parallel(..)
, executeSequential
, executeParallel
, Var(..)
, concrete
, opaque
, Symbolic
, Concrete(..)
, Opaque(..)
, distributeT
, FunctorB(..)
, TraversableB(..)
, Rec(..)
, Eq1
, eq1
, Ord1
, compare1
, Show1
, showsPrec1
, HTraversable(..)
) where
import Data.Functor.Classes (Eq1, eq1, Ord1, compare1, Show1, showsPrec1)
import Hedgehog.Internal.Barbie (FunctorB(..), TraversableB(..), Rec(..))
import Hedgehog.Internal.Distributive (distributeT)
import Hedgehog.Internal.Gen (Gen, GenT, MonadGen(..))
import Hedgehog.Internal.HTraversable (HTraversable(..))
import Hedgehog.Internal.Opaque (Opaque(..))
import Hedgehog.Internal.Property (annotate, annotateShow)
import Hedgehog.Internal.Property (assert, diff, (===), (/==))
import Hedgehog.Internal.Property (classify, cover)
import Hedgehog.Internal.Property (discard, failure, success)
import Hedgehog.Internal.Property (DiscardLimit, withDiscards)
import Hedgehog.Internal.Property (eval, evalNF, evalM, evalIO)
import Hedgehog.Internal.Property (evalEither, evalEitherM, evalExceptT, evalMaybe, evalMaybeM)
import Hedgehog.Internal.Property (footnote, footnoteShow)
import Hedgehog.Internal.Property (forAll, forAllWith)
import Hedgehog.Internal.Property (LabelName, MonadTest(..))
import Hedgehog.Internal.Property (Property, PropertyT, PropertyName)
import Hedgehog.Internal.Property (Group(..), GroupName)
import Hedgehog.Internal.Property (Confidence, verifiedTermination, withConfidence)
import Hedgehog.Internal.Property (ShrinkLimit, withShrinks)
import Hedgehog.Internal.Property (ShrinkRetries, withRetries)
import Hedgehog.Internal.Property (Skip, withSkip)
import Hedgehog.Internal.Property (Test, TestT, property, test)
import Hedgehog.Internal.Property (TestLimit, withTests)
import Hedgehog.Internal.Property (collect, label)
import Hedgehog.Internal.Range (Range, Size(..))
import Hedgehog.Internal.Runner (check, recheck, recheckAt, checkSequential, checkParallel)
import Hedgehog.Internal.Seed (Seed(..))
import Hedgehog.Internal.State (Command(..), Callback(..))
import Hedgehog.Internal.State (Action, Sequential(..), Parallel(..))
import Hedgehog.Internal.State (executeSequential, executeParallel)
import Hedgehog.Internal.State (Var(..), Symbolic, Concrete(..), concrete, opaque)
import Hedgehog.Internal.TH (discover, discoverPrefix)
import Hedgehog.Internal.Tripping (tripping)