code: func Print(node Node) string {
  	visitor := newPrintVisitor()
  	node.Accept(visitor)
  	return visitor.output()
  }
docs: // Print returns a string representation of given AST, that can be used for debugging purpose.