-- | Generator -- -- Intended for qualified import. -- -- > import Test.Falsify.Generator (Gen) -- > import qualified Test.Falsify.Generator qualified as Gen module Test.Falsify.Generator ( -- * Definition Gen -- opaque -- * Simple (non-compound) generators , bool , integral , int , enum -- * Compound generators -- ** Taking advantage of 'Selective' , choose -- ** Lists , list , elem , pick , pickBiased , shuffle -- ** Permutations , Permutation , applyPermutation , permutation -- ** Tweak test data distribution , frequency -- ** Trees , Tree(Leaf, Branch) , drawTree -- *** Binary trees , tree , bst -- *** Shrink trees , ShrinkTree , IsValidShrink(..) , path , pathAny -- ** Marking , Marked(..) , Mark(..) , selectAllKept , mark -- * Functions -- ** Generation , Fun , applyFun , pattern Fn , pattern Fn2 , pattern Fn3 , fun -- ** Construction , Function(..) , (:->) -- opaque , functionMap -- * Reducing precision , WordN(..) , wordN , properFraction -- * Overriding shrinking , withoutShrinking , shrinkToOneOf , firstThen , shrinkWith , shrinkToNothing -- * Shrink trees , fromShrinkTree , toShrinkTree -- * Generator independence , bindIntegral , perturb -- * Low-level , prim , primWith , exhaustive , captureLocalTree , bindWithoutShortcut ) where import Prelude hiding (either, elem, properFraction) import Data.Falsify.List import Data.Falsify.Marked import Test.Falsify.Internal.Generator import Test.Falsify.Reexported.Generator.Compound import Test.Falsify.Reexported.Generator.Function import Test.Falsify.Reexported.Generator.Precision import Test.Falsify.Reexported.Generator.Shrinking import Test.Falsify.Reexported.Generator.Simple import Data.Falsify.Tree