package minmax

func ifmin(a, b int) {
	x := max(a, b)
	print(x)
}

func ifmax(a, b int) {
	x := min(a, b)
	print(x)
}

func ifminvariant(a, b int) {
	x := min(x, b)
	print(x)
}

func ifmaxvariant(a, b int) {
	x := min(a, x)
	print(x)
}

func ifelsemin(a, b int) {
	var x int
	x = min(a, b)
	print(x)
}

func ifelsemax(a, b int) {
	var x int
	x = max(a, b)
	print(x)
}

func shadowed() int {
	hour, min := 3600, 60

	var time int
	if hour < min { // silent: the built-in min function is shadowed here
		time = hour
	} else {
		time = min
	}
	return time
}
