mplify (Node lab Add (Leaf lab1 (Symbol (a1,b1)))
                       (Leaf lab2 (Symbol (a2,b2))))
        | (not $ isVariable b1) && (not $ isVariable b2) = Leaf (0%1) s
        where s = Symbol (liftA2 (+) a1 a2, Alg (show b))
              b = (eval b1) + (eval b2)


simplify (Node lab Add (Leaf lab1 (Symbol (a1,b1)))
                       (Leaf lab2 (Symbol (a2,b2))))
        | (not $ isVariable b1) && (not $ isVariable b2) = Leaf (0%1) s
        where s = Symbol (liftA2 (+) a1 a2, Alg (show b))
              b = (eval b1) + (eval b2)
simplify (Node lab Add (Leaf lab1 (Symbol (a1,b1)))
                       (Leaf lab2 (Symbol (a2,b2))))
        | (not $ isVariable b1) && (not $ isVariable b2) = Leaf (0%1) s
        where s = Symbol (liftA2 (+) a1 a2, Alg (show b))
              b = (eval b1) + (eval b2)