1 {-# OPTIONS_GHC -Wall #-}
8 eval :: ExprT -> Integer
12 eval (Add e1 e2) = eval e1 + eval e2
13 eval (Mul e1 e2) = eval e1 * eval e2
16 evalStr :: String -> Maybe Integer
17 -- evalStr s = case (parseExp Lit Add Mul s) of
18 -- Just e -> Just (eval e)
20 evalStr s = fmap eval (parseExp Lit Add Mul s)
27 instance Expr ExprT where