func (o *DefinitionNormalizer) NormalizeDefinition(definition *ast.Document, report *operationreport.Report) {
	o.walker.Walk(definition, nil, report)
}
NormalizeDefinition applies all registered rules to the AST
package astnormalization
import (
	"github.com/jensneuse/graphql-go-tools/pkg/ast"
	"github.com/jensneuse/graphql-go-tools/pkg/astvisitor"
	"github.com/jensneuse/graphql-go-tools/pkg/operationreport"
)
func NormalizeDefinition(definition *ast.Document, report *operationreport.Report) {
	normalizer := NewDefinitionNormalizer()
	normalizer.NormalizeDefinition(definition, report)
}
type DefinitionNormalizer struct {
	walker *astvisitor.Walker
}
func NewDefinitionNormalizer() *DefinitionNormalizer {
	normalizer := &DefinitionNormalizer{}
	normalizer.setupWalkers()
	return normalizer
}
func (o *DefinitionNormalizer) setupWalkers() {
	walker := astvisitor.NewWalker(48)
	extendObjectTypeDefinition(&walker)
	extendInputObjectTypeDefinition(&walker)
	extendEnumTypeDefinition(&walker)
	extendInterfaceTypeDefinition(&walker)
	extendScalarTypeDefinition(&walker)
	extendUnionTypeDefinition(&walker)
	removeMergedTypeExtensions(&walker)
	implicitSchemaDefinition(&walker)
	o.walker = &walker
}