module Test.LeanCheck.Utils.Operators
(
(==>)
, (===), (====)
, (&&&), (&&&&), (&&&&&)
, (|||), (||||)
, isIdempotent
, isIdentity
, isNeverIdentity
, isCommutative
, isAssociative
, isDistributiveOver
, isLeftDistributiveOver
, isRightDistributiveOver
, isFlipped
, isTransitive
, isReflexive
, isIrreflexive
, isSymmetric
, isAsymmetric
, isAntisymmetric
, isEquivalence
, isPartialOrder
, isStrictPartialOrder
, isTotalOrder
, isStrictTotalOrder
, isComparison
, (=$), ($=)
, (=|), (|=)
, okEq
, okOrd
, okEqOrd
, okNum
, okNumNonNegative
, idempotent
, identity
, neverIdentity
, commutative
, associative
, distributive
, symmetric2
, transitive
, reflexive
, irreflexive
, symmetric
, asymmetric
, antisymmetric
, equivalence
, partialOrder
, strictPartialOrder
, totalOrder
, strictTotalOrder
, comparison
)
where
import Test.LeanCheck ((==>))
combine :: (b -> c -> d) -> (a -> b) -> (a -> c) -> (a -> d)
combine :: forall b c d a. (b -> c -> d) -> (a -> b) -> (a -> c) -> a -> d
combine b -> c -> d
(?) a -> b
f a -> c
g = \a
x -> a -> b
f a
x b -> c -> d
? a -> c
g a
x
(===) :: Eq b => (a -> b) -> (a -> b) -> a -> Bool
=== :: forall b a. Eq b => (a -> b) -> (a -> b) -> a -> Bool
(===) = forall b c d a. (b -> c -> d) -> (a -> b) -> (a -> c) -> a -> d
combine forall a. Eq a => a -> a -> Bool
(==)
infix 4 ===
(====) :: Eq c => (a -> b -> c) -> (a -> b -> c) -> a -> b -> Bool
==== :: forall c a b.
Eq c =>
(a -> b -> c) -> (a -> b -> c) -> a -> b -> Bool
(====) = forall b c d a. (b -> c -> d) -> (a -> b) -> (a -> c) -> a -> d
combine forall b a. Eq b => (a -> b) -> (a -> b) -> a -> Bool
(===)
infix 4 ====
(&&&) :: (a -> Bool) -> (a -> Bool) -> a -> Bool
&&& :: forall a. (a -> Bool) -> (a -> Bool) -> a -> Bool
(&&&) = forall b c d a. (b -> c -> d) -> (a -> b) -> (a -> c) -> a -> d
combine Bool -> Bool -> Bool
(&&)
infixr 3 &&&
(&&&&) :: (a -> b -> Bool) -> (a -> b -> Bool) -> a -> b -> Bool
&&&& :: forall a b. (a -> b -> Bool) -> (a -> b -> Bool) -> a -> b -> Bool
(&&&&) = forall b c d a. (b -> c -> d) -> (a -> b) -> (a -> c) -> a -> d
combine forall a. (a -> Bool) -> (a -> Bool) -> a -> Bool
(&&&)
infixr 3 &&&&
(&&&&&) :: (a -> b -> c -> Bool) -> (a -> b -> c -> Bool) -> a -> b -> c -> Bool
&&&&& :: forall a b c.
(a -> b -> c -> Bool)
-> (a -> b -> c -> Bool) -> a -> b -> c -> Bool
(&&&&&) = forall b c d a. (b -> c -> d) -> (a -> b) -> (a -> c) -> a -> d
combine forall a b. (a -> b -> Bool) -> (a -> b -> Bool) -> a -> b -> Bool
(&&&&)
infixr 3 &&&&&
(|||) :: (a -> Bool) -> (a -> Bool) -> a -> Bool
||| :: forall a. (a -> Bool) -> (a -> Bool) -> a -> Bool
(|||) = forall b c d a. (b -> c -> d) -> (a -> b) -> (a -> c) -> a -> d
combine Bool -> Bool -> Bool
(||)
infixr 2 |||
(||||) :: (a -> b -> Bool) -> (a -> b -> Bool) -> a -> b -> Bool
|||| :: forall a b. (a -> b -> Bool) -> (a -> b -> Bool) -> a -> b -> Bool
(||||) = forall b c d a. (b -> c -> d) -> (a -> b) -> (a -> c) -> a -> d
combine forall a. (a -> Bool) -> (a -> Bool) -> a -> Bool
(|||)
infixr 2 ||||
isCommutative :: Eq b => (a -> a -> b) -> a -> a -> Bool
isCommutative :: forall b a. Eq b => (a -> a -> b) -> a -> a -> Bool
isCommutative a -> a -> b
(?) = \a
x a
y -> a
x a -> a -> b
? a
y forall a. Eq a => a -> a -> Bool
== a
y a -> a -> b
? a
x
isAssociative :: Eq a => (a -> a -> a) -> a -> a -> a -> Bool
isAssociative :: forall a. Eq a => (a -> a -> a) -> a -> a -> a -> Bool
isAssociative a -> a -> a
(?) = \a
x a
y a
z -> a
x a -> a -> a
? (a
y a -> a -> a
? a
z) forall a. Eq a => a -> a -> Bool
== (a
x a -> a -> a
? a
y) a -> a -> a
? a
z
isDistributiveOver :: Eq a
=> (a -> a -> a) -> (a -> a -> a)
-> a -> a -> a -> Bool
isDistributiveOver :: forall a.
Eq a =>
(a -> a -> a) -> (a -> a -> a) -> a -> a -> a -> Bool
isDistributiveOver = forall a.
Eq a =>
(a -> a -> a) -> (a -> a -> a) -> a -> a -> a -> Bool
isLeftDistributiveOver
isLeftDistributiveOver :: Eq a
=> (a -> a -> a) -> (a -> a -> a)
-> a -> a -> a -> Bool
a -> a -> a
(?) isLeftDistributiveOver :: forall a.
Eq a =>
(a -> a -> a) -> (a -> a -> a) -> a -> a -> a -> Bool
`isLeftDistributiveOver` a -> a -> a
(#) = \a
x a
y a
z -> a
x a -> a -> a
? (a
y a -> a -> a
# a
z) forall a. Eq a => a -> a -> Bool
== (a
x a -> a -> a
? a
y) a -> a -> a
# (a
x a -> a -> a
? a
z)
isRightDistributiveOver :: Eq a
=> (a -> a -> a) -> (a -> a -> a)
-> a -> a -> a -> Bool
a -> a -> a
(?) isRightDistributiveOver :: forall a.
Eq a =>
(a -> a -> a) -> (a -> a -> a) -> a -> a -> a -> Bool
`isRightDistributiveOver` a -> a -> a
(#) = \a
x a
y a
z -> (a
y a -> a -> a
# a
z) a -> a -> a
? a
x forall a. Eq a => a -> a -> Bool
== (a
y a -> a -> a
? a
x) a -> a -> a
# (a
z a -> a -> a
? a
x)
isFlipped :: Eq c => (a -> b -> c) -> (b -> a -> c) -> a -> b -> Bool
a -> b -> c
(+-) isFlipped :: forall c a b.
Eq c =>
(a -> b -> c) -> (b -> a -> c) -> a -> b -> Bool
`isFlipped` b -> a -> c
(-+) = \a
x b
y -> a
x a -> b -> c
+- b
y forall a. Eq a => a -> a -> Bool
== b
y b -> a -> c
-+ a
x
isTransitive :: (a -> a -> Bool) -> a -> a -> a -> Bool
isTransitive :: forall a. (a -> a -> Bool) -> a -> a -> a -> Bool
isTransitive a -> a -> Bool
(?) = \a
x a
y a
z -> a
x a -> a -> Bool
? a
y Bool -> Bool -> Bool
&& a
y a -> a -> Bool
? a
z Bool -> Bool -> Bool
==> a
x a -> a -> Bool
? a
z
isReflexive :: (a -> a -> Bool) -> a -> Bool
isReflexive :: forall a. (a -> a -> Bool) -> a -> Bool
isReflexive a -> a -> Bool
(?) = \a
x -> a
x a -> a -> Bool
? a
x
isIrreflexive :: (a -> a -> Bool) -> a -> Bool
isIrreflexive :: forall a. (a -> a -> Bool) -> a -> Bool
isIrreflexive a -> a -> Bool
(?) = \a
x -> Bool -> Bool
not forall a b. (a -> b) -> a -> b
$ a
x a -> a -> Bool
? a
x
isSymmetric :: (a -> a -> Bool) -> a -> a -> Bool
isSymmetric :: forall a. (a -> a -> Bool) -> a -> a -> Bool
isSymmetric = forall b a. Eq b => (a -> a -> b) -> a -> a -> Bool
isCommutative
isAntisymmetric :: Eq a => (a -> a -> Bool) -> a -> a -> Bool
isAntisymmetric :: forall a. Eq a => (a -> a -> Bool) -> a -> a -> Bool
isAntisymmetric a -> a -> Bool
(?) = \a
x a
y -> a
x a -> a -> Bool
? a
y Bool -> Bool -> Bool
&& a
y a -> a -> Bool
? a
x Bool -> Bool -> Bool
==> a
x forall a. Eq a => a -> a -> Bool
== a
y
isAsymmetric :: (a -> a -> Bool) -> a -> a -> Bool
isAsymmetric :: forall a. (a -> a -> Bool) -> a -> a -> Bool
isAsymmetric a -> a -> Bool
(?) = \a
x a
y -> a
x a -> a -> Bool
? a
y Bool -> Bool -> Bool
==> Bool -> Bool
not (a
y a -> a -> Bool
? a
x)
isEquivalence :: (a -> a -> Bool) -> a -> a -> a -> Bool
isEquivalence :: forall a. (a -> a -> Bool) -> a -> a -> a -> Bool
isEquivalence a -> a -> Bool
(==) = \a
x a
y a
z -> forall a. (a -> a -> Bool) -> a -> Bool
isReflexive a -> a -> Bool
(==) a
x
Bool -> Bool -> Bool
&& forall a. (a -> a -> Bool) -> a -> a -> Bool
isSymmetric a -> a -> Bool
(==) a
x a
y
Bool -> Bool -> Bool
&& forall a. (a -> a -> Bool) -> a -> a -> a -> Bool
isTransitive a -> a -> Bool
(==) a
x a
y a
z
isPartialOrder :: Eq a => (a -> a -> Bool) -> a -> a -> a -> Bool
isPartialOrder :: forall a. Eq a => (a -> a -> Bool) -> a -> a -> a -> Bool
isPartialOrder a -> a -> Bool
(<=) = \a
x a
y a
z -> forall a. (a -> a -> Bool) -> a -> Bool
isReflexive a -> a -> Bool
(<=) a
x
Bool -> Bool -> Bool
&& forall a. Eq a => (a -> a -> Bool) -> a -> a -> Bool
isAntisymmetric a -> a -> Bool
(<=) a
x a
y
Bool -> Bool -> Bool
&& forall a. (a -> a -> Bool) -> a -> a -> a -> Bool
isTransitive a -> a -> Bool
(<=) a
x a
y a
z
isStrictPartialOrder :: (a -> a -> Bool) -> a -> a -> a -> Bool
isStrictPartialOrder :: forall a. (a -> a -> Bool) -> a -> a -> a -> Bool
isStrictPartialOrder a -> a -> Bool
(<) = \a
x a
y a
z -> forall a. (a -> a -> Bool) -> a -> Bool
isIrreflexive a -> a -> Bool
(<) a
x
Bool -> Bool -> Bool
&& forall a. (a -> a -> Bool) -> a -> a -> Bool
isAsymmetric a -> a -> Bool
(<) a
x a
y
Bool -> Bool -> Bool
&& forall a. (a -> a -> Bool) -> a -> a -> a -> Bool
isTransitive a -> a -> Bool
(<) a
x a
y a
z
isTotalOrder :: Eq a => (a -> a -> Bool) -> a -> a -> a -> Bool
isTotalOrder :: forall a. Eq a => (a -> a -> Bool) -> a -> a -> a -> Bool
isTotalOrder a -> a -> Bool
(<=) = \a
x a
y a
z -> (a
x a -> a -> Bool
<= a
y Bool -> Bool -> Bool
|| a
y a -> a -> Bool
<= a
x)
Bool -> Bool -> Bool
&& forall a. Eq a => (a -> a -> Bool) -> a -> a -> Bool
isAntisymmetric a -> a -> Bool
(<=) a
x a
y
Bool -> Bool -> Bool
&& forall a. (a -> a -> Bool) -> a -> a -> a -> Bool
isTransitive a -> a -> Bool
(<=) a
x a
y a
z
isStrictTotalOrder :: Eq a => (a -> a -> Bool) -> a -> a -> a -> Bool
isStrictTotalOrder :: forall a. Eq a => (a -> a -> Bool) -> a -> a -> a -> Bool
isStrictTotalOrder a -> a -> Bool
(<) = \a
x a
y a
z -> (a
x forall a. Eq a => a -> a -> Bool
/= a
y Bool -> Bool -> Bool
==> a
x a -> a -> Bool
< a
y Bool -> Bool -> Bool
|| a
y a -> a -> Bool
< a
x)
Bool -> Bool -> Bool
&& forall a. (a -> a -> Bool) -> a -> Bool
isIrreflexive a -> a -> Bool
(<) a
x
Bool -> Bool -> Bool
&& forall a. (a -> a -> Bool) -> a -> a -> Bool
isAsymmetric a -> a -> Bool
(<) a
x a
y
Bool -> Bool -> Bool
&& forall a. (a -> a -> Bool) -> a -> a -> a -> Bool
isTransitive a -> a -> Bool
(<) a
x a
y a
z
isComparison :: (a -> a -> Ordering) -> a -> a -> a -> Bool
isComparison :: forall a. (a -> a -> Ordering) -> a -> a -> a -> Bool
isComparison a -> a -> Ordering
compare = \a
x a
y a
z -> forall a. (a -> a -> Bool) -> a -> a -> a -> Bool
isEquivalence a -> a -> Bool
(===) a
x a
y a
z
Bool -> Bool -> Bool
&& forall a. (a -> a -> Bool) -> a -> Bool
isIrreflexive a -> a -> Bool
(<) a
x
Bool -> Bool -> Bool
&& forall a. (a -> a -> Bool) -> a -> a -> a -> Bool
isTransitive a -> a -> Bool
(<) a
x a
y a
z
Bool -> Bool -> Bool
&& (a -> a -> Bool
(<) forall c a b.
Eq c =>
(a -> b -> c) -> (b -> a -> c) -> a -> b -> Bool
`isFlipped` a -> a -> Bool
(>)) a
x a
y
where
a
x === :: a -> a -> Bool
=== a
y = a
x a -> a -> Ordering
`compare` a
y forall a. Eq a => a -> a -> Bool
== Ordering
EQ
a
x < :: a -> a -> Bool
< a
y = a
x a -> a -> Ordering
`compare` a
y forall a. Eq a => a -> a -> Bool
== Ordering
LT
a
x > :: a -> a -> Bool
> a
y = a
x a -> a -> Ordering
`compare` a
y forall a. Eq a => a -> a -> Bool
== Ordering
GT
isIdempotent :: Eq a => (a -> a) -> a -> Bool
isIdempotent :: forall a. Eq a => (a -> a) -> a -> Bool
isIdempotent a -> a
f = a -> a
f forall b c a. (b -> c) -> (a -> b) -> a -> c
. a -> a
f forall b a. Eq b => (a -> b) -> (a -> b) -> a -> Bool
=== a -> a
f
isIdentity :: Eq a => (a -> a) -> a -> Bool
isIdentity :: forall a. Eq a => (a -> a) -> a -> Bool
isIdentity a -> a
f = a -> a
f forall b a. Eq b => (a -> b) -> (a -> b) -> a -> Bool
=== forall a. a -> a
id
isNeverIdentity :: Eq a => (a -> a) -> a -> Bool
isNeverIdentity :: forall a. Eq a => (a -> a) -> a -> Bool
isNeverIdentity = (Bool -> Bool
not forall b c a. (b -> c) -> (a -> b) -> a -> c
.) forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a. Eq a => (a -> a) -> a -> Bool
isIdentity
okEq :: Eq a => a -> a -> a -> Bool
okEq :: forall a. Eq a => a -> a -> a -> Bool
okEq a
x a
y a
z = forall a. (a -> a -> Bool) -> a -> a -> a -> Bool
isEquivalence forall a. Eq a => a -> a -> Bool
(==) a
x a
y a
z
Bool -> Bool -> Bool
&& (a
x forall a. Eq a => a -> a -> Bool
/= a
y) forall a. Eq a => a -> a -> Bool
== Bool -> Bool
not (a
x forall a. Eq a => a -> a -> Bool
== a
y)
okOrd :: Ord a => a -> a -> a -> Bool
okOrd :: forall a. Ord a => a -> a -> a -> Bool
okOrd a
x a
y a
z = forall a. Eq a => (a -> a -> Bool) -> a -> a -> a -> Bool
isTotalOrder forall a. Ord a => a -> a -> Bool
(<=) a
x a
y a
z
Bool -> Bool -> Bool
&& forall a. (a -> a -> Ordering) -> a -> a -> a -> Bool
isComparison forall a. Ord a => a -> a -> Ordering
compare a
x a
y a
z
Bool -> Bool -> Bool
&& (a
x forall a. Ord a => a -> a -> Bool
<= a
y) forall a. Eq a => a -> a -> Bool
== ((a
x forall a. Ord a => a -> a -> Ordering
`compare` a
y) forall (t :: * -> *) a. (Foldable t, Eq a) => a -> t a -> Bool
`elem` [Ordering
LT,Ordering
EQ])
okEqOrd :: (Eq a, Ord a) => a -> a -> a -> Bool
okEqOrd :: forall a. (Eq a, Ord a) => a -> a -> a -> Bool
okEqOrd a
x a
y a
z = forall a. Eq a => a -> a -> a -> Bool
okEq a
x a
y a
z
Bool -> Bool -> Bool
&& forall a. Ord a => a -> a -> a -> Bool
okOrd a
x a
y a
z
Bool -> Bool -> Bool
&& (a
x forall a. Eq a => a -> a -> Bool
== a
y) forall a. Eq a => a -> a -> Bool
== (a
x forall a. Ord a => a -> a -> Ordering
`compare` a
y forall a. Eq a => a -> a -> Bool
== Ordering
EQ)
okNumNonNegative :: (Eq a, Num a) => a -> a -> a -> Bool
okNumNonNegative :: forall a. (Eq a, Num a) => a -> a -> a -> Bool
okNumNonNegative a
x a
y a
z = forall b a. Eq b => (a -> a -> b) -> a -> a -> Bool
isCommutative forall a. Num a => a -> a -> a
(+) a
x a
y
Bool -> Bool -> Bool
&& forall b a. Eq b => (a -> a -> b) -> a -> a -> Bool
isCommutative forall a. Num a => a -> a -> a
(*) a
x a
y
Bool -> Bool -> Bool
&& forall a. Eq a => (a -> a -> a) -> a -> a -> a -> Bool
isAssociative forall a. Num a => a -> a -> a
(+) a
x a
y a
z
Bool -> Bool -> Bool
&& forall a. Eq a => (a -> a -> a) -> a -> a -> a -> Bool
isAssociative forall a. Num a => a -> a -> a
(*) a
x a
y a
z
Bool -> Bool -> Bool
&& (forall a. Num a => a -> a -> a
(*) forall a.
Eq a =>
(a -> a -> a) -> (a -> a -> a) -> a -> a -> a -> Bool
`isDistributiveOver` forall a. Num a => a -> a -> a
(+)) a
x a
y a
z
Bool -> Bool -> Bool
&& forall a. Eq a => (a -> a) -> a -> Bool
isIdempotent (forall a. Num a => a -> a -> a
+a
0) a
x
Bool -> Bool -> Bool
&& forall a. Eq a => (a -> a) -> a -> Bool
isIdempotent (forall a. Num a => a -> a -> a
*a
1) a
x
Bool -> Bool -> Bool
&& forall a. Eq a => (a -> a) -> a -> Bool
isIdempotent forall a. Num a => a -> a
abs a
x
Bool -> Bool -> Bool
&& forall a. Eq a => (a -> a) -> a -> Bool
isIdempotent forall a. Num a => a -> a
signum a
x
Bool -> Bool -> Bool
&& forall a. Num a => a -> a
abs a
x forall a. Num a => a -> a -> a
* forall a. Num a => a -> a
signum a
x forall a. Eq a => a -> a -> Bool
== a
x
okNum :: (Eq a, Num a) => a -> a -> a -> Bool
okNum :: forall a. (Eq a, Num a) => a -> a -> a -> Bool
okNum a
x a
y a
z = forall a. (Eq a, Num a) => a -> a -> a -> Bool
okNumNonNegative a
x a
y a
z
Bool -> Bool -> Bool
&& forall a. Num a => a -> a
negate (forall a. Num a => a -> a
negate a
x) forall a. Eq a => a -> a -> Bool
== a
x
Bool -> Bool -> Bool
&& a
x forall a. Num a => a -> a -> a
- a
x forall a. Eq a => a -> a -> Bool
== a
0
(=$) :: Eq b => a -> (a -> b) -> a -> Bool
(a
x =$ :: forall b a. Eq b => a -> (a -> b) -> a -> Bool
=$ a -> b
f) a
y = a -> b
f a
x forall a. Eq a => a -> a -> Bool
== a -> b
f a
y
infixl 4 =$
($=) :: (a -> Bool) -> a -> Bool
$= :: forall a. (a -> Bool) -> a -> Bool
($=) = forall a b. (a -> b) -> a -> b
($)
infixl 4 $=
(=|) :: Eq a => [a] -> Int -> [a] -> Bool
[a]
xs =| :: forall a. Eq a => [a] -> Int -> [a] -> Bool
=| Int
n = [a]
xs forall b a. Eq b => a -> (a -> b) -> a -> Bool
=$ forall a. Int -> [a] -> [a]
take Int
n
infixl 4 =|
(|=) :: (a -> Bool) -> a -> Bool
|= :: forall a. (a -> Bool) -> a -> Bool
(|=) = forall a b. (a -> b) -> a -> b
($)
infixl 4 |=
{-# DEPRECATED commutative "Use isCommutative." #-}
commutative :: Eq b => (a -> a -> b) -> a -> a -> Bool
commutative :: forall b a. Eq b => (a -> a -> b) -> a -> a -> Bool
commutative = forall b a. Eq b => (a -> a -> b) -> a -> a -> Bool
isCommutative
{-# DEPRECATED associative "Use isAssociative." #-}
associative :: Eq a => (a -> a -> a) -> a -> a -> a -> Bool
associative :: forall a. Eq a => (a -> a -> a) -> a -> a -> a -> Bool
associative = forall a. Eq a => (a -> a -> a) -> a -> a -> a -> Bool
isAssociative
{-# DEPRECATED distributive "Use isDistributiveOver." #-}
distributive :: Eq a => (a -> a -> a) -> (a -> a -> a) -> a -> a -> a -> Bool
distributive :: forall a.
Eq a =>
(a -> a -> a) -> (a -> a -> a) -> a -> a -> a -> Bool
distributive = forall a.
Eq a =>
(a -> a -> a) -> (a -> a -> a) -> a -> a -> a -> Bool
isDistributiveOver
{-# DEPRECATED symmetric2 "Use isFlipped." #-}
symmetric2 :: Eq c => (a -> b -> c) -> (b -> a -> c) -> a -> b -> Bool
symmetric2 :: forall c a b.
Eq c =>
(a -> b -> c) -> (b -> a -> c) -> a -> b -> Bool
symmetric2 = forall c a b.
Eq c =>
(a -> b -> c) -> (b -> a -> c) -> a -> b -> Bool
isFlipped
{-# DEPRECATED transitive "Use isTransitive." #-}
transitive :: (a -> a -> Bool) -> a -> a -> a -> Bool
transitive :: forall a. (a -> a -> Bool) -> a -> a -> a -> Bool
transitive = forall a. (a -> a -> Bool) -> a -> a -> a -> Bool
isTransitive
{-# DEPRECATED reflexive "Use isReflexive." #-}
reflexive :: (a -> a -> Bool) -> a -> Bool
reflexive :: forall a. (a -> a -> Bool) -> a -> Bool
reflexive = forall a. (a -> a -> Bool) -> a -> Bool
isReflexive
{-# DEPRECATED irreflexive "Use isIrreflexive." #-}
irreflexive :: (a -> a -> Bool) -> a -> Bool
irreflexive :: forall a. (a -> a -> Bool) -> a -> Bool
irreflexive = forall a. (a -> a -> Bool) -> a -> Bool
isIrreflexive
{-# DEPRECATED symmetric "Use isSymmetric." #-}
symmetric :: (a -> a -> Bool) -> a -> a -> Bool
symmetric :: forall a. (a -> a -> Bool) -> a -> a -> Bool
symmetric = forall a. (a -> a -> Bool) -> a -> a -> Bool
isSymmetric
{-# DEPRECATED antisymmetric "Use isAntisymmetric." #-}
antisymmetric :: Eq a => (a -> a -> Bool) -> a -> a -> Bool
antisymmetric :: forall a. Eq a => (a -> a -> Bool) -> a -> a -> Bool
antisymmetric = forall a. Eq a => (a -> a -> Bool) -> a -> a -> Bool
isAntisymmetric
{-# DEPRECATED asymmetric "Use isAsymmetric." #-}
asymmetric :: (a -> a -> Bool) -> a -> a -> Bool
asymmetric :: forall a. (a -> a -> Bool) -> a -> a -> Bool
asymmetric = forall a. (a -> a -> Bool) -> a -> a -> Bool
isAsymmetric
{-# DEPRECATED equivalence "Use isEquivalence." #-}
equivalence :: (a -> a -> Bool) -> a -> a -> a -> Bool
equivalence :: forall a. (a -> a -> Bool) -> a -> a -> a -> Bool
equivalence = forall a. (a -> a -> Bool) -> a -> a -> a -> Bool
isEquivalence
{-# DEPRECATED partialOrder "Use isPartialOrder." #-}
partialOrder :: Eq a => (a -> a -> Bool) -> a -> a -> a -> Bool
partialOrder :: forall a. Eq a => (a -> a -> Bool) -> a -> a -> a -> Bool
partialOrder = forall a. Eq a => (a -> a -> Bool) -> a -> a -> a -> Bool
isPartialOrder
{-# DEPRECATED strictPartialOrder "Use isStrictPartialOrder." #-}
strictPartialOrder :: (a -> a -> Bool) -> a -> a -> a -> Bool
strictPartialOrder :: forall a. (a -> a -> Bool) -> a -> a -> a -> Bool
strictPartialOrder = forall a. (a -> a -> Bool) -> a -> a -> a -> Bool
isStrictPartialOrder
{-# DEPRECATED totalOrder "Use isTotalOrder." #-}
totalOrder :: Eq a => (a -> a -> Bool) -> a -> a -> a -> Bool
totalOrder :: forall a. Eq a => (a -> a -> Bool) -> a -> a -> a -> Bool
totalOrder = forall a. Eq a => (a -> a -> Bool) -> a -> a -> a -> Bool
isTotalOrder
{-# DEPRECATED strictTotalOrder "Use isStrictTotalOrder." #-}
strictTotalOrder :: Eq a => (a -> a -> Bool) -> a -> a -> a -> Bool
strictTotalOrder :: forall a. Eq a => (a -> a -> Bool) -> a -> a -> a -> Bool
strictTotalOrder = forall a. Eq a => (a -> a -> Bool) -> a -> a -> a -> Bool
isStrictTotalOrder
{-# DEPRECATED comparison "Use isComparison." #-}
comparison :: (a -> a -> Ordering) -> a -> a -> a -> Bool
comparison :: forall a. (a -> a -> Ordering) -> a -> a -> a -> Bool
comparison = forall a. (a -> a -> Ordering) -> a -> a -> a -> Bool
isComparison
{-# DEPRECATED idempotent "Use isIdempotent." #-}
idempotent :: Eq a => (a -> a) -> a -> Bool
idempotent :: forall a. Eq a => (a -> a) -> a -> Bool
idempotent = forall a. Eq a => (a -> a) -> a -> Bool
isIdempotent
{-# DEPRECATED identity "Use isIdentity." #-}
identity :: Eq a => (a -> a) -> a -> Bool
identity :: forall a. Eq a => (a -> a) -> a -> Bool
identity = forall a. Eq a => (a -> a) -> a -> Bool
isIdentity
{-# DEPRECATED neverIdentity "Use isNeverIdentity." #-}
neverIdentity :: Eq a => (a -> a) -> a -> Bool
neverIdentity :: forall a. Eq a => (a -> a) -> a -> Bool
neverIdentity = forall a. Eq a => (a -> a) -> a -> Bool
isNeverIdentity