Is it possible to use both recur and post-condition functionality in the same Clojure function? I was hoping to throw an exception using the post-condition, but Clojure appears to be trying to wrap the exception throwing code after the recur somehow, so (just as a stupid example) functions like this cannot be evaluated.
(defn countup [x]
{:pre [(>= x 0)]
:post [(>= % 0)]}
(if (< x 1000000)
(recur (inc x))
x))
I'm using Clojure 1.3 at the moment.