code: func executeAction(act rules.Action, configuration string, newContext change.Detector, contextChanges change.Set, actionChanges *change.Set) (change.Detector, change.Set, error) {
  	if act == nil {
  		return nil, nil, errs.New("rule can not be nil")
  	}
  	return act.OnChange(newContext, contextChanges, configuration, actionChanges)
  }
docs: // executeAction executes the action given. The actionChanges contain the changes made by
  // prior action executions. The execution is expected to add/update their changes on this
  // change set.