Makefile: Rename rules for consistency
AST: Replace list with iterator
AST: Remove unnecessary assertions that are unit tests
AST test: Use classmethods for memoization