code: func (tpl *Template) parse() error {
  	if tpl.program == nil {
  		var err error
  
  		tpl.program, err = parser.Parse(tpl.source)
  		if err != nil {
  			return err
  		}
  	}
  
  	return nil
  }
docs: // parse parses the template
  //
  // It can be called several times, the parsing will be done only once.