eval (And e0 e1) = evalb (&&) e0 e1
eval (Or e0 e1) = evalb (||) e0 e1
-eval (Not e0 ) = evalb (const not) e0 (Const (B True))
+eval (Not e) = evalb (const not) (Const (B True)) e
eval (Eq e0 e1) = evalib (==) e0 e1
eval (Gt e0 e1) = evalib (>) e0 e1
"r increment" -> debugProg increment
"r tryCatch" -> debugProg tryCatch
"r fibonacci" -> debugProg fibonacci
+ "r boolNot" -> debugProg boolNot
('r':' ':file) -> read <$> readFile file >>= debugProg
x -> printUnknown x >> menu