test pass
AST type definitions moved to namespace