type Visitor … // Visit recursively walks through the structural schema and calls the given callbacks // at each node of those types. func (m *Visitor) Visit(s *Structural) { … } func (m *Visitor) visitStructural(s *Structural) bool { … } func (m *Visitor) visitNestedValueValidation(vv *NestedValueValidation) bool { … }