Custom MIN/MAX operations are being used which are not as robust
as the built in min/max operations which will warn about potentially
problematic type comparisons.
For the simple cases, where no type warning is produced, simply
replace MIN/MAX with min/max.