> Don't we need to do all of this in the _ast module, already?
> We already have an AST composed of Python objects

We have AST of Python objects, but the python versions are not used
internally, especially in the parser, where they are created. The parser and the compiler
currently use exclusively the C versions of the nodes. Changing the parser
to use Python versions and especially not to use the arena allocator can complicate
the parser substantially, and destroying the resulting tree can be expensive (as destroying
a deep tree composed of Python objects currently is).

Cheers from cloudy London,