code: func (v *printVisitor) VisitProgram(node *Program) interface{} {
  	if len(node.BlockParams) > 0 {
  		v.line("BLOCK PARAMS: [ " + strings.Join(node.BlockParams, " ") + " ]")
  	}
  
  	for _, n := range node.Body {
  		n.Accept(v)
  	}
  
  	return nil
  }
docs: //
  // Visitor interface
  //
  // Statements
  // VisitProgram implements corresponding Visitor interface method