
Hi I'm trying to get a if statement to work but not sure if this is the right approach, what I want to do in simple english is to evaluate one expression at a time for example. (3+2)+(4+5) I want it to return 5 + (4+5) then 5+9. data Expression = Val Integer | Add Expression Expression | Subtract Expression Expression | Multiply Expression Expression | Divide Expression Expression deriving Show evalStep :: Expression -> Expression evalStep (Val x)= (Val x) evalStep (Add x y) = do if x = isDigit then if y isDigit else evalStep x,y I thinking about using recursion down a tree left then right but that seems very complicated. Any thoughts welcome! John