Update the code to the new AST
Add a generic list implementation
Update the AST to use the generic list
Update AST, reader modules
Update type system to new AST