module Pandora.Pattern.Object.Setoid (Setoid (..)) where
import Pandora.Paradigm.Primary.Object.Boolean (Boolean (False, True))
infix 8 ==, !=, ?=
class Setoid a where
{-# MINIMAL (==) #-}
(==) :: a -> a -> Boolean
(!=) :: a -> a -> Boolean
(!=) a
x a
y = case a
x a -> a -> Boolean
forall a. Setoid a => a -> a -> Boolean
== a
y of
Boolean
True -> Boolean
False
Boolean
False -> Boolean
True
(?=) :: a -> a -> r -> r -> r
(?=) a
x a
y r
xc r
yc = case a
x a -> a -> Boolean
forall a. Setoid a => a -> a -> Boolean
== a
y of
Boolean
True -> r
xc
Boolean
False -> r
yc