func SortInput(input *Input) {
	VisitInput(input, func(input *Input) {
		SortInputs := func(inputs []*Input) {
			sort.SliceStable(inputs, func(i, j int) bool { return InputName(inputs[i]) < InputName(inputs[j]) })
		}
		switch {
		case input.Cross != nil:
			SortInputs(input.Cross)
		case input.Union != nil:
			SortInputs(input.Union)
		}
	})
}
func SortInput(input *Input) {
	VisitInput(input, func(input *Input) {
		SortInputs := func(inputs []*Input) {
			sort.SliceStable(inputs, func(i, j int) bool { return InputName(inputs[i]) < InputName(inputs[j]) })
		}
		switch {
		case input.Cross != nil:
			SortInputs(input.Cross)
		case input.Union != nil:
			SortInputs(input.Union)
		}
	})
}
func SortInput ( input * Input ) { VisitInput ( input , func ( input * Input ) { SortInputs := func ( inputs [ ] * Input ) { sort . SliceStable ( inputs , func ( i , j int ) bool { return InputName ( inputs [ i ] ) < InputName ( inputs [ j ] ) } ) } switch { case input . Cross != nil : SortInputs ( input . Cross ) case input . Union != nil : SortInputs ( input . Union ) } } ) }
// SortInput sorts an Input.
SortInput sorts an Input .