module UVMHS.Core.Data.Bool where import UVMHS.Core.Init import UVMHS.Core.Classes instance Null 𝔹 where null :: 𝔹 null = 𝔹 False instance Append 𝔹 where ⧺ :: 𝔹 -> 𝔹 -> 𝔹 (⧺) = 𝔹 -> 𝔹 -> 𝔹 (⩔) instance Monoid 𝔹 instance POrd 𝔹 where 𝔹 False ⊑ :: 𝔹 -> 𝔹 -> 𝔹 ⊑ 𝔹 _ = 𝔹 True 𝔹 _ ⊑ 𝔹 True = 𝔹 True 𝔹 True ⊑ 𝔹 False = 𝔹 False instance Bot 𝔹 where bot :: 𝔹 bot = 𝔹 False instance Join 𝔹 where ⊔ :: 𝔹 -> 𝔹 -> 𝔹 (⊔) = 𝔹 -> 𝔹 -> 𝔹 (⩔) instance JoinLattice 𝔹 instance Top 𝔹 where top :: 𝔹 top = 𝔹 True instance Meet 𝔹 where ⊓ :: 𝔹 -> 𝔹 -> 𝔹 (⊓) = 𝔹 -> 𝔹 -> 𝔹 (⩓) instance MeetLattice 𝔹 instance Lattice 𝔹 instance Dual 𝔹 where dual :: 𝔹 -> 𝔹 dual = 𝔹 -> 𝔹 not instance Zero 𝔹 where zero :: 𝔹 zero = 𝔹 False instance Plus 𝔹 where + :: 𝔹 -> 𝔹 -> 𝔹 (+) = 𝔹 -> 𝔹 -> 𝔹 forall a. Join a => a -> a -> a (⊔) instance Additive 𝔹 instance One 𝔹 where one :: 𝔹 one = 𝔹 True instance Times 𝔹 where × :: 𝔹 -> 𝔹 -> 𝔹 (×) = 𝔹 -> 𝔹 -> 𝔹 forall a. Meet a => a -> a -> a (⊓) instance Multiplicative 𝔹