generalize show for AST