:: Evaluator a = Evaluator (Env -> a)
:: PrettyPrinter a = PP String
-class intArith where
+class intArith v where
lit :: t -> v t | toString t
add :: (v t) (v t) -> (v t) | + t
minus :: (v t) (v t) -> (v t) | - t
-class boolArith where ...
+class boolArith v where ...
instance intArith Evaluator where
lit x = Evaluator \e->x