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=>