partial class ExprCheckNotType { protected override T ApplyImpl <T>(IXmlExprTypeVisitor <T> visitor)
                                  {
                                      return(visitor.VisitCheckNot(this));
                                  }
 partial class ExprSequenceType { protected override T ApplyImpl <T>(IXmlExprTypeVisitor <T> visitor)
                                  {
                                      return(visitor.VisitSeq(this));
                                  }
 partial class ExprPatternType { protected override T ApplyImpl <T>(IXmlExprTypeVisitor <T> visitor)
                                 {
                                     return(visitor.VisitRegex(this));
                                 }
 protected abstract T ApplyImpl <T>(IXmlExprTypeVisitor <T> visitor);
 public T Apply <T>(IXmlExprTypeVisitor <T> visitor)
 {
     return(this.ApplyImpl <T>(visitor));
 }
 partial class ExprNumberType { protected override T ApplyImpl <T>(IXmlExprTypeVisitor <T> visitor)
                                {
                                    return(visitor.VisitNumber(this));
                                }
 partial class ExprAlternativesType { protected override T ApplyImpl <T>(IXmlExprTypeVisitor <T> visitor)
                                      {
                                          return(visitor.VisitAlts(this));
                                      }