concealing AstNode recursion