2 import Prelude hiding (print)
5 Lit :: Show a => a -> Expr a
6 Add :: Num a => Expr a -> Expr a -> Expr a
7 Eq :: Eq e => Expr e -> Expr e -> Expr Bool
11 eval (Add l r) = eval l + eval r
12 eval (Eq l r) = eval l == eval r
14 print :: Expr a -> String
15 print (Lit e) = show e
16 print (Add l r) = print l ++ "+" ++ print r
17 print (Eq l r) = print l ++ "==" ++ print r