quickcheck-properties-0.1: QuickCheck properties for standard type classes.

Safe HaskellSafe
LanguageHaskell98

Test.QuickCheck.Property.Common.Internal

Contents

Description

Implementation of delayed comparison and composition of properties

Synopsis

Comparison for equality

data Equal a #

Values to be compared for equality

Constructors

Equal a a 
NotE (Equal a) 
AndE (Equal a) (Equal a) 
OrE (Equal a) (Equal a) 

Instances

Equalable (Equal a) # 

Associated Types

type Result (Equal a) :: * #

type Compared (Equal a) :: * #

Methods

equalWith :: (Result (Equal a) -> Result (Equal a) -> Bool) -> Equal a -> Compared (Equal a) #

mapEqual :: (Equal (Result (Equal a)) -> Equal (Result (Equal a))) -> Equal a -> Equal a #

zipEquals :: (Equal (Result (Equal a)) -> Equal (Result (Equal a)) -> Equal (Result (Equal a))) -> Equal a -> Equal a -> Equal a #

type Result (Equal a) # 
type Result (Equal a) = a
type Compared (Equal a) # 
type Compared (Equal a) = Bool

runEqual :: (a -> a -> Bool) -> Equal a -> Bool #

Evaluate boolean expression inside Equal

class Equalable a where #

Recurse through function to apply comparison to Equal.

Minimal complete definition

equalWith, mapEqual, zipEquals

Associated Types

type Result a :: * #

Type which should be compared for equality

type Compared a :: * #

Result of comparison. Could be passed to quickCheck

Methods

equalWith :: (Result a -> Result a -> Bool) -> a -> Compared a #

Compare value using custom comparison function

mapEqual :: (Equal (Result a) -> Equal (Result a)) -> a -> a #

Map property

zipEquals :: (Equal (Result a) -> Equal (Result a) -> Equal (Result a)) -> a -> a -> a #

Zip properties

Instances

Equalable (Equal a) # 

Associated Types

type Result (Equal a) :: * #

type Compared (Equal a) :: * #

Methods

equalWith :: (Result (Equal a) -> Result (Equal a) -> Bool) -> Equal a -> Compared (Equal a) #

mapEqual :: (Equal (Result (Equal a)) -> Equal (Result (Equal a))) -> Equal a -> Equal a #

zipEquals :: (Equal (Result (Equal a)) -> Equal (Result (Equal a)) -> Equal (Result (Equal a))) -> Equal a -> Equal a -> Equal a #

Equalable a => Equalable (x -> a) # 

Associated Types

type Result (x -> a) :: * #

type Compared (x -> a) :: * #

Methods

equalWith :: (Result (x -> a) -> Result (x -> a) -> Bool) -> (x -> a) -> Compared (x -> a) #

mapEqual :: (Equal (Result (x -> a)) -> Equal (Result (x -> a))) -> (x -> a) -> x -> a #

zipEquals :: (Equal (Result (x -> a)) -> Equal (Result (x -> a)) -> Equal (Result (x -> a))) -> (x -> a) -> (x -> a) -> x -> a #