The AST generator is mostly complete. Added support for uniquing
using FoldingSet, and suitable overloads for the make() function.

However, uniquing still seem to not work properly. Needs debugging.