public RuleDefinition(string name, string description, RuleRepeatability repeatability, IEnumerable <string> tags,
                              PriorityElement priority, DependencyGroupElement dependencies, GroupElement leftHandSide, ActionGroupElement rightHandSide)
        {
            _name          = name;
            _description   = description;
            _repeatability = repeatability;
            _tags          = new List <string>(tags);

            _priority      = priority;
            _dependencies  = dependencies;
            _leftHandSide  = leftHandSide;
            _rightHandSide = rightHandSide;
        }
 protected internal virtual void VisitPriority(TContext context, PriorityElement element)
 {
 }