GenI-0.22: src/BoolExp.hs
module BoolExp where
data BoolExp a = Cond a
| And (BoolExp a) (BoolExp a)
| Or (BoolExp a) (BoolExp a)
| Not (BoolExp a)
check :: (a -> Bool) -> BoolExp a -> Bool
check f (Cond x) = f x
check f (And x y) = check f x && check f y
check f (Or x y) = check f x || check f y
check f (Not x) = not (check f x)