First attempt at providing a better AST API.