Added a new datatype to represent operators. This will allow them to be applied, as well as printed.
Implemented a solver function for trees. Also switched over to using the new operators for the tree data type.
Updated the solving functions to use the new datatype. Removed old commented out attempt.
Fixed precidence problems in the apply function. The divides relation is also now checked correctly in the same function.
buildTree now correctly builds the tree using the new Leaf constructor.
Updated the solveTree function to correctly deal with the Maybe type return values.
Renamed Pow to Exp.
Added a check for negative exponents.