Symmath is an experiment to represent mathematical terms in Haskell and do things with them - e.g. reduce them to a simpler form, differentiate/integrate them or even solve equations like a full-fledged CAS.