It barely compiles, but my interpretation of the 'root' AST node type was incorrect. We should switch to doing a flatter AST.