code: func DebugPrint(w io.Writer, node Node) error {
  	p := debugPrinter{out: w}
  	p.print(reflect.ValueOf(node))
  	return p.err
  }
docs: // DebugPrint prints the provided syntax tree, spanning multiple lines and with
  // indentation. Can be useful to investigate the content of a syntax tree.