module Deontic.Core.Verdict
( Verdict(..)
, verdictMeet
) where
data Verdict
= Valid
| Void
| Voidable
| Pending
deriving (Verdict -> Verdict -> Bool
(Verdict -> Verdict -> Bool)
-> (Verdict -> Verdict -> Bool) -> Eq Verdict
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: Verdict -> Verdict -> Bool
== :: Verdict -> Verdict -> Bool
$c/= :: Verdict -> Verdict -> Bool
/= :: Verdict -> Verdict -> Bool
Eq, Eq Verdict
Eq Verdict =>
(Verdict -> Verdict -> Ordering)
-> (Verdict -> Verdict -> Bool)
-> (Verdict -> Verdict -> Bool)
-> (Verdict -> Verdict -> Bool)
-> (Verdict -> Verdict -> Bool)
-> (Verdict -> Verdict -> Verdict)
-> (Verdict -> Verdict -> Verdict)
-> Ord Verdict
Verdict -> Verdict -> Bool
Verdict -> Verdict -> Ordering
Verdict -> Verdict -> Verdict
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: Verdict -> Verdict -> Ordering
compare :: Verdict -> Verdict -> Ordering
$c< :: Verdict -> Verdict -> Bool
< :: Verdict -> Verdict -> Bool
$c<= :: Verdict -> Verdict -> Bool
<= :: Verdict -> Verdict -> Bool
$c> :: Verdict -> Verdict -> Bool
> :: Verdict -> Verdict -> Bool
$c>= :: Verdict -> Verdict -> Bool
>= :: Verdict -> Verdict -> Bool
$cmax :: Verdict -> Verdict -> Verdict
max :: Verdict -> Verdict -> Verdict
$cmin :: Verdict -> Verdict -> Verdict
min :: Verdict -> Verdict -> Verdict
Ord, Int -> Verdict -> ShowS
[Verdict] -> ShowS
Verdict -> String
(Int -> Verdict -> ShowS)
-> (Verdict -> String) -> ([Verdict] -> ShowS) -> Show Verdict
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> Verdict -> ShowS
showsPrec :: Int -> Verdict -> ShowS
$cshow :: Verdict -> String
show :: Verdict -> String
$cshowList :: [Verdict] -> ShowS
showList :: [Verdict] -> ShowS
Show)
verdictMeet :: Verdict -> Verdict -> Verdict
verdictMeet :: Verdict -> Verdict -> Verdict
verdictMeet Verdict
Void Verdict
_ = Verdict
Void
verdictMeet Verdict
_ Verdict
Void = Verdict
Void
verdictMeet Verdict
Pending Verdict
_ = Verdict
Pending
verdictMeet Verdict
_ Verdict
Pending = Verdict
Pending
verdictMeet Verdict
Voidable Verdict
_ = Verdict
Voidable
verdictMeet Verdict
_ Verdict
Voidable = Verdict
Voidable
verdictMeet Verdict
Valid Verdict
Valid = Verdict
Valid