class Arbitrary t where
arbitrary :: Gen tclass CoArbitrary t where
coarbitrary :: forall r. t -> Gen r -> Gen rdata Result
= Success
| Failed Stringinstance showResult :: Show Result(<?>) :: Boolean -> String -> Resultinstance arbChar :: Arbitrary S.Charinstance coarbChar :: CoArbitrary S.Charinstance arbNumber :: Arbitrary Numberinstance coarbNumber :: CoArbitrary Numberinstance arbBoolean :: Arbitrary Booleaninstance coarbBoolean :: CoArbitrary Booleaninstance arbString :: Arbitrary Stringinstance coarbString :: CoArbitrary Stringnewtype AlphaNumString
= AlphaNumString Stringinstance arbAlphaNumString :: Arbitrary AlphaNumStringinstance coarbAlphaNumString :: CoArbitrary AlphaNumStringinstance arbTuple :: (Arbitrary a, Arbitrary b) => Arbitrary (Tuple a b)instance coarbTuple :: (CoArbitrary a, CoArbitrary b) => CoArbitrary (Tuple a b)instance arbEither :: (Arbitrary a, Arbitrary b) => Arbitrary (Either a b)instance coarbEither :: (CoArbitrary a, CoArbitrary b) => CoArbitrary (Either a b)instance arbMaybe :: (Arbitrary a) => Arbitrary (Maybe a)instance coarbMaybe :: (CoArbitrary a) => CoArbitrary (Maybe a)instance arbFunction :: (CoArbitrary a, Arbitrary b) => Arbitrary (a -> b)instance coarbFunction :: (Arbitrary a, CoArbitrary b) => CoArbitrary (a -> b)instance arbArray :: (Arbitrary a) => Arbitrary [a]instance coarbArray :: (CoArbitrary a) => CoArbitrary [a]class Testable prop where
test :: prop -> Gen Resultinstance testableResult :: Testable Resultinstance testableBoolean :: Testable Booleaninstance testableFunction :: (Arbitrary t, Testable prop) => Testable (t -> prop)quickCheckPure :: forall prop. (Testable prop) => Number -> Number -> prop -> [Result]type QC a = forall eff. Eff (err :: Exception, random :: Random, trace :: Trace | eff) aquickCheck' :: forall prop. (Testable prop) => Number -> prop -> QC UnitquickCheck :: forall prop. (Testable prop) => prop -> QC Unit(===) :: forall a b. (Eq a, Show a) => a -> a -> ResultSelf-documenting equality assertion
(/==) :: forall a b. (Eq a, Show a) => a -> a -> ResultSelf-documenting inequality assertion
type LCG = Numbertype Size = Numbertype GenState = { size :: Size, newSeed :: LCG }type GenOut a = { value :: a, state :: GenState }data Gen arepeatable :: forall a b. (a -> Gen b) -> Gen (a -> b)stateful :: forall a. (GenState -> Gen a) -> Gen avariant :: forall a. LCG -> Gen a -> Gen asized :: forall a. (Size -> Gen a) -> Gen aresize :: forall a. Size -> Gen a -> Gen achoose :: Number -> Number -> Gen NumberchooseInt :: Number -> Number -> Gen NumberoneOf :: forall a. Gen a -> [Gen a] -> Gen afrequency :: forall a. Tuple Number (Gen a) -> [Tuple Number (Gen a)] -> Gen aarrayOf :: forall a. Gen a -> Gen [a]arrayOf1 :: forall a. Gen a -> Gen (Tuple a [a])vectorOf :: forall a. Number -> Gen a -> Gen [a]elements :: forall a. a -> [a] -> Gen arunGen :: forall a. Gen a -> GenState -> GenOut aevalGen :: forall a. Gen a -> GenState -> ashowSample' :: forall r a. (Show a) => Size -> Gen a -> Eff (trace :: Trace | r) UnitshowSample :: forall r a. (Show a) => Gen a -> Eff (trace :: Trace | r) Unituniform :: Gen NumberperturbGen :: forall a. Number -> Gen a -> Gen ainstance functorGen :: Functor Geninstance applyGen :: Apply Geninstance applicativeGen :: Applicative Geninstance bindGen :: Bind Geninstance monadGen :: Monad Gen