{-# LANGUAGE CPP #-}
{-# LANGUAGE KindSignatures #-}
{-# OPTIONS_GHC -Wall #-}
module Test.QuickCheck.Classes
(
QCB.lawsCheck
, QCB.lawsCheckMany
, QCB.lawsCheckOne
#if MIN_VERSION_base(4,7,0)
, QCB.bitsLaws
#endif
, QCB.eqLaws
, QCB.substitutiveEqLaws
, QCB.numLaws
, QCB.integralLaws
, QCB.ixLaws
#if MIN_VERSION_base(4,7,0)
, QCB.isListLaws
#endif
#if HAVE_AESON
, jsonLaws
#endif
, QCB.monoidLaws
, QCB.commutativeMonoidLaws
, QCB.semigroupMonoidLaws
, QCB.ordLaws
, QCB.enumLaws
, QCB.boundedEnumLaws
, primLaws
, QCB.semigroupLaws
, QCB.commutativeSemigroupLaws
, QCB.exponentialSemigroupLaws
, QCB.idempotentSemigroupLaws
, QCB.rectangularBandSemigroupLaws
#if HAVE_SEMIRINGS
, semiringLaws
, ringLaws
, gcdDomainLaws
, euclideanLaws
#endif
, QCB.showLaws
, QCB.showReadLaws
, QCB.storableLaws
#if MIN_VERSION_base(4,5,0)
, QCB.genericLaws
, QCB.generic1Laws
#endif
#if HAVE_UNARY_LAWS
, QCB.alternativeLaws
#if HAVE_SEMIGROUPOIDS
, altLaws
, applyLaws
#endif
, QCB.applicativeLaws
, QCB.contravariantLaws
, QCB.foldableLaws
, QCB.functorLaws
, QCB.monadLaws
, QCB.monadPlusLaws
, QCB.monadZipLaws
#if HAVE_SEMIGROUPOIDS
, plusLaws
, extendedPlusLaws
#endif
, QCB.traversableLaws
#endif
#if HAVE_BINARY_LAWS
, QCB.bifoldableLaws
, QCB.bifunctorLaws
, QCB.bitraversableLaws
, QCB.categoryLaws
, QCB.commutativeCategoryLaws
#if HAVE_SEMIGROUPOIDS
, semigroupoidLaws
, commutativeSemigroupoidLaws
#endif
#if HAVE_VECTOR
, muvectorLaws
#endif
#endif
, QCB.Laws(..)
, QCB.Proxy1(..)
, QCB.Proxy2(..)
) where
#if MIN_VERSION_base(4,7,0)
import Test.QuickCheck.Classes.IsList
#endif
#if HAVE_AESON
import Test.QuickCheck.Classes.Json
#endif
import Test.QuickCheck.Classes.Prim
#if HAVE_SEMIRINGS
import Test.QuickCheck.Classes.Euclidean
import Test.QuickCheck.Classes.Semiring
import Test.QuickCheck.Classes.Ring
#endif
#if HAVE_UNARY_LAWS
#if HAVE_SEMIGROUPOIDS
import Test.QuickCheck.Classes.Alt
import Test.QuickCheck.Classes.Apply
#endif
#if HAVE_SEMIGROUPOIDS
import Test.QuickCheck.Classes.Plus
#endif
#endif
#if HAVE_BINARY_LAWS
#if HAVE_SEMIGROUPOIDS
import Test.QuickCheck.Classes.Semigroupoid
#endif
#endif
#if HAVE_VECTOR
import Test.QuickCheck.Classes.MVector
#endif
import qualified Test.QuickCheck.Classes.Base as QCB