Added enumerations to type system documentation
Added enum type
AST is now a class + typo fixed
Re-factored AST headers