code: func NewOperandElementErr(pos int, composite ast.Value, got ast.Value, expected ...string) error {
  
  	tpe := ast.TypeName(composite)
  
  	if len(expected) == 1 {
  		return NewOperandErr(pos, "must be %v of %vs but got %v containing %v", tpe, expected[0], tpe, ast.TypeName(got))
  	}
  
  	return NewOperandErr(pos, "must be %v of (any of) {%v} but got %v containing %v", tpe, strings.Join(expected, ", "), tpe, ast.TypeName(got))
  }
docs: // NewOperandElementErr returns an operand error indicating an element in the
  // composite operand was wrong.