module Calc where import ExprT import Parser -- Exercise 1 eval :: ExprT -> Integer eval (Lit n) = n eval (Add l r) = eval l + eval r eval (Mul l r) = eval l * eval r -- Exercise 2 evalStr :: String -> Maybe Integer evalStr s = case parseExp Lit Add Mul s of Nothing -> Nothing Just t -> Just (eval t)