module Boolie where

-- helper
bools = [True,False]
--             ∼,       ∧,      ∨,      ⇒,      ⇔
-- codes: U+223C,  U+2227, U+2228, U+21D2, U+21D4

infixr 9 ∼
(∼) :: Bool -> Bool
(∼) True  = False
(∼) False = True

infixl 8 ∧
(∧) :: Bool -> Bool -> Bool
False ∧ _     = False
_     ∧ False = False
True  ∧ True  = True

infixl 7 ∨
(∨) :: Bool -> Bool -> Bool
True ∨ _      = True
_    ∨ True   = True
_    ∨ _      = False

infixr 6 ⇒
(⇒) :: Bool -> Bool -> Bool
a ⇒ b = (a∼) ∨ b

infixr 5 ⇔
(⇔) :: Bool -> Bool -> Bool
a ⇔ b = (a ⇒ b) ∧ (b ⇒ a )


