Notes on compiler structure, and muddle around with an AST data type