As an afterthought, I guess if you use `reduce` rather than `apply`, you could follow the good advice from Rich Hickey as to not use the two arity version of `reduce`
user=> (reduce max [])
Execution error (ArityException) at user/eval9 (REPL:1).
Wrong number of args (0) passed to: clojure.core/max
user=> (reduce max Integer/MIN_VALUE [])
-2147483648
user=> (reduce max Integer/MIN_VALUE [2])
2
user=>