Module

Test.Abides.Properties

#reflexive

reflexive :: forall a. Eq a => a -> Boolean

x == x?

#commutative

commutative :: forall a b. Eq b => (a -> a -> b) -> a -> a -> Boolean

f x y == f y x?

#associative

associative :: forall a. Eq a => (a -> a -> a) -> a -> a -> a -> Boolean

f (f x y) z == f x (f y z)?

#idempotent

idempotent :: forall a. Eq a => (a -> a) -> a -> Boolean

f (f x) == f x?

#distributive

distributive :: forall a. Eq a => (a -> a) -> (a -> a -> a) -> a -> a -> Boolean

f (g x y) == g (f x) (f y)?

#distributive'

distributive' :: forall a b. Eq b => (a -> b) -> (a -> a -> a) -> (b -> b -> b) -> a -> a -> Boolean

f (g x y) == g' (f x) (f y)?

#constL

constL :: forall a. Eq a => (a -> a -> a) -> a -> a -> Boolean

f x y == x? Note: bottom ~ forall y. f bottom y == bottom, while unit ~ forall x. f x unit == x

#constR

constR :: forall a. Eq a => (a -> a -> a) -> a -> a -> Boolean

f x y == y?

Modules