code: func (tpl *Template) ExecWith(ctx interface{}, privData *DataFrame) (result string, err error) {
  	defer errRecover(&err)
  
  	// parses template if necessary
  	err = tpl.parse()
  	if err != nil {
  		return
  	}
  
  	// setup visitor
  	v := newEvalVisitor(tpl, ctx, privData)
  
  	// visit AST
  	result, _ = tpl.program.Accept(v).(string)
  
  	// named return values
  	return
  }
docs: // ExecWith evaluates template with given context and private data frame.