Generic function based arithmetic, based on example of Fatemen. Includes symbolic arithmetic using Maxima as a back-end.