private static void VisitIfNotNull <TVisitor>(IVisitable <TVisitor> visitable, TVisitor visitor)
 {
     GenericChildVisitor.VisitIfNotNull(visitable, visitor);
 }
 private static void VisitCollection <T, TVisitor>(IReadOnlyCollection <T> collection, TVisitor visitor)
     where T : IVisitable <TVisitor>
 {
     GenericChildVisitor.VisitCollection(collection, visitor);
 }