This commit adds a common ancestor for all AST nodes; this enables us to move all duplicate print logic to one place.